v2

package
v0.0.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 30, 2025 License: MIT Imports: 12 Imported by: 0

README

Documentation

Index

Constants

View Source
const EndpointProd = "https://api.cdek.ru"
View Source
const EndpointTest = "https://api.edu.cdek.ru"

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthResponse

type AuthResponse struct {
	AccessToken string `json:"access_token"`
	TokenType   string `json:"token_type"`
	ExpiresIn   int    `json:"expires_in"`
	Scope       string `json:"scope"`
	Jti         string `json:"jti"`
}

type CalculatorTariffListRequest

type CalculatorTariffListRequest struct {
	// Date Дата и время планируемой передачи заказа. По умолчанию - текущая
	Date string `json:"date,omitempty"`
	// Type Тип заказа: 1 - "интернет-магазин", 2 - "доставка". По умолчанию - 1
	Type string `json:"type,omitempty"`
	// Валюта, в которой необходимо произвести расчет. По умолчанию - валюта договора
	Currency int `json:"currency,omitempty"`
	// Lang Локализация офиса. По умолчанию "rus"
	Lang string `url:"lang,omitempty"`
	// FromLocation Адрес отправления
	FromLocation Location `json:"from_location,omitempty"`
	// ToLocation Адрес получения
	ToLocation Location `json:"to_location"`
	// Packages Список информации по местам (упаковкам)
	Packages []Package `json:"packages"`
}

type CalculatorTariffRequest

type CalculatorTariffRequest struct {
	// Type Тип заказа: 1 - "интернет-магазин", 2 - "доставка". По умолчанию - 1
	Type int `json:"type,omitempty"`
	// 136 or 234
	TariffCode int `json:"tariff_code"`
	// FromLocation Адрес отправления
	FromLocation Location `json:"from_location,omitempty"`
	// ToLocation Адрес получения
	ToLocation Location `json:"to_location"`
	// Packages Список информации по местам (упаковкам)
	Packages []Package `json:"packages"`
}

type CalculatorTrafiffListResponse

type CalculatorTrafiffListResponse struct {
	TariffCodes []Tariff `json:"tariff_codes"`
}

type CitiesRequest

type CitiesRequest struct {
	// CountryCodes Массив кодов стран в формате  ISO_3166-1_alpha-2
	CountryCodes []string `url:"country_codes,omitempty"`
	// RegionCode Код региона СДЭК
	RegionCode int `url:"region_code,omitempty"`
	// FiasGuid Уникальный идентификатор ФИАС населенного пункта UUID
	FiasGuid string `url:"fias_guid,omitempty"`
	// PostalCode Почтовый индекс
	PostalCode string `url:"postal_code,omitempty"`
	// Code Код населенного пункта СДЭК
	Code string `url:"code,omitempty"`
	// City Название населенного пункта. Должно соответствовать полностью
	City string `url:"city,omitempty"`
	// Size Ограничение выборки результата. По умолчанию 1000
	Size int `url:"size,omitempty"`
	// Page Номер страницы выборки результата. По умолчанию 0
	Page int `url:"page,omitempty"`
	// Lang Локализация офиса. По умолчанию "rus"
	Lang string `url:"lang,omitempty"`
}

type CitiesResponse

type CitiesResponse []*City

func HelperCitiesAll

func HelperCitiesAll(ctx context.Context, c Client, input *CitiesRequest, first int) (*CitiesResponse, error)

type City

type City struct {
	Code         int      `json:"code"`
	City         string   `json:"city"`
	CountryCode  string   `json:"country_code"`
	Country      string   `json:"country"`
	Region       string   `json:"region,omitempty"`
	RegionCode   int      `json:"region_code"`
	SubRegion    string   `json:"sub_region,omitempty"`
	PostalCodes  []string `json:"postal_codes,omitempty"`
	Longitude    float64  `json:"longitude"`
	Latitude     float64  `json:"latitude"`
	TimeZone     string   `json:"time_zone"`
	KladrCode    string   `json:"kladr_code,omitempty"`
	PaymentLimit float64  `json:"payment_limit,omitempty"`
	FiasGuid     string   `json:"fias_guid,omitempty"`
}

type Client

type Client interface {
	Auth(ctx context.Context) (*AuthResponse, error)
	DeliveryPoints(ctx context.Context, input *DeliveryPointsRequest) (*DeliveryPointsResponse, error)
	Regions(ctx context.Context, input *RegionsRequest) (*RegionsResponse, error)
	Cities(ctx context.Context, input *CitiesRequest) (*CitiesResponse, error)
	CalculatorTariffList(ctx context.Context, input *CalculatorTariffListRequest) (*CalculatorTrafiffListResponse, error)
	CalculatorTariff(ctx context.Context, input *CalculatorTariffRequest) (*Tariff, error)
	OrderRegister(ctx context.Context, input *OrderRegisterRequest) (*Response, error)
	OrderDelete(ctx context.Context, uuid string) (*Response, error)
	OrderUpdate(ctx context.Context, input *OrderUpdateRequest) (*OrderUpdateResponse, error)
	OrderStatus(ctx context.Context, uuid string) (*Response, error)
}

func NewClient

func NewClient(url string, clientId string, clientSecretId string) Client

type Contact

type Contact struct {
	// ФИО
	Name   string  `json:"name"`
	Phones []Phone `json:"phones"`
}

type Cost

type Cost struct {
	// Sum Доп. сбор за доставку товаров, общая стоимость которых попадает в интервал
	Sum int `json:"sum"`
	// Threshold Порог стоимости товара (действует по условию меньше или равно) в целых единицах валюты
	Threshold int `json:"threshold"`
	// VatSum Сумма НДС
	VatSum int `json:"vat_sum,omitempty"`
	// VatRate Ставка НДС (значение - 0, 10, 20, null - нет НДС)
	VatRate int `json:"vat_rate,omitempty"`
}

type Credentials

type Credentials struct {
	ClientID     string
	ClientSecret string
}

func (*Credentials) UrlValues

func (c *Credentials) UrlValues() url.Values

type DeliveryPoint

type DeliveryPoint struct {
	Code                string                            `json:"code"`
	Name                string                            `json:"name,omitempty"`
	AddressComment      string                            `json:"address_comment,omitempty"`
	WorkTime            string                            `json:"work_time,omitempty"`
	Phones              []Phone                           `json:"phones,omitempty"`
	Email               string                            `json:"email,omitempty"`
	Note                string                            `json:"note,omitempty"`
	Type                string                            `json:"type"`
	OwnerCode           string                            `json:"owner_code"`
	TakeOnly            bool                              `json:"take_only"`
	IsHandout           bool                              `json:"is_handout,omitempty"`
	IsReception         bool                              `json:"is_reception,omitempty"`
	IsDressingRoom      bool                              `json:"is_dressing_room,omitempty"`
	HaveCashless        bool                              `json:"have_cashless"`
	HaveCash            bool                              `json:"have_cash"`
	AllowedCod          bool                              `json:"allowed_cod"`
	Site                string                            `json:"site,omitempty"`
	WorkTimeList        []DeliveryPointWorkTime           `json:"work_time_list,omitempty"`
	WeightMin           float64                           `json:"weight_min,omitempty"`
	WeightMax           float64                           `json:"weight_max,omitempty"`
	Location            DeliveryPointLocation             `json:"location"`
	Fulfillment         bool                              `json:"fulfillment"`
	NearestStation      string                            `json:"nearest_station,omitempty"`
	NearestMetroStation string                            `json:"nearest_metro_station,omitempty"`
	OfficeImageList     []DeliveryPointOfficeImage        `json:"office_image_list,omitempty"`
	WorkTimeExceptions  []DeliveryPointWorkTimeExceptions `json:"work_time_exceptions,omitempty"`
}

type DeliveryPointLocation

type DeliveryPointLocation struct {
	CountryCode string  `json:"country_code"`
	RegionCode  int     `json:"region_code"`
	Region      string  `json:"region,omitempty"`
	CityCode    int     `json:"city_code"`
	City        string  `json:"city,omitempty"`
	FiasGuid    string  `json:"fias_guid,omitempty"`
	PostalCode  string  `json:"postal_code,omitempty"`
	Longitude   float64 `json:"longitude"`
	Latitude    float64 `json:"latitude"`
	Address     string  `json:"address"`
	AddressFull string  `json:"address_full,omitempty"`
}

type DeliveryPointOfficeImage

type DeliveryPointOfficeImage struct {
	Url string `json:"url"`
}

type DeliveryPointWorkTime

type DeliveryPointWorkTime struct {
	Day  int    `json:"day"`
	Time string `json:"time"`
}

type DeliveryPointWorkTimeExceptions

type DeliveryPointWorkTimeExceptions struct {
	Date      string `json:"date"`
	IsWorking bool   `json:"is_working"`
}

type DeliveryPointsRequest

type DeliveryPointsRequest struct {
	// PostalCode Почтовый индекс города, для которого необходим список офисов
	PostalCode int `url:"postal_code,omitempty"`
	// CityCode Код населенного пункта СДЭК (метод "Список населенных пунктов")
	CityCode int `url:"city_code,omitempty"`
	// Type Тип офиса, может принимать значения: «PVZ» - склады, «POSTAMAT» - постаматы, «ALL» - все.
	Type string `url:"type,omitempty"`
	// CountryCode Код страны в формате ISO_3166-1_alpha-2 (см. “Общероссийский классификатор стран мира”)
	CountryCode string `url:"country_code,omitempty"`
	// RegionCode Код региона по базе СДЭК
	RegionCode int `url:"region_code,omitempty"`
	// HaveCashless Наличие терминала оплаты
	HaveCashless bool `url:"have_cashless,omitempty"`
	// HaveCash Есть прием наличных
	HaveCash bool `url:"have_cash,omitempty"`
	// AllowedCod Разрешен наложенный платеж
	AllowedCod bool `url:"allowed_cod,omitempty"`
	// IsDressingRoom Наличие примерочной
	IsDressingRoom bool `url:"is_dressing_room,omitempty"`
	// WeightMax Максимальный вес в кг, который может принять офис (значения больше 0 - передаются офисы, которые принимают этот вес; 0 - офисы с нулевым весом не передаются; значение не указано - все офисы)
	WeightMax bool `url:"weight_max,omitempty"`
	// WeightMin Минимальный вес в кг, который принимает офис (при переданном значении будут выводиться офисы с минимальным весом до указанного значения)
	WeightMin bool `url:"weight_min,omitempty"`
	// Lang Локализация офиса. По умолчанию "rus"
	Lang string `url:"lang,omitempty"`
	// TakeOnly Является ли офис только пунктом выдачи
	TakeOnly bool `url:"take_only,omitempty"`
	// IsHandout Является пунктом выдачи, может принимать значения
	IsHandout bool `url:"is_handout,omitempty"`
	// IsReception Есть ли в офисе приём заказов
	IsReception bool `url:"is_reception,omitempty"`
	// FiasGuid Код города ФИАС	UUID
	FiasGuid string `url:"fias_guid,omitempty"`
}

type DeliveryPointsResponse

type DeliveryPointsResponse []DeliveryPoint

type Location

type Location struct {
	// Code Код населенного пункта СДЭК (метод "Список населенных пунктов")
	Code int `json:"code,omitempty"`
	// FiasGuid Уникальный идентификатор ФИАС UUID
	FiasGuid string `json:"fias_guid,omitempty"`
	// PostalCode Почтовый индекс
	PostalCode string `json:"postal_code,omitempty"`
	// Longitude Долгота
	Longitude float64 `json:"longitude,omitempty"`
	// Latitude Широта
	Latitude float64 `json:"latitude,omitempty"`
	// CountryCode
	CountryCode string `json:"country_code,omitempty"`
	// Region Название региона
	Region string `json:"region,omitempty"`
	// RegionCode Код региона СДЭК
	RegionCode int `json:"region_code,omitempty"`
	// SubRegion Название района региона
	SubRegion string `json:"sub_region,omitempty"`
	// City Название города
	City string `json:"city,omitempty"`
	// Address Строка адреса
	Address string `json:"address"`
}

type Options

type Options struct {
	Endpoint    string
	Credentials *Credentials
}

type OrderRegisterRequest

type OrderRegisterRequest struct {
	Type int `json:"type,omitempty"`
	// 136 - не только наземная, 234 - только наземная
	TariffCode    int    `json:"tariff_code"`
	ShipmentPoint string `json:"shipment_point"`
	DeliveryPoint string `json:"delivery_point"`

	// TODO: Че это за хуйня вообще?
	DeliveryRecipientCost    Payment `json:"delivery_recipient_cost"`
	DeliveryRecipientCostAdv Cost    `json:"delivery_recipient_cost_adv"`

	Recipient Contact `json:"recipient"`

	Packages []Package `json:"packages"`

	// TODO: Maybe будет полезным
	WidgetToken string `json:"widget_token,omitempty"`
}

type OrderStatusCall

type OrderStatusCall struct {
	// FailedCalls Информация о неуспешных прозвонах (недозвонах)
	FailedCalls OrderStatusFailedCall `json:"failed_calls,omitempty"`
	// RescheduledCalls Информация о переносах прозвонов
	RescheduledCalls OrderStatusRescheduledCall `json:"rescheduled_calls,omitempty"`
}

type OrderStatusDeliveryDetail

type OrderStatusDeliveryDetail struct {
	// Date Дата доставки
	Date string `json:"date"`
	// RecipientName получатель при доставке
	RecipientName string `json:"recipient_name"`
	// PaymentSum Сумма наложенного платежа, которую взяли с получателя, в валюте страны получателя с учетом частичной доставки
	PaymentSum float64 `json:"payment_sum,omitempty"`
	// PaymentInfo Тип оплаты наложенного платежа получателем
	PaymentInfo []OrderStatusPaymentInfo `json:"payment_info,omitempty"`
	// DeliverySum Стоимость услуги доставки (по тарифу)
	DeliverySum float64 `json:"delivery_sum"`
	TotalSum    float64 `json:"total_sum"`
}

type OrderStatusDeliveryProblem

type OrderStatusDeliveryProblem struct {
	// Code Код проблемы (подробнее см. приложение 4) https://api-docs.cdek.ru/29923975.html
	Code string `json:"code,omitempty"`
	// CreateDate Дата создания проблемы
	CreateDate string `json:"create_date,omitempty"`
}

type OrderStatusEntity

type OrderStatusEntity struct {
	// Uuid Идентификатор заказа в ИС СДЭК
	Uuid string `json:"uuid"`
	// IsReturn Признак возвратного заказа: true - возвратный, false - прямой
	IsReturn bool `json:"is_return"`
	// IsReverse Признак реверсного заказа: true - реверсный, false - не реверсный
	IsReverse bool `json:"is_reverse"`
	// Type Тип заказа: 1 - "интернет-магазин" (только для договора типа "Договор с ИМ"), 2 - "доставка" (для любого договора)
	Type int `json:"type"`
	// CdekNumber Номер заказа СДЭК
	CdekNumber string `json:"cdek_number,omitempty"`
	// Number Номер заказа в ИС Клиента. При запросе информации по данному полю возможны варианты:
	// - если не передан, будет присвоен номер заказа в ИС СДЭК - uuid;
	// - если найдено больше 1, то выбирается созданный с самой последней датой.
	// Может содержать только цифры, буквы латинского алфавита или спецсимволы (формат ASCII)
	Number string `json:"number,omitempty"`
	// DeliveryMode Истинный режим заказа:
	// 1 - дверь-дверь
	// 2 - дверь-склад
	// 3 - склад-дверь
	// 4 - склад-склад
	// 6 - дверь-постамат
	// 7 - склад-постамат
	DeliveryMode string `json:"delivery_mode"`
	//// TariffCode Код тарифа
	//TariffCode int `json:"tariff_code"`
	// Comment Комментарий к заказу
	Comment string `json:"comment,omitempty"`
	// DeveloperKey Ключ разработчика
	DeveloperKey string `json:"developer_key,omitempty"`
	// ShipmentPoint Код ПВЗ СДЭК, на который будет производиться самостоятельный привоз клиентом
	ShipmentPoint string `json:"shipment_point,omitempty"`
	// DeliveryPoint Код офиса СДЭК (ПВЗ/постамат), на который будет доставлена посылка
	DeliveryPoint string `json:"delivery_point,omitempty"`
	// DateInvoice Дата инвойса. Только для международных заказов. date (yyyy-MM-dd)
	DateInvoice string `json:"date_invoice,omitempty"`
	// ShipperName Грузоотправитель. Только для международных заказов
	ShipperName string `json:"shipper_name,omitempty"`
	// ShipperAddress Адрес грузоотправителя. Только для международных заказов
	ShipperAddress string `json:"shipper_address,omitempty"`
	// DeliveryRecipientCost Доп. сбор за доставку, которую ИМ берет с получателя.
	DeliveryRecipientCost Payment `json:"delivery_recipient_cost,omitempty"`
	// DeliveryRecipientCostAdv Доп. сбор за доставку (которую ИМ берет с получателя), в зависимости от суммы заказа
	DeliveryRecipientCostAdv []Cost `json:"delivery_recipient_cost_adv,omitempty"`
	// Sender Отправитель
	Sender RecipientSender `json:"sender"`
	// Seller Реквизиты истинного продавца
	Seller Seller `json:"seller,omitempty"`
	// Recipient Получатель
	Recipient RecipientSender `json:"recipient,omitempty"`
	// FromLocation Адрес отправления. Не может использоваться одновременно с shipment_point
	FromLocation Location `json:"from_location"`
	// ToLocation Адрес получения. Не может использоваться одновременно с delivery_point
	ToLocation Location `json:"to_location"`
	// ItemsCostCurrency TODO
	ItemsCostCurrency string `json:"items_cost_currency"`
	// RecipientCurrency TODO
	RecipientCurrency string `json:"recipient_currency"`
	// Services Дополнительные услуги
	Services []Service `json:"services,omitempty"`
	// Packages Список информации по местам (упаковкам)
	Packages []Package `json:"packages"`
	// DeliveryProblem Проблемы доставки, с которыми столкнулся курьер при доставке заказа "до двери"
	DeliveryProblem []OrderStatusDeliveryProblem `json:"delivery_problem,omitempty"`
	// DeliveryDetail Информация о вручении
	DeliveryDetail OrderStatusDeliveryDetail `json:"delivery_detail,omitempty"`
	// TransactedPayment Признак того, что по заказу была получена информация о переводе наложенного платежа интернет-магазину
	TransactedPayment bool `json:"transacted_payment,omitempty"`
	// Statuses Список статусов по заказу, отсортированных по дате и времени
	Statuses []OrderStatusInfo `json:"statuses"`
	// Calls Информация о прозвонах получателя
	Calls []OrderStatusCall `json:"calls,omitempty"`
	// @todo ticket SD-735298 - this is not documented but exists in example response https://api-docs.cdek.ru/29923975.html
	DeliveryDate   string `json:"delivery_date,omitempty"`
	ShopSellerName string `json:"shop_seller_name,omitempty"`
}

type OrderStatusFailedCall

type OrderStatusFailedCall struct {
	// DateTime Дата и время создания недозвона	datetime
	DateTime string `json:"date_time"`
	// ReasonCode Причина недозвона (подробнее см. приложение 5)
	ReasonCode int `json:"reason_code"`
}

type OrderStatusInfo

type OrderStatusInfo struct {
	// Code Код статуса (подробнее см. приложение 1)
	Code string `json:"code"`
	// Name Название статуса
	Name string `json:"name"`
	// DateTime Дата и время установки статуса (формат yyyy-MM-dd'T'HH:mm:ssZ)
	DateTime string `json:"date_time"`
	// ReasonCode Дополнительный код статуса (подробнее см. приложение 2)
	ReasonCode string `json:"reason_code,omitempty"`
	// City Наименование места возникновения статуса
	City string `json:"city"`
}

type OrderStatusPaymentInfo

type OrderStatusPaymentInfo struct {
	// Type Тип оплаты: CARD - картой, CASH - наличными
	Type string `json:"type"`
	// Sum Сумма в валюте страны получателя
	Sum float64 `json:"sum"`
	// DeliverySum Стоимость услуги доставки (по тарифу)
	DeliverySum float64 `json:"delivery_sum"`
	// TotalSum Итоговая стоимость заказа
	TotalSum float64 `json:"total_sum"`
}

type OrderStatusRescheduledCall

type OrderStatusRescheduledCall struct {
	// DateTime Дата и время создания переноса прозвона
	DateTime string `json:"date_time"`
	// DateNext Дата, на которую согласован повторный прозвон
	DateNext string `json:"date_next"`
	// TimeNext Время, на которое согласован повторный прозвон
	TimeNext string `json:"time_next"`
	// Comment Комментарий к переносу прозвона
	Comment string `json:"comment,omitempty"`
}

type OrderUpdateRequest

type OrderUpdateRequest struct {
	// UUID Идентификатор заказа в ИС СДЭК, который нужно изменить (да, если не заполнен cdek_number)
	UUID string `json:"uuid,omitempty"`
	// CdekNumber Номер заказа СДЭК, который нужно изменить (да, если не заполнен uuid)
	CdekNumber string `json:"cdek_number,omitempty"`
	// Код тарифа (режимы старого и нового тарифа должны совпадать)
	TariffCode int `json:"tariff_code,omitempty"`
	// Comment Комментарий к заказу
	Comment string `json:"comment"`
	// ShipmentPoint Код ПВЗ СДЭК, на который будет производится забор отправления либо самостоятельный привоз клиентом. Не может использоваться одновременно с from_location
	ShipmentPoint string `json:"shipment_point,omitempty"`
	// DeliveryPoint Код ПВЗ СДЭК, на который будет доставлена посылка. Не может использоваться одновременно с to_location
	DeliveryPoint string `json:"delivery_point,omitempty"`
	// OrderDeliveryRecipientCost Доп. сбор за доставку, которую ИМ берет с получателя. Валюта сбора должна совпадать с валютой наложенного платежа
	DeliveryRecipientCost Payment `json:"delivery_recipient_cost"`
	// DeliveryRecipientCostAdv Доп. сбор за доставку (которую ИМ берет с получателя) в зависимости от суммы заказа. Только для заказов "интернет-магазин". Возможно указать несколько порогов.
	DeliveryRecipientCostAdv Cost `json:"delivery_recipient_cost_adv"`
	// Sender Отправитель. Обязателен если:
	// нет, если заказ типа "интернет-магазин"
	// да, если заказ типа "доставка"
	Sender RecipientSender `json:"sender,omitempty"`
	// Seller Реквизиты истинного продавца
	Seller Seller `json:"seller,omitempty"`
	// Recipient Получатель
	Recipient RecipientSender `json:"recipient,omitempty"`
	// ToLocation Адрес получения. Не может использоваться одновременно с delivery_point
	ToLocation Location `json:"to_location"`
	// FromLocation Адрес отправления. Не может использоваться одновременно с shipment_point
	FromLocation Location `json:"from_location"`
	// Services Дополнительные услуги
	Services []Service `json:"services,omitempty"`
	// Packages Список информации по местам (упаковкам)
	Packages []Package `json:"packages,omitempty"`
}

type OrderUpdateResponse

type OrderUpdateResponse struct {
	Entity   ResponseEntity     `json:"entity,omitempty"`
	Requests []ResponseRequests `json:"requests"`
}

type Package

type Package struct {
	// Number Номер упаковки (можно использовать порядковый номер упаковки заказа или номер заказа), уникален в пределах заказа. Идентификатор заказа в ИС Клиента
	Number string `json:"number"`

	// Weight Общий вес (в граммах)
	Weight int `json:"weight"`

	// Высота (в сантиметрах). Поле обязательно если:
	// если общий вес >=100 гр
	Height int `json:"height,omitempty"`
	// Длина (в сантиметрах). Поле обязательно если:
	// если общий вес >=100 гр
	Length int `json:"length,omitempty"`
	// Ширина (в сантиметрах). Поле обязательно если:
	// если общий вес >=100 гр
	Width int `json:"width,omitempty"`

	// Items Позиции товаров в упаковке. Только для заказов "интернет-магазин". Максимум 126 уникальных позиций в заказе. Общее количество товаров в заказе может быть от 1 до 10000
	Items []PackageItem `json:"items,omitempty"`
}

type PackageItem

type PackageItem struct {
	// Name Наименование товара (может также содержать описание товара: размер, цвет)
	Name string `json:"name"`

	// WareKey Идентификатор/артикул товара. Артикул товара может содержать только символы: [A-z А-я 0-9 ! @ " # № $ ; % ^ : & ? * () _ - + = ? < > , .{ } [ ] \ / , пробел]
	WareKey string `json:"ware_key"`

	// TODO: Нахуя ты?
	Marking string `json:"marking,omitempty"`

	Payment Payment `json:"payment"`

	// Cost Объявленная стоимость товара (за единицу товара в валюте взаиморасчетов, значение >=0). С данного значения рассчитывается страховка
	Cost float64 `json:"cost"`
	// Amount Количество единиц товара (в штуках). Количество одного товара в заказе может быть от 1 до 999
	Amount int `json:"amount"`
	// Weight Вес (за единицу товара, в граммах)
	Weight int `json:"weight"`
}

type Payment

type Payment struct {
	// Всегда 0
	Value int `json:"value"`

	// TODO: Нахуя вы нужны?
	// VatSum Сумма НДС
	VatSum int `json:"vat_sum,omitempty"`
	// VatRate Ставка НДС (значение - 0, 10, 20, null - нет НДС)
	VatRate int `json:"vat_rate,omitempty"`
}

type Phone

type Phone struct {
	Number string `json:"number"`
}

type RecipientSender

type RecipientSender struct {
	// Name нет, если заказ типа "интернет-магазин"; да, если заказ типа "доставка"
	Name string `json:"name,omitempty"`
	// Company Название компании. нет, если заказ типа "интернет-магазин"; да, если заказ типа "доставка"
	Company string `json:"company,omitempty"`
	// Email Эл. адрес. нет, если заказ типа "интернет-магазин"; да, если заказ типа "доставка"
	Email string `json:"email,omitempty"`
	// PassportSeries Серия паспорта
	PassportSeries string `json:"passport_series,omitempty"`
	// PassportNumber Номер паспорта
	PassportNumber string `json:"passport_number,omitempty"`
	// PassportDateOfIssue Дата выдачи паспорта
	PassportDateOfIssue string `json:"passport_date_of_issue,omitempty"`
	// PassportOrganization Орган выдачи паспорта
	PassportOrganization string `json:"passport_organization,omitempty"`
	// Tin ИНН Может содержать 10, либо 12 символов
	Tin string `json:"tin,omitempty"`
	// PassportDateOfBirth Дата рождения (yyyy-MM-dd)
	PassportDateOfBirth string `json:"passport_date_of_birth,omitempty"`
	// PassportRequirementsSatisfied Требования по паспортным данным удовлетворены (актуально для
	// международных заказов):
	// true - паспортные данные собраны или не требуются
	// false - паспортные данные требуются и не собраны
	PassportRequirementsSatisfied bool `json:"passport_requirements_satisfied,omitempty"`
	// Phones Список телефонов, Не более 10 номеров
	Phones []Phone `json:"phones,omitempty"`
}

type Region

type Region struct {
	CountryCode string `json:"country_code"`
	Region      string `json:"region"`
	Country     string `json:"country"`
	RegionCode  int    `json:"region_code,omitempty"`
}

type RegionsRequest

type RegionsRequest struct {
	// CountryCodes Массив кодов стран в формате  ISO_3166-1_alpha-2
	CountryCodes []string `url:"country_codes,omitempty"`
	// Size Ограничение выборки результата. По умолчанию 1000
	Size int `url:"size,omitempty"`
	// Page Номер страницы выборки результата. По умолчанию 0
	Page int `url:"page,omitempty"`
	// Lang Локализация офиса. По умолчанию "rus"
	Lang string `url:"lang,omitempty"`
}

type RegionsResponse

type RegionsResponse []Region

type RespErrors

type RespErrors struct {
	Errors []struct {
		Code    string `json:"code"`
		Message string `json:"message"`
	} `json:"errors,omitempty"`
}

type Response

type Response struct {
	Entity          ResponseEntity           `json:"entity,omitempty"`
	Requests        []ResponseRequests       `json:"requests"`
	RelatedEntities *ResponseRelatedEntities `json:"related_entities,omitempty"`
}

type ResponseEntity

type ResponseEntity struct {
	// Uuid Идентификатор заказа в ИС СДЭК
	Uuid string `json:"uuid,omitempty"`
	// Comment комментарий
	Comment string `json:"comment,omitempty"`
}

ResponseEntity Информация о заказе

type ResponseErr

type ResponseErr struct {
	// Message Описание ошибки
	Message string `json:"message"`
	// Code string Код ошибки
	Code string `json:"code"`
}

type ResponseRelatedEntities

type ResponseRelatedEntities struct {
	// Type Тип связанной сущности. Может принимать значения: waybill - квитанция к заказу, barcode - ШК места к заказу
	Type string `json:"type"`
	// Uuid Идентификатор сущности, связанной с заказом
	Uuid string `json:"uuid"`
	// Url Ссылка на скачивание печатной формы в статусе "Сформирован", только для type = waybill, barcode
	Url string `json:"url,omitempty"`
	// CdekNumber Номер заказа СДЭК. Может возвращаться для return_order, direct_order, reverse_order
	CdekNumber string `json:"cdek_number,omitempty"`
	// Date Дата доставки, согласованная с получателем. Только для типа delivery
	Date string `json:"date,omitempty"`
	// TimeFrom Время начала ожидания курьера (согласованное с получателем). Только для типа delivery
	TimeFrom string `json:"time_from,omitempty"`
	// Date Время окончания ожидания курьера (согласованное с получателем). Только для типа delivery
	TimeTo string `json:"time_to,omitempty"`
}

ResponseRelatedEntities Связанные сущности (если в запросе был передан корректный print)

type ResponseRequests

type ResponseRequests struct {
	// RequestUuid Идентификатор запроса в ИС СДЭК
	RequestUuid string `json:"request_uuid,omitempty"`
	// Type Тип запроса. Может принимать значения: CREATE, UPDATE, DELETE, AUTH, GET
	Type string `json:"type"`
	// State Текущее состояние запроса. Может принимать значения:
	// ACCEPTED - пройдена предварительная валидация и запрос принят
	// WAITING - запрос ожидает обработки (зависит от выполнения другого запроса)
	// SUCCESSFUL - запрос обработан успешно
	// INVALID - запрос обработался с ошибкой
	State string `json:"state"`
	// DateTime Дата и время установки текущего состояния запроса (формат yyyy-MM-dd'T'HH:mm:ssZ)
	DateTime string `json:"date_time"`
	// Errors Ошибки, возникшие в ходе выполнения запроса
	Errors []ResponseErr `json:"errors,omitempty"`
	// Warnings Предупреждения, возникшие в ходе выполнения запроса
	Warnings []ResponseErr `json:"warnings,omitempty"`
}

ResponseRequests Информация о запросе над заказом

type Seller

type Seller struct {
	// Name Наименование истинного продавца. Обязателен если заполнен inn
	Name string `json:"name,omitempty"`
	// INN ИНН истинного продавца. Может содержать 10, либо 12 символов
	INN string `json:"inn,omitempty"`
	// Phone Телефон истинного продавца. Обязателен если заполнен inn
	Phone string `json:"phone,omitempty"`
	// OwnershipForm Код формы собственности (подробнее см. приложение 2). Обязателен если заполнен inn
	OwnershipForm int `json:"ownership_form,omitempty"`
	// Address Адрес истинного продавца. Используется при печати инвойсов для отображения адреса настоящего
	// продавца товара, либо торгового названия. Только для международных заказов "интернет-магазин".
	// Обязателен если заказ - международный
	Address string `json:"address,omitempty"`
}

type Service

type Service struct {
	// Code Тип дополнительной услуги (подробнее см. приложение 3)
	Code string `json:"code"`
	// Parameter Параметр дополнительной услуги:
	// количество для услуг
	// PACKAGE_1, COURIER_PACKAGE_A2, SECURE_PACKAGE_A2, SECURE_PACKAGE_A3, SECURE_PACKAGE_A4,
	// SECURE_PACKAGE_A5, CARTON_BOX_XS, CARTON_BOX_S, CARTON_BOX_M, CARTON_BOX_L, CARTON_BOX_500GR,
	// CARTON_BOX_1KG, CARTON_BOX_2KG, CARTON_BOX_3KG, CARTON_BOX_5KG, CARTON_BOX_10KG, CARTON_BOX_15KG,
	// CARTON_BOX_20KG, CARTON_BOX_30KG, CARTON_FILLER (для всех типов заказа)
	// объявленная стоимость заказа для услуги INSURANCE (только для заказов с типом "доставка")
	// длина для услуг BUBBLE_WRAP, WASTE_PAPER (для всех типов заказа)
	// номер телефона для услуги SMS
	// код фотопроекта для услуги PHOTO_DOCUMENT
	Parameter string `json:"parameter,omitempty"`
}

type Tariff

type Tariff struct {
	TariffCode        int     `json:"tariff_code"`
	TariffName        string  `json:"tariff_name"`
	TariffDescription string  `json:"tariff_description"`
	DeliveryMode      int     `json:"delivery_mode"`
	DeliverySum       float64 `json:"delivery_sum"`
	PeriodMin         int     `json:"period_min"`
	PeriodMax         int     `json:"period_max"`
	CalendarMin       int     `json:"calendar_min"`
	CalendarMax       int     `json:"calendar_max"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL