Опис формату синхронізації Інтернет-магазину з Торгсофт

<< Click to Display Table of Contents >>

Navigation:  Додаткові функції > Синхронізація з Інтернет-магазином >

Опис формату синхронізації Інтернет-магазину з Торгсофт

Previous pageReturn to chapter overviewNext page

Формат синхронізації інтернет-магазину з Торгсофт: інформація для розробника

 

1. Завантаження товарів на сайт

 

Перелік того, що повинен вміти інтернет-магазин, для вдалої синхронізації

 

Ваш інтернет-магазин повинен вміти завантажувати прайс-лист з файлу:

у форматі *.csv з роздільником ;  та назвою TSGoods.trs,

або файл формату *.yml.  

 

У файлі можуть бути присутніми не всі поля. Які поля вивантажуються та їхній порядок — це налаштовується:

 

Дані

Тип даних

Кількість символів

Колонка за замовчуванням

Коментар

 

З версії бази даних

Ключ товару — GoodID (пошуковий)

Ціле/Integer

 

GoodID

 

 

Назва товару

Строкове/String

500

GoodName

 

 

Опис товару

Строкове/String

255

Description

 

 

Країна

Строкове/String

100

Country

 

 

Артикул

Строкове/String

30

Articul

 

 

Ціна роздрібна

Дійсне/Float

 

RetailPrice

 

 

Ціна оптова

Дійсне/Float

 

WholesalePrice

 

 

Ціна акційна (з товарною знижкою)

Дійсне/Float

 

RetailPriceWithDiscount

 

 

Мінімальна кількість для замовлення клієнтом, шт

Ціле/Integer

 

MinQuantityForOrder

 

 

Висота, см =0

Дійсне/Float

 

Height

 

 

Ширина, см =0

Дійсне/Float

 

Width

 

 

Ідентифікатор розділу інтернет-Магазину — Категорія

Ціле/Integer

 

Category

 

 

Кількість на складі

Дійсне/Float

 

WarehouseQuantity

 

 

Відображення

 

 

Display

0 — не відображати на сайті;

1 — відображати на сайті

 

Розмір

Строкове/String

20

TheSize

 

 

Колір

Строкове/String

50

Color

 

 

Матеріал

Строкове/String

200

Material

 

 

Назва моделі товару

Строкове/String

500

FashionName

 

 

Стать

Ціле/Integer

 

Sex

0 — стать не визначено, 1 — чоловіча, 2 — жіноча, 3 — хлопчик, 4 — дівчинка, 5 — унісекс

 

Коротка назва товару

Строкове/String

255

ShortName

 

 

Вид товару повністю

Строкове/String

максимальна довжина невизначена

GoodTypeFull

містить всю ієрархію виду товару зверху вниз, розділені між собою комами (приклад "одяг,джинси,кльош")

 

Колекція виробника повністю

Строкове/String

максимальна довжина невизначена

ProducerCollectionFull

містить усю ієрархію колекції виробника згори донизу, розділені між собою комами (приклад "Польща,WOJCIK")

 

Сезон

Строкове/String

100

Season

 

 

Штрих-код

Строкове/String

40

Barcode

 

376

Упаковка

Строкове/String

255

Pack

 

380

Розмір упаковки

Строкове/String

255

PackSize

 

380

Живлення

Строкове/String

255

PowerSupply

 

380

Кількість штук у ящику

Строкове/String

255

CountUnitsPerBox

 

380

Вік

Строкове/String

 

255

Age

 

380

Міра

Дійсне/Float

 

Measure

 

380

Одиниця виміру міри

Строкове/String

255

MeasureUnit

 

380

Ознака уцінки товару

Ціле/Integer

 

Closeout

0 — не знижено у ціні,

1 — знижений у ціні товар

403

Ціна за одиницю міри

Дійсне/Float

 

RetailPricePerUnit

 

428

Оптова ціна за одиницю міри

Дійсне/Float

 

WholesalePricePerUnit

 

428

Еквівалент роздрібної ціни

Дійсне/Float

 

EqualSalePrice

 

449

Еквівалент оптової ціни

Дійсне/Float

 

EqualWholesalePrice

 

449

Валюта еквівалентної ціни

Строкове/String

 

EqualCurrencyName

 

449

Собівартість

Дійсне/Float

 

PrimeCost

 

461

Код постачальника

Строкове/String

255

SuppLierCode

 

461

Аналоги

Строкове/String

1000

Analogs

 

481

Будь-які динамічні характеристики товару

 

 

 

назва колонки за замовчуванням — "Ім'я" динамічної характеристики

481

Мінімальна оптова кількість

Дійсне/Float

 

WholesaleCount

 

482

Одиниця виміру

Строкове/String

10

MesUnit

 

482

Знижка

Дійсне/Float

 

PriceDiscountPercent

 

482

Виробник

Строкове/String

100

PCName

 

482

ID Моделі

Ціле/Integer

 

ModelGoodID

 

482

Вид товару

Строкове/String

255

GoodTypeName

назва розділу синхронізації кореневого виду товару, на який посилається

492

Розділ синхронізації

Строкове/String

255

SynchronizationSection

назва розділу синхронізації кореневого виду товару, на який посилається синхронізований товар

492

Ціна у валюті роздрібна

Дійсне/Float

 

CurrencyPriceRetail_"ID валюти"

може бути декілька

492

Ціна у валюті оптова

Дійсне/Float

 

CurrencyPriceWholesale_"ID валюти"

може бути декілька

492

Термін гарантії

Ціле/Integer

 

GuaranteePeriod

 

493

Одиниця виміру строку гарантії

Строкове/String

 

GuaranteeMesUnit

може приймати одне з трьох значень — д., міс., р.

493

 

 

Прайс та замовлення знаходяться в будь-якій теці на 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 — сума платежу.

2. Обробка замовлень у програмі

Також Торгсофт може формувати файл *.csv (роздільник ;) з клієнтською базою TSClients.trs, що надсилається до тієї самої теки, що й TSGoods.trs. Чи формувати цей файл — вирішує користувач відповідним налаштуванням.

 

Набір полів :

1. ПІБ — Строкове/String (100)

2. e-mail — Строкове/String (50)

3. Номер телефону, мобільний — Строкове/String (100)

4. Знижка клієнта — Дійсне/Float

5. Міський телефон — Строкове/String (255)

6. Номер картки (штрих-код клієнта) — Строкове/String (16)

7. Індекс — Строкове/String (15)

8. Країна — Строкове/String (50)

9. Область — Строкове/String (100)

10. Місто — Строкове/String (50)

11. адреса — Строкове/String (255)

12. Додаткова інформація — Строкове/String поле невизначене (максимальна довжина не визначена)

13. Сума для розрахунку знижки — Дійсне/Float

14. Сума накопичених бонусів — Дійсне/Float

 

3. Тип формування замовлення у файли

Текстовий файл із розширенням sal — кодування файлу: Win-1251 або UTF-8, з 428 версії БД, залежно від налаштування об'єкта синхронізації.

Файл у форматі XML — кодування файлу: UTF-8, з 493 версії бази даних.

Файл у форматі JSON — кодування файлу: UTF-8, з 493 версії бази даних.

 

Ім'я файлу замовлення має складатися з ASCII-символів — латинські літери, цифри та роздільники.

Опис полів

Текстовий файл із розширенням sal

[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=Нова Пошта — Строкове/String (255), з 390 версії бази даних.

DeliveryAddress=Харків, вул. Сумська, 124 (Відділення №33) — Строкове/String (255), з 505 версії бази даних.

ReserveDate=28082013 — дата резерву у форматі ddmmyyyyy, з 392 версії бази даних.

SaleType=1* — обов'язкове поле.

BonusPay=28,50 — Дійсне/Float, що відображає суму за замовленням, яку клієнт оплатив бонусами, з 463 версії бази даних.

GiftCertificate=9567200000106,9567200000182 — перелік подарункових сертифікатів, використаних клієнтом для оплати замовлення через КОМУ, з 470 версії бази даних.

OrderDate=2009-01-31 01:55:14 — дата оформлення замовлення (необов'язкове поле) у форматі yyyy-mm-dd hh:mm:ss, з 470 версії бази даних.

CurrencyInternationalCode=UAH — Строкове/String (4) міжнародний код валюти замовлення (необов'язкове поле; якщо не вказано, замовлення обробляється в національній валюті), з 493 версії бази даних

SaleForm=1 — цифрове (значення 1 — Опт, 2 — Роздріб), вид торгівлі замовлення; якщо поле не вказано або вказано некоректно, замовлення обробляється з видом торгівлі — роздріб, з 500 версії бази даних.

WarehouseID - код центру обліку, який є центром обліку при створенні рахунка по замовленню.

 

Примітка. Код центру обліку вказується в об'єкті синхронізації на вкладці Центри обліку

[NewPostDeliveryOptions] — додано нову секцію

RecepientType=2 — тип одержувача: 1 — юридична особа, 2 — фізична особа.

EGRPOU= — для юридичної особи вказується код ЄДРПОУ — 8-символьний числовий код.

LastName=Петров — прізвище контактної особи одержувача Нової пошти.

FirstName=Петр — ім'я контактної особи одержувача Нової пошти.

MiddleName=Петрович — по батькові контактної особи одержувача Нової пошти.

Phone=0676758462 — мобільний телефон контактної особи одержувача Нової пошти.

DeliveryType=2 — тип доставки: 1 — адресна доставка одержувачу, 2 — доставка на склад Нової пошти.

DeliveryCity=Заболотів — місто куди доставляти та для якого міста створити нову адресу при DeliveryType= 1 або вибирати шукати склад нової пошти при DeliveryType= 2.

WarehouseNumber=1 — номер відділення Нової пошти.

WarehouseRef=e62a5ed5-87bf-11eb-b05e-b8830365bd14 — ідентифікатор складу (відділення) Нової пошти. У разі передачі ідентифікатора складу у полі WarehouseRef, заповнювати поля "Назва міста" (DeliveryCity) та "Номер складу" (WarehouseNumber) не потрібно.

StreetType= — при адресній доставці тип вулиці "вул", "пров" тощо, при доставці на склад — має бути порожнє.

StreetName= — при адресній доставці одержувачу найменування вулиць, при доставці на склад Нової пошти — має бути порожнє.

BuildingNumber= — номер будинку при адресній доставці одержувачу для створення адреси доставки.

Flat= — номер квартири, якщо є, для створення адреси одержувача Нової пошти.

DeclarationNumber - номер ТТН Нової пошти (для подальшого завантаження в програму). Якщо це поле вказано та заповнено, то всі інші поля блоку ігноруються (можна не вказувати).

 

 

 

Адресні поля повинні бути заповнені українською мовою, тому що при роботі з API Нової Пошти список вулиць і відділень завантажується українською мовою. Це потрібно для коректності пошуку за переданими значеннями на сервері Нової пошти та створення й додавання адреси.

Для файлів формату .JSON і .XML опис полів має бути аналогічний

[1] — блок інформації про перший товар замовлення

GoodID=201 — ключ товару, (обов'язкове поле),

Price=120,05 — ціна продажу товару, (обов'язкове поле),

Count=20 — кількість замовленого товару, (обов'язкове поле),

WarehouseID=45 - код центру обліку, звідки буде списуватися товар

 

[2] — блок інформації про другий товар замовлення

GoodID=20294

Price=19,00

Count=1

WarehouseID=45 - код центру обліку, звідки буде списуватися товар

....

[n] — блок інформації про n-й товар замовлення

GoodID=13854

Price=63,00

Count=5

WarehouseID=45 - код центру обліку, звідки буде списуватися товар

 

Примітка. Якщо в поле WarehouseID вказано значення, яке не є кодом центру обліку, то воно буде ігноруватися.

Файл у форматі XML, з 493 версії бази даних

<?xml version="1.0" encoding="UTF-8"?>

<Order>

  <Client>

     <Name>Пупкін Іван Петрович</Name>

     <MPhone>0675746830</MPhone>

     <CPhone>7601828</CPhone>

     <ZIP>61072</ZIP>

     <Country>Україна</Country>

     <Регіон>Харківська</Регіон>

     <City>Харків</City>

     <Address>вул.Тобольська 42-А</Address>

     <EMail>info@torgsoft.com.ua</EMail>

  </Client>

  <Options>

     <SaleType>1</SaleType>

     <Comment>Код під'їзду 1685</Comment>

     <OrderNumber>12</OrderNumber>

     <DeliveryCondition>Нова Пошта</DeliveryCondition>

     <DeliveryAddress>Харків, вул. Сумська, 124 (Відділення №33)</DeliveryAddress>

     <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>

 

Файл у форматі JSON, з 493 версії бази даних

{

   "Client": {

       "Name": "Пупкін Іван Петрович",

       "MPhone": "0675746830",

       "CPhone": "7601828",

       "ZIP": "61072",

       "Country": "Україна",

       "Region": "Харківська",

       "Місто": "Харків",

       "Address": "вул.Тобольська 42-А",

       "EMail": "info@torgsoft.com.ua"

   },

   "Options": {

       "SaleType": "1",

       "Comment": "Код під'їзду 1685",

       "OrderNumber": "12",

       "DeliveryCondition": "Нова Пошта",

       "DeliveryAddress": "Харків, вул. Сумська, 124 (Відділення №33)",

       "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 мається на увазі, що весь товар знаходиться у потрібній кількості на даному центрі обліку. Якщо товар відсутній, то продаж проходитиме в мінус.

4. Експорт політики оптових цін, з 447 версії БД

При активації додаткової функції Політика оптових цін є можливість зберігати політику оптових цін в xml-файл і передати його на FTP-сервер.

Приклад xml-файлу

 

<?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 — ключ товару (пошуковий), Ціле/Integer.

Price — секція ціни.

Quantity — секція кількості, значення — кількість для переходу, Дійсне/Float.

QuantityPrice — секція ціни, значення — ціна під час переходу, Дійсне/Float.

5. Експорт подарункових сертифікатів у файл *.csv формату з назвою TSGiftCertificate.trs, з 470 версії БД

Чи формувати цей файл, вирішує користувач відповідним налаштуванням. Ім'я файлу можна змінити. Файл відправляють у ту саму теку, що й TSGoods.trs.

Набір полів

1.Штрих-код сертифіката — Строкове/String (40).

2.Сума сертифіката — Дійсне/Float.

3.Дата закінчення терміну дії сертифіката — дата формату ddmmyyyyyy (якщо відсутня, то в сертифіката немає терміну дії або він відлічується від дати продажу сертифіката, але ще не проданий).

4.Тип сертифіката — може набувати значень 1 або 2: 1 — випущено, можна продати, але не можна використовувати для оплати покупок; 2 — куплено, куплено клієнтом, можна використовувати для оплати покупок.