Інтеграція з «1С», «ERP», CRM-системами та CommerceAPI

Назад

Інтеграція з «1С», «ERP», CRM-системами та CommerceAPI

Автоматичний експорт при замовленні / Відправка POST даних про замовлення у JSON форматі

Автоматичний експорт при замовленні ви можете включити в налаштуваннях сайту, у вкладці «Магазин», вказавши шлях для відправки даних.
На вказану адресу буде відправлятися POST запит, з усіма даними про замовлення, в тому числі контактні дані замовника та перелік товарів. Контактні дані та інформація про замовлення буде передаватися у JSON форматі, POST запитом.
Наприклад, в 1С ви можете реалізувати прийом замовлень через «HTTP сервіс»->«SiteExchange» -> «POSTData»

Після оформлення замовлення, на вказану вище адресу буде відправлений POST запит з наступними даними:
 Code: JSON
{
  "ORDER": {
    "buyer_name": "NAME",
    "buyer_soname": "SONAME",
    "buyer_phone": "PHONENUMBER123",
    "buyer_email": "email@email.com",
    "buyer_address": "ADDRESS",
    "delivery_storehouse_title": "Extend PICKUP POINT (Selected)",
    "buyer_address_eform0": "Extend ADDRESS (Selected)",
    "buyer_address_eform1": "Extend ADDRESS (Region)",
    "buyer_address_eform2": "Extend ADDRESS (City)",
    "buyer_address_eform3": "Extend ADDRESS (Street)",
    "buyer_address_eform4": "Extend ADDRESS (Home number)",
    "buyer_address_eform5": "FLAT",
    "buyer_address_eform6": "Extend ADDRESS (Branch number)",
    "buyer_sendedtext": "ADD TEXT",
    "post": "1596538754",
    "lang": "en",
    "form_delivery": "",
    "form_delivery_country_code": "",
    "order_id": "XXXXX",
    "customer_id": "XXXX",
    "order_discount": "",
    "order_hash": "55d4ed2ed42b2c116d9927c2b2ce7fef",
    "time": "2025-06-28T12:31:49+00:00",
    "delivery": "",
    "delivery_id": 0,
    "abtesting": 0,
    "referral_group": "",
    "group": "",
    "referral_url": "https://boostore.pro/....",
    "referral_utm": "",
    "site_id": "10954",
    "site_url": "boostore.pro",
    "transaction_id": "XXXXX",
    "total": 2264,
    "currency": "UAH",
    "shipping": "0",
    "items": [
      {
        "id": "284430",
        "name": "Adidas Originals Streetball Trainers FX9701 (42)",
        "sku": "200976_42",
        "sku_parent": "200976",
        "variant": "42",
        "category": "sport_shoes",
        "quantity": "1",
        "price": "686",
        "currency": "UAH",
        "variations_id": "409151"
      },
      {
        "id": "284436",
        "name": "Shoe bag with pocket Kite Education College",
        "sku": "200982",
        "sku_parent": "200982",
        "variant": "",
        "category": "bags_for_shoes",
        "quantity": "1",
        "price": "736",
        "currency": "UAH",
        "variations_id": 0
      },
      {
        "id": "284438",
        "name": "ASICS Gel-Venture 8 Gs Trainers (43)",
        "sku": "200984_43",
        "sku_parent": "200984",
        "variant": "43",
        "category": "sport_shoes",
        "quantity": "1",
        "price": "842",
        "currency": "UAH",
        "variations_id": "409154"
      }
    ]
  }
}


Якщо після відправки запиту, ваш сервіс поверне JSON дані з вмістом «Number» або «crm_order_id», то до замовлення буде додано зовнішній номер замовлення.

Автоматичний експорт статистики продажів / Відправка POST даних про замовлення у JSON форматі

Автоматичний експорт статистики продажів ви можете включити в налаштуваннях сайту, у вкладці «Магазин», вказавши шлях для відправки даних.
На вказану адресу буде відправлятися POST запит, з усіма даними про замовлення, які змінюються в Статистиці продажів. Інформація буде передаватися POST запитом у JSON форматі.
Наприклад, в 1С ви можете реалізувати прийом замовлень через «HTTP сервіс»->«SiteExchange» -> «POSTData»
Крім того ви можете включити зовнішній доступ до вашої статистики, вказавши «Ключ для доступу до статистики продажів».

Після зміни статусу замовлення (крім швидкого редагування статусів), на вказану вище адресу буде відправлений POST запит у JSON форматі з наступними даними:
 Code: JSON
{
  "ORDER": {
    "crm_order_id": "123",
    "total": "2264",
    "currency": "UAH",
    "discount": "",
    "discount_before": "",
    "total_before": "2264",
    "currency_before": "UAH",
    "shop_cart_statistic_selldone_datestump_unsted": "0",
    "status": "0",
    "status_pay": "0",
    "allow_online_pay": "0",
    "status_for_customer": "0",
    "delivery_status": "0",
    "products_preview": "",
    "admin_note": "",
    "delivery_selected_id_before": "3482",
    "delivery_selected_id": "3482",
    "delivery_track_id": "",
    "delivery_track_id_link": "",
    "buyer_name": "NAME SONAME",
    "buyer_phone": "PHONENUMBER123",
    "buyer_address": "ADDRESS",
    "buyer_address_eform0": "Extend ADDRESS (Selected)",
    "buyer_address_eform1": "Extend ADDRESS (Region)",
    "buyer_address_eform2": "Extend ADDRESS (City)",
    "buyer_address_eform3": "Extend ADDRESS (Street)",
    "buyer_address_eform4": "Extend ADDRESS (Home number)",
    "buyer_address_eform5": "Extend ADDRESS (Flat)",
    "buyer_address_eform6": "Extend ADDRESS (Branch number)",
    "buyer_email": "email@email.com",
    "payment_method": "PaymentMethod (Selected)",
    "group": "",
    "referral_group": "",
    "referral_url": "http://boostore.pro",
    "referral_utm": "",
    "site_manager_id_operator": "1",
    "buyer_id": "16532",
    "manager_id_operator": "0",
    "order_products": "284430|284436|284438",
    "order_products_sku": "200976_42|200982|200984_43",
    "order_products_num": "1|1|1",
    "order_products_variations_id": "409151|407678|409154",
    "order_products_prices": "686|736|842",
    "order_products_currency": "UAH|UAH|UAH",
    "order_products_titles": "Adidas Originals Streetball Trainers FX9701|Shoe bag with pocket Kite Education College|ASICS Gel-Venture 8 Gs Trainers",
    "order_products_variations_titles": "42||43",
    "order_products_prices_without_discount": "||",
    "post": "1596578917",

    "Save": "Save",
    "order_id": 63738,
    "order_discount": "",
    "time": "2025-06-28T12:31:49+00:00",
    "delivery": null,
    "delivery_id": "3482",
    "referral_group": "",
    "group": "",
    "referral_url": "http://boostore.pro/ru/pers_shop/sport_shoes/284438.htm",
    "referral_utm": "",
    "site_url": "boostore.pro",
    "transaction_id": 63738,
    "crm_oder_id": "123",
    "total": "2264",
    "currency": "UAH",
    "items": [
      {
        "id": "284430",
        "name": "Adidas Originals Streetball Trainers FX9701",
        "sku": "200976_42",
        "variant": "42",
        "quantity": "1",
        "price": "686",
        "currency": "UAH",
        "variations_id": "409151",
        "price_without_discount": ""
      },
      {
        "id": "284436",
        "name": "Shoe bag with pocket Kite Education College",
        "sku": "200982",
        "variant": "",
        "quantity": "1",
        "price": "736",
        "currency": "UAH",
        "variations_id": "407678",
        "price_without_discount": ""
      },
      {
        "id": "284438",
        "name": "ASICS Gel-Venture 8 Gs Trainers",
        "sku": "200984_43",
        "variant": "43",
        "quantity": "1",
        "price": "842",
        "currency": "UAH",
        "variations_id": "409154",
        "price_without_discount": ""
      }
    ]
  }
}
'status' - '3', статус угоди // 0 - Не оброблено, 1 - Замовлення в обробці, 3 - Оброблено, 2 - Скасовано, 5 - Скасовано (Немає в наявності), 6 - Скасовано (Відмова), delete - Видалити замовлення

'status_pay' - '0', Статус замовлення // 0-Не вказано, 1 - Оплачено онлайн, не перевірено, 4 - Оплачено онлайн і перевірено, 2 - Оплачено, 3 - Передплачено, 5 - Очікується оплата

'status_for_customer' - '1', Статус для покупця // 0 - Не оброблено, 1 - Обробляється, 3 - Відправлено / Оброблено, 2 - Скасовано

'admin_note' - 'Примітка адміністратору'

'delivery_status' - '0', 0 - Не вказано, 1 - Доставлено, 2 - Не доставлено, 3 - Очікується відправка, 4 - Передано кур'єру, 5 - В дорозі, 6 - Відправлено на поштове відділення, 7 - Відправлено на адресу отримувача, 8 - Доставлено на поштове відділення, 9 - Доставлено на адресу отримувача

'crm_order_id' - 'XXX', Зовнішній код замовлення (для використання в сторонніх CRM)

Детальніше ознайомитися з полями ви можете в статистиці продажів, при редагуванні замовлення.


При зміні товарів у замовленні, відправляється JSON запит з переліком item, а також номер замовлення:
 Code: JSON
{
  "ORDER": {
    "crm_order_id": "123",
    "order_id": 63738,
    "total": "2264",
    "currency": "UAH",
    "discount": "",
    "discount_before": "",
    "total_before": "2264",
    "currency_before": "UAH",
    "shop_cart_statistic_selldone_datestump_unsted": "0",
    "status": "0",
    "status_pay": "0",
    "allow_online_pay": "0",
    "status_for_customer": "0",
    "delivery_status": "0",
    "products_preview": "",
    "admin_note": "",
    "delivery_selected_id_before": "3482",
    "delivery_selected_id": "3482",
    "delivery_track_id": "",
    "delivery_track_id_link": "",
    "buyer_name": "NAME SONAME",
    "buyer_phone": "PHONENUMBER123",
    "buyer_address": "ADDRESS",
    "buyer_address_eform0": "Extend ADDRESS (Selected)",
    "buyer_address_eform1": "Extend ADDRESS (Region)",
    "buyer_address_eform2": "Extend ADDRESS (City)",
    "buyer_address_eform3": "Extend ADDRESS (Street)",
    "buyer_address_eform4": "Extend ADDRESS (Home number)",
    "buyer_address_eform5": "Extend ADDRESS (Flat)",
    "buyer_address_eform6": "Extend ADDRESS (Branch number)",
    "buyer_email": "email@email.com",
    "payment_method": "PaymentMethod (Selected)",
    "group": "",
    "referral_group": "",
    "referral_url": "http://boostore.pro",
    "referral_utm": "",
    "site_manager_id_operator": "1",
    "buyer_id": "16532",
    "manager_id_operator": "0",
    "order_products": "284430|284436|284438",
    "order_products_sku": "200976_42|200982|200984_43",
    "order_products_num": "1|1|1",
    "order_products_variations_id": "409151|407678|409154",
    "order_products_prices": "686|736|842",
    "order_products_currency": "UAH|UAH|UAH",
    "order_products_titles": "Adidas Originals Streetball Trainers FX9701|Shoe bag with pocket Kite Education College|ASICS Gel-Venture 8 Gs Trainers",
    "order_products_variations_titles": "42||43",
    "order_products_prices_without_discount": "||",
    "post": "1596578917",

    "Save": "Save",
    
    "order_discount": "",
    "time": "2025-06-28T12:31:49+00:00",
    "delivery": null,
    "delivery_id": "3482",
    "referral_group": "",
    "group": "",
    "referral_url": "http://boostore.pro/ru/pers_shop/sport_shoes/284438.htm",
    "referral_utm": "",
    "site_url": "boostore.pro",
    "transaction_id": 63738,
    

    "items": [
      {
        "id": "284430",
        "name": "Adidas Originals Streetball Trainers FX9701",
        "sku": "200976_42",
        "variant": "42",
        "quantity": "1",
        "price": "686",
        "currency": "UAH",
        "variations_id": "409151",
        "price_without_discount": ""
      },
      {
        "id": "284436",
        "name": "Shoe bag with pocket Kite Education College",
        "sku": "200982",
        "variant": "",
        "quantity": "1",
        "price": "736",
        "currency": "UAH",
        "variations_id": "407678",
        "price_without_discount": ""
      },
      {
        "id": "284438",
        "name": "ASICS Gel-Venture 8 Gs Trainers",
        "sku": "200984_43",
        "variant": "43",
        "quantity": "1",
        "price": "842",
        "currency": "UAH",
        "variations_id": "409154",
        "price_without_discount": ""
      }
    ]
  }
}

Доступ до статистики продажів / JSON


Вкажіть ключ для доступу до статистики продажів в налаштуваннях, у вкладці «Магазин». Якщо вам необхідно отримати доступ до статистики продажів зовнішнім додатком, то ви можете виконати (POST/GET або AJAX) запит за адресою «/ajax.php?statistic_sell»

При цьому необхідно вказати ключ у запиті, з шифруванням MD5. Наприклад, якщо у вас вказано ключ «123», то в запиті це буде «202cb962ac59075b964b07152d234b70».

В такому випадку запит буде виглядати так: «/ajax.php?statistic_sell&key=202cb962ac59075b964b07152d234b70»
В запиті можна вказати дані для сортування або пошуку (GET/POST параметри), які можна взяти на вашій сторінці статистики продажів в адмін-центрі (/page.php?p=statistic_sell&mystat). Сортування та вибір параметрів здійснюється GET/POST запитом, наприклад, «&sort_dateperiod=1week» означає, що буде відображатися статистика продажів за тиждень.

Дані відображаються у JSON форматі.

Зверніть увагу, що якщо ви використовуєте відкриті для відвідувачів запити на сторінці, то за допомогою вашого ключа вони зможуть отримати доступ до вашої статистики продажів.

Доступ до прайсу магазину / Повне вивантаження прайсу в CSV


Вкажіть ключ для доступу до прайсу магазину в налаштуваннях, у вкладці «Магазин». Повне вивантаження прайсу знаходиться за адресою «/csv_export_products.csv»

При цьому необхідно вказати ключ у запиті, з шифруванням MD5. Наприклад, якщо у вас вказано ключ «123», то в запиті це буде «202cb962ac59075b964b07152d234b70».

В такому випадку запит буде виглядати так: «/csv_export_products.csv?key=202cb962ac59075b964b07152d234b70»
В запиті можна вказати дані для сортування та вибірки полів, які можна взяти на вашій сторінці експорту в адмін-центрі (/page.php?p=submit_catalog_page&subpage&export_from_shop). Сортування та вибір параметрів здійснюється GET/POST запитом, наприклад, «&export_product_access=export_product_access» означає, що буде вивантажуватися поле з даними про доступ до товару.

Дані відображаються у CSV форматі.

Файл вивантаження кешується для зменшення навантаження та оновлюється раз на добу. Видалити кеш можна за допомогою кнопки «Очистити кеш XML/CSV вивантажень».

Приклад: https://templatedemo437544.boostore.pro/csv_export_products.csv?key=202cb962ac59075b964b07152d234b70

Додатково реалізовано механізм обміну даними через API, схожий з WooCommerce API. API дозволяє отримувати та оновлювати інформацію про замовлення та товари, а також категорії. Інструкції та налаштування в розділі «Магазин» - «Обмін даними JSON Commerce API».

Commerce API (Products/Categories/Sales Statistics)

Commerce API — Короткий мануал за методами

Ключ доступу

Для роботи з API потрібен ключ доступу (Consumer Secret), який ви створюєте в розділі «Налаштування», «Магазин», «Доступ до статистики продажів». Ключ формується на основі Ключа для доступу до статистики продажів.

Методи API (HTTP)

Всі запити йдуть на базовий URL вашого сайту, наприклад: https://site.com/api/commerce/

1. Статистика продажів

МетодURLОпис
GET /orders Отримати статистику замовлень
GET /orders/{id} Отримати статистику окремого замовлення за ID
GET /crm_orders/{id} Отримати статистику окремого замовлення за зовнішнім CRM ID
DELETE /orders/{id} Видалити замовлення за ID
DELETE /crm_orders/{id} Видалити замовлення за зовнішнім CRM ID
POST /orders Додати нове замовлення
UPDATE /orders/{id} Оновити замовлення за ID (PATCH/PUT/UPDATE)
UPDATE /crm_orders/{id} Оновити замовлення за зовнішнім CRM ID (PATCH/PUT/UPDATE)

2. Товари

МетодURLОпис
POST /products Масове додавання та оновлення товарів
GET /products Отримати список товарів
GET /products/{id} Перегляд окремого товару за ID
GET /products/sku/{sku} Перегляд окремого товару за SKU (кодом товару)
UPDATE /products/{id} Оновити товар за ID (PATCH/PUT/UPDATE)
UPDATE /products/sku/{sku} Оновити товар за SKU (кодом товару) (PATCH/PUT/UPDATE)
UPDATE /products Масове оновлення кількох товарів (PATCH/PUT/UPDATE)
DELETE /products/{id} Видалити товар за ID
DELETE /products/sku/{sku} Видалити товар за SKU (кодом товару)

3. Категорії магазину

МетодURLОпис
POST /products/categories Масове додавання та оновлення категорій
GET /products/categories Отримати список категорій товарів
GET /products/categories/{id} Отримати категорію за ID
GET /products/categories/id/{id} Отримати категорію за ID (альтернативний варіант)
GET /products/categories/name/{name} Отримати категорію за іменем
UPDATE /products/categories Масове оновлення кількох категорій (PATCH/PUT/UPDATE)
UPDATE /products/categories/{id} Оновити категорію за ID (PATCH/PUT/UPDATE)
UPDATE /products/categories/id/{id} Оновити категорію за ID (альтернативний варіант)
UPDATE /products/categories/name/{name} Оновити категорію за іменем

Параметри батьківських категорій

ПараметрТипОпис
category_parent_id int ID батьківської категорії. Використовується в першу чергу, якщо заданий.
category_parent_name string Латинське ім'я (alias / slug) батьківської категорії. Використовується, якщо category_parent_id не заданий.
category_lang string Мова категорії. Застосовується для вирішення колізій в іменах.

Принцип роботи:

  1. Спочатку перевіряється category_parent_id.
  2. Якщо він не заданий – використовується category_parent_name.
  3. При збігу імен – додається перевірка за category_lang.

Особливе правило:
Щоб додати категорію в кореневу (основну) категорію, необхідно вказати category_parent_name = "main" та обов'язково задати параметр category_lang.

Оновлення та видалення:
update_exists (bool) – якщо true, оновлює категорію при повторному додаванні.
delete (bool) – якщо true, категорія буде видалена.

4. Виробники

МетодURLОпис
POST /products/producers Масове додавання та оновлення виробників
GET /products/producers Отримати список виробників
GET /products/producers/{id} Отримати виробника за ID
GET /products/producers/id/{id} Отримати виробника за ID (альтернативний варіант)
GET /products/producers/name/{name} Отримати виробника за іменем
UPDATE /products/producers Масове оновлення кількох виробників (PATCH/PUT/UPDATE)
UPDATE /products/producers/{id} Оновити виробника за ID (PATCH/PUT/UPDATE)
UPDATE /products/producers/id/{id} Оновити виробника за ID (альтернативний варіант)
UPDATE /products/producers/name/{name} Оновити виробника за іменем

Параметри прив'язки виробників

ПараметрТипОпис
producer_parent_id int ID батьківського виробника (групи). Використовується в першу чергу.
producer_parent_name string Латинське ім'я (alias / slug) батьківського виробника.
producer_lang string Мова виробника для вирішення колізій імен.

Принцип роботи:

  1. Спочатку перевіряється producer_parent_id.
  2. Якщо він не заданий – використовується producer_parent_name.
  3. При збігу імен – додається перевірка за producer_lang.

Особливе правило:
Щоб додати виробника в кореневу (основну) групу виробників, необхідно вказати producer_parent_name = "main" та обов'язково задати параметр producer_lang.

Оновлення та видалення:
update_exists (bool) – якщо true, оновлює виробника при повторному додаванні (за замовчуванням false).
delete (bool) – якщо true, виробник буде видалений.

5. Колекції

МетодURLОпис
POST /products/collections Масове додавання та оновлення колекцій
GET /products/collections Отримати список колекцій
GET /products/collections/{id} Отримати колекцію за ID
GET /products/collections/id/{id} Отримати колекцію за ID (альтернативний варіант)
GET /products/collections/name/{name} Отримати колекцію за іменем
UPDATE /products/collections Масове оновлення кількох колекцій (PATCH/PUT/UPDATE)
UPDATE /products/collections/{id} Оновити колекцію за ID (PATCH/PUT/UPDATE)
UPDATE /products/collections/id/{id} Оновити колекцію за ID (альтернативний варіант)
UPDATE /products/collections/name/{name} Оновити колекцію за іменем

Параметри прив'язки колекцій

ПараметрТипОпис
collection_parent_id int ID батьківської колекції. Використовується в першу чергу.
collection_parent_name string Латинське ім'я (alias / slug) батьківської колекції.
collection_lang string Мова колекції для вирішення колізій імен.

Принцип роботи:

  1. Спочатку перевіряється collection_parent_id.
  2. Якщо він не заданий – використовується collection_parent_name.
  3. При збігу імен – додається перевірка за collection_lang.

Особливе правило:
Щоб додати колекцію в кореневу (основну) колекцію, необхідно вказати collection_parent_name = "main" та обов'язково задати параметр collection_lang – мова батьківської колекції.

Оновлення та видалення:
update_exists (bool) – якщо true, оновлює колекцію при повторному додаванні (за замовчуванням false).
delete (bool) – якщо true, колекція буде видалена.

6. Сортування та пагінація

Для методів /orders та /products доступні параметри для посторінкового виведення та сортування:

Параметри пагінації

ПараметрТипОпис
page int Номер сторінки (за замовчуванням 1)
per_page int К-сть елементів на сторінку (за замовчуванням 90, максимум 2000)

Параметри сортування

ПараметрТипДопустимі значенняОпис
orderby string id, title, price, date, views Поле для сортування
order string asc, desc Напрямок сортування

Параметри мови

ПараметрТипДопустимі значенняОпис
l string ru, ua, en, de, fr, es, it, pl Мова відображення значень

Додатково для замовлень

Можна фільтрувати замовлення за датою та статусом:

  • ?after=YYYY-MM-DD — Початкова дата (у форматі ISO)
  • ?before=YYYY-MM-DD — Кінцева дата
  • ?status=pending|processing|on-hold|completed|cancelled|0|1|2|3|5|6|7|8 — Статус замовлення
    • 0 — Не опрацьовані (pending)
    • 1 — Замовлення в обробці (processing)
    • 7 — Замовлення в обробці, очікує поставки (on-hold)
    • 3 — Опрацьовані (completed)
    • 8 — Опрацьовані та завершені (completed)
    • 2 — Скасовані (cancelled)
    • 5 — Скасовані: немає в наявності (cancelled)
    • 6 — Скасовані: відмова (cancelled)
  • ?show_deleted=1 — Показати приховані замовлення

Приклади

GET /orders?page=2&per_page=100&after=2024-06-01&before=2024-06-30
GET /products?orderby=price&order=asc&per_page=50

Приклад авторизації в запиті

У запиті передаються ключі:

 Code: PHP
?consumer_secret=ВАШ_СЕКРЕТ (увага не публікуйте ключ у загальний доступ!)

Або через заголовок Authorization з OAuth 1.0a.



Додати нове замовлення (POST /orders)

Щоб створити нове замовлення через API, потрібно відправити POST-запит на /orders з JSON-тілом. Обов'язково повинно бути вказано мінімум:

  • email — Email покупця (обов'язково!)
  • line_items — Список додаваних товарів

Параметри замовлення

При створенні замовлення можна вказувати додаткові поля, наприклад:

{
  "first_name": "Name",
  "last_name": "Soname",
  "email": "alex@example.com",
  "phone": "+380671112233",
  "address": "Full address of not used address eform",
  "buyer_address_eform1": "State",
  "buyer_address_eform2": "City",
  "buyer_address_eform3": "Street",
  "buyer_address_eform4": "house number",
  "buyer_address_eform5": "flat",
  "postcode": "01001",
  "total": "999",
  "status": "processing",
  "status_for_customer": "processing",
  "line_items": [ ... ]
}

Опис поля total:

  • totalфінальна сума замовлення (рядок або число). Якщо це поле вказано, воно буде використано як підсумкова ціна замовлення.
  • Якщо total не вказано, сума замовлення буде автоматично перерахована за сумою доданих товарів у line_items.
  • Поле total не є обов'язковим і може бути використано для замовлень без товарів.

Формат line_items

Параметр line_items — це масив товарів, кожен товар задається об'єктом з наступними полями:

"line_items": [
  {
    "product_id": 478734,
    "quantity": 1,
    "price": 100,
    "currency": "USD"
  },
  {
    "product_id": 478268,
    "quantity": 10,
    "variation": "51"
  },
  {
    "product_id": 478266,
    "quantity": 1,
    "variation_id": 735302
  }
]
  • product_idID товару (обов'язково!).
  • quantityКількість одиниць товару (обов'язково!).
  • price(необов'язково) Якщо вказана ціна — береться саме ця ціна і не обчислюється за даними сайту.
  • currency(необов'язково) Валюта конкретного товару (наприклад, USD або UAH). Якщо вказана та відрізняється від загальної валюти замовлення (currency), система сконвертує ціну автоматично.
  • variation_idID різновиду (варіації товару) — спосіб вказати різновид, якщо він є.
  • variationНазва або код різновиду — використовується якщо немає variation_id. Якщо вказані обидва — пріоритет у variation_id.

Важно: Якщо загальна валюта замовлення (currency) не вказана — буде використовуватися валюта за замовчуванням для сайту.

Якщо валюта товару відрізняється від загальної валюти — ціна конвертується автоматично.


Оновлення товарів

Оновлення товару здійснюється через HTTP-метод UPDATE (або PATCH/PUT) за URL із вказанням ID товару або його SKU (коду товару), або одразу кількох товарів одним запитом:

  • /products/{id} — оновлення товару за ID
  • /products/sku/{sku} — оновлення товару за кодом (SKU)
  • /products — масове оновлення кількох товарів (до 5000 за один запит)

При масовому оновленні шлях /products не містить ID або SKU. У цьому випадку необхідно передавати масив об'єктів товарів у параметрі products. Кожен елемент масиву повинен містити хоча б id або sku. Якщо вказаний id, він має пріоритет і може використовуватися для заміни коду товару (sku). Якщо id не вказаний, пошук здійснюється за sku — кодом товару.

При оновленні передається повний набір даних товару у форматі JSON. Всі передані дані замінюють існуючі значення, включаючи:

  • Основні властивості товару (назва, опис, ціни, статус та ін.)
  • Атрибути (характеристики)
  • Варіації (різновиди товару)
  • Зображення
  • Категорії та теги
  • Додаткові налаштування та мета-поля

Оновлення варіацій відбувається з використанням наступного алгоритму для кожної варіації з масиву variations:

  1. Якщо у варіації вказаний id, оновлення проводиться за ним.
  2. Якщо id відсутній, але вказаний sku (код варіації), пошук та оновлення відбувається за ним.
  3. Якщо немає ні id, ні sku, але є title (назва варіації), пошук та оновлення проводиться за назвою.
  4. Якщо варіація не знайдена за вказаними критеріями, створюється нова варіація із заданими параметрами.

Оновлення за SKU зручне, коли ID варіації невідомий, але відомий унікальний код.

При оновленні всі поля, вказані в JSON, замінять поточні значення товару; щоб залишити якесь поле без змін, просто не включайте його в запит.

  • Дублікати різновидів: якщо в масиві різновидів зустрічаються повторювані за кодом (SKU) та назвою (title), такі різновиди будуть пропущені — одна й та сама комплектація не додасться двічі.
  • Головне зображення: у масиві images головним вважається те, що під індексом 0. Якщо images[0] відсутнє або не завантажено, головним стане перше успішно завантажене зображення.
  • Максимум зображень: для одного товару можна завантажити не більше 10 зображень. Якщо спробувати завантажити більше, зайві файли будуть проігноровані.
  • Робота із зображеннями:
    • Видалення зображень: щоб видалити зображення за індексом, вкажіть для елемента масиву images значення "delete". Наприклад, images[2] = "delete" видалить файл з індексом 2. Можна видаляти та завантажувати одночасно, вказуючи кілька ключів: images[3] = "delete", images[1] = "https://...".
    • Пропуски індексів зображень: якщо вказати порожній рядок або false, цей індекс буде пропущений без помилок.
    • Перезапис зображень: параметр images_replace: якщо true, система перезапише існуючі файли зображень за переданими індексами (видалить старий файл та кеш). Якщо false або не вказаний — перезапис заборонено.
    • Пропуск зайнятих індексів: параметр images_skip_index: якщо true, то при зайнятому індексі та забороненому перезаписі система знайде наступний вільний індекс і збереже файл туди. Якщо false або не вказаний — індекс береться строго як переданий.
    • Збереження під новим індексом при конфлікті: параметр images_replace_new_index: якщо true, то при зайнятому індексі та відключених перезаписі та автоматичному пропуску файл буде збережений під новим вільним індексом. Якщо всі три параметри false або не задані та індекс зайнятий — файл не буде завантажений.

Параметри товару


Доступні значення ви можете переглянути в коді прикладів нижче. Також наведена додаткова розшифровка деяких значень, яка може бути корисною.
  • Доступні значення price_for

    Для кожного товару можна вказати параметр price_for, який задає одиницю виміру ціни. Допустимо використовувати числовий код або текст (наприклад, «За 1 кг» або «Per 1 kg»). Ось повний список значень:

    Показати / Сховати
    • 0 — Не вказано
    • 1 — За 1 шт
    • 2 — За 100 шт
    • 3 — За 1000 шт
    • 4 — За 1 упаковку
    • 5 — За 1 кг
    • 6 — За 1000 кг
    • 7 — За 1 м² (квадратний метр)
    • 8 — За 1 метр
    • 9 — За 1 км
    • 10 — За комплект
    • 11 — За 1 годину
    • 12 — За 1 день
    • 13 — За 1 місяць
    • 14 — За 1 рік
    • 15 — За сотку
    • 16 — За акр
    • 17 — За гектар
    • 18 — За ділянку
    • 19 — За об'єкт
    • 30 — За 1 мл (мілілітр)
    • 31 — За 1 л (літр)
    • 32 — За 1 км³ (кубічний кілометр)
    • 33 — За 1 м³ (кубічний метр)
    • 34 — За 1 дм³ (кубічний дециметр)
    • 35 — За 1 см³ (кубічний сантиметр)
    • 36 — За 1 мм³ (кубічний міліметр)
    • 37 — За 1 hl (гектолітр)
    • 38 — За 100 грам
    • 39 — За 1 фунт
    • 40 — За 1 грам
    • 41 — За 10 кг
    • 42 — За 1 центнер (100 кг)
    • 43 — За 1 тонну
    • 44 — За 1 ар
    • 45 — За 1 пару
    • 46 — За 1 дюжину
    • 47 — За 1 галон
    • 48 — За 1 барель
    • 49 — За 1 хвилину
    • 50 — За 1 тиждень
    • 51 — За 1 послугу
    • 52 — За 1 поїздку
    • 53 — За 1 людину
    • 54 — За 1 машину
    • 55 — За 1 м.п. (метр погонний)

    Можна використовувати як числове значення, так і текст — система автоматично розпізнає і приведе до правильного коду.

  • Доступні значення stock_status

    Для кожного товару можна вказати параметр stock_status, який визначає статус доступності товару та його поведінку на сайті. Можна використовувати числовий код або ключове слово — система розпізнає обидва варіанти.

    Показати / Сховати
    • 0 — В наявності
    • 1 — Немає в наявності
    • 2 — Під замовлення
    • 3 — Немає в наявності + Сховати товар зі списку
    • 4 — Немає в наявності + Заборонити додавати товар у кошик
    • 5 — Наявність уточнюйте

    Можна використовувати як числове значення, так і текст — система автоматично розпізнає і приведе до правильного коду.

    Якщо для товару вибраний варіант 3, він буде прихований зі списків товарів на сайті. Якщо вибраний варіант 4, товар буде видимий, але його не можна буде додати в кошик. Варіант 5 показує покупцю, що наявність потрібно уточнити.

  • Акція та Доступні значення promotion_expires_job

    Для кожного товару можна вказати параметр promotion_expires_job, який керує тим, що робити з акцією після закінчення її терміну.
    Можна використовувати числовий код або ключове слово — система розпізнає обидва варіанти.

    Показати / Сховати
    • 0 — Нічого не робити (сховати таймер)
    • 1 — Перенести «Стара ціна» в основну ціну та видалити стару ціну
    • 2 — Прибрати позначку «Акція»
    • 3 — Перенести «Стара ціна» в основну ціну та прибрати позначку «Акція»
    • 5 — Запустити таймер заново терміном на 1 день
    • 6 — Запустити таймер заново терміном на 10 днів
    • 7 — Запустити таймер заново з попереднім терміном (дата таймера мінус дата останнього редагування)
    • 8 — Прибрати позначку «Акція» та видалити «Стара ціна»

    Можна вказувати як числове значення, так і текст — система автоматично розпізнає і приведе до потрібного коду.

    Важно: Для активації таймера акції обов'язково вкажіть promotion рівним 1 — це означає, що акція активна.

    Також необхідно вказати дату закінчення акції в параметрі promotion_expires — вона може бути задана як UNIX-час (наприклад, time()), так і у форматі YYYY-MM-DDTHH:MM:SS+00:00 (наприклад, 2025-06-28T00:00:00+00:00).

  • Більше значень

    Доступні значення title

    Текст (максимум 255 символів) — найменування товару


    Доступні значення sku

    Текст (максимум 100 символів) — код товару


    Доступні значення status
    • 1 — Доступ відкритий
    • 0 — Доступ закритий (403)

    Доступні значення xml

    Увімкнути/Вимкнути вивантаження товару в XML (Google Merchant та інші)

    • 1 — Вивантаження увімкнено
    • 0 — Вивантаження вимкнено

    Доступні значення xml_markup

    Параметр керує застосуванням націнок при вивантаженні товарів в XML (Google Merchant та інші рекламні каталоги).

    • 0 — Увімк: Націнка застосовується за замовчуванням
    • 1 — Вимк: Без націнок (оригінальна ціна)
    • 2 — Без націнки Rozetka
    • 3 — Без націнки Prom.ua
    • 4 — Без націнки Epricentrk.ua
    • 5 — Вимк: Rozetka, Prom, Epicentrk
    • 6 — Без формульної націнки

    Доступні значення noimport

    Увімкнути/Вимкнути оновлення товару при імпорті (Магазин — Імпортувати товари)

    • 1 — Оновлювати при імпорті
    • 0 — Не оновлювати при імпорті

    Доступні значення delete
    • 0 — Не видаляти
    • 1 — Видалити товар

    Доступні значення show_period

    Період розміщення товару. Дозволяє сховати товар після закінчення вказаного терміну.

    • 0 — На завжди
    • 1 — 1 день
    • 2 — Тиждень
    • 3 — Місяць
    • 4 — Півроку
    • 5 — Рік

    Доступні значення priority

    Число від 0 до 100. Чим більше — тим вище товар у списку.


    Доступні значення custom_label_4

    Текст (максимум 95 символів)


    Доступні значення meta_title

    Текст (максимум 255 символів)


    Доступні значення meta_description

    Текст (максимум 500 символів)


    Доступні значення meta_keywords

    Текст (максимум 2000 символів)


    Доступні значення multilangid

    Текст (максимум 50 символів)


    Доступні значення categories

    Масив зі значеннями

    • id — ID категорії
    • name — Найменування категорії
    • lang — Мова категорії

    Доступні значення producer

    Масив зі значеннями

    • id — ID виробника
    • name — Найменування виробника
    • lang — Мова виробника

    Доступні значення producer_country

    Текст (максимум 100 символів)


    Доступні значення collection

    Масив зі значеннями

    • id — ID колекції
    • name — Найменування колекції
    • lang — Мова колекції

    Доступні значення short_description

    Текст (максимум 2000 символів) — короткий опис товару (якщо увімкнено в стилістиці сайту, то відображається при перегляді списку товарів)


    Доступні значення description

    Текст довгий — повний опис товару, відображається при окремому перегляді картки товару


    Доступні значення description_tab_1

    Текст довгий — вкладка 1 з описом (Заголовок вкладки вкажіть у налаштуваннях магазину)


    Доступні значення description_tab_2

    Текст довгий — вкладка 2


    Доступні значення description_tab_3

    Текст довгий — вкладка 3


    Доступні значення description_tab_4

    Текст довгий — вкладка 4


    Доступні значення description_tab_5

    Текст довгий — вкладка 5


    Доступні значення bought_with

    Текст (максимум 255 символів) — список значень З товарами купують, через кому (ID або SKU товарів)


    Доступні значення bought_with_email

    Текст (максимум 255 символів) — список значень З товарами купують, що надсилається покупцю на пошту при замовленні, через кому (ID або SKU товарів)


    Доступні значення discount

    Текст (максимум 20 символів) — розмір знижки (інформаційне поле про знижку, відображається і в списку товарів і при окремому перегляді)


    Доступні значення new

    Позначити товар як Новинка

    • 0 — Не встановлено
    • 1 — Встановлено

    Доступні значення featured

    Позначити товар як Хіт продажів

    • 0 — Не встановлено
    • 1 — Встановлено

    Доступні значення promotion

    Позначити товар як Акція

    • 0 — Не встановлено
    • 1 — Встановлено

    Доступні значення reducedprice

    Позначити товар як Ціна знижена

    • 0 — Не встановлено
    • 1 — Встановлено

    Доступні значення shipping
    • 0 — Не вказані
    • 1 — Встановлені

    Доступні значення shipping_settings (пов'язані з shipping)
    • 2 — Із Загальних налаштувань
    • 0 — Немає доставки
    • 1 — Є доставка
    • 3 — Вказати тільки примітку щодо доставки

    Доступні значення shipping_price (пов'язані з shipping_settings)

    Текст (максимум 40 символів)


    Доступні значення shipping_note (пов'язані з shipping_settings)

    Текст (довгий)


    Доступні значення shipping_days (пов'язані з shipping_settings)

    Текст (максимум 10 символів)


    Доступні значення shipping_sum (пов'язані з shipping_settings)
    • 0 — Не враховувати кількість товару
    • 1 — Враховувати кількість товару
    • 2 — Не додавати доставку до суми замовлення

    Доступні значення attributes

    Масив з характеристиками — відображаються в картці товару, враховуються при порівнянні товару та в пошуковому фільтрі

    • id — ID характеристики (якщо є)
    • name — Назва характеристики (пошук відбувався або за name або за value_parent_id / value_ints)
    • options — Масив значень характеристики
    • value_ints — Масив числових ID значень (якщо є)
    • value_parent_id — Батьківський ID характеристики (якщо є)

    Приклад:
    [
      {
        "id": 1298,
        "name": "Product type",
        "options": ["Кросівки"]
      },
      {
        "name": "Виробник",
        "options": ["Adidas"],
        "value_ints": [10081],
        "value_parent_id": 1762
      },
      {
        "name": "Розмір",
        "options": ["43", "43,5"],
        "value_ints": [10107, 10108],
        "value_parent_id": 1763
      }
    ]

    Інші значення

    Інші значення ви можете дізнатися, отримавши методом GET /products або в прикладах нижче


Додавання товарів

Цей метод дозволяє додати один або кілька товарів одним запитом (до 3000 за один запит). Формат запиту повністю збігається з методом оновлення: можна передавати масив products або одиночний товар.

  • Пошук за ID: при додаванні нового товару поле id повинно бути порожнім або відсутнім. Якщо id вказаний і товар з таким ID вже існує, то система оновить цей товар замість створення нового.
  • Пошук за кодом (SKU): перед додаванням система перевіряє, чи є товар з таким SKU. Якщо такий товар знайдений, він буде оновлений, а не створений заново.

Ви можете додати нові товари та оновити існуючі одним запитом.


Це базовий опис основних методів для роботи з Commerce API / WooCommerce API v3 по замовленнях, товарах і категоріях.
Нижче розташовані скрипти з прикладами, які допоможуть правильно використовувати методи API на практиці.


  • Script: Api: ORDER DETAILS

     Code: PHP
    ORDER DETAILS
      $url = "https://boostore.pro/api/commerce/orders/ORDERID"; // Set the endpoint URL (replace with your actual API endpoint)
      $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
      $ch = curl_init($url); // Initialize cURL session
      // Set cURL options
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Return response as string
      curl_setopt($ch, CURLOPT_HTTPHEADER, [
      "Authorization: Bearer " . $authKey, // Set Authorization header
      "Content-Type: application/json" // Optional: declare expected response type
      ]);
      // Execute request
      $response = curl_exec($ch);
      // Check for cURL error
      if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
      } else {
      // Parse and print the JSON response
      $data = json_decode($response, true);
      print_r($data); // Output server response
      }
      // Close cURL session
      curl_close($ch);
      
  • Script: Api: UPDATE ORDER

     Code: PHP
    UPDATE ORDER
      $url = "https://boostore.pro/api/commerce/orders/ORDERID"; // Order API endpoint
      $authKey = "your_authorization_token_here"; // Authorization token
      // Data to update (use API keys, not raw DB field names)
      $updateData = [
      "first_name"  => "Alex",
      "last_name"   => "Las",
      "email"       => "alex@example.com",
      "phone"       => "+380671112233",
      // Full address in plain text (if needed)
      "address"   => "Full address not tied to structured eform fields",
      // Structured address fields (eform system)
      "buyer_address_eform1" => "Region / State",         
      "buyer_address_eform2" => "City",                   
      "buyer_address_eform3" => "Street",                 
      "buyer_address_eform4" => "House number",           
      "buyer_address_eform5" => "Apartment",              
      "buyer_address_eform6"             => "01001",       // Zip/Postal code/Department
      // Order details
      "total" => "999",                        // Total price
      "status" => "processing",                // Internal status or number
      "status_for_customer" => "completed",    // Customer-facing status or number
      ];
      $ch = curl_init($url); 
      // cURL options
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PATCH");
      curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($updateData, JSON_UNESCAPED_UNICODE));
      curl_setopt($ch, CURLOPT_HTTPHEADER, [
      "Authorization: Bearer " . $authKey,
      "Content-Type: application/json"
      ]);
      $response = curl_exec($ch);
      if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
      } else {
      $data = json_decode($response, true);
      print_r($data); 
      }
      curl_close($ch);
  • Script: Api: CREATE ORDER

     Code: PHP
    CREATE ORDER
      $url = "https://boostore.pro/api/commerce/orders"; // Order API endpoint
      $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
      // Order data + products
      $orderData = [
      // Buyer info
      "first_name"  => "Name",                // Buyer's first name
      "last_name"   => "Soname",              // Buyer's last name
      "email"       => "alex@example.com",    // Buyer's email (required)
      "phone"       => "+380671112233",       // Buyer's phone number
      "address"     => "Full address of not used address eform", // General address
      "buyer_address_eform1" => "State",      // State / Region
      "buyer_address_eform2" => "City",       // City
      "buyer_address_eform3" => "Street",     // Street
      "buyer_address_eform4" => "house number", // House number
      "buyer_address_eform5" => "flat",       // Apartment / Flat
      "postcode"    => "01001",               // Postcode / ZIP
      // Total order amount (optional)
      // If you set "total", it will be used as the final order total.
      // If you skip "total", the system will calculate the total automatically
      // based on the products in "line_items".
      //"total"       => "999",
      "status"      => "processing",          // Internal status
      "status_for_customer" => "processing",  // Status shown to the customer
      "currency"   => "USD",                  // Order currency
      // Products in the order
      "line_items" => [
        [
         "product_id" => 478734,         // Product ID (required)
         "quantity"   => 0,               // Quantity (required) / default - 1
         "price"      => 100,            // Custom price (optional, overrides site price)
        ],
        [
         "product_id" => 478268,
         "quantity"   => 10,
         "variation" => "51"             // Variation name or code
        ],
        [
         "product_id" => 478266,
         "quantity"   => 1,
         "variation_id" => 735302        // Variation ID (priority over "variation")
        ]
       ]
      ];
      
      $ch = curl_init($url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
      curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($orderData, JSON_UNESCAPED_UNICODE));
      curl_setopt($ch, CURLOPT_HTTPHEADER, [
      "Authorization: Bearer " . $authKey,
      "Content-Type: application/json"
      ]);
    
      $response = curl_exec($ch);
      if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
      } else {
      $data = json_decode($response, true);
      print_r($data);
      }
      curl_close($ch);
      
  • Script: Api: UPDATE PRODUCT

     Code: PHP
    UPDATE PRODUCT
     $url = "https://boostore.pro/api/commerce/products/PRODUCT_ID"; // Product API update endpoint
      $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
    // Product data
    $productData = [
      "id" => 479077, // Product ID is ignored here because it's specified in the URL
      "name" => "Basketballshoes_Demo", // SEO URL link
      "title" => "Basketball shoes Converse All Star BB Prototype CX", // Product title (required for new)
      "type" => 1298, // Product type for filtering and attributes
      "access" => true, // Product availability (true = active)
      "description" => "<p>Sneakers Converse All Star BB Prototype CX — Basketball shoes...</p>", // Full product description (HTML allowed)
      "short_description" => "", // Short description of product 
      "sku" => "AO2515C", // Product SKU code
      "sku_show" => 0, // Whether to show SKU publicly (0 = no)
      "price" => "3000", // Current price
      "currency" => "UAH", // Currency code
      "regular_price" => "5760", // Old (regular) price 
      "price_for" => "0", // Unit for pricing (see documentation for accepted values  https://boostore.pro/en/docs/import-products/#faq_import_products)
      "stock_quantity" => 0, // Quantity in stock (0 - unlimited)
      "stock_status" => 0, // Stock status (0 = in stock, 1 = out of stock, others see docs)
      "weight" => 0, // Weight value
      "weight_units" => 0, // Weight units: 0 = grams, 1 = kilograms
      "dimensions" => [
        "length" => 0, // Length
        "width"  => 0, // Width
        "height" => 0, // Height
        "units"  => "0", // Dimension units: 0 = centimeters, 1 = meters
     ],
     "categories" => [
        ["id" => 30519, "name" => null], // Product category (by ID, name, or both)
      ],
      "tags" => "tag1, tag2", // Tags, comma separated, max 8 tags
     "images" => [
        "0" => "-uploadshopcat-s16572/479077/479077_1.webp", // Local image path (won`t be uploaded)
        "1" => "https://boostore.pro/upload/shop_catalog/s16572/479077/479077_2.webp", // Remote image URL (will be downloaded and attached)
      ],
     "images_replace" => false, // By default: do NOT replace images with the same index. If true, replace existing images by index.
     "images_skip_index" => false, // If true, find next free index if the given index is occupied and save image there.
     "images_replace_new_index" => false, // If true, even if replace and skip are false, save under new free index if original index is occupied.
     "variations_only_update" => false, // If true, new variations will be added without deleting old ones; otherwise all old variations are removed before adding new
     "variations" => [
      [
        "priority" => 0, // Display priority of the variation
        "id" => 736413, // Variation ID for updating existing variation; if not provided, search by SKU or title
        "sku" => "SKU1234", // Variation SKU (recommended)
        "title" => "42", // Variation name (required)
        "status" => "true", // access ( true / false / forbidden)
        "description" => "",
        "stock_status" => 0, // Stock status, same logic as main product
        "show_stock" => 0, // Whether to show stock count
        "instock" => 10, // Quantity in stock for this variation
        "image_num" => 0, // Image index linked to this variation
        "price" => "+100", // Price adjustment: absolute, or relative (+/-)
        "price_old" => "120", // Old price
        "price_cost" => "80", // Cost price
        "bulk_prices" => [ // Bulk pricing rules
          [
          "moq" => 10, 
           "price" => 5000
          ], // Price if order >= 10 units
          [
          "moq" => 15, 
          "price" => 4500
          ], // Price if order >= 15 units
      ],
      "dimensions" => [ // Variation dimensions, same units as product
        "length" => 0, // Length
        "width" => 0,  // Width
        "height" => 0, // Height
        "units" => 0,  // Dimension units: 0 = centimeters, 1 = meters
      ],
      ],
      [
        "priority" => 0,
        "title" => "43",
        "description" => "",
        "stock_status" => 0,
        "show_stock" => 1,
        "instock" => 1,
        "image_num" => 2,
        "price" => "+100",
        "price_old" => "120",
        "price_cost" => "80",
        "bulk_prices" => [
      ["moq" => 10, "price" => 5000],
      ["moq" => 15, "price" => 4500],
      ],
      "dimensions" => [
        "length" => 0,
        "width" => 0,
        "height" => 0,
        "units" => 0,
      ],
    
      ],
      ],
     "products_synonyms" => "", // Comma-separated list of grouped or similar product IDs or SKUs
     "priority" => 12, // Sorting priority (higher number = higher position, max 99)
     "producer" => ["id" => 4713, "name" => null], // Producer category by ID and/or name
     "producer_show" => 0, // Show producer on product page
     "producer_country" => "", // Producer country (text)
     "collection" => ["id" => null, "name" => null], // Collection category (ID and/or name)
     "collection_show" => 0, // Show collection flag
     "supplier" => ["id" => null, "name" => null], // Supplier info
     "bulk_prices" => [ // Bulk prices for main product
        ["moq" => 10, "price" => 5000],
        ["moq" => 15, "price" => 4500],
      ],
     "price_cost" => "", // Cost price for the main product
     "settings_comments" => "e_shop_page_hoteng_com|e_shop_page_hoteng_rating_com|e_shop_page_hoteng_show_rating_com|e_shop_page_hoteng_com_captcha|e_shop_page_hoteng_vis_com|e_shop_page_hoteng_num30",
     "password" => "", // Password protection (if any)
     "show_tree" => 0, // Category tree display setting
     "show_stock" => 0, // Show stock on product page
     "moq" => 0, // Minimum order quantity
     "shipping" => 0, // Shipping enabled flag
     "shipping_settings" => 0, // Shipping configuration
     "shipping_price" => 0, // Shipping cost
     "shipping_note" => "", // Notes about shipping
     "shipping_days" => 0, // Delivery time in days
     "shipping_sum" => 0, // Combine shipping for same products flag
     "show_period" => 0, // Product display period
     "bought_with" => "", // Comma-separated list of products often bought together
     "bought_with_email" => "", // Email to send bought-together product lists
     "new" => 1, // Is product new (1 = yes, 0 = no)
     "reduced_price" => 0, // Price reduced flag
     "discount" => "-20%", // Discount text (informational)
     "featured" => 1, // Featured product flag
     "promotion" => 1, // Has promotion flag
     "promotion_text" => "", // Promotion text
     "promotion_expires" => 1751113909, // Promotion end timestamp
     "promotion_expires_job" => 0, // Job to execute after promotion ends
     "variations_title" => "", // Title above variation selectors
     "variations_type" => 0, // Variation type (Google Merchant Size Type): 0=default from category settings, 1=color, 2=pattern, 3=material, 4=age_group, 5=gender, 6=size
     "variations_require" => 0, // Require variation selection before purchase
     "variations_cartexplode" => 0, // Variation display method settings
     "yml" => 0, // Export to YML/XML flag
     "noimport" => "0", // Disable import via admin panel flag
     "custom_label_4" => "", // Custom label for Google Merchant
     "description_tab_1" => "", // Description tab 1 content
     "description_tab_2" => "", // Description tab 2 content
     "description_tab_3" => "", // Description tab 3 content
     "description_tab_4" => "", // Description tab 4 content
     "description_tab_5" => "", // Description tab 5 content
     "video" => "", // Video URL
     "video_duration" => "", // Video duration in HH:MM:SS format
     "delete" => "delete", // delete product ( true or delete )
     // Product attributes for filtering and characteristics
     "attributes" => [
       [
      // "id"      => 1298,  // Attribute name You can use or NAME or ID
        "name" => "Product type", // Attribute name
        "options" => ["Sneakers"] // Attribute values (multiple allowed)
       ],
       [
        "name" => "Producer", //  Attribute name
        "options" => ["Converse"] //Attribute values (multiple allowed)
       ],
       [
        "name" => "Size", //Attribute name
        "options" => ["37,5", "40"] //Attribute values (multiple allowed)
         // "value_ints"      => [10096, 10101], //You can use or NAME or ID
         // "value_parent_id" => 1763 You can use or NAME or ID
       ],
      ]
     ];
    
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "UPDATE"); // Use UPDATE method for update operation (UPDATE / PUT / PATCH)
      curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($productData, JSON_UNESCAPED_UNICODE));
      curl_setopt($ch, CURLOPT_HTTPHEADER, [
      "Authorization: Bearer " . $authKey,
      "Content-Type: application/json"
      ]);
    
      $response = curl_exec($ch);
      if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
      } else {
      $data = json_decode($response, true);
      print_r($data);
      }
    curl_close($ch);
    
  • Script: Api: UPDATE MULTIPLE PRODUCT

     Code: PHP
    UPDATE MULTIPLE PRODUCT (up to 5000 same time)
    $url = "https://boostore.pro/api/commerce/products"; // Product API update endpoint
    $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
    // Product data
      $productsData = [
      "products" => [
       [
        "id" => 479077,
        "title" => "New Product Title 1"
        ...
       ],
       [
        "sku" => "SKU123456",
        "title" => "New Product Title 2"
        ...
       ],
       [
        "id" => 479078,
        "title" => "New Product Title 3"
        ...
       ]
      ]
     ];
     
    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "UPDATE"); // UPDATE / PUT / PATCH
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($productsData, JSON_UNESCAPED_UNICODE));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer " . $authKey,
    "Content-Type: application/json"
    ]);
    $response = curl_exec($ch);
    if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
    } else {
      $data = json_decode($response, true);
      print_r($data);
    }
    curl_close($ch);
  • Script: Api: UPDATE PRODUCT CATEGORIES

     Code: PHP
    UPDATE MULTIPLE CATEGORIES (up to 3000 same time)
    $url = "https://boostore.pro/api/commerce/products/categories"; // Categories API update endpoint
    $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
    // Categories data
     $categoriesData = [
      "categories" => [
        [
          "category_id" => 30518, // Category ID
          "category_name" => "sneakers", // System category name (slug) REQUIRED
          "category_title" => "Sneakers", // Category title
          "category_parent_id" => 1, // Parent category ID
          "category_parent_name" => "ParentCategory", // Parent category Name
          "category_position" => 0, // Position in the list
          
          "category_visible" => 0, // Visibility (0 = hidden, 1 = visible)
          "category_lang" => "ru", // Category language
          
          "category_show_tree" => 0, // Show tree (0/1)
          "category_multilangid" => 0, // Multilanguage binding ID
    
          "category_image" => [
            "0" => "https://boostore.pro/upload/catalog/16572/files/style/categories/30518.webp", // Image URL
          ],
          "images_replace" => 1, // Image replace if exists
          "category_image_settings" => 7, // Image display settings
          "category_button" => "", // Custom button (without href)
          "category_access" => 0, // Access level
          "category_title_seo_append" => "", // SEO: title suffix
          "category_description_seo_append" => "", // SEO: description suffix
          "category_meta_d" => "", // Meta description
          "category_meta_k" => "", // Meta keywords
          "category_title_inpage" => "Sneakers", // Title shown inside the category page
          "category_text" => "", // Category description text
          "category_text_position" => 0, // Description position
          "category_settings_comments" => "", // Comment settings
          
          "category_settings_rating" => 0, // Enable rating (0/1)
          "category_datestamp" => "2025-09-16T12:41:07+00:00", // Datetime of creation/update
         
          "category_googlegoods_catid" => 0, // Google Goods category ID
          "category_promua_catid" => 0, // Prom.ua category ID
          "category_rozetkaua_title" => "", // Rozetka.ua category title
          "category_merchant_product_category" => "", // Merchant product category
          "category_gm_product_type" => 0, // Google Merchant product type
          "category_gm_sizetype" => 0, // Google Merchant size type
          
          "category_priceappend_rozetka" => "", // Extra price settings for Rozetka
          "category_priceappend_promua" => "", // Extra price settings for Prom.ua
          "category_settings_childproductshow" => 0, // Show products from subcategories (0/1)
          "category_settings_style" => 0, // Style settings
          "category_settings_sibling" => 0, // Show sibling categories (0/1)
          "update_exists" => 1, // Update exists category (0/1)
          "delete" => 0, // For delete category (0/1)
        ]
      ]
    ];
    
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "UPDATE"); // UPDATE / PUT / PATCH
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($categoriesData, JSON_UNESCAPED_UNICODE));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer " . $authKey,
    "Content-Type: application/json"
    ]);
    
    $response = curl_exec($ch);
    if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
    } else {
      $data = json_decode($response, true);
      print_r($data);
    }
    curl_close($ch);
  • Script: Api: UPDATE PRODUCT PRODUCERS

     Code: PHP
    UPDATE MULTIPLE PRODUCERS (up to 3000 same time)
    $url = "https://boostore.pro/api/commerce/products/producers"; // Producers API update endpoint
    $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
    // Producers data
     $producersData = [
      "producers" => [
        [
          "producer_id" => 30518, // Producer ID
          "producer_name" => "sneakers", // System producer name (slug) REQUIRED
          "producer_title" => "Sneakers", // Producer title
          "producer_parent_id" => 1, // Parent producer ID
          "producer_parent_name" => "ParentCategory", // Parent producer Name
          "producer_position" => 0, // Position in the list
          
          "producer_visible" => 0, // Visibility (0 = hidden, 1 = visible)
          "producer_lang" => "ru", // Producer language
          
          "producer_show_tree" => 0, // Show tree (0/1)
          "producer_multilangid" => 0, // Multilanguage binding ID
    
          "producer_image" => [
            "0" => "https://boostore.pro/upload/catalog/16572/files/style/categories/30518.webp", // Image URL
          ],
          "images_replace" => 1, // Image replace if exists
          "producer_image_settings" => 7, // Image display settings
          "producer_button" => "", // Custom button (without href)
          "producer_access" => 0, // Access level
    
          "producer_meta_d" => "", // Meta description
          "producer_meta_k" => "", // Meta keywords
          "producer_title_inpage" => "Sneakers", // Title shown inside the producer page
          "producer_text" => "", // Producer description text
          "producer_text_position" => 0, // Description position
          "producer_settings_comments" => "", // Comment settings
          
          "producer_settings_rating" => 0, // Enable rating (0/1)
          "producer_datestamp" => "2025-09-16T12:41:07+00:00", // Datetime of creation/update
         
          "update_exists" => 1, // Update exists producer (0/1)
          "delete" => 0, // For delete producer (0/1)
        ]
      ]
    ];
    
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "UPDATE"); // UPDATE / PUT / PATCH
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($producersData, JSON_UNESCAPED_UNICODE));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer " . $authKey,
    "Content-Type: application/json"
    ]);
    
    $response = curl_exec($ch);
    if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
    } else {
      $data = json_decode($response, true);
      print_r($data);
    }
    curl_close($ch);
  • Script: Api: UPDATE PRODUCT COLLECTIONS

     Code: PHP
    UPDATE MULTIPLE COLLECTIONS (up to 3000 same time)
    $url = "https://boostore.pro/api/commerce/products/collections"; // Collections API update endpoint
    $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
    // Collections data
     $collectionsData = [
      "collections" => [
        [
          "collection_id" => 30518, // Collection ID
          "collection_name" => "sneakers", // System collection name (slug) REQUIRED
          "collection_title" => "Sneakers", // Collection title
          "collection_parent_id" => 1, // Parent collection ID
          "collection_parent_name" => "ParentCategory", // Parent collection Name
          "collection_position" => 0, // Position in the list
          
          "collection_visible" => 0, // Visibility (0 = hidden, 1 = visible)
          "collection_lang" => "ru", // Collection language
          
          "collection_show_tree" => 0, // Show tree (0/1)
          "collection_multilangid" => 0, // Multilanguage binding ID
    
          "collection_image" => [
            "0" => "https://boostore.pro/upload/catalog/16572/files/style/categories/30518.webp", // Image URL
          ],
          "images_replace" => 1, // Image replace if exists
          "collection_image_settings" => 7, // Image display settings
          "collection_button" => "", // Custom button (without href)
          "collection_access" => 0, // Access level
    
          "collection_meta_d" => "", // Meta description
          "collection_meta_k" => "", // Meta keywords
          "collection_title_inpage" => "Sneakers", // Title shown inside the collection page
          "collection_text" => "", // Collection description text
          "collection_text_position" => 0, // Description position
          "collection_settings_comments" => "", // Comment settings
          
          "collection_settings_rating" => 0, // Enable rating (0/1)
          "collection_datestamp" => "2025-09-16T12:41:07+00:00", // Datetime of creation/update
         
          "update_exists" => 1, // Update exists collection (0/1)
          "delete" => 0, // For delete collection (0/1)
        ]
      ]
    ];
    
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "UPDATE"); // UPDATE / PUT / PATCH
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($collectionsData, JSON_UNESCAPED_UNICODE));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer " . $authKey,
    "Content-Type: application/json"
    ]);
    
    $response = curl_exec($ch);
    if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
    } else {
      $data = json_decode($response, true);
      print_r($data);
    }
    curl_close($ch);
Назад