Apicore Distributor API

Начало работы

  • Для запросов в API используется метод POST
  • Для подключения нужен Api-ключ (Получить <Api-ключ> можно в разделе кабинета "Настройки")
  • Тело запроса raw должно быть в формате JSON
  • Ответ отдается также в формате JSON

Интерфейс API: https://api.apicore.one

Заголовки запроса (Headers)

POST / HTTP 1.1
Host: https://api.apicore.one
Api-Key: <Api-ключ>
Content-Type: application/json
Accept: application/json
Внимание!

Не передавайте Api-ключ посторонним лицам!

Если от вас поступает слишком много ошибочных или одинаковых запросов, мы можем ограничить доступ к API

Если вам требуется дополнительная функциональность в API, пишите на support@apicore.one, с радостью рассмотрим предложения.

Скачать спецификацию OpenAPI
Обзор API
Связаться с поддержкой support@apicore.one
Языки программирования
Серверы
Основной сервер
https://api.apicore.one/

Api-ключ

Операции

Работа с каталогами товаров

Операции

Категории каталога

Операции

Товары каталога

Операции

Импорт карточки товаров каталога

Запрос

Метод полностью обновляет товары каталога дистрибьютора. Данные по товарам ставятся в общую очередь на обновление товаров.

Для каждого аккаунта в сутки есть ограничение на количество товаров, которые можно добавить в очередь на обработку. Поэтому рекомендуем использовать данный метод только для добавления новых товаров или ежедневного разового обновления всех товаров. Для обновления актуальности цен, остатков и дополнительных сущностей товара рекомендуем использовать отдельные методы, они имеют приоритет по скорости обработки.

Запрос ограничен 100 товарами, если больше, то возвращается ошибка.

При импорте массива цен “prices” происходит поиск типа цены по id. Если тип цены по id не найден, цена для данного товара не будет создана, в результат обработки вернется текст ошибки.

Возвращает статус добавления данных в очередь на обработку, результат обработки которого можно проверить методом import.status.

Заголовки
Content-TypestringОбязательные поля
Пример: application/json
AcceptstringОбязательные поля
Пример: application/json
Api-KeystringОбязательные поля
Телоapplication/json
catalog_codestring

Код каталога. Если не задан, категории будут привязаны к первому каталогу по умолчанию.

productsArray of objects

Массив товаров

curl -i -X POST \
  https://api.apicore.one/distributor/v1/product.import \
  -H 'Accept: application/json' \
  -H 'Api-Key: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "catalog_code": "main",
    "products": [
      {
        "id": "product-1",
        "name": "Товар 1",
        "long_name": "Длинное название Товара 1 с перечислением некоторых особенностей",
        "price": 1000,
        "rrp": 1500,
        "currency": "KZT",
        "prices": [
          {
            "id": "price-1",
            "price": 1110
          },
          {
            "id": "price-2",
            "price": 1010
          },
          {
            "id": "price-3",
            "price": 910
          }
        ],
        "quantity": 10,
        "order": true,
        "category_id": "category-2",
        "barcode": "1234567890123",
        "vendor": "Бренд",
        "vendor_code": "Артикул",
        "inner_code": "123456",
        "quality": "new",
        "description": "Описание товара",
        "images": [
          "https://domain/img/vp10o8o77grk4b6kox3h20l7g2g04flf.jpg",
          "https://domain/img/tessd0mk0706v8k5khn9fx6157ndv0b0.jpg"
        ],
        "images_base64": [
          "iVBORw0KGgoAAAANSUhEUgAABeMAAANUCAIAAAC/nKEJAAAACXBIWXMAA...",
          "iNQAAAAAAAJ6CSA0AAAAAAICnIFIDAAAAAADgKYjUAAAAAAAAeAoiNQAA..."
        ],
        "props": [
          {
            "name": "Название свойства 1",
            "value": "Значение свойства 1"
          },
          {
            "name": "Название свойства 2",
            "value": "Значение свойства 2"
          }
        ],
        "params": {
          "width": 200,
          "height": 300,
          "length": 900,
          "dimensions_unit": "mm",
          "weight": 500,
          "weight_unit": "g"
        }
      },
      {
        "id": "product-2",
        "name": "Товар 2",
        "long_name": "Длинное название Товара 2 с перечислением некоторых особенностей",
        "price": 2000,
        "rrp": 2600,
        "currency": "KZT",
        "quantity": 20,
        "category_id": "category-2",
        "barcode": "1234567890123",
        "vendor": "Бренд",
        "vendor_code": "Артикул",
        "inner_code": "098765",
        "quality": "new",
        "description": "Описание товара",
        "images": [
          "https://domain/img/xdgvkp4g14x904lvyb67linq3lq6bkq2.png",
          "https://domain/img/33ox4msgbwepcs2r3y3dpur77dhpi76o.jpg"
        ],
        "images_base64": [
          "iVBORw0KGgoAAAANSUhEUgAABeMAAANUCAIAAAC/nKEJAAAACXBIWXMAA...",
          "iNQAAAAAAAJ6CSA0AAAAAAICnIFIDAAAAAADgKYjUAAAAAAAAeAoiNQAA..."
        ],
        "props": [
          {
            "name": "Название свойства 1",
            "value": "Значение свойства 1"
          },
          {
            "name": "Название свойства 2",
            "value": "Значение свойства 2"
          }
        ],
        "params": {
          "width": 100,
          "height": 100,
          "length": 100,
          "dimensions_unit": "mm",
          "weight": 100,
          "weight_unit": "g"
        }
      }
    ]
  }'

Ответы

Успешный ответ

Телоapplication/json
statusboolean
messagestring
stack_idnumber
Ответ
application/json
{ "status": true, "message": "Создана очередь на обновление товаров", "stack_id": 1 }

Обновление цен товаров

Запрос

Метод обновляет цены товаров. Запрос ограничен 1000 товарами, если больше то возвращается ошибка.

При импорте массива цен prices происходит поиск типа цены по id. Если тип цены по id не найден, цена для данного товара не будет создана, в результат обработки вернется текст ошибки.
Возвращает статус добавления данных в очередь на обработку, результат обработки которого можно проверить методом import.status.

При передаче массива [prices] типы цен предварительно должны быть созданы (см. метод Импорт множественных типов цен).

Заголовки
Content-TypestringОбязательные поля
Пример: application/json
AcceptstringОбязательные поля
Пример: application/json
Api-KeystringОбязательные поля
Телоapplication/json
productsArray of objects

Массив товаров.

curl -i -X POST \
  https://api.apicore.one/distributor/v1/product.price.import \
  -H 'Accept: application/json' \
  -H 'Api-Key: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "products": [
      {
        "id": "product-1",
        "price": 1200,
        "rrp": 1590,
        "currency": "KZT",
        "prices": [
          {
            "id": "price-1",
            "price": 1110
          },
          {
            "id": "price-2",
            "price": 1010
          },
          {
            "id": "price-3",
            "price": 910
          }
        ]
      },
      {
        "id": "product-2",
        "price": 2000,
        "rrp": 2590,
        "currency": "KZT",
        "prices": [
          {
            "id": "price-1",
            "price": 1900
          },
          {
            "id": "price-2",
            "price": 1800
          }
        ]
      }
    ]
  }'

Ответы

Успешный ответ

Телоapplication/json
statusboolean
messagestring
stack_idnumber
Ответ
application/json
{ "status": true, "message": "Создана очередь на обновление цен", "stack_id": 1 }

Обновление остатков товаров

Запрос

Метод обновляет остатки товаров. Запрос ограничен 1000 товарами, если больше, то возвращается ошибка.

Если остаток равен 0 или параметр order: true, товар активен (при наличии у товара цены).

Возвращает статус добавления данных в очередь на обработку, результат обработки которого можно проверить методом import.status.

Заголовки
Content-TypestringОбязательные поля
Пример: application/json
AcceptstringОбязательные поля
Пример: application/json
Api-KeystringОбязательные поля
Телоapplication/json
productsArray of objects

Массив остатков товаров.

curl -i -X POST \
  https://api.apicore.one/distributor/v1/product.quantity.import \
  -H 'Accept: application/json' \
  -H 'Api-Key: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "products": [
      {
        "id": "product-1",
        "quantity": 0,
        "order": true
      },
      {
        "id": "product-2",
        "quantity": 20
      }
    ]
  }'

Ответы

Успешный ответ

Телоapplication/json
statusboolean
messagestring
stack_idnumber
Ответ
application/json
{ "status": true, "message": "Создана очередь на обновления остатков", "stack_id": 1 }

Обновление описания товаров

Запрос

Метод обновляет описания товаров. Запрос ограничен 100 товарами, если больше, то возвращается ошибка.

Возвращает статус добавления данных в очередь на обработку, результат обработки которого можно проверить методом import.status.

Заголовки
Content-TypestringОбязательные поля
Пример: application/json
AcceptstringОбязательные поля
Пример: application/json
Api-KeystringОбязательные поля
Телоapplication/json
productsArray of objects

Массив остатков товаров.

curl -i -X POST \
  https://api.apicore.one/distributor/v1/product.description.import \
  -H 'Accept: application/json' \
  -H 'Api-Key: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "products": [
      {
        "id": "product-1",
        "description": "Детальное описание товара 1"
      },
      {
        "id": "product-2",
        "description": "Детальное описание товара 2"
      }
    ]
  }'

Ответы

Успешный ответ

Телоapplication/json
statusboolean
messagestring
stack_idnumber
Ответ
application/json
{ "status": true, "message": "Создана очередь на обновление описаний", "stack_id": 1 }

Обновление изображений товаров

Запрос

Метод обновляет изображения товаров. Запрос ограничен 1000 товарами, если больше, то возвращается ошибка.

Возвращает статус добавления данных в очередь на обработку, результат обработки которого можно проверить методом import.status.

Заголовки
Content-TypestringОбязательные поля
Пример: application/json
AcceptstringОбязательные поля
Пример: application/json
Api-KeystringОбязательные поля
Телоapplication/json
productsArray of objects

Массив остатков товаров.

curl -i -X POST \
  https://api.apicore.one/distributor/v1/product.image.import \
  -H 'Accept: application/json' \
  -H 'Api-Key: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "products": [
      {
        "id": "product-1",
        "images": [
          "https://domain/upload/iblock/ad5/1bbfgmufy6timpyg6uskhoxko0lfpl0g.png"
        ],
        "images_base64": [
          "iVBORw0KGgoAAAANSUhEUgAABeMAAANUCAIAAAC/nKEJAAAACXBIWXMAA...",
          "iNQAAAAAAAJ6CSA0AAAAAAICnIFIDAAAAAADgKYjUAAAAAAAAeAoiNQAA..."
        ]
      },
      {
        "id": "product-1",
        "images": [
          "https://domain/upload/iblock/e9e/bwo370cewu2j8dfomb0nphm6ww9d0ico.png",
          "https://domain/upload/iblock/a6c/ac4wrae2dmdr68fxf08wicft8r1cie27.png",
          "https://domain/upload/iblock/aa8/y5d595szgwtsamzxfrhp9ou18op7mv53.png"
        ],
        "images_base64": [
          "iVBORw0KGgoAAAANSUhEUgAABeMAAANUCAIAAAC/nKEJAAAACXBIWXMAA...",
          "iNQAAAAAAAJ6CSA0AAAAAAICnIFIDAAAAAADgKYjUAAAAAAAAeAoiNQAA..."
        ]
      }
    ]
  }'

Ответы

Успешный ответ

Телоapplication/json
statusboolean
messagestring
stack_idnumber
Ответ
application/json
{ "status": true, "message": "Создана очередь на обновление остатков", "stack_id": 1 }

Обновление свойств товаров

Запрос

Метод обновляет свойства товаров. Запрос ограничен 1000 товарами, если больше, то возвращается ошибка.

Возвращает статус добавления данных в очередь на обработку, результат обработки которого можно проверить методом import.status.

Заголовки
Content-TypestringОбязательные поля
Пример: application/json
AcceptstringОбязательные поля
Пример: application/json
Api-KeystringОбязательные поля
Телоapplication/json
productsArray of objects

Массив остатков товаров

curl -i -X POST \
  https://api.apicore.one/distributor/v1/product.prop.import \
  -H 'Accept: application/json' \
  -H 'Api-Key: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "products": [
      {
        "id": "product-1",
        "props": [
          {
            "name": "Название свойства 1",
            "value": "Значение свойства 1"
          },
          {
            "name": "Название свойства 2",
            "value": "Значение свойства 2"
          }
        ]
      },
      {
        "id": "product-2",
        "props": [
          {
            "name": "Производитель",
            "value": "Samsung"
          },
          {
            "name": "Диагональ (см)",
            "value": "139"
          }
        ]
      }
    ]
  }'

Ответы

Успешный ответ

Телоapplication/json
statusboolean
messagestring
stack_idnumber
Ответ
application/json
{ "status": true, "message": "Создана очередь на обновление остатков", "stack_id": 1 }

Обновление параметров товаров

Запрос

Метод обновляет параметры товаров. Запрос ограничен 1000 товарами, если больше, то возвращается ошибка.

Возвращает статус добавления данных в очередь на обработку, результат обработки которого можно проверить методом import.status.

Телоapplication/json
catalog_codestring

Код каталога. Если не задан, параметры будут обновлены в товарах каталоге по умолчанию (обычно это “Основной каталог” с кодом “main”).

productsArray of objects

Массив параметров товаров.

curl -i -X POST \
  https://api.apicore.one/distrubutor/v1/product.param.import \
  -H 'Api-Key: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "catalog_code": "main",
    "products": [
      {
        "id": "product-1",
        "params": {
          "width": 1200,
          "height": 1300,
          "length": 1900,
          "dimensions_unit": "mm",
          "weight": 1500,
          "weight_unit": "g"
        }
      },
      {
        "id": "product-1",
        "params": {
          "width": 100,
          "height": 100,
          "length": 100,
          "dimensions_unit": "mm",
          "weight": 100,
          "weight_unit": "g"
        }
      }
    ]
  }'

Ответы

Успешный ответ

Телоapplication/json
statusboolean
messagestring
stack_idnumber
Ответ
application/json
{ "status": true, "message": "Создана очередь на обновление параметров", "stack_id": 1 }

Получение данных по карточке товара

Запрос

Метод возвращает список базовых карточек товаров дистрибьютора. Один запрос возвращает до 1000 товаров.

Чтобы получить следующие 1000 товаров добавьте в тело запроса параметр смещения offset со значением 1000. В ответе возвращается параметр total, содержащий общее количество товаров. Если offset, будет больше чем total, то будет возвращаться значение из offset с пустым массивом товаров.

В ответе возвращается параметр count, содержащий количество товаров в ответе. Для определения, нужен ли еще один запрос, чтобы получить следующие 1000 товаров, в ответе возвращается параметр next_offset.

Если он есть, можно подставлять значение из этого параметра в offset следующего запроса. Если next_offset отсутствует, значит вы получили весь список товаров.

Заголовки
Content-TypestringОбязательные поля
Пример: application/json
AcceptstringОбязательные поля
Пример: application/json
Api-KeystringОбязательные поля
Телоapplication/json
catalog_codestring

Код каталога товаров. Если не указать код каталога, то будут возвращены все товары всех ваших каталогов (при условии, что у вас их несколько).

offsetnumber

Параметр смещения для получения следующего списка товаров.

curl -i -X POST \
  https://api.apicore.one/distributor/v1/product.list \
  -H 'Accept: application/json' \
  -H 'Api-Key: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "catalog_code": "string",
    "offset": 0
  }'

Ответы

Успешный ответ

Телоapplication/json
statusboolean
productsArray of objects

Массив базовых карточек товаров дистрибьютора.

totalnumber

Общее количество товаров

countnumber

Количество товаров в текущем ответе

offsetnumber

Параметр смещения количества товаров.

next_offsetnumber

Параметр определения, нужен ли еще один запрос.

Ответ
application/json
{ "status": true, "products": [ {}, {} ], "total": 1000, "offset": 0, "next_offset": 1000 }

Получение списка кодов "Качества товара"

Запрос

Метод возвращает список значений и кодов "Качества товара".

Заголовки
Content-TypestringОбязательные поля
Пример: application/json
AcceptstringОбязательные поля
Пример: application/json
Api-KeystringОбязательные поля
curl -i -X POST \
  https://api.apicore.one/distributor/v1/product.quality.list \
  -H 'Accept: application/json' \
  -H 'Api-Key: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json'

Ответы

Успешный ответ

Телоapplication/json
statusboolean
qualityArray of objects

Массив кодов и значений "Качества товара"

countnumber

Количество элементов "Качества"

Ответ
application/json
{ "status": true, "quality": [ {}, {}, {}, {} ], "count": 4 }

Работа с типами цен

Операции

Работа со стеком импорта

Операции