Добавить новый заказ (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 (Goolge 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
0 — Граммы
1 — Килограммы
Доступные значения 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) |
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-statya) |
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 — скрыто (недоступно) |
Также доступны стандартные параметры сортировки: 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-statya",
"language": "ru",
"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
}