Integration with «1C», «ERP», CRM systems and CommerceAPI

Zurück

Integration with «1C», «ERP», CRM systems and CommerceAPI

Automatic order export / Sending POST order data in JSON format

You can enable automatic order export in the site settings, in the «Shop» tab, by specifying the path for data submission.
A POST request will be sent to the specified address with all order data, including customer contact information and the list of products. Contact details and order information will be transmitted in JSON format via POST request.
For example, in 1C you can implement order reception via «HTTP Service»->«SiteExchange» -> «POSTData»

After placing an order, a POST request will be sent to the above address with the following data:
 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"
      }
    ]
  }
}


If after sending the request your service returns JSON data containing «Number» or «crm_order_id», an external order number will be added to the order.

Automatic sales statistics export / Sending POST order data in JSON format

You can enable automatic sales statistics export in the site settings, in the «Shop» tab, by specifying the path for data submission.
A POST request will be sent to the specified address with all order data that changes in Sales Statistics. Information will be transmitted via POST request in JSON format.
For example, in 1C you can implement order reception via «HTTP Service»->«SiteExchange» -> «POSTData»
You can also enable external access to your statistics by specifying a «Sales statistics access key».

After changing the order status (except for quick status editing), a POST request in JSON format will be sent to the above address with the following data:
 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', deal status // 0 - Not processed, 1 - Order in processing, 3 - Processed, 2 - Canceled, 5 - Canceled (Out of stock), 6 - Canceled (Refusal), delete - Delete order

'status_pay' - '0', Order status // 0-Not specified, 1 - Paid online, not verified, 4 - Paid online and verified, 2 - Paid, 3 - Prepaid, 5 - Awaiting payment

'status_for_customer' - '1', Status for customer // 0 - Not processed, 1 - Processing, 3 - Shipped / Processed, 2 - Canceled

'admin_note' - 'Note to administrator'

'delivery_status' - '0', 0 - Not specified, 1 - Delivered, 2 - Not delivered, 3 - Awaiting shipment, 4 - Handed to courier, 5 - In transit, 6 - Sent to post office, 7 - Sent to recipient address, 8 - Delivered to post office, 9 - Delivered to recipient address

'crm_order_id' - 'XXX', External order code (for use in third-party CRM)

You can learn more about the fields in sales statistics when editing an order.


When changing products in an order, a JSON request is sent with the list of items and the order number:
 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": ""
      }
    ]
  }
}

Access to sales statistics / JSON


Specify the sales statistics access key in the settings, in the «Shop» tab. If you need to access sales statistics from an external application, you can make a (POST/GET or AJAX) request to «/ajax.php?statistic_sell»

You must specify the key in the request, with MD5 encryption. For example, if your key is «123», in the request it will be «202cb962ac59075b964b07152d234b70».

In this case the request will look like: «/ajax.php?statistic_sell&key=202cb962ac59075b964b07152d234b70»
In the request you can specify sorting or search data (GET/POST parameters), which can be taken from your sales statistics page in the admin center (/page.php?p=statistic_sell&mystat). Sorting and parameter selection is done via GET/POST request, for example, «&sort_dateperiod=1week» means that sales statistics for the week will be displayed.

Data is displayed in JSON format.

Please note that if you use visitor-accessible page requests, they will be able to access your sales statistics using your key.

Access to store price list / Full CSV price list export


Specify the store price list access key in the settings, in the «Shop» tab. The full price list export is available at «/csv_export_products.csv»

You must specify the key in the request, with MD5 encryption. For example, if your key is «123», in the request it will be «202cb962ac59075b964b07152d234b70».

In this case the request will look like: «/csv_export_products.csv?key=202cb962ac59075b964b07152d234b70»
In the request you can specify sorting data and field selection, which can be taken from your export page in the admin center (/page.php?p=submit_catalog_page&subpage&export_from_shop). Sorting and parameter selection is done via GET/POST request, for example, «&export_product_access=export_product_access» means that the field with product access data will be exported.

Data is displayed in CSV format.

The export file is cached to reduce load and is updated once a day. You can delete the cache using the «Clear XML/CSV export cache» button.

Example: https://templatedemo437544.boostore.pro/csv_export_products.csv?key=202cb962ac59075b964b07152d234b70

Additionally, a data exchange mechanism via API, similar to WooCommerce API, is implemented. The API allows you to receive and update information about orders, products, and categories. Instructions and settings are in the «Shop» section - «JSON Commerce API Data Exchange».

Commerce API (Products/Categories/Sales Statistics)

Commerce API — Quick Manual on Methods

Access Key

To work with the API, you need an access key (Consumer Secret), which you create in the section "Settings", "Shop", "Sales Statistics Access". The key is generated based on the Sales Statistics Access Key.

API Methods (HTTP)

All requests go to the base URL of your site, for example: https://site.com/api/commerce/

1. Sales Statistics

MethodURLDescription
GET/ordersGet order statistics
GET/orders/{id}Get statistics of a single order by ID
GET/crm_orders/{id}Get statistics of a single order by external CRM ID
DELETE/orders/{id}Delete order by ID
DELETE/crm_orders/{id}Delete order by external CRM ID
POST/ordersAdd a new order
UPDATE/orders/{id}Update order by ID (PATCH/PUT/UPDATE)
UPDATE/crm_orders/{id}Update order by external CRM ID (PATCH/PUT/UPDATE)

2. Products

MethodURLDescription
GET/productsGet product list
GET/products/{id}View single product by ID
GET/products/sku/{sku}View single product by SKU (product code)
POST/productsMass adding of new products
UPDATE/products/{id}Update product by ID (PATCH/PUT/UPDATE)
UPDATE/products/sku/{sku}Update product by SKU (product code) (PATCH/PUT/UPDATE)
UPDATE/productsMass update of multiple products (PATCH/PUT/UPDATE)
DELETE/products/{id}Delete product by ID
DELETE/products/sku/{sku}Delete product by SKU (product code)

3. Product Categories

MethodURLDescription
POST/products/categoriesBulk add and update categories
GET/products/categoriesGet a list of product categories
GET/products/categories/{id}Get a category by ID
GET/products/categories/id/{id}Get a category by ID (alternative option)
GET/products/categories/name/{name}Get a category by name
UPDATE/products/categoriesBulk update multiple categories (PATCH/PUT/UPDATE)
UPDATE/products/categories/{id}Update a category by ID (PATCH/PUT/UPDATE)
UPDATE/products/categories/id/{id}Update a category by ID (alternative option)
UPDATE/products/categories/name/{name}Update a category by name

Parent category parameters

ParameterTypeDescription
category_parent_id int Parent category ID. Used with the highest priority if provided.
category_parent_name string Latin name (alias / slug, URL for opening the category) of the parent category. Used if category_parent_id is not provided. In case of duplicates, you can specify category_lang.
category_lang string Category language. Used to resolve conflicts of identical category_parent_name in different languages.

How it works:

  1. category_parent_id is checked first.
  2. If not provided – category_parent_name is used.
  3. If names match – an additional check by category_lang is performed.

Special rule:
To add a category to the root (main) category, you must specify category_parent_name = "main" and also set category_lang – the language of the parent category.

Update and Deletion:
update_exists (bool) – if true, updates the category if it already exists (default false).
delete (bool) – if true, the category will be deleted.

4. Producers

MethodURLDescription
POST/products/producersBulk add and update producers
GET/products/producersGet a list of producers
GET/products/producers/{id}Get a producer by ID
GET/products/producers/id/{id}Get a producer by ID (alternative option)
GET/products/producers/name/{name}Get a producer by name
UPDATE/products/producersBulk update multiple producers (PATCH/PUT/UPDATE)
UPDATE/products/producers/{id}Update a producer by ID (PATCH/PUT/UPDATE)
UPDATE/products/producers/id/{id}Update a producer by ID (alternative option)
UPDATE/products/producers/name/{name}Update a producer by name

Producer binding parameters

ParameterTypeDescription
producer_parent_id int Parent producer (group) ID. Used with the highest priority if provided.
producer_parent_name string Latin name (alias / slug, URL for opening the producer). Used if producer_parent_id is not provided. In case of duplicates, you can specify producer_lang.
producer_lang string Producer language. Used to resolve conflicts of identical producer_parent_name in different languages.

How it works:

  1. producer_parent_id is checked first.
  2. If not provided – producer_parent_name is used.
  3. If names match – an additional check by producer_lang is performed.

Special rule:
To add a producer to the root (main) producer group, you must specify producer_parent_name = "main" and also set producer_lang – the language of the parent group.

Update and Deletion:
update_exists (bool) – if true, updates the producer if it already exists (default false).
delete (bool) – if true, the producer will be deleted.

5. Collections

MethodURLDescription
POST/products/collectionsBulk add and update collections
GET/products/collectionsGet a list of collections
GET/products/collections/{id}Get a collection by ID
GET/products/collections/id/{id}Get a collection by ID (alternative option)
GET/products/collections/name/{name}Get a collection by name
UPDATE/products/collectionsBulk update multiple collections (PATCH/PUT/UPDATE)
UPDATE/products/collections/{id}Update a collection by ID (PATCH/PUT/UPDATE)
UPDATE/products/collections/id/{id}Update a collection by ID (alternative option)
UPDATE/products/collections/name/{name}Update a collection by name

Collection binding parameters

ParameterTypeDescription
collection_parent_id int Parent collection ID. Used with the highest priority if provided.
collection_parent_name string Latin name (alias / slug, URL for opening the collection). Used if collection_parent_id is not provided. In case of duplicates, you can specify collection_lang.
collection_lang string Collection language. Used to resolve conflicts of identical collection_parent_name in different languages.

How it works:

  1. collection_parent_id is checked first.
  2. If not provided – collection_parent_name is used.
  3. If names match – an additional check by collection_lang is performed.

Special rule:
To add a collection to the root (main) collection, you must specify collection_parent_name = "main" and also set collection_lang – the language of the parent collection.

Update and Deletion:
update_exists (bool) – if true, updates the collection if it already exists (default false).
delete (bool) – if true, the collection will be deleted.

6. Sorting and Pagination

For the methods /orders and /products, parameters for pagination and sorting are available:

Pagination Parameters

ParameterTypeDescription
pageintPage number (default 1)
per_pageintNumber of items per page (default 90, maximum 2000)

Sorting Parameters

ParameterTypeAllowed valuesDescription
orderbystringid, title, price, date, viewsField to sort by
orderstringasc, descSort direction

Language options

ParameterТипAllowed valuesDescription
lstringru, ua, en, de, fr, es, it, plLanguage for displaying values

Additional for Orders

You can filter orders by date and status:

  • ?after=YYYY-MM-DD — Start date (ISO format)
  • ?before=YYYY-MM-DD — End date
  • ?status=pending|processing|on-hold|completed|cancelled|0|1|2|3|5|6|7|8 — Order status (can specify WooCommerce textual status or numeric code)
    • 0 — Pending
    • 1 — Processing
    • 7 — Processing, awaiting shipment (on-hold)
    • 3 — Completed
    • 8 — Completed and closed
    • 2 — Cancelled
    • 5 — Cancelled: out of stock
    • 6 — Cancelled: refusal
  • ?show_deleted=1 — Show hidden orders

Examples

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

Example of Authorization in Request

The request includes keys:

 Code: PHP
?consumer_secret=YOUR_SECRET (warning: do not publish the key publicly!)

Or via Authorization header with OAuth 1.0a.



Add New Order (POST /orders)

To create a new order via API, you need to send a POST request to /orders with a JSON body.
At minimum, you must specify:

  • email — Customer's email (required!)
  • line_items — List of items to add

Order Parameters

When creating an order, you can specify additional fields, for example:

{
  "first_name": "Name",
  "last_name": "Surname",
  "email": "alex@example.com",
  "phone": "+380671112233",
  "address": "Full address if address eform is not used",
  "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": [ ... ]
}

About the total field:

  • total — Final order amount (string or number). If specified, this value will be used as the final order price.
  • If total is not specified, the order amount will be automatically calculated based on the sum of the added line_items.
  • The total field is optional and can be used for orders without products.

line_items Format

The line_items parameter is an array of items. Each item is an object with the following fields:

"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 — Product ID (required!).
  • quantity — Quantity of units (required!).
  • price — (optional) If specified, this price will be used instead of the site's calculated price.
  • currency — (optional) Currency for this specific product (e.g., USD or UAH). If specified and different from the order's main currency, the price will be automatically converted.
  • variation_id — ID of the product variation — use this to specify a variation if available.
  • variation — Name or code of the variation — used if variation_id is not specified. If both are provided, variation_id takes priority.

Important: If the main order currency is not specified, the site's default currency will be used.

If an item's currency differs from the main currency — the price will be converted automatically.


Updating Products

Product updates are done using the HTTP UPDATE method (or PATCH/PUT) by URL with the product ID or SKU, or multiple products in one request:

  • /products/{id} — update product by ID
  • /products/sku/{sku} — update product by SKU
  • /products — bulk update multiple products (up to 5000 in one request)

When using bulk update, the path /products does not contain an ID or SKU. In this case, you must send an array of product objects in the products parameter. Each element must contain at least id or sku. If id is specified, it has priority and can replace sku. If id is not specified, the search is done by sku.

The update request must contain the full product data in JSON format. All sent data replaces the existing values, including:

  • Main product properties (title, description, prices, status, etc.)
  • Attributes
  • Variations
  • Images
  • Categories and tags
  • Additional settings and meta fields

Variations are updated using the following logic for each variation in the variations array:

  1. If id is specified, the update is done by it.
  2. If id is missing but sku is specified, the update is done by SKU.
  3. If both id and sku are missing but title is specified, the update is done by title.
  4. If no match is found by these, a new variation is created with the given parameters.

Updating by SKU is convenient when the variation ID is unknown but a unique code is available.

During an update, all fields included in the JSON will overwrite the current product values; to leave a field unchanged, simply omit it from the request.

  • Duplicate variations: If the variations array contains duplicates by SKU or title, they will be skipped — the same variation will not be added twice.
  • Main image: In the images array, the image at index 0 is considered the main one. If images[0] is missing or not uploaded, the first successfully uploaded image will be used as the main one.
  • Maximum images: You can upload up to 10 images for a single product. If you try to upload more, extra files will be ignored.
  • Image handling:
    • Delete images: To delete an image by index, set the images array element to "delete". For example, images[2] = "delete" will remove the file at index 2. You can delete and upload at the same time by setting multiple keys: images[3] = "delete", images[1] = "https://...".
    • Skipping image indexes: If you specify an empty string or false, that index will be skipped without an error.
    • Overwrite images: The images_replace parameter: If true, the system will overwrite existing image files for the given indexes (removes old file and cache). If false or not set — overwriting is disabled.
    • Skip occupied indexes: The images_skip_index parameter: If true and the index is occupied but overwriting is disabled, the system will find the next free index and save the file there. If false or not set — the file will be saved strictly to the given index.
    • Save to new index on conflict: The images_replace_new_index parameter: If true, then if the index is occupied and both overwriting and auto-skip are disabled, the file will be saved under the next free index. If all three parameters are false or not set and the index is occupied — the file will not be uploaded.

Product Parameters


You can see the available values in the example code below. There is also additional explanation of some values that may be useful.
  • Available values for price_for

    For each product, you can specify the price_for parameter that defines the unit for pricing. You can use a numeric code or text (for example, “Per 1 kg”). Here is the complete list of values:

    Show / Hide
    • 0 — Not specified
    • 1 — Per 1 pc
    • 2 — Per 100 pcs
    • 3 — Per 1000 pcs
    • 4 — Per 1 package
    • 5 — Per 1 kg
    • 6 — Per 1000 kg
    • 7 — Per 1 m² (square meter)
    • 8 — Per 1 meter
    • 9 — Per 1 km
    • 10 — Per set
    • 11 — Per 1 hour
    • 12 — Per 1 day
    • 13 — Per 1 month
    • 14 — Per 1 year
    • 15 — Per hundred square meters
    • 16 — Per acre
    • 17 — Per hectare
    • 18 — Per plot
    • 19 — Per object
    • 30 — Per 1 ml (milliliter)
    • 31 — Per 1 l (liter)
    • 32 — Per 1 km³ (cubic kilometer)
    • 33 — Per 1 m³ (cubic meter)
    • 34 — Per 1 dm³ (cubic decimeter)
    • 35 — Per 1 cm³ (cubic centimeter)
    • 36 — Per 1 mm³ (cubic millimeter)
    • 37 — Per 1 hl (hectoliter)
    • 38 — Per 100 grams
    • 39 — Per 1 pound
    • 40 — Per 1 gram
    • 41 — Per 10 kg
    • 42 — Per 1 quintal (100 kg)
    • 43 — Per 1 ton
    • 44 — Per 1 are
    • 45 — Per 1 pair
    • 46 — Per 1 dozen
    • 47 — Per 1 gallon
    • 48 — Per 1 barrel
    • 49 — Per 1 minute
    • 50 — Per 1 week
    • 51 — Per 1 service
    • 52 — Per 1 trip
    • 53 — Per 1 person
    • 54 — Per 1 vehicle
    • 55 — Per 1 linear meter

    You can use either a numeric value or text — the system will automatically recognize and map it to the correct code.

  • Available values for stock_status

    For each product, you can set the stock_status parameter, which defines the product’s availability status and how it behaves on the site. You can use either a numeric code or a keyword — the system will recognize both.

    Show / Hide
    • 0 — In stock
    • 1 — Out of stock
    • 2 — On order
    • 3 — Out of stock + Hide product from listing
    • 4 — Out of stock + Disable adding to cart
    • 5 — Availability to be confirmed

    You can use either a number or text — the system will automatically detect it and convert it to the correct code.

    If a product is set to 3, it will be hidden from product listings on the site. If it’s set to 4, the product will be visible but cannot be added to the cart. Option 5 shows the buyer that availability needs to be confirmed.

  • Promotion and available values for promotion_expires_job

    For each product, you can set the promotion_expires_job parameter, which controls what happens to a promotion after its end date.
    You can use either a numeric code or a keyword — the system will recognize both.

    Show / Hide
    • 0 — Do nothing (hide the timer)
    • 1 — Move the “Old price” to the main price and remove the old price
    • 2 — Remove the “Promotion” label
    • 3 — Move the “Old price” to the main price and remove the “Promotion” label
    • 5 — Restart the timer for 1 day
    • 6 — Restart the timer for 10 days
    • 7 — Restart the timer with the previous duration (timer date minus last edit date)
    • 8 — Remove the “Promotion” label and delete the “Old price”

    You can use either a number or text — the system will automatically detect it and convert it to the correct code.

    Important: To activate the promotion timer, be sure to set promotion to 1 — this means the promotion is active.

    Also, you must specify the promotion end date in the promotion_expires parameter — this can be given as a UNIX timestamp (for example, time()) or in the format YYYY-MM-DDTHH:MM:SS+00:00 (for example, 2025-06-28T00:00:00+00:00).

  • More values

    Available values for title

    Text (maximum 255 characters) — product name


    Available values for sku

    Text (maximum 100 characters) — product code


    Available values for status
    • 1 — Access open
    • 0 — Access closed (403)

    Available values for xml

    Enable/Disable product export to XML (Google Merchant and others)

    • 1 — Export enabled
    • 0 — Export disabled

    Available values xml_markup

    This parameter controls the application of markups when exporting products to XML (Google Merchant and other advertising catalogs).

    • 0 — On: Markup applied by default
    • 1 — Off: No markups (original price)
    • 2 — Without Rozetka markup
    • 3 — Without Prom.ua markup
    • 4 — Without Epricentrk.ua markup
    • 5 — Off: Rozetka, Prom, Epicentrk
    • 6 — Without formula-based markup

    Available values for noimport

    Enable/Disable product update during import (Store → Import Products)

    • 1 — Update during import
    • 0 — Do not update during import

    Available values for delete
    • 0 — Do not delete
    • 1 — Delete product

    Available values for show_period

    Product display period. Allows hiding the product after the specified time.

    • 0 — Forever
    • 1 — 1 day
    • 2 — 1 week
    • 3 — 1 month
    • 4 — 6 months
    • 5 — 1 year

    Available values for priority

    Number from 0 to 100. The higher the number — the higher the product appears in the list.


    Available values for custom_label_4

    Text (maximum 95 characters)


    Available values for meta_title

    Text (maximum 255 characters)


    Available values for meta_description

    Text (maximum 500 characters)


    Available values for meta_keywords

    Text (maximum 2000 characters)


    Available values for multilangid

    Text (maximum 50 characters)


    Available values for categories

    Array of values

    • id — Category ID
    • name — Category name
    • lang — Category language

    Available values for producer

    Array of values

    • id — Producer ID
    • name — Producer name
    • lang — Producer language

    Available values for producer_country

    Text (maximum 100 characters)


    Available values for collection

    Array of values

    • id — Collection ID
    • name — Collection name
    • lang — Collection language

    Available values for short_description

    Text (maximum 2000 characters) — short product description (if enabled in the site design, it appears in product lists)


    Available values for description

    Long text — full product description, displayed on the product detail page


    Available values for description_tab_1

    Long text — tab 1 with description (tab title is set in store settings)


    Available values for description_tab_2

    Long text — tab 2


    Available values for description_tab_3

    Long text — tab 3


    Available values for description_tab_4

    Long text — tab 4


    Available values for description_tab_5

    Long text — tab 5


    Available values for bought_with

    Text (maximum 255 characters) — list of products frequently bought together, comma-separated (product IDs or SKUs)


    Available values for bought_with_email

    Text (maximum 255 characters) — list of products frequently bought together, sent to the customer by email with the order, comma-separated (product IDs or SKUs)


    Available values for discount

    Text (maximum 20 characters) — discount amount (informational field, shown in lists and on the product page)


    Available values for new

    Mark product as New

    • 0 — Not set
    • 1 — Set

    Available values for featured

    Mark product as Bestseller

    • 0 — Not set
    • 1 — Set

    Available values for promotion

    Mark product as Promotion

    • 0 — Not set
    • 1 — Set

    Available values for reducedprice

    Mark product as Price Reduced

    • 0 — Not set
    • 1 — Set

    Available values for shipping
    • 0 — Not specified
    • 1 — Enabled

    Available values for shipping_settings (related to shipping)
    • 2 — Use general settings
    • 0 — No shipping
    • 1 — Shipping available
    • 3 — Only add a shipping note

    Available values for shipping_price (related to shipping_settings)

    Text (maximum 40 characters)


    Available values for shipping_note (related to shipping_settings)

    Long text


    Available values for shipping_days (related to shipping_settings)

    Text (maximum 10 characters)


    Available values for shipping_sum (related to shipping_settings)
    • 0 — Do not count product quantity
    • 1 — Count product quantity
    • 2 — Do not add shipping to order total

    Available values for attributes

    Array of attributes — displayed on the product page, used for product comparison and filters

    • id — Attribute ID (if present)
    • name — Attribute name (search can be by name or by value_parent_id / value_ints)
    • options — Array of attribute option values
    • value_ints — Array of numeric IDs for options (if present)
    • value_parent_id — Parent ID of the attribute (if present)

    Example:
    [
      {
        "id": 1298,
        "name": "Product type",
        "options": ["Sneakers"]
      },
      {
        "name": "Brand",
        "options": ["Adidas"],
        "value_ints": [10081],
        "value_parent_id": 1762
      },
      {
        "name": "Size",
        "options": ["43", "43.5"],
        "value_ints": [10107, 10108],
        "value_parent_id": 1763
      }
    ]

    Other values

    You can get other values using the GET method /products or in the examples below


Adding Products

This method allows you to add one or multiple products in a single request (up to 3000 at once). The request format is exactly the same as for updating: you can send an array of products or a single product.

  • ID check: When adding a new product, the id field must be empty or not specified. If id is given and a product with that ID already exists, the system will update that product instead of creating a new one.
  • SKU check: Before adding, the system checks if a product with the given SKU exists. If found, it will be updated instead of creating a duplicate.

You can add new products and update existing ones in a single request.

This is a basic overview of the main methods for working with the Commerce API / WooCommerce API v3 for orders, products, and categories.
Below are example scripts to help you properly use the API methods in practice.


  • 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);
Zurück