QUINCE API. Товари

Список методів

| /product/list | Отримання списку товарів |

| /product/add | Створення нового товару |

| /product/update | Внесення змін до товару |

| /product/folder/list | Отримання списку папок |

| /product/folder/add | Створення нової папки |

| /product/folder/update | Внесення змін до папки |

Отримання списку товарів

Назва методу: /product/list

Повертає список товарів. Для навігації використовується номер сторінки (page).

Розмір сторінки фіксований і дорівнює 100 елементам.

Параметри запиту:

| filter Тип: object (необов’язковий) | Доступні поля для фільтрації (Фільтр завжди використовує логіку “AND“): |

| | ParentFolder - масив ідентифікаторів батьківських папок. Необов’язковий параметр. Для отримання товарів, які не належать до жодної з папок, тобто не мають прив’язки до папки, потрібно вказувати значення null. |

| | Id - ідентифікатор товару. Необов’язковий параметр |

| | PriceType - масив ідентифікаторів типиів цін. Необов’язковий параметр |

| | Store - масив ідентифікаторів складів. Необов’язковий параметр |

| | Archive - Ознака того, що треба повертати архівні елементи |

| | Kind - Тип товару. Можливі значення: P - товар, K - набір, U - товар SKU, B - базовий товар SKU. Якщо не вказати, буде встановлений тип P. |

| | IsManufacture - Товар є продукцією. Необов’язковий параметр |

| | LastChangeTime - Дата та Час останньої зміни товару (у т.ч. ціни та залишки). Необов’язковий параметр. Якщо вказано, то повертаються тільки товари, в яких були зміни, починаючи із вказаної дати та часу |

| page Тип: integer (необов’язковий) | Якщо в запиті не передати, за замовчуванням буде встановлена перша сторінка. |

Результат запиту:

Якщо в запиті фільтр відсутній, то повертається список товарів у порядку зростання Id.

Значення полей товарів, що повертаються методом:

| Id | Ідентифікатор товару |

| Name | Назва товару (string) |

| ParentFolder | ID батьківської папки (integer) |

| SkuParentProduct | ID головного продукту для SKU |

| PrintName | Назва для друку (string) |

| Memo | Коментар (string) |

| Barcode | Штрих код (string) |

| UnitName | Назва одиниці виміру (string) |

| Description | Опис товару (string) |

| Article | Артикул (string) |

| Brand | Бренд (об’єкт) |

| MainSuppliers | Основний постачальник (structure) |

| | Id - Ідентифікатор постачальника |

| | Name - Назва постачальника (string) |

| | RegCode - Реєстраційний код постачальника (string) |

| Store | Основний склад (об’єкт) |

| | Id - Ідентифікатор складу |

| | Name - Назва складу |

| Manufacturer | Виробник (об’єкт) |

| | ** Id** - Ідентифікатор виробника |

| | ** Name** - Назва виробника |

| СustomsCode | Митний код (об’єкт) |

| | ** Id** - Ідентифікатор митного коду |

| | ** Name** - Назва митного коду |

| Images | Зображення (масив). Основна картинка товару завжди є першою в масиві. |

| Prices | Ціни (масив) |

| Stock | Залишки товару по складам (масив). Інформація передається, тільки якщо фільтр “Store” не пустий. |

| LastChangeTime | Дата та час останньої зміни у товарі (у т.ч. ціни та залишки) |

Приклад:

Запит:

{
    "filter": {
        "ParentFolder": 110,
        "PriceType": [
            335
        ],
        "Store": [
            113
        ],
        "Kind": "P"
    },
    "page": 1
}

Результат:

{
    "success": true,
    "data": [
        {
            "Id": 111,
            "ParentFolder": 110,
            "Name": "Product_1",
            "Images": [
                {
                    "Id": 586,
                    "Name": "flowers.jpg",
                    "Url": "https://qfinprod.blob.core.windows.net/images/8c87c4db-9e0f-4e34-bf8f-d4cbc20e9f44_flowers.jpg"
                },
                ...
            ],
            "Prices": [
                {
                    "Id": 106608,
                    "Date": "2022-07-15T00:00:00Z",
                    "PriceType": 335,
                    "Product": 89272,
                    "Price": 10.000000,
                    "Currency": "USD"
                },
              ...
            ],
            "MainSuppliers": [
                {
                    "Id": 110,
                    "Name": "Name1",
                    "RegCode": "12345678"
                }
            ],
            "Store":
            {
             	"Id": 110,
             	"Name": "Склад"
            },
            "Manufacturer": 
            {
            	"Id": 112,
            	"Name": "Yifan Hou"
            },
             "CustomsCode": 
            {
             	"Id": 100,
             	"Name": "Митний код #555"
            },
            "Stock": [
                {
                    "Store": 346,
                    "Qty": 5.000
                },
                ...
            ]
        },
        ...
    ]
}

Створення або оновлення товару

Метод створення товару(ів): /api/v2/product/add

Метод оновлення товару(ів): /api/v2/product/update

Методи додають або оновлюють товари. Максимальна кількість товарів в одному пакеті - 100.

Параметри запитів у методів майже ідентичні. Тільки для методу /product/update обов’язковим є передача Id товару. Якщо в запиті відсутній Id, повертається помилка і жоден з товарів не оновлюється. Пошук Основного постачальника відбувається по назві та реєстраційному коду. Достатньо співпадіння по одному з полей. Якщо не буде співпадіння - створиться новий контрагент і буде вказаний як основний постачальник. Поля не обов’язкові для заповнення.

Якщо в запиті Id переданий, але не знайдений в довіднику товарів, жоден з товарів також не оновлюється і додатково повертається перелік не знайдених Id.

Параметри запиту:

| array Тип: масив (Обов’язковий) | Кожен товар в масиві являє собою об’єкт з переліком полів. Доступні поля: |

| | id Ідентифікатор товару. Враховується та є обов’язковим тільки для методу /product/update |

| | Name Назва товару (string) |

| | ParentFolder ID батьківської папки (integer) |

| | PrintName Назва для друку (string) |

| | Memo Коментар (string) |

| | Barcode Штрих код (string) |

| | UnitName Одиниця виміру (string). Одиниця виміру має бути вказана без зайвих символів. |

| | BrandName Бренд (string). Бренд має бути вказано без зайвих символів. |

| | Description Опис (string) |

| | MainSupplierName Назва постачальника (string) |

| | MainSupplierRegCode Реєстраційний код постачальника (string) |

| | Article Артикул (string) |

| | IsManufacture Товар є продукцією (boolean) |

| | PriceType - ідентифікатор типу ціни |

| | PriceValue - значення ціни |

Результат запиту:

Метод повертає масив:

| success | true или false |

| data | Масив ідентифікаторів створених товарів |

| error | Код та зміст помилки (вказується, якщо success = false) |

Приклад:

Запит:

{
    "array": [
        {
            "Name": "Hola_product_0",
            "Article": "5555",
            "ParentFolder": "110",
            ...
        },
        ...
    ]
}

Результат:

{
    "success": true,
    "data": [
        {
            "id": 116
        },
        ...
    ]
}

Отримання списку папок

Назва методу: /api/v2/product/folder/list

Повертає список папок товарного каталогу. Для навігації використовується номер сторінки (page).

Розмір сторінки фіксований і дорівнює 100 елементам.

Параметри запиту:

| filter Тип: object (необов’язковий) | Доступні поля для фільтрації (Фільтр завжди використовує логіку “AND“): |

| | ParentFolder - Id батьківської папки. Необов’язковий параметр.

Для отримання папок першого рівня, потрібно вказувати значення null. |

| | Id - ідентифікатор папки. Необов’язковий параметр |

| page Тип: integer (необов’язковий) | Якщо в запиті не передати, за замовчуванням буде встановлена перша сторінка. |

Результат запиту:

Якщо в запиті фільтр відсутній, то повертається список папок у порядку зростання Id.

Приклад:

{
    "success": true,
    "data": [
        {
            "Id": 118,
            "ParentFolder": 110,
            "Name": "Hola_Folder_111"
        },
        ...
    ]
}

Створення або оновлення папки

Метод створення папки(ок): /api/v2/product/folder/add

Метод оновлення папки(ок): /api/v2/product/folder/update

Методи додають або оновлюють папки. Максимальна кількість папок в одному пакеті - 100.

Параметри запитів у методів майже ідентичні. Тільки для методу /product/folder/update обов’язковим є передача Id папки. Якщо в запиті відсутній Id, повертається помилка і жодна з папок не оновлюється.

Якщо в запиті Id переданий, але не знайдений в довіднику папок, жодна з папок також не оновлється і додатково повертається перелік не знайдених Id.

Параметри запиту:

| array Тип: масив (Обов’язковий) | Кожна папка в масиві являє собою об’єкт з переліком полів. Доступні поля: |

| | Id Ідентифікатор папки. Враховується та є обов’язковим тільки для методу /product/folder/update |

| | Name Назва папки (string) |

| | ParentFolder ID батьківської папки (integer) |

Результат запиту:

Метод повертає масив:

| success | true или false |

| data | Масив ідентифікаторів створених папок для методу /product/folder/add або масив ідентифікаторів оновлених папок для методу /product/folder/update |

| error | Код та зміст помилки (вказується, якщо success = false) |

Приклад:

Запит:

{
    "array": [
        {
            "Id": 110,
            "Name": "Directory_111",
            "ParentFolder": 100
        },
      ...
    ]
}

Результат:

{
    "success": true,
    "data": [
        {
            "id": 129
        },
        ...
    ]
}