<< Click to Display Table of Contents >> Описание формата синхронизации Интернет-магазина с Торгсофт |
![]() ![]() ![]() |
Сопряжение программы Торгсофт с Интернет-магазином осуществляется посредством FTP-сервера.
1. Загрузка товаров на сайт:
Перечень того, что должен уметь интернет-магазин, для удачного сопряжения.
1) Ваш интернет-магазин должен уметь загружать прайс-лист из файла в формате *.csv с разделителем ; который имеет название TSGoods.trs. Или файл формата *.yml. В файле могут присутствовать не все поля, какие поля выгружаются и их порядок - настраиваемые:
* Ключ товара - GoodID (поисковый), целочисленный (название колонки по умолчанию - GoodID)
* Название товара - строковое (500) (название колонки по умолчанию - GoodName)
* Описание товара - строковое (255) (название колонки по умолчанию - Description)
* Страна - строковое (100) (название колонки по умолчанию - Country)
* Артикул - строковое (30) (название колонки по умолчанию - Articul)
* Цена розничная - вещественное (название колонки по умолчанию - RetailPrice)
* Цена оптовая - вещественное (название колонки по умолчанию - WholesalePrice)
* Цена акционная (с товарной скидкой) - вещественное (название колонки по умолчанию - RetailPriceWithDiscount)
* Минимальное количество для заказа клиентом, шт - целочисленное (название колонки по умолчанию - MinQuantityForOrder)
* Высота, см =0 - вещественное (название колонки по умолчанию - Height)
* Ширина, см =0 - вещественное (название колонки по умолчанию - Width)
* Идентификатор раздела Интернет-Магазина - Категория - целое число (название колонки по умолчанию - Category)
* Кол-во на складе - вещественное (название колонки по умолчанию - WarehouseQuantity)
* Отображение (0- не отображать на сайте; 1- отображать на сайте) (название колонки по умолчанию - Display)
* Размер - строковое (20) (название колонки по умолчанию - TheSize)
* Цвет - строковое (50) (название колонки по умолчанию - Color)
* Материал - строковое (200) (название колонки по умолчанию - Material)
* Название модели товара - строковое (500) (название колонки по умолчанию - FashionName)
* Пол - целочисленное (0 - пол не определен, 1 - мужской, 2 - женский, 3 - мальчик, 4 - девочка, 5 - унисекс) (название колонки по умолчанию - Sex)
* Краткое название товара - строковое (255) (название колонки по умолчанию - ShortName)
* Вид товара полностью - строковое, содержит всю иерархию вида товара сверху вниз, разделенные между собой запятыми (пример "одежда,джинсы,клешь") (максимальная длина не определена) (название колонки по умолчанию - GoodTypeFull)
* Коллекция производителя полностью - строковое, содержит всю иерархию коллекции производителя сверху вниз, разделенные между собой запятыми (пример "Польша,WOJCIK") (максимальная длина не определена) (название колонки по умолчанию - ProducerCollectionFull)
* Сезон - строковое (100) (название колонки по умолчанию - Season)
* Штрих-код - строковое (40) //с версии базы данных 376 (название колонки по умолчанию - Barcode)
* Упаковка - строковое (255) //с версии базы данных 380 (название колонки по умолчанию - Pack)
* Размер упаковки - строковое (255) //с версии базы данных 380 (название колонки по умолчанию - PackSize)
* Питание - строковое (255) //с версии базы данных 380 (название колонки по умолчанию - PowerSupply)
* Кол-во штук в ящике - строковое (255) //с версии базы данных 380 (название колонки по умолчанию - CountUnitsPerBox)
* Возраст - строковое (255) //с версии базы данных 380 (название колонки по умолчанию - Age)
* Мера - вещественное //с версии базы данных 380 (название колонки по умолчанию - Measure)
* Единица измерения меры - строковое (255) //с версии базы данных 380 (название колонки по умолчанию - MeasureUnit)
* Признак уценки товара - целочисленное (0 - не уценен, 1 - уцененный товар) //с версии базы данных 403 (название колонки по умолчанию - Closeout)
* Цена за единицу меры - вещественное //с версии базы данных 428 (название колонки по умолчанию - RetailPricePerUnit)
* Оптовая цена за единицу меры - вещественное //с версии базы данных 428 (название колонки по умолчанию - WholesalePricePerUnit)
* Эквивалент розничной цены - вещественное //с версии базы данных 449 (название колонки по умолчанию - EqualSalePrice)
* Эквивалент оптовой цены - вещественное //с версии базы данных 449 (название колонки по умолчанию - EqualWholesalePrice)
* Валюта эквивалентной цены - строковое (3) //с версии базы данных 449 (название колонки по умолчанию - EqualCurrencyName)
* Себестоимость - вещественное //с версии базы данных 461 (название колонки по умолчанию - PrimeCost)
* Код поставщика - строковое (255) // с версии базы данных 461 (название колонки по умолчанию - SuppLierCode)
* Аналоги - строковое (1000) // с версии базы данных 481 (название колонки по умолчанию - Analogs)
*Любые динамические характеристики товара // с версии базы данных 481 (название колонки по умолчанию - "Имя" динамической характеристики)
* Минимальное оптовое количество - вещественное //с версии базы данных 482 (название колонки по умолчанию - WholesaleCount)
* Единица измерения - строковое (10) // с версии базы данных 482 (название колонки по умолчанию - MesUnit)
* Скидка - вещественное //с версии базы данных 482 (название колонки по умолчанию - PriceDiscountPercent)
* Производитель - строковое (100) // с версии базы данных 482 (название колонки по умолчанию - PCName)
* ID Модели- целочисленное //с версии базы данных 482 (название колонки по умолчанию - ModelGoodID)
* Вид товара - строковое (255) , название корневого вида товара, на который ссылается синхронизированный товар // с версии базы данных 492 (название колонки по умолчанию - GoodTypeName)
* Раздел синхронизации - строковое (255) , название раздела синхронизации корневого вида товара, на который ссылается синхронизированный товар // с версии базы данных 492 (название колонки по умолчанию - SynchronizationSection)
* Цена в валюте розничная - вещественное, может быть несколько // с версии базы данных 492 (название колонки по умолчанию - CurrencyPriceRetail_"ID валюты")
* Цена в валюте оптовая - вещественное, может быть несколько // с версии базы данных 492 (название колонки по умолчанию - CurrencyPriceWholesale_"ID валюты")
* Срок гарантии - целочисленное // с версии базы данных 493 (название колонки по умолчанию GuaranteePeriod)
* Единица измерения срока гарантии - строковое, может принимать одно из трёх значений (д., мес., г.) // с версии базы данных 493 (название колонки по умолчанию GuaranteeMesUnit)
Прайс и заказы находятся в какой-то папке на ftp сервере, Фотографии находятся в другой папке и имеют название, аналогичное GoodID, а расширение файлов фотографий соответствует их типу.
* С 452 версии базы данных, в папку с фотографиями перемещаются также дополнительные фотографии товара с именем такого формата:
Код фотографии (ID товара), нижнее подчеркивание, номер дополнительной фотографии (не обязательно по порядку), точка, расширение файла.
Как Вы назовете поля в Вашей базе интернет-магазина - непринципиально, будете ли Вы их все использовать или нет - тоже.
Дополнительные опции:
а) Настройки порядка полей в *.csv файле и возможность исключать ненужные для интернет-магазина поля из файла.
б) Формировать название колонок в *.csv файле. Они могут формироваться как автоматически, так и вручную пользователем.
При выгрузке в файл YML есть список зарезервированных тегов (если мы так назовем выгружаемое поле, то оно выгрузиться именно как тег с таким названием, а не через тег param - тег дополнительных характеристик товара):
•name (название товара)
•model (название модели товара)
•vendor (производитель товара)
•vendorCode (артикул)
•price (цена со скидкой)
•oldprice (розничная цена)
•price_old (розничная цена)
•categoryId (ID вида товара/категории)
•description (описание товара)
•country (страна производителя)
•group_id (ID модели товара)
•stock_quantity (количество товара)
•barcode (штрих-код товара)
•url (URL страницы товара на сайте магазина)
•enable_auto_discounts (Автоматический расчет и показ скидок для предложения)
•vat (ставка НДС)
•delivery (Возможность курьерской доставки true|false)
•delivery-options (Условия курьерской доставки товара по региону магазина (виды доставки, сроки, стоимость))
•option (Условия курьерской доставки товара по региону магазина (виды доставки, сроки, стоимость))
•cost (стоимость доставки)
•days (срок доставки в рабочих днях)
•order-before (время, до которого нужно сделать заказ, чтобы получить его в этот срок)
•pickup (Возможность самовывоза из пунктов выдачи (во всех регионах, в которые доставляет магазин) true|false)
•store (Возможность купить товар без предварительного заказа. true|false)
•sales_notes (Элемент обязателен, если у вас есть ограничения при покупке (например, минимальное количество товаров или необходимость предоплаты). Также можно указать варианты оплаты, акции и распродажи. В этом случае использование элемента необязательно.)
•min-quantity (Минимальное количество одинаковых товаров в заказе (для случаев, когда покупка возможна только комплектом, а не поштучно).)
•manufacturer_warranty (Официальная гарантия производителя. true|false)
•adult (Товар имеет отношение к удовлетворению сексуальных потребностей, либо иным образом эксплуатирует интерес к сексу. true|false)
•expiry (Срок годности / срок службы либо дата истечения срока годности / срока службы.)
•weight (Вес товара в килограммах с учетом упаковки.)
•dimensions (Габариты товара (длина, ширина, высота) в упаковке. Размеры укажите в сантиметрах.)
•age (Возрастная категория товара.)
•typePrefix (Тип / категория)
•country_of_origin (Страна производитель)
•partType (оплата частями)
•partCount (количество платежей в оплате частями)
•sale (Товар доступен по программе “Теплые кредиты” ( при условии обязательного наличия блока “Оплата частями” ), должно быть значение hc)
•partPrice (сумма платежа)
Основные возможности синхронизации через формат YML:
•синхронизация работает через файл, также этот файл можно сохранить на FTP, который указывается в настройках объекта синхронизации;
•позволяет выгружать динамические характеристики товара в выгружаемый файл;
•позволяет выгружать фото товара в файл (по предварительной настройке куда сохранять фото: свой сайт или сторонний сервис - http://uploads.ru).
Также, могут быть выгружены динамические характеристики товара. Поля динамических характеристик добавляются вручную и попадают в блок <param>
Если название тега не соответствует перечисленным выше, то эта характеристика (будь она динамической или постоянной) попадет в блок <params> и на импортируемой стороне будет называться как пользовательская характеристики. У разных товаров может быть свой набор <param> и только у <param> может быть единица измерения характеристики, которая в Торгсофт может быть только у целочисленных и вещественных динамических характеристик.
2. Для обработки заказов в программе:
Также Торгсофт может формировать файл *.csv (разделитель ;) с клиентской базой TSClients.trs (формировать ли данный файл решает пользователь, соответствующей настройкой), отправляется в ту же папку, что и TSGoods.trs.
Набор полей :
1. ФИО - строковое поле (100)
2. e-mail - строковое поле (50)
3. Номер телефона, мобильный - строковое поле (100)
4. Скидка клиента - вещественное поле
5. Городской телефон - строковое поле (255)
6. Номер карты (штрих-код клиента) - строковое поле (16)
7. Индекс - строковое поле (15)
8. Страна - строковое поле (50)
9. Область - строковое поле (100)
10. Город - строковое поле (50)
11. Адрес - строковое поле (255)
12. Дополнительная информация - строковое поле неопределенное (максимальная длина не определена)
13. Сумма для расчета скидки - вещественное поле
14. Сумма накопленных бонусов - вещественное поле
3. Формировать заказы в файлы такого типа
•текстовый файл с расширением sal
кодировка файла: Win-1251 или UTF-8 (c 428 версии БД), в зависимости от настройки Объекта синхронизации.
•файл в формате XML (с 493 версии базы данных)
кодировка файла: UTF-8
•файл в формате JSON (с 493 версии базы данных)
кодировка файла: UTF-8
Имя файла заказа должно состоять из ASCII символов (латинские буквы, цифры и разделители)
Текстовый файл с расширением sal: |
Файл в формате XML (с 493 версии базы данных): |
Файл в формате JSON (с 493 версии базы данных): |
[Client] (Блок информации о клиенте) Name=ФИО (обязательное поле) Mphone=0672356147 CPhone=2568974 ZIP=61072 Country=Украина Region=Харьковская City=Харьков Address=ул. Тобольская 42-А EMail=info@torgsoft.ua
[Options] (Блок информации о заказе) OrderNumber=12/21 (обязательное поле) Comment**=Доставка с 14 до 18 DeliveryCondition=Новая Почта - строковое (255) //с 390 версии базы данных ReserveDate=28082013 - дата резерва в формате ddmmyyyy //с 392 версии базы данных SaleType=1* (обязательное поле) BonusPay=28,50 - вещественное число, отображающее сумму по заказу, которую клиент оплатил бонусами //с 463 версии базы данных GiftCertificate=9567200000106,9567200000182 - перечень подарочных сертификатов, использованных клиентом для оплаты заказа через ЗАПЯТУЮ //с 470 версии базы данных OrderDate=2009-01-31 01:55:14 - дата оформления заказа (необязательное поле) в формате yyyy-mm-dd hh:mm:ss //с 470 версии базы данных CurrencyInternationalCode=UAH - строковое(4) международный код валюты заказа (необязательное поле; если не указано, заказ обрабатывается в национальной валюте) //с 493 версии базы данных [NewPostDeliveryOptions] (блок информации для создания получателя и адреса Новой почты) подробнее см. здесь [1] (Блок информации о первом товаре заказа) GoodID=201 (Ключ товара) (обязательное поле) Price=120,05 (Цена продажи товара) (обязательное поле) Count=20 (Количество заказанного товара) (обязательное поле) [2] (Блок информации о втором товаре заказа) GoodID=20294 Price=19,00 Count=1 .... [n] (Блок информации о n-ом товаре заказа) GoodID=13854 Price=63,00 Count=5 |
<?xml version="1.0" encoding="UTF-8"?> <Order> <Client> <Name>Пупкин Иван Петрович</Name> <MPhone>0675746830</MPhone> <CPhone>7601828</CPhone> <ZIP>61072</ZIP> <Country>Украина</Country> <Region>Харьковская</Region> <City>Харьков</City> <Address>ул.Тобольская 42-А</Address> <EMail>info@torgsoft.com.ua</EMail> </Client> <Options> <SaleType>1</SaleType> <Comment>Код подъезда 1685</Comment> <OrderNumber>12</OrderNumber> <DeliveryCondition>Новая Почта</DeliveryCondition> <ReserveDate>28082013</ReserveDate> <BonusPay>100.8</BonusPay> <GiftCertificate>9567200000106,9567200000182 </GiftCertificate> <OrderDate>2020-02-04 18:19:44 </OrderDate> <CurrencyInternationalCode>USD</CurrencyInternationalCode> </Options> <Goods> <Good_1> <GoodID>38280</GoodID> <Price>145.33</Price> <Count>2</Count> </Good_1> <Good_2> <GoodID>38281</GoodID> <Price>131.61</Price> <Count>1</Count> </Good_2> </Goods> </Order> |
{ "Client": { "Name": "Пупкин Иван Петрович", "MPhone": "0675746830", "CPhone": "7601828", "ZIP": "61072", "Country": "Украина", "Region": "Харьковская", "City": "Харьков", "Address": "ул.Тобольская 42-А", "EMail": "info@torgsoft.com.ua" }, "Options": { "SaleType": "1", "Comment": "Код подъезда 1685", "OrderNumber": "12", "DeliveryCondition": "Новая Почта", "ReserveDate": "28082013", "BonusPay": "100.8", "GiftCertificate": "9567200000106,9567200000182 ", "OrderDate": "2020-02-04 18:19:44", "CurrencyInternationalCode": "USD" }, "Goods": [ { "GoodID": "38280", "Price": "145.33", "Count": "2" }, { "GoodID": "38281", "Price": "131.61", "Count": "1" } ] } |
*Значение SaleType может быть от 1 до 5:
1 - предварительный заказ (создается заказ, по которому можно будет создать счет)
2 - оформленная продажа (создается счет со 100% предоплатой),
3 - оформленная продажа с отгрузкой (создается счет со 100% предоплатой, по которому происходит отгрузка товара (создание расходной накладной))
4 - оформленная продажа с отгрузкой, но без оплаты (создается счет без оплаты, по которому происходит отгрузка товара (создание расходной накладной))
5 - только счет (заказ не создается, создается сразу счет)
Примечание! В SaleType 2 - 5 подразумевается, что весь товар находится в требуемом количестве на данном центре учета. Если товар отсутствует, то продажи будут проходить в минус.
** Комментарий отображается на форме Счет (после создания счета, чтобы увидеть, нужно открыть счет на редактирование) в поле Комментарий (Рис. 1).
Рис. 1 (Версия программы 2020.2.4)
4. Экспорт политики оптовых цен (c 447 версии БД)
При активации дополнительной функции Политика оптовых цен есть возможность сохранять политику оптовых цен в xml-файл и передать его на FTP-сервер.
Пример файла:
<?xml version="1.0" encoding="UTF-8"?>
<WholesalePrice>
<Good GoodID="1378">
<Price>
<Quantity>2</Quantity>
<QuantityPrice>33</QuantityPrice>
</Price>
<Price>
<Quantity>3</Quantity>
<QuantityPrice>32</QuantityPrice>
</Price>
<Price>
<Quantity>5</Quantity>
<QuantityPrice>30</QuantityPrice>
</Price>
</Good>
<Good GoodID="42">
<Price>
<Quantity>2</Quantity>
<QuantityPrice>6.5</QuantityPrice>
</Price>
<Price>
<Quantity>3</Quantity>
<QuantityPrice>6.3</QuantityPrice>
</Price>
<Price>
<Quantity>5</Quantity>
<QuantityPrice>6.1</QuantityPrice>
</Price>
</Good>
</WholesalePrice>
Описание тегов:
WholesalePrice - родительская секция (корневой элемент)
Good - секция товара, имеет один параметр GoodID - ключ товара (поисковый), целочисленный
Price - секция цены
Quantity - секция количества, значение - количество для перехода, вещественный
QuantityPrice - секция цены, значение - цена при переходе, вещественный
5. Экспорт подарочных сертификатов (c 470 версии БД) в файл *.csv формата с названием TSGiftCertificate.trs
Формировать ли данный файл (имя файла можно изменить), решает пользователь соответствующей настройкой, отправляется в ту же папку, что и TSGoods.trs.
Набор полей:
1. Штрих-код сертификата - строковое поле (40)
2. Сумма сертификата - вещественное поле
3. Дата окончания срока действия сертификата - дата формата ddmmyyyy (если отсутствует, то у сертификата нет срока действия или он отсчитывается от даты продажи сертификата, но еще не продан)
4. Тип сертификата - может принимать значения 1 или 2 (1- выпущен, можно продать, но нельзя использовать для оплаты покупок; 2 - куплен, куплен клиентом, можно использовать для оплаты покупок)