Integration API · Синхронізація каталогу
Створити або замінити товар
Створює товар, коли external_id трапляється вперше, і далі оновлює той самий товар — повтор запиту ніколи не робить дубля. Новому товару потрібні name і sku; він отримує один варіант із цим артикулом, ціною й залишком.
Категорії й мітки зв’язуються за вашими external id, тож їх треба створити раніше; переданий список замінює зв’язки товару. image_url — публічне зображення за https; магазин завантажує його до себе.
Для товару в кількох кольорах чи розмірах передайте variants: кожен варіант зі своїм артикулом, ціною, залишком і опціями (однакові назви опцій у всіх варіантах). Список замінює варіанти товару: збіг за артикулом, нові додаються, відсутні видаляються; рядок без price чи quantity лишає варіанту його власні, новому варіанту потрібна ціна. Без variants товар має один варіант із sku, price і quantity.
catalog:write: Authorization: Bearer {key}.
Параметри шляху
external_idstringобов'язковийТіло запиту application/json
namestringskustringpriceintegerquantityintegerdescriptionstringstatusstringimage_urlstringcategory_external_idsarray of stringstag_external_idsarray of stringsattributesobjectvariantsarray of objectsПриклад
{
"name": "Навушники Sonar ANC повнорозмірні",
"description": "Активне шумозаглушення, 40 годин роботи.",
"status": "published",
"image_url": "https://cdn.example.com/sonar-anc.jpg",
"category_external_ids": [
"erp-cat-audio"
],
"tag_external_ids": [
"erp-tag-new"
],
"variants": [
{
"sku": "SONAR-ANC-BLK",
"price": 599900,
"quantity": 24,
"options": {
"Колір": "Чорний"
}
},
{
"sku": "SONAR-ANC-WHT",
"price": 599900,
"quantity": 9,
"options": {
"Колір": "Білий"
}
}
]
}
Відповіді
200Товар, як його тепер показує каталог, і ваш external_id.
{
"external_id": "erp-10045",
"data": {
"id": 12,
"name": "Навушники Sonar ANC повнорозмірні",
"description": "Активне шумозаглушення, 40 годин роботи.",
"sku": "SONAR-ANC-BLK",
"thumbnail_url": "https://your-store.storeforma.shop/media/12/sonar-anc.webp",
"quantity": 24,
"currency_code": "UAH",
"min_price": 599900,
"max_price": 599900,
"weight": 0.32,
"length": null,
"height": null,
"width": null,
"has_offers": false,
"is_archived": false,
"category_id": 7,
"attributes": [
{
"handle": "kolir",
"name": "Колір",
"type": "swatch",
"unit": null,
"group": null,
"variant_axis": false,
"values": [
"Чорний"
]
},
{
"handle": "vaga",
"name": "Вага",
"type": "number",
"unit": "г",
"group": "Загальні",
"variant_axis": false,
"values": [
"320 г"
]
}
],
"input_options": [
{
"key": "hraviiuvannia",
"label": "Гравіювання",
"type": "text",
"required": false,
"price": 10000,
"max": 30,
"choices": []
}
],
"created_at": "2026-10-01 10:12:00",
"updated_at": "2026-10-12 08:40:00"
}
} 401Ключа немає, він невідомий або відкликаний.
{
"code": "unauthenticated",
"message": "Integration key is inactive.",
"field": null
} 403У ключа немає права catalog:write, або тариф магазину без доступу до API.
{
"code": "forbidden",
"message": "Integration key cannot catalog:write.",
"field": null
} 422Поле має помилку; його назва — у field.
{
"code": "validation_error",
"message": "name is required.",
"field": "name"
} 429Понад 60 запитів за хвилину для цього ключа. Зачекайте Retry-After секунд.
{
"code": "rate_limited",
"message": "Too many integration requests.",
"field": null
}