Добавление заказов в ИС TopDelivery


В разделе описаны различные методы добавления заказов в ИС TopDelivery


Общие положения по добавлению заказов через upload форму и api:

webshopNumber (номер заказа ИМ)
Номер заказа должен соответствовать следующим условиям:
  • Номер заказа должен быть уникален в пространстве номеров одного конкретного ИМ
  • Номер заказа должен удовлетворять условиям следующего регулярного выражения '^[0-9a-zA-Z\-_]+$
  • Количество символов в номере заказа не должно превышать 37
serviceType (тип заказа)
На текущий момент для создания доступны 3 типа заказов (DELIVERY, INTAKE, CHANGE). Без дополнительного согласования с ТД возможно добавлять заказы только типа DELIVERY - классическая доставка из ИМ покупателю
deliveryType (тип доставки)
Возможно использование двух типов доставки:
  • COURIER - курьерская доставка, в данном случае обязательно к заполнению поле deliveryAddress, а поле pickupAddressId не заполняется
  • PICKUP - самовывоз, в данном случае обязательно к заполнению поле pickupAddressId, а поле deliveryAddress не заполняется
orderUrl (URL ИМ)
Url интернет-магазина, в котором был сделан заказ, используется при прозвоне покупателей и рассылке SMS-сообщений
Исполнитель (executorId)
Если от ТД не было дополнительных инструкций, то всегда передаем равным 0 (нулю)
desiredDateDelivery (желаемая дата доставки)
Устанавливается только для заказов, являющихся локальной доставкой
  • date (дата доставки) - дата доставки заказа, не может быть выходным или праздничным днем, должна быть строго больше текущей даты, не может быть больше 14 дней относительно текущей даты
  • bTime (верхняя граница интервала доставки) - время, после которого курьер должен привезти заказа покупателю. На текущий момент доступные интервалы доставки высылаются отдельным письмом и являются разными для различных регионов и городов. В последствии получение доступных интервалов доставки будет доступно через api
  • eTime (нижняя граница интервала доставки) - время, до которого курьер должен привезти заказ покупателю. На текущий момент доступные интервалы доставки высылаются отдельным письмом и являются разными для различных регионов и городов. В последствии получение доступных интервалов доставки будет доступно через api
deliveryAddress (адрес курьерской доставки)
Параметры адреса доставки
  1. type (тип определения адреса) - указатель по какому параметру ИС ТД следует определять регион и город доставки заказа. Доступные значения:
    • "id" - означает, что регион и город будут определяться в ИС ТД по id региона и города переданного в заказе
    • "string" - означает, что регион и город, в который будет доставляться заказ, будет определяться по строке. Написание строки региона и города должно в точности соответствовать написанию региона и города в ИС ТД.
    • "zip" - означает, что регион и город должны быть определены по индексу переданному в заказе
  2. region (регион доставки заказа) - регион, в который необходимо доставить заказ. В зависимости от типа определения адреса (type) передается либо id региона, либо строка
  3. city (город доставки заказа) - город, в котороый необходимо доставить заказ. В зависимости от типа определения адреса (type) передается либо id города, либо строка
  4. zipcode (индекс доставки) - не обязателен к заполнению. За исключением ситуации, когда тип определения адреса (type="zip") говорит о том, что регион и город доставки должны быть определены по индексу заказа
  5. inCityAddress
    • zipcode
    • address
    • floor
    • elevator
      • hasElevator (лифт) - заполняется только в случае, если выбрана услуга ПРР и на адресе присутствует лифт
        • 0 - Нет
        • 1 - Да
      • hasFreightElevator (грузовой лифт) - заполняется только в случае, если выбрана услуга ПРР и на адресе присутствует грузовой лифт
        • 0 - Нет
        • 1 - Да
pickupAddress
ID пункта самовывоза, в который необходимо доставить заказ. Обязателен к заполнению в случае, если тип доставки заказа "самовывоз"
clientInfo (Информация о покупателе)
  • fio (ФИО покупателя)
  • phone (телефон покупателя) - телефон используется для согласования даты доставки колл-центром и рассылки SMS-уведомлений покупателям. Рекомендуется передавать мобильный номер телефона в формате: +7ХХХХХХХХХХ
  • email (e-mail покупателя) - используется для рассылки уведомлений о статусе доставки, и как дополнительный метод связи с покупателем
  • comment (комментарий покупателя) - комментарий покупателя. Как правило, содержит дополнительную информацию о доставке заказа
clientCosts (параметры стоимости заказа для покупателя)
  • clientDeliveryCost (стоимость доставки для покупателя) - сумма, которую покупатель должен будет заплатить в пользу ИМ в случае полной или частичной реализации заказа
  • recalcDelivery (пересчитать стоимость доставки) - атрибут указывающий на то, что при добавлении заказа следует пересчитать стоимость доставки заказа для клиента и приравнять ее стоимость к стоимости доставки заказа для ИМ относительно тарифа в договоре между ИМ и ТД. При этом следует обратить внимание на то, что данная сумма в любом случае будет переведена в ИМ, а затем ИМу будет выставлен счет за услуги ТД, как и в случае если бы ИМ передал стоиомость доставки для клиента в clientDeliveryCost
  • discount (скидки по заказу)
    • type (тип скидки по заказу). Допустимые значения:

      SUM (сумма в рублях) - данный тип скидки применяется к заказу только в случае полной реализации заказа. В случае частичной реализации данная скидка сгорает и все товары в заказе реализуются по цене для клиента каждого товара

    • value (сумма скидки) - значение суммы скидки в рублях
services (доп. сервисы по заказу)
Блок дополнительных сервисов и инструкций по заказу, которые ИМ может запросить у ТД
  • notOpen (не вскрывать) - дает инструкцию о возможности/не_возможности вскрыть заказ покупателем до его оплаты курьеру. Допустимые значения:
    • 0 - говорит о том, что заказ можно вскрыть до его оплаты
    • 1 - говорит о том, что заказ нельзя вскрывать до оплаты
  • marking (маркировка) - указывает на то, что по заказу требуется/не_требуется маркировка на складе ТД (услуга платная). Допустимые значения:
    • 0 - говорит о том, что ИМ самостоятельно промаркировал заказ и по нему не требуется дополнительной маркировки
    • 1 - говорит о том, что ИМ самостоятельно НЕ промаркировал заказ и по нему требуется дополнительная маркировка
  • smsNotify (SMS-нотификация покупателей) - указывает на то, что по заказу требуется/не_требуется SMS-нотификация покупателей. Допустимые значения:
    • 0 - говорит о том, что ТД не должно рассылать покупателю SMS о состоянии заказа
    • 1 - говорит о том, что ТД следует рассылать SMS-нотификации покупателям о состоянии заказа
  • forChoise (доставка на выбор) - указывает возможна ли частичная реализация данного заказа. Допустимые значения:
    • 0 - говорит о том, что заказ не может быть частично реализован
    • 1 - говорит о том, что заказ может быть частично реализован
  • places (количество грузомест в заказе) - по умолчанию = 1, если в заказе более одного грузоместа, то необходимо передать данные о каждом грузоместе в методе "Создание грузоместа"
  • pack (парметры дополнительной упаковки заказа (услуга платная))
    • need (требуеся/не_требуется) - указывате на то что требуется/не_требуется дополнительная упаковка заказа. Допустимые значения:
      • 0 - дополнительная упаковка заказа не требуется
      • 1 - дополнительная упаковка заказа требуется
    • type (тип дополнительной упаковки заказ) - в случае если по заказу требуется дополнительная упаковка (need = 1), необходимо передать тип данной упаковки. Допустимые значения:
      • 1 - жесткая упаковка
      • 2 - мягкая упаковка
      • 3 - хрупкий груз
  • giftPack (параметры подарочной упаковки (услуга не предоставляется))
    • need (требуеся/не_требуется) - указывает на то, что требуется/не_требуется подарочная упаковка заказа. Допустимые значения:
      • 0 - подарочная упаковка заказа не требуется (!Важно: всегда следует передавать это значение)
      • 1 - подарочная упаковка заказа требуется
    • type (тип подарочной упаковки заказ) - в случае, если по заказу требуется подарочная упаковка (need = 1), необходимо передать тип данной упаковки. Допустимые значения:
      • 1 - женская
      • 2 - мужская
      • 3 - детская
  • needPrr (погрузо-разгрузочные работы) - это комплекс мер, направленных на поднятие разнообразных грузов с целью их погрузки или выгрузки из транспорта и дальнейший пронос по территории не далее 50 метров от транспортного средства как вручную, так и при помощи специализированной техники. Допустимые значения:
    • 0 - не нужны работы
    • 1 - нужны работы
  • needLiftingCargo (ручной подъем груза) - доставка груза непосредственно до двери получателя на этаж, начиная со второго и выше, на лифте либо по лестнице в случае отсутствия лифта. Допустимые значения:
    • 0 - не нужен подъем
    • 1 - нужен подъем
  • needDocReturn (возврат документов) - услуга обеспечивающая возврат документов на груз с подписью и печатью получателя, подтверждающих, что груз им получен. Допустимые значения:
    • 0 - не нужен возврат документов
    • 1 - нужен возврат документов
deliveryWeight (Весовые параметры доставляемого покупателю заказа) - данное поле обязательно заполняется в случае создания заказов на доставку(DELIVERY) и обмен(CHANGE)
  • weight (физический вес заказа) - физический вес заказа в граммах
  • volume (размеры заказа) - если ИМ известны размеры заказа, то они передаются в данном поле
intakeWeight (Весовые параметры получаемого от покупателя заказа) - данное поле обязательно заполняется в случае создания заказов на доставку в магазин(INTAKE) и обмен(CHANGE)
  • weight (физический вес заказа) - физический вес заказа в граммах
  • volume (размеры заказа) - если ИМ известны размеры заказа, то они передаются в данном поле
items (товары в заказе)
  • name (наименование товара) - максимальная длина поля - 42 символа
  • article (артикул товара) - максимальная длинна поля - 42 символа, должен удовлетворять регулярному выражению - '^[0-9a-zA-Z\-_]+$
  • count (количество) - количество единиц данного товара в заказе
  • declaredPrice (объявленная цена) - объявленная стоимость одной единицы товара. Относительно данной стоимости рассчитывается страховка товара
  • clientPrice (цена для клиента) - цена для клиента одной единицы товара. Один из параметров, по которому вычисляется общая сумма получаемая от покупателя. По данной цене товар реализуется в случае частичной реализации заказа
  • weight (вес) - вес одной единицы товара в граммах
  • push (тип товара) - указывает на то, является ли товар доставляемым покупателю или получаемым от покупателя. Допустимые значения:
    • 1 - говорит о том, что данный товар необходимо вручить покупателю. Хотя бы один товар такого типа должен быть в заказе типа доставка (DELIVERY) или обмен (CHANGE)
    • 0 - говорит о том, что данный товар необходимо получить от покупателя. Хотя бы один товар такого типа должен быть в заказе типа доставка в магазин (INTAKE) или обмен(CHANGE)
  • status (статус товара) - при добавлении заказа данное поле не передается
  • vat (НДС для товара) - при добавлении заказа необходимо указывать НДС для каждой позиции
  • trueMark (код товарной номенклатуры) - используется для передачи кода "Честный знак"
  • itemCode (код товара ИМ) - используется для идентификации товара в многоместном заказе
  • itemBarcode (ШК товарной позиции) - используется для передачи штрих-кода товарной позиции