Calc: Расчет стоимости доставки
Функция рассчитывает стоимость доставки по переданным параметрам.
В методе используется динамический формат с Fields и Tables, где параметры передаются в виде трио значений Key/Value/ValueType.
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| login | string | Логин пользователя | |
| password | string | Пароль | |
| parameters | Element | Дополнительные параметры расчёта (флаги, настройки) | |
| data | Element | Основные данные для расчёта (маршрут, груз) |
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| countingresults | boolean | Возвращать детализацию расчёта | |
| ipaddress | string | IP-адрес клиента (для логирования) |
Структура data используется для указания сразу данных одного или нескольких расчетов, указанных в виде списка структур Element. Структура data должна содержать свойство Key, заполненное значением Destinations. Сами параметры передаются списком через свойство List, которое не может быть пустым.
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| Key | string |
Заголовок информации о расчете, всегда заполнено «Destination» |
|
| List | Element | Список параметров расчета |
Список возможных сохраняемых реквизитов заказа в Fields:
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| SenderGeography | string |
GUID (Globally Unique Identifier) географии отправления (получение объектов географии см. GetReferenceData: география), или код географии клиента, если клиент пользуется собственной географией. Либо код ФИАС, для этого необходимо передать строку «fias-» и необходисмый код ФИАС. Для поиска по индексу: «postcode-», затем код страны (цифровой, либо Альфа-2, либо Альфа-3) и индекс для поиска – пример «postcode-KZA00A0A0». Если код страны не вводится, по умолчанию поиск осуществляется по России. Пример для России: «postcode-RU-990500» или «postcode-990500» (данный вариант поиска может возвращать не точную информацию). |
|
| RecipientGeography | string |
GUID (Globally Unique Identifier) географии получения(получение объектов географии см. GetReferenceData: география), или код географии клиента, если клиент пользуется собственной географией. Либо код ФИАС, для этого необходимо передать строку «fias-» и необходисмый код ФИАС. Для поиска по индексу: «postcode-», затем код страны (цифровой, либо Альфа-2, либо Альфа-3) и индекс для поиска – пример «postcode-KZA00A0A0». Если код страны не вводится, по умолчанию поиск осуществляется по России. Пример для России: «postcode-RU-990500» или «postcode-990500» (данный вариант поиска может возвращать не точную информацию). |
|
| Urgency | string | GUID (Globally Unique Identifier) срочности доставки (получение списка срочностей см. GetReferenceData: срочности) | |
| TypeOfCargo | string | GUID (Globally Unique Identifier) вида груза (получение списка видов грузов см. GetReferenceData: виды грузов) | |
| Weight | float | Вес груза в кг | |
| Qty | float | Количество мест, целое неотрицательное число | |
| VolumeWeight | float | Объемный вес, кг | |
| Volume | float | Объем | |
| DeliveryType | string | Тип значения NameOfdeliverytype вида доставки (получение списка видов доставки см. GetReferenceData: DeliveryType - Виды доставок). Если вид доставки влияет на тариф и не передается в запросе, тогда возвращается тариф от вида доставки, установленного по умолчанию в договоре | |
| DeclaredValueRate | decimal | Объявленная стоимость груза | |
| InsuranceRate | decimal | Страховая стоимость груза | |
| AdditionalServices | string | GUID услуги из нашей системы | |
| Countingresults | boolean | Признак суммирования услуги и дополнительной услуги |
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| Service | string | GUID (Globally Unique Identifier) дополнительной услуги |
Если во время запроса произошла ошибка, информация о ней будет отражена в свойстве Properties (см. метод GetReferenceData: ErrorCodes — Коды ошибок).
При успешном выполнении метода вернутся данные в виде
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| Key | string | Заголовок информации о расчете, всегда заполнено Destination | |
| List | Element | Информация по тарифу |
Содержит данные о рассчитанном маршруте доставки
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| Key | string | Заголовок информации о параметре в List, например Destination или Tariff | |
| Fields | Element | Параметры маршрута (география, вес, тип груза и т.д.) | |
| List | Element | Содержит данные о рассчитанном тарифе |
Отображает информацию направления доставки. Каждый параметр представлен отдельным блоком Fields, содержащим
- Key - название параметра (варианты в таблице ниже)
- Value - значение этого параметра
- ValueType - тип значения этого параметра
Таблица параметров (возможные значения Key):
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| SenderGeography | string (GUID) | География отправителя | |
| RecipientGeography | string (GUID) | География получателя | |
| Urgency | string (GUID) | Срочность доставки | |
| TypeOfCargo | string (GUID) | Тип груза | |
| Weight | decimal | Вес груза (кг) | |
| Qty | decimal | Количество грузовых мест |
Отображает информацию тарифа доставки. Каждый параметр представлен отдельным блоком Fields, содержащим
- Key - название параметра (варианты в таблице ниже)
- Value - значение этого параметра
- ValueType - тип значения этого параметра
Таблица параметров (возможные значения Key):
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| Total | decimal | Итоговая стоимость доставки | |
| Currency | string | Идентификатор валюты | |
| CurrencyName | string | Краткое наименование валюты | |
| Service | string | Название услуги / тарифа | |
| AdditionalService | boolean | Является ли дополнительной услугой | |
| Urgency | string | Идентификатор срочности | |
| UrgencyName | string | Название срочности | |
| UrgencyDescription | string | Описание условий срочности | |
| MinPeriod | decimal | Минимальный срок доставки (дни) | |
| MaxPeriod | decimal | Максимальный срок доставки (дни) | |
| COD | boolean | Доступен ли наложенный платёж | |
| Return | boolean | Доступен ли возврат груза | |
| Agent | boolean | Является ли тариф агентским |
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header/>
<soap:Body>
<m:Calc
xmlns:m="http://www.cargo3.ru">
<m:login>test</m:login>
<m:password>2016</m:password>
<m:data>
<m:Key>Destinations</m:Key>
<m:List>
<m:Key>Destination</m:Key>
<m:Fields>
<m:Key>SenderGeography</m:Key>
<m:Value> cf862f56-442d-11dc-9497-0015170f8c09</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>RecipientGeography</m:Key>
<m:Value> cf862f56-442d-11dc-9497-0015170f8c09</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>TypeOfCargo</m:Key>
<m:Value>4aab1fc6-fc2b-473a-8728-58bcd4ff79ba</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Weight</m:Key>
<m:Value>1</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Qty</m:Key>
<m:Value>1</m:Value>
<m:ValueType>int</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>DeclaredValueRate</m:Key>
<m:Value>1000</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>CountOnlyAddServices</m:Key>
<m:Value>true</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
<m:Tables>
<m:Key>AdditionalServices</m:Key>
<m:List>
<m:Key>Объявленная стоимость</m:Key>
<m:Value>6da21fe7-4f13-11dc-bda1-0015170f8c09</m:Value>
<m:ValueType>string</m:ValueType>
</m:List>
</m:Tables>
</m:List>
</m:data>
<m:parameters
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<m:Key>Parameters</m:Key>
<m:List>
<m:Key>countingresults</m:Key>
<m:Value>true</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:List>
<m:List>
<m:Key>ipaddress</m:Key>
<m:Value xsi:type="xs:string">10.0.0.1</m:Value>
<m:ValueType>string</m:ValueType>
</m:List>
</m:parameters>
</m:Calc>
</soap:Body>
</soap:Envelope> <soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Body>
<m:CalcResponse
xmlns:m="http://www.cargo3.ru">
<m:return
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<m:Key>Calc</m:Key>
<m:List>
<m:Key>Destination</m:Key>
<m:Fields>
<m:Key>SenderGeography</m:Key>
<m:Value xsi:type="xs:string">cf862f56-442d-11dc-9497-0015170f8c09</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>RecipientGeography</m:Key>
<m:Value xsi:type="xs:string">8a3e044b-4429-11dc-9497-0015170f8c09</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Urgency</m:Key>
<m:Value xsi:type="xs:string">18c4f208-458b-11dc-9497-0015170f8c09</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>TypeOfCargo</m:Key>
<m:Value xsi:type="xs:string">4aab1fc6-fc2b-473a-8728-58bcd4ff79ba</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Weight</m:Key>
<m:Value xsi:type="xs:decimal">1</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Qty</m:Key>
<m:Value xsi:type="xs:decimal">1</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
<m:List>
<m:Key>Tariff</m:Key>
<m:Value xsi:type="xs:string">6da21fe8-4f13-11dc-bda1-0015170f8c09</m:Value>
<m:Fields>
<m:Key>Total</m:Key>
<m:Value xsi:type="xs:decimal">1114.92</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Currency</m:Key>
<m:Value xsi:type="xs:string">ff3f7c38-4430-11dc-9497-0015170f8c09</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>CurrencyName</m:Key>
<m:Value xsi:type="xs:string">RUR</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Service</m:Key>
<m:Value xsi:type="xs:string">Россия доставка</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>AdditionalService</m:Key>
<m:Value xsi:type="xs:boolean">false</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Urgency</m:Key>
<m:Value xsi:type="xs:string">18c4f208-458b-11dc-9497-0015170f8c09</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>UrgencyName</m:Key>
<m:Value xsi:type="xs:string">Сверхсрочная</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>MinPeriod</m:Key>
<m:Value xsi:type="xs:decimal">3</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>MaxPeriod</m:Key>
<m:Value xsi:type="xs:decimal">6</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>UrgencyDescription</m:Key>
<m:Value xsi:type="xs:string">Услуга производится по дополнительному согласованию.</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>COD</m:Key>
<m:Value xsi:type="xs:boolean">false</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Return</m:Key>
<m:Value xsi:type="xs:boolean">false</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Agent</m:Key>
<m:Value xsi:type="xs:boolean">true</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
</m:List>
</m:List>
</m:return>
</m:CalcResponse>
</soap:Body>
</soap:Envelope> 