Integracja z 1C, ERP, CRM-systemami i CommerceAPI

Temu

Integracja z 1C, ERP, CRM-systemami i CommerceAPI

Automatyczny eksport przy zamówieniu / Wysyłka danych POST o zamówieniu w formacie JSON

Automatyczny eksport przy zamówieniu możesz włączyć w ustawieniach strony, w zakładce «Sklep», określając ścieżkę do wysyłki danych.
Na podany adres będzie wysyłane żądanie POST, ze wszystkimi danymi o zamówieniu, w tym danymi kontaktowymi zamawiającego i listą produktów. Dane kontaktowe i informacje o zamówieniu będą przekazywane w formacie JSON, żądaniem POST.
Na przykład, w 1c możesz zaimplementować przyjmowanie zamówień przez «HTTP serwis»->«SiteExchange» -> «POSTData»

Po złożeniu zamówienia, na podany powyżej adres zostanie wysłane żądanie POST, z następującymi danymi:
 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"
      }
    ]
  }
}


Jeśli po wysłaniu żądania, Twój serwis zwróci dane JSON, z zawartością «Number» lub «crm_order_id», to do zamówienia zostanie dodany zewnętrzny numer zamówienia.

Automatyczny eksport statystyk sprzedaży / Wysyłka danych POST o zamówieniu w formacie JSON

Automatyczny eksport statystyk sprzedaży możesz włączyć w ustawieniach strony, w zakładce «Sklep», określając ścieżkę do wysyłki danych.
Na podany adres będzie wysyłane żądanie POST, ze wszystkimi danymi o zamówieniu, które zmieniają się w Statystyce sprzedaży. Informacje będą przekazywane żądaniem POST w formacie JSON.
Na przykład, w 1c możesz zaimplementować przyjmowanie zamówień przez «HTTP serwis»->«SiteExchange» -> «POSTData»
Ponadto możesz włączyć zewnętrzny dostęp do swojej statystyki, określając «Klucz dostępu do statystyki sprzedaży».

Po zmianie statusu zamówienia (oprócz szybkiej edycji statusów), na podany powyżej adres zostanie wysłane żądanie POST w formacie JSON, z następującymi danymi:
 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', status transakcji // 0 - Nie przetworzony, 1 - Zamówienie w trakcie, 3 - Przetworzony, 2 - Anulowany, 5 - Anulowany (Brak na stanie), 6 - Anulowany (Odmowa), delete - Usuń zamówienie

'status_pay' - '0', Status zamówienia // 0-Nie określono, 1 - Opłacony online, nie sprawdzony, 4 - Opłacony online i sprawdzony, 2 - Opłacony, 3 - Przedpłata, 5 - Oczekuje na płatność

'status_for_customer' - '1', Status dla kupującego // 0 - Nie przetworzony, 1 - W trakcie przetwarzania, 3 - Wysłany / Przetworzony, 2 - Anulowany

'admin_note' - 'Uwaga dla administratora'

'delivery_status' - '0', 0 - Nie określono, 1 - Dostarczone, 2 - Nie dostarczone, 3 - Oczekuje na wysyłkę, 4 - Przekazane kurierowi, 5 - W drodze, 6 - Wysłane na pocztę, 7 - Wysłane na adres odbiorcy, 8 - Dostarczone na pocztę, 9 - Dostarczone na adres odbiorcy

'crm_order_id' - 'XXX', Zewnętrzny kod zamówienia (do użycia w zewnętrznych CRM)

Więcej szczegółów na temat pól możesz znaleźć w statystykach sprzedaży, podczas edycji zamówienia.


Przy zmianie produktów w zamówieniu, wysyłane jest żądanie JSON z wykazem item, a także numer zamówienia:
 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": ""
      }
    ]
  }
}

Dostęp do statystyk sprzedaży / JSON


Określ klucz dostępu do statystyk sprzedaży w ustawieniach, w zakładce «Sklep». Jeśli potrzebujesz uzyskać dostęp do statystyk sprzedaży zewnętrzną aplikacją, możesz wykonać (POST/GET lub AJAX) żądanie pod adresem «/ajax.php?statistic_sell»

Przy tym należy podać klucz w żądaniu, z szyfrowaniem MD5. Na przykład, jeśli masz określony klucz «123», to w żądaniu będzie to «202cb962ac59075b964b07152d234b70».

W takim przypadku żądanie będzie wyglądać następująco: «/ajax.php?statistic_sell&key=202cb962ac59075b964b07152d234b70»
W żądaniu można określić dane do sortowania lub wyszukiwania (parametry GET/POST), które można pobrać na stronie statystyk sprzedaży w centrum administracyjnym (/page.php?p=statistic_sell&mystat). Sortowanie i wybór parametrów odbywa się przez żądanie GET/POST, na przykład «&sort_dateperiod=1week» oznacza, że będą wyświetlane statystyki sprzedaży za tydzień.

Dane wyświetlane są w formacie JSON.

Zwróć uwagę, że jeśli używasz otwartych dla odwiedzających żądań strony, to za pomocą Twojego klucza mogą uzyskać dostęp do Twoich statystyk sprzedaży.

Dostęp do cennika sklepu / Pełny wywóz cennika w CSV


Określ klucz dostępu do cennika sklepu w ustawieniach, w zakładce «Sklep». Pełny wywóz cennika znajduje się pod adresem «/csv_export_products.csv»

Przy tym należy podać klucz w żądaniu, z szyfrowaniem MD5. Na przykład, jeśli masz określony klucz «123», to w żądaniu będzie to «202cb962ac59075b964b07152d234b70».

W takim przypadku żądanie będzie wyglądać następująco: «/csv_export_products.csv?key=202cb962ac59075b964b07152d234b70»
W żądaniu można określić dane do sortowania i wyboru pól, które można pobrać na stronie eksportu w centrum administracyjnym (/page.php?p=submit_catalog_page&subpage&export_from_shop). Sortowanie i wybór parametrów odbywa się przez żądanie GET/POST, na przykład «&export_product_access=export_product_access» oznacza, że będzie eksportowane pole z danymi o dostępie do produktu.

Dane wyświetlane są w formacie CSV.

Plik eksportu jest buforowany w celu zmniejszenia obciążenia i aktualizowany raz na dobę. Usunąć bufor można za pomocą przycisku «Wyczyść bufor eksportu XML/CSV».

Przykład: https://templatedemo437544.boostore.pro/csv_export_products.csv?key=202cb962ac59075b964b07152d234b70

Dodatkowo zaimplementowano mechanizm wymiany danych przez API, podobny do WooCommerce API. API pozwala uzyskiwać i aktualizować informacje o zamówieniach i produktach, a także kategoriach. Instrukcje i ustawienia w sekcji «Sklep» - «Wymiana danych JSON Commerce API».

Commerce API (Products/Categories/Sales Statistics)

Commerce API — Krótki podręcznik metod

Klucz dostępu

Do pracy z API potrzebny jest klucz dostępu (Consumer Secret), który tworzysz w sekcji „Ustawienia”, „Sklep”, „Dostęp do statystyk sprzedaży”. Klucz generowany jest na podstawie klucza do dostępu do statystyk sprzedaży.

Metody API (HTTP)

Wszystkie zapytania kierowane są na bazowy URL twojej strony, np.: https://site.com/api/commerce/

1. Statystyki sprzedaży

MetodaURLOpis
GET/ordersPobierz statystyki zamówień
GET/orders/{id}Pobierz statystyki pojedynczego zamówienia po ID
GET/crm_orders/{id}Pobierz statystyki pojedynczego zamówienia po zewnętrznym CRM ID
DELETE/orders/{id}Usuń zamówienie po ID
DELETE/crm_orders/{id}Usuń zamówienie po zewnętrznym CRM ID
POST/ordersDodaj nowe zamówienie
UPDATE/orders/{id}Zaktualizuj zamówienie po ID (PATCH/PUT/UPDATE)
UPDATE/crm_orders/{id}Zaktualizuj zamówienie po zewnętrznym CRM ID (PATCH/PUT/UPDATE)

2. Produkty

MetodaURLOpis
POST/productsMasowe dodawanie i aktualizacja produktów
GET/productsPobierz listę produktów
GET/products/{id}Podgląd pojedynczego produktu po ID
GET/products/sku/{sku}Podgląd pojedynczego produktu po SKU (kod produktu)
UPDATE/products/{id}Zaktualizuj produkt po ID (PATCH/PUT/UPDATE)
UPDATE/products/sku/{sku}Zaktualizuj produkt po SKU (kod produktu) (PATCH/PUT/UPDATE)
UPDATE/productsMasowa aktualizacja kilku produktów (PATCH/PUT/UPDATE)
DELETE/products/{id}Usuń produkt po ID
DELETE/products/sku/{sku}Usuń produkt po SKU (kod produktu)

3. Kategorie sklepu

MetodaURLOpis
POST/products/categoriesMasowe dodawanie i aktualizacja kategorii
GET/products/categoriesPobierz listę kategorii produktów
GET/products/categories/{id}Pobierz kategorię według ID
GET/products/categories/id/{id}Pobierz kategorię według ID (alternatywna opcja)
GET/products/categories/name/{name}Pobierz kategorię według nazwy
UPDATE/products/categoriesMasowa aktualizacja kilku kategorii (PATCH/PUT/UPDATE)
UPDATE/products/categories/{id}Zaktualizuj kategorię według ID (PATCH/PUT/UPDATE)
UPDATE/products/categories/id/{id}Zaktualizuj kategorię według ID (alternatywna opcja)
UPDATE/products/categories/name/{name}Zaktualizuj kategorię według nazwy

Parametry kategorii nadrzędnych

ParametrTypOpis
category_parent_id int ID kategorii nadrzędnej. Używany w pierwszej kolejności, jeśli jest podany.
category_parent_name string Łacińska nazwa (alias / slug, adres otwarcia kategorii) kategorii nadrzędnej. Używany, jeśli category_parent_id nie jest podany. W przypadku zbieżności nazw można doprecyzować przez category_lang.
category_lang string Język kategorii. Stosowany do rozwiązywania kolizji takich samych category_parent_name w różnych językach.

Zasada działania:

  1. Najpierw sprawdzany jest category_parent_id.
  2. Jeśli nie jest podany – używany jest category_parent_name.
  3. W przypadku zbieżności nazw – dodawana jest weryfikacja przez category_lang.

Szczególna zasada:
Aby dodać kategorię do głównej (korzeniowej) kategorii, należy wskazać category_parent_name = "main" i obowiązkowo podać parametr category_lang – język kategorii nadrzędnej.

Aktualizacja i usuwanie:
update_exists (bool) – jeśli true, aktualizuje kategorię, jeśli już istnieje (domyślnie false).
delete (bool) – jeśli true, kategoria zostanie usunięta.

4. Producenci

MetodaURLOpis
POST/products/producersMasowe dodawanie i aktualizacja producentów
GET/products/producersPobierz listę producentów
GET/products/producers/{id}Pobierz producenta według ID
GET/products/producers/id/{id}Pobierz producenta według ID (alternatywna opcja)
GET/products/producers/name/{name}Pobierz producenta według nazwy
UPDATE/products/producersMasowa aktualizacja kilku producentów (PATCH/PUT/UPDATE)
UPDATE/products/producers/{id}Zaktualizuj producenta według ID (PATCH/PUT/UPDATE)
UPDATE/products/producers/id/{id}Zaktualizuj producenta według ID (alternatywna opcja)
UPDATE/products/producers/name/{name}Zaktualizuj producenta według nazwy

Parametry powiązań producentów

ParametrTypOpis
producer_parent_id int ID producenta nadrzędnego (grupy). Używany w pierwszej kolejności, jeśli jest podany.
producer_parent_name string Łacińska nazwa (alias / slug, adres otwarcia producenta). Używany, jeśli producer_parent_id nie jest podany. W przypadku zbieżności nazw można doprecyzować przez producer_lang.
producer_lang string Język producenta. Stosowany do rozwiązywania kolizji takich samych producer_parent_name w różnych językach.

Zasada działania:

  1. Najpierw sprawdzany jest producer_parent_id.
  2. Jeśli nie jest podany – używany jest producer_parent_name.
  3. W przypadku zbieżności nazw – dodawana jest weryfikacja przez producer_lang.

Szczególna zasada:
Aby dodać producenta do głównej (korzeniowej) grupy producentów, należy wskazać producer_parent_name = "main" i obowiązkowo podać parametr producer_lang – język grupy nadrzędnej.

Aktualizacja i usuwanie:
update_exists (bool) – jeśli true, aktualizuje producenta, jeśli już istnieje (domyślnie false).
delete (bool) – jeśli true, producent zostanie usunięty.

5. Kolekcje

MetodaURLOpis
POST/products/collectionsMasowe dodawanie i aktualizacja kolekcji
GET/products/collectionsPobierz listę kolekcji
GET/products/collections/{id}Pobierz kolekcję według ID
GET/products/collections/id/{id}Pobierz kolekcję według ID (alternatywna opcja)
GET/products/collections/name/{name}Pobierz kolekcję według nazwy
UPDATE/products/collectionsMasowa aktualizacja kilku kolekcji (PATCH/PUT/UPDATE)
UPDATE/products/collections/{id}Zaktualizuj kolekcję według ID (PATCH/PUT/UPDATE)
UPDATE/products/collections/id/{id}Zaktualizuj kolekcję według ID (alternatywna opcja)
UPDATE/products/collections/name/{name}Zaktualizuj kolekcję według nazwy

Parametry powiązań kolekcji

ParametrTypOpis
collection_parent_id int ID kolekcji nadrzędnej. Używany w pierwszej kolejności, jeśli jest podany.
collection_parent_name string Łacińska nazwa (alias / slug, adres otwarcia kolekcji). Używany, jeśli collection_parent_id nie jest podany. W przypadku zbieżności nazw można doprecyzować przez collection_lang.
collection_lang string Język kolekcji. Stosowany do rozwiązywania kolizji takich samych collection_parent_name w różnych językach.

Zasada działania:

  1. Najpierw sprawdzany jest collection_parent_id.
  2. Jeśli nie jest podany – używany jest collection_parent_name.
  3. W przypadku zbieżności nazw – dodawana jest weryfikacja przez collection_lang.

Szczególna zasada:
Aby dodać kolekcję do głównej (korzeniowej) kolekcji, należy wskazać collection_parent_name = "main" i obowiązkowo podać parametr collection_lang – język kolekcji nadrzędnej.

Aktualizacja i usuwanie:
update_exists (bool) – jeśli true, aktualizuje kolekcję, jeśli już istnieje (domyślnie false).
delete (bool) – jeśli true, kolekcja zostanie usunięta.

6. Sortowanie i paginacja

Dla metod /orders i /products dostępne są parametry stronicowania i sortowania:

Parametry paginacji

ParametrTypOpis
pageintNumer strony (domyślnie 1)
per_pageintLiczba elementów na stronę (domyślnie 90, maksymalnie 2000)

Parametry sortowania

ParametrTypDozwolone wartościOpis
orderbystringid, title, price, date, viewsPole do sortowania
orderstringasc, descKierunek sortowania

Parametry języka

ParametrTypDozwolone wartościOpis
lstringru, ua, en, de, fr, es, it, plJęzyk wyświetlania wartości

Dodatkowo dla zamówień

Można filtrować zamówienia według daty i statusu:

  • ?after=YYYY-MM-DD — Data początkowa (w formacie ISO)
  • ?before=YYYY-MM-DD — Data końcowa
  • ?status=pending|processing|on-hold|completed|cancelled|0|1|2|3|5|6|7|8 — Status zamówienia (można podać tekstowy status WooCommerce lub kod liczbowy)
    • 0 — Nieprzetworzone (pending)
    • 1 — Zamówienie w trakcie realizacji (processing)
    • 7 — Zamówienie w trakcie realizacji, oczekuje na dostawę (on-hold)
    • 3 — Zrealizowane (completed)
    • 8 — Zrealizowane i zakończone (completed)
    • 2 — Anulowane (cancelled)
    • 5 — Anulowane: brak w magazynie (cancelled)
    • 6 — Anulowane: odmowa (cancelled)
  • ?show_deleted=1 — Pokaż ukryte zamówienia

Przykłady

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

Przykład autoryzacji

W zapytaniu należy podać klucze:

 Kod: PHP
?consumer_secret=TWOJ_SEKRET (uwaga, nie udostępniaj tego klucza publicznie!)

Lub przez nagłówek Authorization z OAuth 1.0a.



Dodaj nowe zamówienie (POST /orders)

Aby utworzyć nowe zamówienie przez API, wyślij żądanie POST na /orders z treścią JSON.
Minimalnie musisz podać:

  • email — Email klienta (wymagane!)
  • line_items — Lista produktów do dodania

Parametry zamówienia

Podczas tworzenia zamówienia możesz podać dodatkowe pola, na przykład:

{
  "first_name": "Imię",
  "last_name": "Nazwisko",
  "email": "alex@example.com",
  "phone": "+487001112233",
  "address": "Pełny adres jeśli nie używasz eform",
  "buyer_address_eform1": "Województwo",
  "buyer_address_eform2": "Miasto",
  "buyer_address_eform3": "Ulica",
  "buyer_address_eform4": "Numer domu",
  "buyer_address_eform5": "Mieszkanie",
  "postcode": "01-001",
  "total": "999",
  "status": "processing",
  "status_for_customer": "processing",
  "line_items": [ ... ]
}

Opis pola total:

  • total — końcowa kwota zamówienia (ciąg lub liczba). Jeśli podana, będzie użyta jako ostateczna cena zamówienia.
  • Jeśli total nie jest podane, kwota zamówienia zostanie automatycznie obliczona na podstawie sumy line_items.
  • Pole total nie jest wymagane i może być użyte do zamówień bez produktów.

Format line_items

Parametr line_items to tablica produktów. Każdy produkt to obiekt z następującymi polami:

"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_id — ID produktu (wymagane!).
  • quantity — Ilość sztuk (wymagane!).
  • price — (opcjonalne) Jeśli podana cena — będzie użyta ta wartość zamiast ceny wyliczonej na stronie.
  • currency — (opcjonalne) Waluta konkretnego produktu (np. USD lub PLN). Jeśli podana i różna od głównej waluty zamówienia (currency), system automatycznie przeliczy cenę.
  • variation_id — ID wariantu produktu — sposób wskazania wariantu, jeśli istnieje.
  • variation — Nazwa lub kod wariantu — używane, jeśli nie ma variation_id. Jeśli podane oba — priorytet ma variation_id.

Ważne: Jeśli główna waluta zamówienia (currency) nie jest podana — użyta zostanie domyślna waluta sklepu.

Jeśli waluta produktu różni się od głównej — cena zostanie przeliczona automatycznie.


Aktualizacja produktów

Aktualizacja produktu odbywa się przez HTTP UPDATE (lub PATCH/PUT) z użyciem URL z ID lub SKU produktu, albo wielu produktów jednym żądaniem:

  • /products/{id} — aktualizacja produktu po ID
  • /products/sku/{sku} — aktualizacja produktu po kodzie SKU
  • /products — masowa aktualizacja wielu produktów (do 5000 w jednym żądaniu)

Przy masowej aktualizacji ścieżka /products nie zawiera ID ani SKU. W tym przypadku należy przesłać tablicę obiektów produktów w parametrze products. Każdy element musi zawierać co najmniej id lub sku. Jeśli podane jest id, ma ono priorytet i może zastąpić sku. Jeśli id nie jest podane, wyszukiwanie odbywa się po sku.

Aktualizacja przesyła pełny zestaw danych produktu w formacie JSON. Wszystkie przesłane dane zastępują istniejące wartości, w tym:

  • Główne właściwości produktu (nazwa, opis, ceny, status itp.)
  • Atrybuty
  • Warianty
  • Obrazy
  • Kategorie i tagi
  • Ustawienia dodatkowe i meta pola

Warianty są aktualizowane zgodnie z poniższym algorytmem dla każdego wariantu w tablicy variations:

  1. Jeśli podane jest id, aktualizacja odbywa się po nim.
  2. Jeśli id brak, ale podane jest sku, aktualizacja odbywa się po kodzie.
  3. Jeśli nie ma ani id, ani sku, ale jest title, aktualizacja odbywa się po nazwie.
  4. Jeśli wariant nie zostanie znaleziony, zostanie utworzony nowy z podanymi parametrami.

Aktualizacja po SKU jest wygodna, gdy ID wariantu nie jest znane, ale znany jest unikalny kod.

Przy aktualizacji wszystkie pola w JSON zastąpią aktualne wartości produktu; aby zachować dane bez zmian, po prostu ich nie wysyłaj.

  • Duplikaty wariantów: jeśli w tablicy variations występują powtarzające się po SKU lub nazwie warianty — zostaną pominięte (ten sam wariant nie zostanie dodany dwa razy).
  • Główny obraz: w tablicy images obraz pod indeksem 0 jest uznawany za główny. Jeśli images[0] nie istnieje lub nie jest przesłany — głównym zostanie pierwszy poprawnie załadowany obraz.
  • Maksymalna liczba obrazów: dla jednego produktu można przesłać maksymalnie 10 obrazów. Próba przesłania większej liczby spowoduje pominięcie nadmiarowych plików.
  • Zarządzanie obrazami:
    • Usuwanie obrazów: aby usunąć obraz po indeksie, ustaw w tablicy images wartość "delete". Na przykład images[2] = "delete" usunie obraz o indeksie 2. Możesz jednocześnie usuwać i przesyłać, wskazując wiele kluczy: images[3] = "delete", images[1] = "https://...".
    • Puste indeksy: jeśli podasz pusty ciąg lub false, ten indeks zostanie pominięty bez błędu.
    • Nadpisanie obrazów: parametr images_replace: jeśli true, system nadpisze istniejące pliki obrazów pod podanymi indeksami (usunie stary plik i cache). Jeśli false lub brak — nadpisanie jest wyłączone.
    • Pomijanie zajętych indeksów: parametr images_skip_index: jeśli true, a indeks jest zajęty i nadpisanie jest wyłączone — system znajdzie kolejny wolny indeks i zapisze tam plik. Jeśli false lub brak — indeks jest brany dokładnie jak podany.
    • Nowy indeks przy konflikcie: parametr images_replace_new_index: jeśli true, a indeks jest zajęty i zarówno nadpisanie, jak i auto-pomijanie są wyłączone — plik zostanie zapisany pod nowym wolnym indeksem. Jeśli wszystkie trzy parametry to false lub brak i indeks jest zajęty — plik nie zostanie przesłany.

Parametry produktu


Dostępne wartości można zobaczyć w przykładowym kodzie poniżej. Znajdują się tam również dodatkowe wyjaśnienia niektórych wartości, które mogą być przydatne.
  • Dostępne wartości price_for

    Dla każdego produktu można określić parametr price_for, który ustala jednostkę rozliczeniową ceny. Dozwolone jest użycie kodu liczbowego lub tekstu (na przykład „Za 1 kg”). Oto pełna lista wartości:

    Pokaż / Ukryj
    • 0 — Nie określono
    • 1 — Za 1 szt.
    • 2 — Za 100 szt.
    • 3 — Za 1000 szt.
    • 4 — Za 1 opakowanie
    • 5 — Za 1 kg
    • 6 — Za 1000 kg
    • 7 — Za 1 m² (metr kwadratowy)
    • 8 — Za 1 metr
    • 9 — Za 1 km
    • 10 — Za zestaw
    • 11 — Za 1 godzinę
    • 12 — Za 1 dzień
    • 13 — Za 1 miesiąc
    • 14 — Za 1 rok
    • 15 — Za ar
    • 16 — Za akr
    • 17 — Za hektar
    • 18 — Za działkę
    • 19 — Za obiekt
    • 30 — Za 1 ml (mililitr)
    • 31 — Za 1 l (litr)
    • 32 — Za 1 km³ (kilometr sześcienny)
    • 33 — Za 1 m³ (metr sześcienny)
    • 34 — Za 1 dm³ (decymetr sześcienny)
    • 35 — Za 1 cm³ (centymetr sześcienny)
    • 36 — Za 1 mm³ (milimetr sześcienny)
    • 37 — Za 1 hl (hektolitr)
    • 38 — Za 100 gramów
    • 39 — Za 1 funt
    • 40 — Za 1 gram
    • 41 — Za 10 kg
    • 42 — Za 1 centnar (100 kg)
    • 43 — Za 1 tonę
    • 44 — Za 1 ar
    • 45 — Za 1 parę
    • 46 — Za 1 tuzin
    • 47 — Za 1 galon
    • 48 — Za 1 baryłkę
    • 49 — Za 1 minutę
    • 50 — Za 1 tydzień
    • 51 — Za 1 usługę
    • 52 — Za 1 podróż
    • 53 — Za 1 osobę
    • 54 — Za 1 pojazd
    • 55 — Za 1 metr bieżący

    Można użyć wartości liczbowej lub tekstowej — system automatycznie rozpozna i przypisze właściwy kod.

  • Dostępne wartości stock_status

    Dla każdego produktu możesz ustawić parametr stock_status, który określa status dostępności produktu i jego zachowanie na stronie. Można użyć kodu liczbowego lub słowa kluczowego — system rozpoznaje obie wersje.

    Pokaż / Ukryj
    • 0 — Dostępny
    • 1 — Niedostępny
    • 2 — Na zamówienie
    • 3 — Niedostępny + Ukryj produkt z listy
    • 4 — Niedostępny + Zablokuj możliwość dodania do koszyka
    • 5 — Dostępność do potwierdzenia

    Można podać wartość liczbową lub tekst — system automatycznie rozpozna i przekształci na odpowiedni kod.

    Jeśli dla produktu ustawiono 3, zostanie on ukryty na liście produktów na stronie. Jeśli ustawiono 4, produkt będzie widoczny, ale nie będzie można go dodać do koszyka. Opcja 5 informuje kupującego, że dostępność należy potwierdzić.

  • Promocja i dostępne wartości promotion_expires_job

    Dla każdego produktu możesz ustawić parametr promotion_expires_job, który określa, co zrobić z promocją po upływie jej terminu.
    Można użyć kodu liczbowego lub słowa kluczowego — system rozpoznaje obie wersje.

    Pokaż / Ukryj
    • 0 — Nic nie robić (ukryj licznik)
    • 1 — Przenieś „Starą cenę” do ceny głównej i usuń starą cenę
    • 2 — Usuń oznaczenie „Promocja”
    • 3 — Przenieś „Starą cenę” do ceny głównej i usuń oznaczenie „Promocja”
    • 5 — Uruchom licznik ponownie na 1 dzień
    • 6 — Uruchom licznik ponownie na 10 dni
    • 7 — Uruchom licznik ponownie z poprzednim czasem trwania (data licznika minus data ostatniej edycji)
    • 8 — Usuń oznaczenie „Promocja” i usuń „Starą cenę”

    Można podać wartość liczbową lub tekst — system automatycznie rozpozna i przekształci na odpowiedni kod.

    Ważne: Aby aktywować licznik promocji, pamiętaj, aby ustawić promotion na 1 — to oznacza, że promocja jest aktywna.

    Należy również podać datę zakończenia promocji w parametrze promotion_expires — można ją ustawić jako czas UNIX (np. time()) lub w formacie YYYY-MM-DDTHH:MM:SS+00:00 (np. 2025-06-28T00:00:00+00:00).

  • Więcej wartości

    Dostępne wartości title

    Tekst (maks. 255 znaków) — nazwa produktu


    Dostępne wartości sku

    Tekst (maks. 100 znaków) — kod produktu


    Dostępne wartości status
    • 1 — Dostęp otwarty
    • 0 — Dostęp zamknięty (403)

    Dostępne wartości xml

    Włącz/Wyłącz eksport produktu do XML (Google Merchant i inne)

    • 1 — Eksport włączony
    • 0 — Eksport wyłączony

    Dostępne wartości xml_markup

    Parametr zarządza stosowaniem narzutów przy eksportowaniu produktów do XML (Google Merchant i inne katalogi reklamowe).

    • 0 — Włącz: Narzut stosowany domyślnie
    • 1 — Wyłącz: Bez narzutów (cena oryginalna)
    • 2 — Bez narzutu Rozetka
    • 3 — Bez narzutu Prom.ua
    • 4 — Bez narzutu Epricentrk.ua
    • 5 — Wyłącz: Rozetka, Prom, Epicentrk
    • 6 — Bez narzutu formułowego

    Dostępne wartości noimport

    Włącz/Wyłącz aktualizację produktu podczas importu (Sklep → Importuj produkty)

    • 1 — Aktualizuj podczas importu
    • 0 — Nie aktualizuj podczas importu

    Dostępne wartości delete
    • 0 — Nie usuwaj
    • 1 — Usuń produkt

    Dostępne wartości show_period

    Okres wyświetlania produktu. Pozwala ukryć produkt po upływie określonego czasu.

    • 0 — Na zawsze
    • 1 — 1 dzień
    • 2 — Tydzień
    • 3 — Miesiąc
    • 4 — Pół roku
    • 5 — Rok

    Dostępne wartości priority

    Liczba od 0 do 100. Im wyższa — tym wyżej produkt na liście.


    Dostępne wartości custom_label_4

    Tekst (maks. 95 znaków)


    Dostępne wartości meta_title

    Tekst (maks. 255 znaków)


    Dostępne wartości meta_description

    Tekst (maks. 500 znaków)


    Dostępne wartości meta_keywords

    Tekst (maks. 2000 znaków)


    Dostępne wartości multilangid

    Tekst (maks. 50 znaków)


    Dostępne wartości categories

    Tablica z wartościami

    • id — ID kategorii
    • name — Nazwa kategorii
    • lang — Język kategorii

    Dostępne wartości producer

    Tablica z wartościami

    • id — ID producenta
    • name — Nazwa producenta
    • lang — Język producenta

    Dostępne wartości producer_country

    Tekst (maks. 100 znaków)


    Dostępne wartości collection

    Tablica z wartościami

    • id — ID kolekcji
    • name — Nazwa kolekcji
    • lang — Język kolekcji

    Dostępne wartości short_description

    Tekst (maks. 2000 znaków) — krótki opis produktu (jeśli włączony w szablonie sklepu, wyświetlany na liście produktów)


    Dostępne wartości description

    Tekst długi — pełny opis produktu, widoczny na stronie produktu


    Dostępne wartości description_tab_1

    Tekst długi — zakładka 1 z opisem (tytuł zakładki ustaw w ustawieniach sklepu)


    Dostępne wartości description_tab_2

    Tekst długi — zakładka 2


    Dostępne wartości description_tab_3

    Tekst długi — zakładka 3


    Dostępne wartości description_tab_4

    Tekst długi — zakładka 4


    Dostępne wartości description_tab_5

    Tekst długi — zakładka 5


    Dostępne wartości bought_with

    Tekst (maks. 255 znaków) — lista ID lub SKU produktów, które kupowane są razem, oddzielone przecinkami


    Dostępne wartości bought_with_email

    Tekst (maks. 255 znaków) — lista ID lub SKU produktów, które kupowane są razem, wysyłana klientowi w mailu z zamówieniem


    Dostępne wartości discount

    Tekst (maks. 20 znaków) — wysokość rabatu (pole informacyjne, widoczne na liście i na stronie produktu)


    Dostępne wartości new

    Oznacz produkt jako Nowość

    • 0 — Nie ustawione
    • 1 — Ustawione

    Dostępne wartości featured

    Oznacz produkt jako Bestseller

    • 0 — Nie ustawione
    • 1 — Ustawione

    Dostępne wartości promotion

    Oznacz produkt jako Promocja

    • 0 — Nie ustawione
    • 1 — Ustawione

    Dostępne wartości reducedprice

    Oznacz produkt jako Obniżona cena

    • 0 — Nie ustawione
    • 1 — Ustawione

    Dostępne wartości shipping
    • 0 — Nie określono
    • 1 — Włączono

    Dostępne wartości shipping_settings (związane z shipping)
    • 2 — Z ustawień ogólnych
    • 0 — Brak dostawy
    • 1 — Dostawa dostępna
    • 3 — Tylko notatka o dostawie

    Dostępne wartości shipping_price (związane z shipping_settings)

    Tekst (maks. 40 znaków)


    Dostępne wartości shipping_note (związane z shipping_settings)

    Tekst (długi)


    Dostępne wartości shipping_days (związane z shipping_settings)

    Tekst (maks. 10 znaków)


    Dostępne wartości shipping_sum (związane z shipping_settings)
    • 0 — Nie uwzględniaj ilości produktów
    • 1 — Uwzględnij ilość produktów
    • 2 — Nie doliczaj dostawy do sumy zamówienia

    Dostępne wartości attributes

    Tablica z atrybutami — widoczne w karcie produktu, wykorzystywane do porównania i filtrów

    • id — ID atrybutu (jeśli jest)
    • name — Nazwa atrybutu (wyszukiwanie może być po name lub value_parent_id / value_ints)
    • options — Tablica wartości atrybutu
    • value_ints — Tablica numerycznych ID wartości (jeśli są)
    • value_parent_id — ID nadrzędny atrybutu (jeśli jest)

    Przykład:
    [
      {
        "id": 1298,
        "name": "Rodzaj produktu",
        "options": ["Sneakersy"]
      },
      {
        "name": "Producent",
        "options": ["Adidas"],
        "value_ints": [10081],
        "value_parent_id": 1762
      },
      {
        "name": "Rozmiar",
        "options": ["43", "43.5"],
        "value_ints": [10107, 10108],
        "value_parent_id": 1763
      }
    ]

    Inne wartości

    Inne wartości możesz uzyskać metodą GET /products lub w przykładach poniżej


Dodawanie produktów

Ta metoda pozwala dodać jeden lub kilka produktów jednym żądaniem (do 3000 w jednym żądaniu). Format żądania jest identyczny jak przy aktualizacji: możesz przesłać tablicę products lub pojedynczy produkt.

  • Sprawdzanie ID: podczas dodawania nowego produktu pole id powinno być puste lub pominięte. Jeśli id jest podane i produkt z tym ID już istnieje — system zaktualizuje ten produkt zamiast tworzyć nowy.
  • Sprawdzanie SKU: przed dodaniem system sprawdzi, czy istnieje produkt z tym SKU. Jeśli tak — zostanie zaktualizowany, a nie dodany ponownie.

Możesz dodać nowe produkty i zaktualizować istniejące jednym żądaniem.

To podstawowy opis głównych metod pracy z Commerce API / WooCommerce API v3 dla zamówień, produktów i kategorii.
Poniżej znajdują się przykładowe skrypty, które pomogą prawidłowo używać metod API w praktyce.


  • 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);
Temu