Closed god1dog closed 4 years ago
Hello!
Can you please elaborate how exactly you want to use these fields you marked as nonexistent in the API? It'll be easier to solve this issue with more information.
Also, about deliveryType
field - we wil add it in the next release.
Thanks!
По описанию https://help.retailcrm.ru/delivery_data_ru.html эти поля я могу только получить, но изменять я их могу только из интерфейса но мне нужно полное взаимодействие с API locked bool Не отправлять данные в службу доставки selfPickup bool Самопривоз на терминал payerType string Плательщик за доставку (sender, receiver)
Плюс в общем типе OrderDeliveryData отсутствует множество полей для dpd доставки, на данный момент для меня актуальны поля pickuppointId, tariff
Для конкретных доставок структуры в библиотеке не заводились и вероятнее всего не будут, только общие поля. В целом можно самостоятельно в рамках вашего проекта добавить недостающие структуры и использовать их совместно с библиотекой, относительно доступности полей на редактирование - https://help.retailcrm.ru/delivery_data_ru.html, то тут pickuppointId доступен для редактирования, tariffName только на чтение
payerType в библиотеке есть, selfPickup и locked рассмотрим на добавление
Сейчас отправляю через ваш клиент свою структуру доставки. На счет структуры конкретной доставки вижу что вы отказались заводить тип для dpd давайте хоть изменим OrderDeliveryData на interface{} (решение конечно костыльное) но как с данными доставки взаимодействовать если это будет отдельное подключение то и смысла в методе createOrder() нет с точки зрения консистентности данных
Просто заметил что у вас дока сырая по dpd.
В новой версии проблема решена. Тип поля с данными доставки не поменялся, но добавлена возможность добавления любых кастомных полей в это поле. Базовые данные доставки находятся в структуре OrderDeliveryDataBasic
, которая включена в OrderDeliveryData
. В OrderDeliveryData
добавлено поле AdditionalFields
с типом map[string]interface{}
. Все значения, добавленные в AdditionalData
в результате маршалинга окажутся в данных доставки.
Пример:
OrderDeliveryData{
OrderDeliveryDataBasic: OrderDeliveryDataBasic{
TrackNumber: "track",
},
AdditionalFields: map[string]interface{}{
"locked": true,
},
}
после маршалинга превратится в JSON следующего вида
{
"locked": true,
"trackNumber": "track"
}
Это работает и в обратную сторону, т.е. демаршалинг JSON'а выше даст ровно ту же структуру, из которой получился данный JSON.
I can not fill in the fields for dpd delivery: Fields locked, selfPickup, payerType not in api and golang types Field deliveryType not in golang types