Импортиране на стоки чрез JSON файл

Импортиране на стоки чрез JSON файл

Програма “Янак” позволява импортиране на стоки, чрез JSON файл. Този файл съдържа информация за продукти, включително име, описание, цени, категории, изображения, характеристики и други.
По този начин сравнително бързо може да се въвежда информация за хиляди стоки.

Ако стоката от JSON файла съдържа баркодове, първият баркод от списъка се ползва за проверка дали стока с такъв баркод вече съществува в програма “Янак”. Ако няма стока с такъв баркод, тогава се създава нова. Ако стока с такъв баркод съществува, тогава информацията за нея се обновява.

Важно е да се отбележи, че при обновяване на съществуваща стока, полето prices се игнорира – цените остават без промяна.

Примерен JSON файл е даден тук:

{
  "products": [
    {
      "name": {
        "bg_BG": "Тестов продукт",
        "en_US": "Test Product Name"
      },
      "description": {
        "bg_BG": "Тестово описание",
        "en_US": "Test product description"
      },
      "prices": [
        {
          "currency": "BGN",
          "amountNet": 33.32,
          "amountGross": 39.98,
          "typeId": 11
        }
      ],
      "barcodes": [
        "024010128"
      ],
      "images": [
        "https://storage.yanaksoft.com/shop.yanaksoft.com/sv3/si/772/B4DD2AD8-A2DC-476D-93BD-F1A3DD6461A9/b31bef8d5c12745071705061c307c1dd-400x400.webp"
      ],
      "weightNet": 1.62,
      "weightGross": 1.8,
      "width": 17.9,
      "height": 4.198,
      "length": 67.7,
      "stockParameters": [
        {
          "id": 142,
          "values": [
            {
              "bg_BG": "Тестова марка"
            }
          ]
        },
        {
          "parameterGroupId": 113,
          "title": {
            "bg_BG": "Регулиране на въртящия момент"
          },
          "values": [
            {
              "bg_BG": "Не"
            }
          ]
        },
        {
          "parameterGroupId": 113,
          "title": {
            "bg_BG": "Тип електромотор"
          },
          "values": [
            {
              "bg_BG": "Четков"
            }
          ]
        },
        {
          "parameterGroupId": 113,
          "title": {
            "bg_BG": "Тип захранване"
          },
          "values": [
            {
              "bg_BG": "Мрежово"
            }
          ]
        },
        {
          "parameterGroupId": 113,
          "title": {
            "bg_BG": "Тип на патронника"
          },
          "values": [
            {
              "bg_BG": "Ключов"
            }
          ]
        },
        {
          "parameterGroupId": 113,
          "title": {
            "bg_BG": "Функция удар"
          },
          "values": [
            {
              "bg_BG": "Не"
            }
          ]
        }
      ]
    }
  ]
}

Root

ИмеЗадължителноТипОписание
productsДаTProduct[]Масив, съдържащ информация за стоките

TProduct

ИмеЗадължителноТипОписание
nameДаTLocalizedStringИме на стоката
descriptionДаTLocalizedStringОписание на стоката
pricesНеTProductPrice[]Масив, съдържащ цени. Това поле се игнорира, ако стока с такъв баркод вече съществува
barcodesНеstring[]Масив, съдържащ баркодове на стоката
imagesНеstring[]Масив, съдържащ адреси (URL) на снимки
weightNetНеDoubleНетно тегло на стоката
weightGrossНеDoubleБрутно тегло на стоката
stockParametersНеTStockParameter[]Масив, съдържащ характеристики на стоката

TProductPrice

ИмеЗадължителноТипОписание
currencyДаstringКод на валутата – EUR, BGN, …
amountNetДаDoubleЦена без ДДС
amountGrossДаDoubleЦена с ДДС
typeIdДаIntegerЦяло число, описващо типа цена, както следва:
1: базова доставна
2: средно доставна
3: последно доставна
11: първа продажна
12: втора продажна
13: трета продажна
14: метвърта продажна
15: пета продажна
16: шестапродажна
17: седма продажна
18: осмапродажна
19: деветапродажна
20: десета продажна

TLocalizedString

ИмеЗадължителноТипОписание
bg_BGДаstringСтойност на български
en_USНеstringСтойност на английски

TStockParameter

ИмеЗадължителноТипОписание
idНеIntegerId на характеристиката
parameterGroupIdНеIntegerId на групата за характеристики. Това поле може да се използва в случай, че се налага динамично създаване на характеристики. Новите характеристики ще се създават в тази група, като за име на характеристиката се използва полето “title”
titleНеTLocalizedStringИме на характеристиката, когато се налага динамично създаване на характеристики
valuesДаTLocalizedString[]Масив със стойности за съответната характеристика. Ако стойността вече съществува, ще се преизползва, в противен случай ще се създаде нова стойност