Изменения

Перейти к навигации Перейти к поиску

API Offers

1186 байт добавлено, 00:11, 10 августа 2021
Нет описания правки
==Описание==
===Батчевый импорт предложений===
Данный метод предназначен для оптового импорта предложений (batch) в систему с ограничением в 1000 предложенийв одном запросе.
Первый запрос должен отправляться с параметром <code>start=1</code>
<code>https://food.smartsatu.com/api/offers/import?start=1</code>
После В ответ первого запроса вы получите транзакционный идентификатор очереди вида:
{
'id': '98db89147d6cd0018417b71'
В атрибуте 'comment' в JSON-ответе описываются причины ошибок.
Для того чтобы осуществить батчевую '''загрузку персональных прайсов (для конкретной торговой точки)''' необходимо указать в get параметрах запроса <code>?store_id</code> (id торговой точки):
<code>https://food.smartsatu.com/api/offers/import?start=1&end=1&delete=1&store_id=80</code>
Рекомендации по батчевой загрузке предложений:
Рекомендуем прогружать по 500-1000 предложений в одном чанкезапросе. Т.к. если прайс-лист до 1000 предложений, то его можно прогрузить одним чанкомзапросом. Для этого в запросе на батчевую загрузку устанавливаются флаги старта и окончания очереди: offers/import?start=1&end=1. Прайс-лист может быть больше чем 1000 штук. Так, если прайс-лист содержит больше 1000 предложений, то открывается очередь с первым чанком запросом с первой 1000 предложений: offers/import?start=1. В ответе вернется id очереди. С последующими чанками запросами нужно будет слать id очереди в get параметрах offers/import?id=XXXX. C последним чанком большого прайс-листа нужно будет послать флаг окончания offers/import?id=XXXX&end=1. '''NB!''' Допустим нужно загрузить 5000 предложений. Мы отправляем первый запрос с 1000 предложений и получаем в ответ идентификатор очереди. Дальше посылаем еще 4 запроса с 1000 предложений в каждом запросе и идентификатором очереди. При этом в последнем запросе нужно отправить параметр end=1, который зыкрывает очередь и является тригером для обработчика на загрузку предложений в систему. Если очередь не будет закрыта, то она не будет обработана и загружена в систему.
Чтобы удалить старый прайс-лист, нужно послать флаг удаления с первым или последним чанком offers/import?id=XXXX&delete=1. Если это маленький прайсзагружаемый одним запросом, то в get параметрах указываем все три флага (start, end, delete) offers/import?start=1&end=1&delete=1
В предложениях доступна загрузка '''Акций''' с типом '''"Выгодная цена"''' - фактическая скидка на товар. Для этого в предложении необходимо указать первоначальную цену Price 1 (для магазина), Price 2 (для ХоРеКа) и конечную промо-цену Price 5.
Для временно отсутствующего у поставщика товара в поле <code>quantity</code> предложения указывается значение <code>0</code> (ноль). Торговым точкам товар будет отображен с пометкой "нет в наличии". Добавить в корзину и заказать такой товар торговые точки не смогут.
ВАЖНО: значение Quantum (количество товара в фасовке/упаковке) обязательно должно быть кратно значению minQuantity (минимальное количество данного товара, которое ТТ обязано купить для оформления заказа). Если значения не пройдут валидацию, то добавится только значение Quantum.
Например:
Поставщик выставил предложение на товар по цене 1100 рубза единицу. Фасовка (quantum) осуществляется по 10 шт. Минимальное количество в заказе (minQuantity) - 30 шт. Для успешного заказа торговая точка первоначально добавляет в корзину 30 шт товара (сумма заказа составит 1100 * 30), далее добавление в корзину будет происходить с шагом в 10 шт.
===Получение списка предложений===
| style="font-weight:bold;" | name
| Название предложения
| stringvarchar(255)
| product1
|-
| style="font-weight:bold;" | sku
| Штрих-код предложения
| stringvarchar(255)
| 9876786897623
|-
| style="font-weight:bold;" | store_id
| Идентификационный номер магазина ('''оставлять значение null - в url указан store_id. Иначе произойдет дублирование предложений''')
| string
| null
|-
| style="font-weight:bold;" | unit
| Единица измерения
| stringvarchar(50)| nullшт / кг
|-
| style="font-weight:bold;" | manufacturer
| Производитель
| stringvarchar(255)
| null
|-
| style="font-weight:bold;" | quantity
| Количество
| stringsmallint(6)| 1/ 0
|-
| style="font-weight:bold;" | expires_at
| Годен до
| stringint(10)| null/ unixtimestamp
|-
| style="font-weight:bold;" | price_1
| Цена 1 (для магазинов)
| stringdecimal(19,2)| 555float / null
|-
| style="font-weight:bold;" | price_2
| Цена 2 (для HoReCa)
| stringdecimal(19,2)| float / null
|-
| style="font-weight:bold;" | price_3
| Цена 3 (для рынков)
| stringdecimal(19,2)| float / null
|-
| style="font-weight:bold;" | price_4
| Цена 4
| stringdecimal(19,2)| float / null
|-
| style="font-weight:bold;" | price_5
| Выгодная цена
| stringdecimal(19,2)| float / null
|-
| style="font-weight:bold;" | price_without_vat
| Цена без НДС(РФ)| stringdecimal(19,2)| float / null
|-
| style="font-weight:bold;" | promotion_price_without_vat
| Промо цена без НДС(РФ)| stringdecimal(19,2)| float / null
|-
| style="font-weight:bold;" | delivery_days
| Дни доставки* '''На данный момент данный параметр не используется! Вся функциональность по настройке дней доставки регулируется через WEB-интерфейс'''
| stringvarchar(127)| 1,2,3,4,5,6,0null
|-
| style="font-weight:bold;" | unique_code
| Уникальный код предложения'''Сервисное поле поставщика. Возвращается в заказе. GUID для 1С.'''| stringvarchar(255)| string / null
|-
| style="font-weight:bold;" | quantum
| Квантпоставки| stringdecimal(19,3)| 0,5.000
|-
| style="font-weight:bold;" | isImport
| Импортировать предложение (да/нет)
| boolean
| 1/ 0
|-
| style="font-weight:bold;" | minQuantity
| Минимальное количество товара для заказа
| stringdecimal(19,3)| 5.500000
|-
| style="font-weight:bold;" | status
"promotion_price_without_vat": null,
"delivery_days": "1,2,3,4,5,6,0",
"unique_code": null,//тут может быть GUID "quantum": 05.5000,
"isImport": "1",
"minQuantity": 5.500000,
"status": 1
}

Навигация