Додати нове замовлення (POST /orders)
Щоб створити нове замовлення через API, потрібно відправити POST-запит на /orders з JSON-тілом.
Обов'язково повинно бути вказано мінімум:
email — Email покупця (обов'язково!)
line_items — Список додаваних товарів
Параметри замовлення
При створенні замовлення можна вказувати додаткові поля, наприклад:
{
"first_name": "Name",
"last_name": "Soname",
"email": "alex@example.com",
"phone": "+380671112233",
"address": "Full address of not used address eform",
"buyer_address_eform1": "State",
"buyer_address_eform2": "City",
"buyer_address_eform3": "Street",
"buyer_address_eform4": "house number",
"buyer_address_eform5": "flat",
"postcode": "01001",
"total": "999",
"status": "processing",
"status_for_customer": "processing",
"line_items": [ ... ]
}
Опис поля total:
-
total — фінальна сума замовлення (рядок або число). Якщо це поле вказано, воно буде використано як підсумкова ціна замовлення.
- Якщо
total не вказано, сума замовлення буде автоматично перерахована за сумою доданих товарів у line_items.
- Поле
total не є обов'язковим і може бути використано для замовлень без товарів.
Формат line_items
Параметр line_items — це масив товарів, кожен товар задається об'єктом з наступними полями:
"line_items": [
{
"product_id": 478734,
"quantity": 1,
"price": 100,
"currency": "USD"
},
{
"product_id": 478268,
"quantity": 10,
"variation": "51"
},
{
"product_id": 478266,
"quantity": 1,
"variation_id": 735302
}
]
-
product_id — ID товару (обов'язково!).
-
quantity — Кількість одиниць товару (обов'язково!).
-
price — (необов'язково) Якщо вказана ціна — береться саме ця ціна і не обчислюється за даними сайту.
-
currency — (необов'язково) Валюта конкретного товару (наприклад,
USD або UAH). Якщо вказана та відрізняється від загальної валюти замовлення (currency), система сконвертує ціну автоматично.
-
variation_id — ID різновиду (варіації товару) — спосіб вказати різновид, якщо він є.
-
variation — Назва або код різновиду — використовується якщо немає
variation_id. Якщо вказані обидва — пріоритет у variation_id.
Важно: Якщо загальна валюта замовлення (currency) не вказана — буде використовуватися валюта за замовчуванням для сайту.
Якщо валюта товару відрізняється від загальної валюти — ціна конвертується автоматично.
Параметри бронювання
Якщо замовлення пов'язане з бронюванням, можна вказати:
booking — ціле число (0/1). Прапорець, що вказує, чи є у замовлення бронювання. Встановіть 1, щоб позначити замовлення як бронь.
booking_data — об'єкт. Деталі бронювання (використовується в POST/PUT/PATCH). Поля:
"booking_data": {
"slot_id": 123,
"slot_title": "Назва слоту",
"group_id": 0,
"start_time": 1710000000,
"end_time": 1710003600,
"duration": 3600,
"factor": 1.0,
"base_price": "100$",
"price": "100$",
"payment_required": true,
"status": 0,
"after_payment_status": 3,
"userid": 0,
"author": 0,
"dates_start_year": "2026",
"dates_start_date": "2026-07-07",
"dates_start_time": "10:00:00",
"dates_end_year": "2026",
"dates_end_date": "2026-07-07",
"dates_end_time": "11:00:00"
}
- slot_id — ID слоту бронювання (обов'язково).
- slot_title — Назва слоту.
- group_id — ID групи для групування слотів.
- start_time — Час початку (Unix timestamp).
- end_time — Час закінчення (Unix timestamp).
- duration — Тривалість у секундах.
- factor — Коефіцієнт-множник.
- base_price — Базова ціна (рядок з символом валюти).
- price — Підсумкова ціна (рядок з символом валюти).
- payment_required — Чи потрібна оплата (true/false).
- status — Статус бронювання (0-8). Де: 0 — новий, 1 — в обробці, 2 — скасовано, 3 — виконано/завершено, 4-8 — додаткові статуси.
- after_payment_status — Статус, який встановлюється замовленню після успішної оплати. Діапазон значень той самий, що й у status (0-8).
- userid — ID користувача-покупця.
- author — ID автора/менеджера, який створив бронь.
- dates_start_* / dates_end_* — Дати та час у людському форматі (опціонально).
🛡️ Захист від дублів: При створенні або оновленні замовлення з booking_data система автоматично перевіряє, чи не зайнятий вказаний часовий інтервал іншим нескасованим замовленням (статуси 2, 5, 6 вважаються скасованими — слот вільний). Якщо слот зайнятий — API поверне помилку 409 Conflict.
Оновлення товарів
Оновлення товару здійснюється через HTTP-метод UPDATE (або PATCH/PUT) за URL із вказанням ID товару або його SKU (коду товару), або одразу кількох товарів одним запитом:
/products/{id} — оновлення товару за ID
/products/sku/{sku} — оновлення товару за кодом (SKU)
/products — масове оновлення кількох товарів (до 5000 за один запит)
При масовому оновленні шлях /products не містить ID або SKU. У цьому випадку необхідно передавати масив об'єктів товарів у параметрі products. Кожен елемент масиву повинен містити хоча б id або sku. Якщо вказаний id, він має пріоритет і може використовуватися для заміни коду товару (sku). Якщо id не вказаний, пошук здійснюється за sku — кодом товару.
При оновленні передається повний набір даних товару у форматі JSON. Всі передані дані замінюють існуючі значення, включаючи:
- Основні властивості товару (назва, опис, ціни, статус та ін.)
- Атрибути (характеристики)
- Варіації (різновиди товару)
- Зображення
- Категорії та теги
- Додаткові налаштування та мета-поля
Оновлення варіацій відбувається з використанням наступного алгоритму для кожної варіації з масиву variations:
- Якщо у варіації вказаний
id, оновлення проводиться за ним.
- Якщо
id відсутній, але вказаний sku (код варіації), пошук та оновлення відбувається за ним.
- Якщо немає ні
id, ні sku, але є title (назва варіації), пошук та оновлення проводиться за назвою.
- Якщо варіація не знайдена за вказаними критеріями, створюється нова варіація із заданими параметрами.
Оновлення за SKU зручне, коли ID варіації невідомий, але відомий унікальний код.
При оновленні всі поля, вказані в JSON, замінять поточні значення товару; щоб залишити якесь поле без змін, просто не включайте його в запит.
- Дублікати різновидів: якщо в масиві різновидів зустрічаються повторювані за кодом (SKU)
та назвою (title), такі різновиди будуть пропущені — одна й та сама комплектація не додасться двічі.
- Головне зображення: у масиві
images головним вважається те, що під індексом 0.
Якщо images[0] відсутнє або не завантажено, головним стане перше успішно завантажене зображення.
- Максимум зображень: для одного товару можна завантажити не більше 10 зображень.
Якщо спробувати завантажити більше, зайві файли будуть проігноровані.
-
Робота із зображеннями:
- Видалення зображень: щоб видалити зображення за індексом, вкажіть для елемента масиву
images значення "delete". Наприклад, images[2] = "delete" видалить файл з індексом 2.
Можна видаляти та завантажувати одночасно, вказуючи кілька ключів: images[3] = "delete", images[1] = "https://...".
- Пропуски індексів зображень: якщо вказати порожній рядок або
false, цей індекс буде пропущений без помилок.
- Перезапис зображень: параметр
images_replace:
якщо true, система перезапише існуючі файли зображень за переданими індексами (видалить старий файл та кеш).
Якщо false або не вказаний — перезапис заборонено.
- Пропуск зайнятих індексів: параметр
images_skip_index:
якщо true, то при зайнятому індексі та забороненому перезаписі система знайде наступний вільний індекс і збереже файл туди.
Якщо false або не вказаний — індекс береться строго як переданий.
- Збереження під новим індексом при конфлікті: параметр
images_replace_new_index:
якщо true, то при зайнятому індексі та відключених перезаписі та автоматичному пропуску
файл буде збережений під новим вільним індексом.
Якщо всі три параметри false або не задані та індекс зайнятий — файл не буде завантажений.
Параметри товару
Доступні значення ви можете переглянути в коді прикладів нижче. Також наведена додаткова розшифровка деяких значень, яка може бути корисною.
-
Доступні значення
price_for
Для кожного товару можна вказати параметр price_for, який задає одиницю виміру ціни.
Допустимо використовувати числовий код або текст (наприклад, «За 1 кг» або «Per 1 kg»).
Ось повний список значень:
Показати / Сховати
0 — Не вказано
1 — За 1 шт
2 — За 100 шт
3 — За 1000 шт
4 — За 1 упаковку
5 — За 1 кг
6 — За 1000 кг
7 — За 1 м² (квадратний метр)
8 — За 1 метр
9 — За 1 км
10 — За комплект
11 — За 1 годину
12 — За 1 день
13 — За 1 місяць
14 — За 1 рік
15 — За сотку
16 — За акр
17 — За гектар
18 — За ділянку
19 — За об'єкт
30 — За 1 мл (мілілітр)
31 — За 1 л (літр)
32 — За 1 км³ (кубічний кілометр)
33 — За 1 м³ (кубічний метр)
34 — За 1 дм³ (кубічний дециметр)
35 — За 1 см³ (кубічний сантиметр)
36 — За 1 мм³ (кубічний міліметр)
37 — За 1 hl (гектолітр)
38 — За 100 грам
39 — За 1 фунт
40 — За 1 грам
41 — За 10 кг
42 — За 1 центнер (100 кг)
43 — За 1 тонну
44 — За 1 ар
45 — За 1 пару
46 — За 1 дюжину
47 — За 1 галон
48 — За 1 барель
49 — За 1 хвилину
50 — За 1 тиждень
51 — За 1 послугу
52 — За 1 поїздку
53 — За 1 людину
54 — За 1 машину
55 — За 1 м.п. (метр погонний)
Можна використовувати як числове значення, так і текст — система автоматично розпізнає і приведе до правильного коду.
-
Доступні значення
stock_status
Для кожного товару можна вказати параметр stock_status, який визначає статус доступності товару та його поведінку на сайті.
Можна використовувати числовий код або ключове слово — система розпізнає обидва варіанти.
Показати / Сховати
0 — В наявності
1 — Немає в наявності
2 — Під замовлення
3 — Немає в наявності + Сховати товар зі списку
4 — Немає в наявності + Заборонити додавати товар у кошик
5 — Наявність уточнюйте
Можна використовувати як числове значення, так і текст — система автоматично розпізнає і приведе до правильного коду.
Якщо для товару вибраний варіант 3, він буде прихований зі списків товарів на сайті.
Якщо вибраний варіант 4, товар буде видимий, але його не можна буде додати в кошик.
Варіант 5 показує покупцю, що наявність потрібно уточнити.
-
Акція та Доступні значення
promotion_expires_job
Для кожного товару можна вказати параметр promotion_expires_job, який керує тим, що робити з акцією після закінчення її терміну.
Можна використовувати числовий код або ключове слово — система розпізнає обидва варіанти.
Показати / Сховати
0 — Нічого не робити (сховати таймер)
1 — Перенести «Стара ціна» в основну ціну та видалити стару ціну
2 — Прибрати позначку «Акція»
3 — Перенести «Стара ціна» в основну ціну та прибрати позначку «Акція»
5 — Запустити таймер заново терміном на 1 день
6 — Запустити таймер заново терміном на 10 днів
7 — Запустити таймер заново з попереднім терміном (дата таймера мінус дата останнього редагування)
8 — Прибрати позначку «Акція» та видалити «Стара ціна»
Можна вказувати як числове значення, так і текст — система автоматично розпізнає і приведе до потрібного коду.
Важно: Для активації таймера акції обов'язково вкажіть promotion рівним 1 — це означає, що акція активна.
Також необхідно вказати дату закінчення акції в параметрі promotion_expires — вона може бути задана як UNIX-час (наприклад, time()), так і у форматі YYYY-MM-DDTHH:MM:SS+00:00 (наприклад, 2025-06-28T00:00:00+00:00).
Більше значень
Доступні значення title
Текст (максимум 255 символів) — найменування товару
Доступні значення sku
Текст (максимум 100 символів) — код товару
Доступні значення status
1 — Доступ відкритий
0 — Доступ закритий (403)
Доступні значення xml
Увімкнути/Вимкнути вивантаження товару в XML (Google Merchant та інші)
1 — Вивантаження увімкнено
0 — Вивантаження вимкнено
Доступні значення xml_markup
Параметр керує застосуванням націнок при вивантаженні товарів в XML (Google Merchant та інші рекламні каталоги).
0 — Увімк: Націнка застосовується за замовчуванням
1 — Вимк: Без націнок (оригінальна ціна)
2 — Без націнки Rozetka
3 — Без націнки Prom.ua
4 — Без націнки Epricentrk.ua
5 — Вимк: Rozetka, Prom, Epicentrk
6 — Без формульної націнки
Доступні значення noimport
Увімкнути/Вимкнути оновлення товару при імпорті (Магазин — Імпортувати товари)
1 — Оновлювати при імпорті
0 — Не оновлювати при імпорті
Доступні значення delete
0 — Не видаляти
1 — Видалити товар
Доступні значення show_period
Період розміщення товару. Дозволяє сховати товар після закінчення вказаного терміну.
0 — На завжди
1 — 1 день
2 — Тиждень
3 — Місяць
4 — Півроку
5 — Рік
Доступні значення priority
Число від 0 до 100. Чим більше — тим вище товар у списку.
Доступні значення custom_label_4
Текст (максимум 95 символів)
Доступні значення meta_title
Текст (максимум 255 символів)
Доступні значення meta_description
Текст (максимум 500 символів)
Доступні значення meta_keywords
Текст (максимум 2000 символів)
Доступні значення multilangid
Текст (максимум 50 символів)
Доступні значення categories
Масив зі значеннями
id — ID категорії
name — Найменування категорії
lang — Мова категорії
Доступні значення producer
Масив зі значеннями
id — ID виробника
name — Найменування виробника
lang — Мова виробника
Доступні значення producer_country
Текст (максимум 100 символів)
Доступні значення collection
Масив зі значеннями
id — ID колекції
name — Найменування колекції
lang — Мова колекції
Доступні значення short_description
Текст (максимум 2000 символів) — короткий опис товару (якщо увімкнено в стилістиці сайту, то відображається при перегляді списку товарів)
Доступні значення description
Текст довгий — повний опис товару, відображається при окремому перегляді картки товару
Доступні значення description_tab_1
Текст довгий — вкладка 1 з описом (Заголовок вкладки вкажіть у налаштуваннях магазину)
Доступні значення description_tab_2
Текст довгий — вкладка 2
Доступні значення description_tab_3
Текст довгий — вкладка 3
Доступні значення description_tab_4
Текст довгий — вкладка 4
Доступні значення description_tab_5
Текст довгий — вкладка 5
Доступні значення bought_with
Текст (максимум 255 символів) — список значень З товарами купують, через кому (ID або SKU товарів)
Доступні значення bought_with_email
Текст (максимум 255 символів) — список значень З товарами купують, що надсилається покупцю на пошту при замовленні, через кому (ID або SKU товарів)
Доступні значення discount
Текст (максимум 20 символів) — розмір знижки (інформаційне поле про знижку, відображається і в списку товарів і при окремому перегляді)
Доступні значення new
Позначити товар як Новинка
0 — Не встановлено
1 — Встановлено
Доступні значення featured
Позначити товар як Хіт продажів
0 — Не встановлено
1 — Встановлено
Доступні значення promotion
Позначити товар як Акція
0 — Не встановлено
1 — Встановлено
Доступні значення reducedprice
Позначити товар як Ціна знижена
0 — Не встановлено
1 — Встановлено
Доступні значення shipping
0 — Не вказані
1 — Встановлені
Доступні значення shipping_settings (пов'язані з shipping)
2 — Із Загальних налаштувань
0 — Немає доставки
1 — Є доставка
3 — Вказати тільки примітку щодо доставки
Доступні значення shipping_price (пов'язані з shipping_settings)
Текст (максимум 40 символів)
Доступні значення shipping_note (пов'язані з shipping_settings)
Текст (довгий)
Доступні значення shipping_days (пов'язані з shipping_settings)
Текст (максимум 10 символів)
Доступні значення shipping_sum (пов'язані з shipping_settings)
0 — Не враховувати кількість товару
1 — Враховувати кількість товару
2 — Не додавати доставку до суми замовлення
Доступні значення attributes
Масив з характеристиками — відображаються в картці товару, враховуються при порівнянні товару та в пошуковому фільтрі
id — ID характеристики (якщо є)
name — Назва характеристики (пошук відбувався або за name або за value_parent_id / value_ints)
options — Масив значень характеристики
value_ints — Масив числових ID значень (якщо є)
value_parent_id — Батьківський ID характеристики (якщо є)
Приклад:
[
{
"id": 1298,
"name": "Product type",
"options": ["Кросівки"]
},
{
"name": "Виробник",
"options": ["Adidas"],
"value_ints": [10081],
"value_parent_id": 1762
},
{
"name": "Розмір",
"options": ["43", "43,5"],
"value_ints": [10107, 10108],
"value_parent_id": 1763
}
]
Доступні значення name
Системне ім'я (slug) для SEO-посилання (рядок, максимум 255 символів)
Доступні значення type
ID типу товару (число) — для фільтрації та атрибутів
Доступні значення currency
Код валюти (рядок, наприклад USD, UAH, EUR)
Доступні значення tags
Теги, через кому (максимум 8 тегів)
Доступні значення weight
Вага товару (число)
Доступні значення weight_units
Доступні значення dimensions
Масив габаритів товару
length — Довжина
width — Ширина
height — Висота
units — Одиниці: 0 = сантиметри, 1 = метри
Доступні значення sku_show
0 — Не показувати код товару (SKU) публічно
1 — Показувати код товару (SKU)
Доступні значення moq
Мінімальна кількість товару для замовлення (число)
Доступні значення show_stock
0 — Не показувати залишок на сторінці товару
1 — Показувати залишок
Доступні значення show_tree
0 — Не показувати дерево категорій
1 — Показувати дерево категорій
Доступні значення update_exists
0 / false — Пропустити якщо запис існує
1 / true — Оновити існуючий запис
Доступні значення supplier
Масив зі значеннями
id — ID постачальника
name — Найменування постачальника
lang — Мова постачальника
Доступні значення price_cost
Собівартість товару (рядок, максимум 20 символів)
Доступні значення bulk_prices
Масив оптових цін
moq — Мінімальна кількість для оптової ціни
price — Оптова ціна
Доступні значення products_synonyms
Список ID товарів для групування, через кому (рядок, максимум 255 символів)
Доступні значення video
URL відео (рядок)
Доступні значення video_duration
Тривалість відео у форматі HH:MM:SS (рядок)
Доступні значення variations_type
Тип розміру для Google Merchant
0 — За замовчуванням з налаштувань категорії
1 — Колір
2 — Патерн
3 — Матеріал
4 — Вікова група
5 — Стать
6 — Розмір
Доступні значення variations_title
Заголовок над селектором варіацій (рядок)
Доступні значення variations_require
0 — Вибір варіації не обов'язковий
1 — Вибір варіації обов'язковий перед покупкою
Доступні значення variations_cartexplode
0 — Стандартне відображення в кошику
1 — Роздільне відображення варіацій в кошику
Доступні значення variations_only_update
false — Видаляти старі варіації перед додаванням нових
true — Додавати нові варіації без видалення старих
Інші значення
Інші значення ви можете дізнатися, отримавши методом GET /products або в прикладах нижче
Псевдоніми полів (сумісність з WooCommerce):
content = description, excerpt = short_description,
cat_id / rubric_id = category_id,
sale_price = price, original_price = regular_price,
menu_order = priority, wholesale_price = price_cost,
slug = name (якщо вказані обидва, slug має пріоритет).
📦 Приклад реальної відповіді GET /products/{id}
Для отримання актуальних полів вашого товару виконайте GET /products/{id} або GET /products/sku/{sku}. Нижче — приклад відповіді для товару Salomon Quest 4D 3 GTX (ID: 483472):
{
"id": 483472,
"sku": "Q4D3-BLK_ru",
"title": "Salomon Quest 4D 3 GTX",
"permalink": "https://yourdomain.com/ru/pers_shop/demo_ru/salomonquest4d3gtx.htm",
"access": true,
"language": "ru",
"multilangid": 483641,
"price": 220.00,
"regular_price": 280,
"currency": "USD",
"stock_status_value": "В наявності",
"stock_status": 0,
"stock_quantity": 0,
"featured": false,
"new": 1,
"reducedprice": false,
"discount": null,
"moq": 0,
"promotion": 0,
"promotion_text": null,
"promotion_expires": null,
"bought_with": null,
"products_synonyms": null,
"categories": [
{ "id": 28143, "name": "demo_ru", "title": "Демонстраційна категорія" }
],
"producer": {
"id": 4806,
"name": "salomon_ru",
"title": "Salomon",
"lang": "ru"
},
"images": [
{ "src": "https://yourdomain.com/upload/shop_catalog/s15992/483472/483472_0.jpg", "name": "483472_0.jpg" },
{ "src": "https://yourdomain.com/upload/shop_catalog/s15992/483472/483472_1.webp", "name": "483472_1.webp" }
],
"type": 0,
"attributes": [
{ "id": 0, "name": "Product type", "options": [""] }
],
"variations_exists": 8,
"variations": [
{ "id": 749582, "sku": "Q4D3-BLK_36", "title": "36", "stock_status": 0, "stock_status_value": "В наявності" },
{ "id": 749590, "sku": "Q4D3-BLK_37", "title": "37", "stock_status": 4, "stock_status_value": "Наявність уточнюйте" },
{ "id": 749602, "sku": "Q4D3-BLK_38", "title": "38", "stock_status": 0, "stock_status_value": "В наявності" }
],
"weight": 0,
"weight_units": 0,
"dimensions": {
"length": 0, "width": 0, "height": 0, "units": 0
},
"short_description": null,
"description": "Флагманська модель для багатоденного трекінгу...",
"description_tab_1": "Salomon Quest 4D 3 GTX: Неперевершена Підтримка та Захист...",
"meta_title": null,
"meta_description": null,
"meta_keywords": null,
"video": null,
"priority": 0,
"rating": 0,
"comments": 0,
"views": 569,
"orders": 0,
"shipping_price": 0,
"add_date": "2025-10-25T00:16:09+00:00",
"last_edit": "2026-04-10T18:30:57+00:00"
}
💡 Повний приклад ви можете отримати, виконавши GET запит до API товарів вашого магазину.
Додавання товарів
Цей метод дозволяє додати один або кілька товарів одним запитом (до 3000 за один запит).
Формат запиту повністю збігається з методом оновлення: можна передавати масив products
або одиночний товар.
- Пошук за ID: при додаванні нового товару поле
id повинно бути порожнім або відсутнім.
Якщо id вказаний і товар з таким ID вже існує, то система оновить цей товар замість створення нового.
- Пошук за кодом (SKU): перед додаванням система перевіряє, чи є товар з таким SKU.
Якщо такий товар знайдений, він буде оновлений, а не створений заново.
Ви можете додати нові товари та оновити існуючі одним запитом.
7. Каталог статей (блог)
| Метод | URL | Опис |
POST |
/blog/articles |
Масове додавання та оновлення статей |
GET |
/blog/articles |
Отримати список статей. Підтримує пагінацію (?page=N&per_page=N), сортування (?orderby=id|name|position|datestamp&order=asc|desc) та фільтрацію (?category_id=N або ?category_id=1,2,3, ?category=name, ?status=0|1, ?date_after=YYYY-MM-DD, ?date_before=YYYY-MM-DD, ?lang=ru|ua|en|pl) |
GET |
/blog/articles/{id} |
Перегляд окремої статті за ID |
UPDATE |
/blog/articles/{id} |
Оновити статтю за ID (PATCH/PUT/UPDATE) |
UPDATE |
/blog/articles |
Масове оновлення кількох статей (PATCH/PUT/UPDATE) |
GET |
/blog/articles/slug/{slug} |
Отримати статтю за системним ім'ям (slug) |
UPDATE |
/blog/articles/slug/{slug} |
Оновити статтю за системним ім'ям (slug) (PATCH/PUT/UPDATE) |
DELETE |
/blog/articles/slug/{slug} |
Видалити статтю за системним ім'ям (slug) |
DELETE |
/blog/articles/{id} |
Видалити статтю за ID |
Поля статті
| Параметр | Тип | Опис |
title |
string |
Заголовок статті (відображається на сторінці, H1) |
meta_title |
string |
Мета-заголовок (title) |
meta_description |
string |
Мета-опис |
meta_keywords |
string |
Ключові слова |
description |
text |
Повний текст статті |
short_description |
text |
Короткий опис (анонс) статті |
name |
string |
ЧПУ посилання (URL slug). Латиниця та дефіси (наприклад: moya-stattya) |
slug |
string |
ЧПУ посилання (URL slug). Аналог name. Латиниця та дефіси |
language |
string |
Мова статті (ru, en, ua, pl та ін.) |
category_id |
int |
ID рубрики (категорії блогу) з blog_catalog_value. Обовʼязково для нової статті |
status |
int |
Доступ: 1 — опубліковано (доступно), 0 — приховано (недоступно) |
priority |
int |
Пріоритет (позиція сортування, 0–29) |
datestamp |
int (unix) |
Дата публікації (Unix timestamp) або рядок у форматі ISO 8601 |
schema |
int |
Тип розмітки Schema.org (0–9).
0 — WebPage (за замовчуванням)
1 — Article
6 — BlogPosting
7 — NewsArticle
2 — AboutPage
3 — ContactPage
4 — CollectionPage
5 — ProfilePage
9 — FAQPage
8 — Без розмітки
|
planned |
int |
Відкладена публікація: 0/1 |
settings_comments |
string |
Налаштування коментарів |
settings_rating |
int |
Налаштування рейтингу: 0/1 |
update_exists |
bool |
Якщо true, оновлює статтю при повторному додаванні (за замовчуванням false) |
delete |
bool |
Якщо true, стаття буде видалена (soft delete) |
tags |
string |
Мітки статті через кому (до 8 шт.). Зберігаються в окрему таблицю тегів |
multilangid |
string |
ID статті іншими мовами. Обʼєднує переклади однієї статті для звʼязку на різних мовах сайту |
slug_search |
string |
Пошук статті за системним імʼям (slug) для оновлення. Альтернатива ID. Не зберігається в БД |
Фільтрація списку статей (GET)
При отриманні списку статей (GET /blog/articles) доступні параметри фільтрації:
| Параметр | Тип | Опис |
category_id | int/string | ID рубрики (категорії). Можна вказати одне число або кілька через кому: ?category_id=1,2,3 |
category | string | Ім'я рубрики (slug). Альтернатива category_id |
status | int | Фільтр за доступом: 1 — опубліковано (доступно), 0 — приховано (недоступно) |
date_after | string | Початкова дата публікації (ISO 8601). Приклад: ?date_after=2026-07-01 |
date_before | string | Кінцева дата публікації (ISO 8601). Приклад: ?date_before=2026-07-31 |
lang | string | Мова статті: ru, ua, en, pl та ін. |
Також доступні стандартні параметри сортування: orderby (id, name, position, datestamp) та order (asc, desc).
Псевдоніми полів (сумісність з WooCommerce):
content = description, excerpt = short_description,
cat_id / rubric_id / category = category_id,
date / date_created / date_created_gmt = datestamp,
slug = name (якщо вказані обидва, slug має пріоритет).
Масове додавання та оновлення
POST/PUT/PATCH на /blog/articles приймає як один обʼєкт статті, так і масив обʼєктів у полі articles:
{
"articles": [
{
"title": "Моя стаття",
"slug": "moya-stattya",
"language": "ua",
"category_id": 5,
"description": "<p>Текст статті</p>",
"short_description": "Анонс",
"meta_title": "Моя стаття | Сайт",
"tags": "кросівки, найк, адідас, спортивне взуття",
"status": 1,
"priority": 5,
"schema": 6
},
{
"title": "Another article",
"slug": "another-article",
"language": "en",
"category_id": 10,
"description": "<p>Article text</p>",
"status": 1
}
]
}
Оновлення та видалення:
update_exists (bool) – якщо true, оновлює статтю при повторному додаванні (за замовчуванням false).
delete (bool) – якщо true, стаття буде видалена (soft delete: прихована зі списків).
slug_search (string) – пошук статті за системним імʼям (slug/name) для оновлення через PUT/PATCH/POST. Якщо id не вказано, стаття шукається за slug_search. Якщо вказано обидва, спочатку виконується пошук за ID, при невдачі — за slug_search. Враховує мову статті (параметр language або мову категорії).
При видаленні автоматично перераховується лічильник статей у батьківській категорії.
📥 Імпорт/експорт статей через API:
Доступний зручний веб-інтерфейс для масового імпорту та експорту статей блогу через Commerce API.
Завантажити з GitHub →
Booking API — керування слотами бронювання
API для керування слотами бронювання. Endpoint: /api/commerce/booking.
Важливо: Endpoint /booking працює з таблицею booking_slots — шаблонами/визначеннями слотів (розклад, типи повторення, ціни). Реальну доступність (чи вільний слот зараз) повертає внутрішній /api_booking.jsonp?action=get_booking_slot_time, який використовує віджет на сайті.
Доступні методи:
GET /booking — отримати список слотів-шаблонів (розклад)
GET /booking/{id} — отримати шаблон слота за ID
GET /booking/slug/{slug} — отримати шаблон слота за name (найменуванням)
POST /booking — створити новий шаблон слота
PUT /booking[/{id}] — оновити шаблон слота (пріоритет пошуку: ID → group_id → slug_search)
PATCH /booking[/{id}] — часткове оновлення (аналог PUT)
DELETE /booking/{id} — видалити шаблон слота за ID
DELETE /booking/slug/{slug} — видалити шаблон слота за name
Поля слота бронювання (booking_slots):
id | int | ID слота (auto_increment) |
date | string (Y-m-d) | Дата слота |
time_start | string (H:i:s) | Час початку |
time_end | string (H:i:s) | Час закінчення |
group_id | int | ID групи слотів |
group_title | string | Назва групи (name) |
group_price | float | Ціна групи |
access | int | Доступ: 0 — всім, 1 — вимкнено, 2 — лише авторизованим |
type | int | Тип: 0 — разовий, 1 — щоденно, 2 — щотижня, 3 — щомісяця |
recurrence_day | string | Дні тижня для повторення, через кому (1=Пн..7=Нд). Приклад: "1,3,5" |
recurrence_month | string | Місяці для повторення, через кому (1..12). Приклад: "3,6,9,12" |
description | string | Опис слота (HTML) |
author | string | Автор |
Повний список полів: api/api_commerce/booking/api_meta_booking_fields.php.
Фільтрація GET /booking: параметри ?date_from=, ?date_to=, ?group_id=, ?type=, ?access=, ?slug_search=.
🔗 Приклади запитів:
GET /booking?date_from=2024-06-01&date_to=2024-06-30&type=0
GET /booking?group_id=5&slug_search=yoga-morning
Пріоритет пошуку слота для оновлення/видалення (PUT/PATCH/DELETE):
id (з URL або тіла запиту) — ID слота
group_id (з тіла запиту) — ID групи (якщо в групі рівно 1 слот)
slug_search (з тіла запиту) — пошук за найменуванням (name/group_title)
Якщо слот не знайдено за slug_search — створюється новий (upsert).
Приклад створення разового слота (POST, type=0):
{
"date": "2026-07-15",
"time_start": "10:00:00",
"time_end": "11:00:00",
"group_title": "yoga-morning",
"group_price": 25.00,
"type": 0,
"access": 0
}
Приклад створення щотижневого слота (POST, type=2):
{
"time_start": "09:00:00",
"time_end": "18:00:00",
"group_title": "work-hours",
"group_price": 50.00,
"type": 2,
"recurrence_day": "1,2,3,4,5",
"access": 0
}
Приклад оновлення за group_id (PUT):
{
"group_id": 5,
"group_price": 30.00,
"description": "<p>Оновлений опис</p>"
}
Приклад оновлення за slug_search (PUT):
{
"slug_search": "yoga-morning",
"group_price": 35.00
}