Skip to end of metadata
Go to start of metadata


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

  • БИН/ИИН организации
  • ИИН пользователя
  • электронная почта указанная при регистрации (посмотреть можно в разделе «Личный кабинет» - «Персональные данные»

Структура XML для API обновления прайс-листов по товарам


Параметр

Атрибут

Описание

1

catalog


Элемент, определяющий прайс - лист, в элементе указывается

dateАтрибут элемента catalog, в котором указывается дата/время формирования прайс - листа в формате (ГГГГ.ММ.ДД ЧЧ:ММ)

1.1

offers


Элемент, содержащий массив торговых предложений магазина, каждое из которых описывается объектом offer

1.1.1

offer


Элемент, содержит в себе описание торгового предложения на товар

skuАтрибут элемента offer. Артикул товара у поставщика. Длина значения артикула не должна превышать 25 символов. Значения артикула должно быть уникально в рамках одного прайс - листа

1.1.1.1

deactivate


Элемент позволяет деактивировать действующее торговое предложение для товара по артикулу (значение элемента true – означает необходимость деактивации, false – означает, что торговое предложение будет обновлено и активно)

1.1.1.2

brand


Элемент содержит название производителя товара

1.1.1.3

model


Элемент содержит название модели товара из каталога поставщика

1.1.1.4

allcity


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

1.1.1.4.1

pricenonds


Элемент содержит цену единицы товара без НДС

1.1.1.4.2

price


Элемент содержит цену единицы товара с НДС, не заполняется для поставщиков, не являющихся плательщиками НДС

1.1.1.4.3


availabilities



Элемент содержит массив точек продаж

storeidАтрибут элемента availabilities, содержащий в себе уникальный идентификатор точки продаж. Настройка storeid осуществляется в профиле организации, тексте идентификаторе используется условное обозначение «POS» с добавлением уникального сквозного номера
availability

Атрибут элемента availabilities. Принимает значение «yes» при наличии товара в точке продаж, принимает значение «no» при отсутствии товара в точке продаж

1.1.1.5

cityprices


Элемент содержит цены и признак наличия в точках продаж, применяется в случае если необходимо установить отдельную цену для конкретного населенного пункта

1.1.1.5.1

cityprice


Элемент содержит цены за единицу товара и точки продаж в конкретном населенном пункте

cityIdАтрибут элемента cityprice. Устанавливает город и определяется по государственному справочнику КАТО (классификатор административно-территориальных объектов, актуальный справочник размещается на сайте https://stat.gov.kz/important/classifier)

1.1.1.5.1.1

prcienonds


Элемент содержит цену единицы товара без НДС

1.1.1.5.1.2

price


Элемент содержит цену единицы товара с НДС, не заполняется для поставщиков, не являющихся плательщиками НДС

1.1.1.5.1.3

availabilities


Элемент содержит массив точек продаж

storeidАтрибут элемента availabilities, содержащий в себе уникальный идентификатор точки продаж. Настройка storeid осуществляется в профиле организации, тексте идентификаторе используется условное обозначение «POS» с добавлением уникального сквозного номера
availabilityАтрибут элемента availabilities. Принимает значение «yes» при наличии товара в точке продаж, принимает значение «no» при отсутствии товара в точке продаж

1.1.1.6

warranty1nonds


Расширенная гарантия 1 год

1.1.1.7

warranty2nonds


Расширенная гарантия 2 года

1.1.1.8

warranty3nonds


Расширенная гарантия 3 года

*Все цены указываются в тенге. В случае если цена является вещественным числом, то в качестве разделителя между целой и дробной частью применяется «точка» (Например 250.42).

Пример запроса

URL:  https://omarket.kz/api/offer

Тип запроса - POST

Заголовки (Headers):

Content-Type: application/xml

authorization-token: <токен пользователя из профиля>

Тело запроса
<?xml version='1.0' standalone='yes'?>
<catalog date="2019-11-01 17:22">
    <offers>
        <offer sku="SKU-Bertoni-Magic-arom-46000">
            <deactivate>false</deactivate>
            <brand>Bertoni Magic</brand>
            <model>Автокресло Bertoni Magic Premium 9-36 кг Blue 1842</model>
            <allcity>
                <pricenonds>46000</pricenonds>
                <price>51520</price>
                <availabilities>
                    <availability storeId="POS1339" availability="yes"/>
                    <availability storeId="POS1340" availability="no"/>
                    <availability storeId="POS1341" availability="yes"/>
                </availabilities>
            </allcity>
            <cityprices>
                <cityprice cityId="351000000">
                    <pricenonds>45000</pricenonds>
                    <price>50400</price>
                    <availabilities>
                        <availability storeId="POS1337" availability="yes"/>
                        <availability storeId="POS1338" availability="no"/>
                    </availabilities>
                </cityprice>
            </cityprices>
            <warranty1nonds>1000</warranty1nonds>
            <warranty2nonds>500</warranty2nonds>
            <warranty3nonds>200</warranty3nonds>
        </offer>
			  <offer sku="SKU-Happy-Baby-arom-54000">
            <deactivate>false</deactivate>
            <brand>Happy Baby</brand>
            <model>Автокресло Happy Baby Mustang Gray</model>
            <allcity>
                <pricenonds>54000</pricenonds>
                <price>60480</price>
                <availabilities>
                    <availability storeId="POS1337" availability="yes"/>
                    <availability storeId="POS1338" availability="no"/>
                    <availability storeId="POS1339" availability="yes"/>
					<availability storeId="POS1340" availability="no"/>
                </availabilities>
            </allcity>
            <cityprices>
                <cityprice cityId="750000000">
                    <pricenonds>55000</pricenonds>
                    <price>61600</price>
                    <availabilities>
                        <availability storeId="POS1341" availability="yes"/>
                    </availabilities>
                </cityprice>
            </cityprices>
            <warranty1nonds>1000</warranty1nonds>
            <warranty2nonds>500</warranty2nonds>
            <warranty3nonds>200</warranty3nonds>
        </offer>
    </offers>
</catalog>


Ответ от сервиса приходит в формате JSON:

Параметр

Описание

1

order_id

Идентификатор заявки на обновление, зарегистрированной в «О МАРКЕТ»

2statusСтатус обработки. 1 - успешно принят 4 - существуют ошибки
3
error_message
Заполняется в случае возникновения ошибок.

 

Пример успешного JSON ответа.
{
  "order_id": 87,
  "status": 1
}
Пример JSON ответа с ошибками
{
  "order_id": 93,
  "status": 4,
  "error_message": "Ранее был уже запрос с точно таким же набором данных"
}


Поведение обработчика при загрузки прайс-листа


Номер порядка обработки

Описание действия

1

В случае, если будет обнаружено несколько элементов <offer> с одинаковым значением атрибута sku, в таком случае будет ошибка загрузки прайс - листа

2В случае если будет обнаружен элемент <diactivate> со значение "true", в этом случае полностью все торговое предложение во всех регионах и точках продаж будет деактивировано
3Обязательно наличие и заполненность элементов <brand>,  <model>, <warranty1nonds>,  <warranty2nonds>, <warranty3nonds> в противном случае полностью весь <offer> будет проигнорирован обработчиком
4В случае, если нет у торгового предложения расширенной гарантии, необходимо в элементах <warranty1nonds>,  <warranty2nonds>, <warranty3nonds> в качестве значения указать 0
5При обработке каждого элемента <offer> в первую очередь идет поиск вложенного элемента <cityprices>. Если такой элемент найден, начинается обработка его содержимого
5.1

Если в элементе <cityprice> не будет найден атрибут cityId или значение этого атрибута будет пустое или же будет неверное указано код КАТО, то полностью этот элемент <cityprice> игнорируется обработчиком

5.2

Обязательно проверяется наличие и заполненность элемента <pricenonds>

5.3

Если у поставщика в профиле выставлен признак "Плательщик НДС", в таком случае обязательно проверяется наличие и заполненность элемента <price> 

5.4

Обязательно проверяется наличие элемента <availabilities> и его наполненность. В случае его отсутствия полностью весь <cityprice> игнорируется обработчиком

5.5

Если атрибут storeId у элемента <availability> имеет пустое значение или неверное значение, то данный  элемент<availability> полностью игнорируется обработчиком

5.6

Если не найден атрибут availability у элемента <availability> или имеет пустое значение или отличное от "yes", "no", то данный <availability> полностью игнорируется обработчиком

5.7

Обязательно нужно перечислить все точки продаж поставщика в указанном cityId, в противном случае обработчик посчитает, что в неуказанной точке продаж наличие отсутствует

5.8

Если будет указано, что во всех точках продаж поставщика в указанном cityId атрибут availability будет иметь значение "no", в этом случае обработчиком полностью игнорируется весь элемент <cityprice>

6

После обработки элемента <cityprices> идет переход к обработке элемента <allcity>

6.1Обязательно проверяется наличие и заполненность элемента <pricenonds>
6.2

Если у поставщика в профиле выставлен признак "Плательщик НДС", в таком случае обязательно проверяется наличие и заполненность элемента <price>

6.3

Обязательно проверяется наличие элемента <availabilities> и его наполненность. В случае его отсутствия полностью весь <allcity> игнорируется обработчиком

6.4

Если атрибут storeId у элемента <availability> имеет пустое значение или неверное значение, то данный  элемент<availability> полностью игнорируется обработчиком

6.5

Если не найден атрибут availability у элемента <availability> или имеет пустое значение или отличное от "yes", "no", то данный <availability> полностью игнорируется обработчиком

6.6

Обязательно нужно перечислить все точки продаж поставщика, за исключением тех, которые были указаны в элементе <cityprice>, в противном случае обработчик посчитает, что в неуказанной точке продаж товара нет в наличии


Статусы HTTP ответов:

Номер статуса

Описание

1

201

Прайс - лист успешно был принят системой и поставлен на обработку




  • No labels