Инструменты пользователя

Инструменты сайта


json_api

Это старая версия документа!


Процесс синхронизации данных интернет-магазина с программой учета

Отправка данных на портал

JSON-данные передаются в теле запроса POST в REST API. Ключевым аспектом является указание заголовка Content-Type: application/json, который сообщает серверу, что данные имеют формат JSON.

В случае успешного выполнения запроса возвращается JSON объект. Убедитесь, что сервер принял данные, в противном случае выполнение запроса необходимо повторить.

Обновление данных является инкрементным и требует соблюдения хронологической последовательности и неразрывности. Порядок действий: - Запросить дату актуальности последней синхронизации API-методом syncInfo - Сформировать json-документ с выборкой по времени объектов, начиная с даты последней синхронизации по текущую - Отправить запрос с сформированный JSON-документа с помощью API-метода

Запросы к сайту желательно отправлять со статического IP адреса, который будет внесен в белый список в интернет-магазине. В противном случае, потребуется предавторизация.

/api/v2/login

Запрос создает access токен, предназначенный для работы с API. Полученный токен необходимо отправлять в заголовке Authorization: token accessToken

Запрос

АргументОписание
usernameИмя пользователя
keyAPI-ключ

Ответ

АргументОписание
access_tokenТокен доступа к API
Пример
{
  username: "super"
  key: "7d61d77d61d77d61d77d61d77d61d7"
}

/api/v2/sync.info

Получает информацию о текущей очереди. Результат возвращается в формате JSON.

Запрос

АргументОписание
typeТип синхронизируемого файла. product - основные данные товара, detail – описание товара и фото, price - цены и наличие, order - изменения заказов

Ответ

АргументОписаниеТипПо-умолчанию
codeКод ответаКод ответа
statusТекстовое описание результата запросаstring
queueДлина текущей очередиint
date_lastДата последней синхронизации сервераdatetime dd.mm.YYYY HH:mm:ss
Пример
{
  type: "product"
}

/api/v2/order.get

Получает json документ с данными заказов. Формат возвращаемых данных см. /api/v2/order.sync

Запрос

АргументОписание
date_changeВремя изменения заказа
limitНеобязательный. Количество элементов. Если указан, данные будут выводиться постранично с заданным количеством
startНеобязательный. Если указан аргумент limit, номер начального элемента. Обычно кратен значению limit
Пример
{
  date_change: "2025-09-03T10:25:43+03:00"
}

/api/v2/reference.get

Получает json документ с данными заказов. Формат возвращаемых данных см. /api/v2/reference.sync

Запрос

АргументОписание
nameИмя справочника (country, fgroup, diseases, manufacturer, mnn, packing, tradename)
limitНеобязательный. Количество элементов. Если указан, данные будут выводиться постранично с заданным количеством
startНеобязательный. Если указан аргумент limit, номер начального элемента. Обычно кратен значению limit
Пример
{
  name: "country"
}

/api/v2/user.get

Получает json документ с данными заказов. Формат возвращаемых данных см. /api/v2/user.sync

Запрос

АргументОписание
date_changeВремя изменения заказа
limitНеобязательный. Количество элементов. Если указан, данные будут выводиться постранично с заданным количеством
startНеобязательный. Если указан аргумент limit, номер начального элемента. Обычно кратен значению limit
Пример
{
  date_change: "2025-09-03T10:25:43+03:00",
}

/api/v2/category.sync

Накопительная выгрузка изменений категорий за период

date_startДата начала среза данных
date_endДата окончания среза данных
categories[]Массив категорий
categories[] aidid категории в программе учета
categories[] titleнаименование категории
categories[] removeнеобязательный атрибут. Пометка категории на удаление
categories[] aparent_idid родительской категории в программе учета
{
 date_start: "2025-09-03T10:25:43+03:00",
 date_end: "2025-09-03T18:25:43+03:00",
 categories: [
  {
   aid: "10",
   aparent_id: "0",
   title: "Товары"
  },
  {
   aid: "11",
   aparent_id: "10",
   title: "Товар 1"
  },
  {
   aid: "12", 
   remove: 1,
   title: "Удаляемая категория"
 }
 ]
}

/api/v2/product.sync

Накопительная выгрузка изменений товаров за период

date_startДата начала среза данных
date_endДата окончания среза данных
products[]Массив товаров
products[] aidid товара в программе учета
products[] aparent_idid родительской категории в программе учета
products[] removeнеобязательный атрибут. Пометка товара на удаление
products[] titleнаименование товара
products[] barcodeШтрихкод товара
products[] vatСтавка НДС
products[] vendorid производителя из справочника
products[] countryid страны из справочника
products[] packingid упаковки из справочника
products[] fgroup[]массив id фармакологических групп из справочника
products[] flags[]Флаги-метки товара текстовые короткие слова/словосочетания
products[] prescriptрецептурный препарат 0 или 1
products[] veterinaryветеринарный препарат 0 или 1
products[] trade_nameid торгового наименования из справочника
products[] substanceid действующего вещества
{
 date_start: "2025-09-03T10:25:43+03:00",
 date_end: "2025-09-03T18:25:43+03:00",
 products: [
   {
    aid: "10",
    aparent_id: "126", 
    title: "5-НОК табл по 50 мг №50 Сандоз",
    barcode: "7613421035662",
    vat: "VAT_10",
    vendor: "278",
    country: "000000021", 
    packing: "23",
    fgroup: ["0000001021","0000001022"],
    flags: ["Акция","Новинка"],
    prescript: 1,
    veterinary: 1,
    trade_name: "81",
    substance: "78"
   },
   {
    aid: "376699",
    title: "Удаляемый товар",
    remove: "1"
   }
 ]
}

/api/v2/detail.sync

Накопительная выгрузка описания товаров за период

date_startДата начала среза данных
date_endДата окончания среза данных
products[]Массив товаров
products[] aidid товара в программе учета
products[] diseases[]id заболеваний из справочника
products[] syns[]id синонимов
products[] analogs[]id аналогов
products[] relatives[]id связанных товаров
products[] trade_nameid торгового наименования
products[] descПолное описание товара
products[] prescribeПоказания к применению
products[] dosingСпособ применения
products[] precautionПротивопоказания
products[] storeCndУсловия хранения
products[] promo-descПромо описание товара
products[] images[]Массив изображений товара
categories[]Массив категорий
categories[] aidid категории в программе учета
categories[] images[]Массив изображений товара
{
  date_start: "2025-09-03T10:25:43+03:00",
  date_end: "2025-09-03T18:25:43+03:00",
  products: [
    {
      aid: "376647",
      diseases:[124,125],
      syns:[512,516],
      analogs:[712,718],
      relatives:[812,818],
      trade_name: "785",
      desc: "<...>Описание<...>",
      prescribe: "<...>Показания к применению<...>",
      dosing: "<...>Способ применения<...>",
      precaution: "<...>Противопоказания<...>",
      storeCnd: "<...>Условия хранения<...>",
      promo_desc: "Промоописание товара длинное может быть",
      images:["AP-0000-3766647.jpg", "AP-0000-3766647-1.jpg"]
    }
  ],
  categories: [
    {
      aid: "37",
      images: ["AP-0000-3766647.jpg", "AP-0000-3766647-1.jpg"]   
    }
  ]
}

/api/v2/price.sync

Накопительная выгрузка изменений цен и остатков за период

date_startДата начала среза данных
date_endДата окончания среза данных
lots[]Массив лотов
lots[] aidуникальный id лота(партии) в программе учета
lots[] aproduct_idуникальный id товара в программе учета GUID в 1c
lots[] expireСрок годности партии
lots[] shortКороткий срок годности 0 или 1
lots[] prices[]Массив цен
lots[] prices[] aidid группы цен
lots[] prices[] valueцена
lots[] stocks[]Массив складов.
lots[] stocks[] aidid склада/магазина цен
lots[] stocks[] qtyколичество на складе. Если товар закончился в период выгрузки - необходимо указать 0
{
 date_start: "2025-09-03T10:25:43+03:00",
 date_end: "2025-09-03T18:25:43+03:00",
 lots: [
  {
   aid: "572345",
   aparent_id: "865",
   expire: "2023-09-30T00:00:00",
   short: 1,
   prices: [
    {
      aid: 0,
      value: 720,
    },
    {
      aid: 1,
      value: 720,
    },
    {
      aid: 2,
      value: 602.81,
    },
   ]
   stocks: [
    {
      aid: 834,
      qty: 9,
    }, 
    {
      aid: 838,
      qty: 8,
    },   
    {
      aid: 836,
      qty: 0,
    },   
   ]
  },
 ],
}

/api/v2/user.sync

Данные пользователей

date_startДата начала среза данных
date_endДата окончания среза данных
users[]массив пользователей
users[] aidid пользователя в программе учета
users[] phoneТелефон
users[] emailE-mail
users[] cardНомер карты
users[] card_typeGUID типа карты
users[] firstnameИмя
users[] lastnameФамилия
{
  date_start: "2025-09-03T10:25:43+03:00",
  date_end: "2025-09-03T18:25:43+03:00",
  users: [
    aid: "722552",
    email: "customer@gmail.com",
    phone: "79081234567",
    card: "0122222",
    card_type: "1",
    firstname: "Кирилл",
    lastname: "Сорокин",
  ]
}

/api/v2/order.sync

Накопительная выгрузка изменений по заказам за период

Идентификатор aid назначается программой и считается приоритетным после первого назначения. Если aid не указан приоритетным считается id заказа, присваиваемый сайтом. После двусторонней синхронизации заказ должен содержать оба идентификатора.

Пользователя c флагом registered установленным в 0 считать гостем. Данный пользователь не имеет постоянного идентификатора и не должен быть регистрирован в качестве контрагента.

date_startДата начала среза данных
date_endДата окончания среза данных
orders[]массив заказов
orders[] aidуникальный id заказа в программе учета
orders[] idуникальный id заказа на сайте
orders[] numberномер заказа пользователя
orders[] statusid статуса заказа 1 Новый / Заказ создан Клиентом, 2 Заказ собирается / сборка в аптеке, перемещения в аптеку, 3 Заказ в аптеке / готов к выдаче клиенту, 4 Заказ отменен / отменен клиентом, 5 Заказ получен / выкуплен клиентом
orders[] source Источник заказа: сайт 0, программа учета: 1
orders[] createdДата создания заказа
orders[] changedДата последнего изменения заказа
orders[] user aidуникальный id клиента в программе учета
orders[] user idуникальный id клиента на сайте
orders[] user registeredклиент зарегистрирован либо гость
orders[] user cardномер карты клиента
orders[] user card_typeтип карты клиента
orders[] user firstnameимя клиента
orders[] user lastnameфамилия клиента
orders[] user phoneтелефон клиента
orders[] user emailemail клиента
orders[] shipping idid типа доставки
orders[] shipping stock_aidid пункта выдачи в программе учета
orders[] shipping typeтип доставки stock (самовывоз) или delivery (доставка)
orders[] shipping addressАдрес доставки
orders[] payment_idid способа оплаты в программе учета
orders[] prices shippingстоимость доставки
orders[] prices totalсумма заказа
orders[] prices couponсумма скидки по купону
orders[] prices balanceсумма внесенной оплаты по заказу
orders[] purchases[] aidid товара в программе учета
orders[] purchases[] shortпризнак короткого срока годности
orders[] purchases[] expireмаксимальный срок годности товара
orders[] purchases[] priceцена единицы товара
orders[] purchases[] qtyколичество единиц товара
orders[] noteкомментарий пользователя к заказу
{
  date_start: "2025-09-03T10:25:43+03:00",
  date_end: "2025-09-03T18:25:43+03:00",
  orders: [
    aid: "722552",
    id: 722,
    number: 206,
    status: 1,
    source: 0,
    created: "2021-09-30T10:05:00+03:00",
    changed: "2021-09-30T10:05:00+03:00",
    user: {
      aid: "435534",
      id: 456,
      registered: 0,
      card: "76760000000000086", 
      card_type: "2"
      firstname: "Кирилл",
      lastname: "Сорокин",
      phone: "79683500000",
      email: "info@web152.ru",
    },
    shipping: {
      stock_aid: "834",
      id: 30,
      type: "delivery",
      address: "603000 г. Нижний Новгород, Володарского"
    }
    payment_id: 1,
    prices: {
      shipping: "0",
      coupon: "-12.5",
      balance: "0",
      total: "257",
    },
    purchases: [
      {
        aid: "3790984",
        expire: "2021-09-30T10:05:00+03:00",
        short: 1,
        price: 1000,
        qty:1
      },
      {
        aid: "3790985",
        expire: "2021-09-30T10:05:00+03:00",
        short: 0,
        price: 459,
        qty:1
      },
    ]
    note: "Комментарий"
  ]
}

/api/v2/reference.sync

Справочные данные

date_startДата начала среза данных
date_endДата окончания среза данных
books[]Массив справочников
books[] nameИмя справочника
books[] references[]Массив значений справочников
books[] references[] idid значения справочника на сайте
books[] references[] aidid значения справочника в программе учета
books[] references[] valueзначение
{
  date_start: "2025-09-03T10:25:43+03:00",
  date_end: "2025-09-03T18:25:43+03:00",
  books: [
  {
    name: "vendor",
    references: [
      {
        id: "678",
        aid: "7959",
        value: "Плантэкстракт ГмбХ и Ко.КГ/Мадаус ГмбХ"
      },
      {
        id: "556",
        aid: "7960",
        value: "Рекитт Бенкизер Хелскэар/ЭсЭсЭл Мануфакт"
      }
    ]
  }
}

/api/v2/stock.sync

Справочные данные по складам.

date_startДата начала среза данных
date_endДата окончания среза данных
cities[]Описание городов
cities[] aidid города в программе учета
cities[] titleНазвание города
cities[] stocks[]Массив пункта выдачи
cities[] stocks[] aidid пункта выдачи в программе учета
cities[] stocks[] titleНазвание пункта выдачи
cities[] stocks[] addressадрес пункта выдачи для отображения в товаре/заказе на сайте
cities[] stocks[] address_shortадрес пункта выдачи в сокращенном виде для СМС о заказе
cities[] stocks[] phoneтелефон пункта выдачи
cities[] stocks[] latГеографическая широта
cities[] stocks[] lonГеографическая долгота
cities[] stocks[] schedule_descрежим работы пункта выдачи
cities[] stocks[] dropshippingПризнак удаленного склада (0 - нет, 1 - да)
{
  date_start: "2025-09-03T10:25:43+03:00",
  date_end: "2025-09-03T18:25:43+03:00",
  cities: [
  {
   aid: "52",
   title: "Нижний Новгород",
   stocks: [
    {
     aid: "830",
     title: ЕАптека Московское шоссе ост Березовская",
     address: "603079, г.Нижний Новгород, Московское шоссе, 179",
     address_short: "Н.Новгород,Московское ш.,179",
     phone: "78312155141",
     schedule_desc: "ПН-ПТ 8:00 – 20:00; СБ-ВС 9:00 – 20:00",
     lat: "56.296348",
     lon: "43.924713",
    },
    {
     aid: "831",
     title: "ЕАптека Терешковой",
     address: "603081, г.Нижний Новгород, ул. Терешковой, 6а",
     phone: "78312155140",
     lat: "56.296348",
     lon: "43.924713",
     schedule_desc: "ПН-ПТ 8:00 – 20:00; СБ-ВС 9:00 – 20:00",
    }
   ]
  },
 ]
}

Коды ответов

Любой отличный от 1 код ответа следует рассматривать как ошибку запроса.

Код ответаРасшифровка
1Запрос успешно исполнен
10Некорректный запрос
30Не удалось разобрать JSON файл. Файл имеет некорректную структуру или был поврежден при загрузке
40Дата текущей синхронизации указана некорректно
41Дата последней синхронизации сервера не совпадает с датой последней синхронизации файла
json_api.1741732623.txt.gz · Последние изменения: 2025/03/12 01:37 — gear