Documentation
¶
Index ¶
- Constants
- type ActionState
- type ApiError
- type BadRequestError
- type BranchInfo
- type CalcOperationReceipt
- type CalcOperationRequest
- type CalcOperationResponse
- type Cashier
- type CashierExternal
- type Client
- func (u *Client) CustomerFindByCode(code string, params *FindCustomerParams) (*FindCustomerResponse, *resty.Response, error)
- func (u *Client) CustomerFindByPhone(phone string, params *FindCustomerParams) (*FindCustomerResponse, *resty.Response, error)
- func (u *Client) CustomerFindByUID(uid string, params *FindCustomerParams) (*FindCustomerResponse, *resty.Response, error)
- func (u *Client) CustomerGetByID(id int64) (*CustomerDetail, *resty.Response, error)
- func (u *Client) CustomerGetList(maxValue int, offset int) (*List[Customer], *resty.Response, error)
- func (u *Client) CustomerGetTags(id int64) (*CustomerTagList, *resty.Response, error)
- func (u *Client) CustomerSetTags(id int64, tagsReq SetCustomerTagsRequest) (*List[TagModel], *resty.Response, error)
- func (u *Client) GoodsOrderAddItems(id int64, updatedOrder *UpdateGoodsOrderRequest[GoodsOrderItemNew]) (*GoodsOrderDetailed, *resty.Response, error)
- func (u *Client) GoodsOrderComplete(id int64) (*CompleteGoodsOrder, *resty.Response, error)
- func (u *Client) GoodsOrderGenerateCode(id int64) (string, *resty.Response, error)
- func (u *Client) GoodsOrderGetByID(id int64) (*GoodsOrderDetailed, *resty.Response, error)
- func (u *Client) GoodsOrderUpdateItems(id int64, updatedOrder *UpdateGoodsOrderRequest[GoodsOrderItemUpdate]) (*GoodsOrderDetailed, *resty.Response, error)
- func (u *Client) OperationCalc(operation *CalcOperationRequest) (*CalcOperationResponse, *resty.Response, error)
- func (u *Client) OperationCreate(operation *CreateOperationRequest) (*CreateOperationResponse, *resty.Response, error)
- func (u *Client) OperationGetByID(id int64) (*Operation, *resty.Response, error)
- func (u *Client) OperationGetList(maxValue int, cursor string) (*OperationList, *resty.Response, error)
- func (u *Client) OperationRefund(id int64, partialAmount float64) (*Operation, *resty.Response, error)
- func (u *Client) OperationReward(operation RewardOperationRequest) (*RewardOperationResponse, *resty.Response, error)
- func (u *Client) SettingsGet() (*Settings, *resty.Response, error)
- type CompleteGoodsOrder
- type CreateOperationRequest
- type CreateOperationResponse
- type Customer
- type CustomerDetail
- type CustomerShortInfo
- type CustomerTagList
- type Delivery
- type DeliveryCase
- type DeliveryType
- type DiscountPolicy
- type ErrorCode
- type FindCustomerParams
- type FindCustomerResponse
- type Gender
- type GoodOrderItem
- type GoodsItemType
- type GoodsMeasurement
- type GoodsOrderDetailed
- type GoodsOrderItemNew
- type GoodsOrderItemUpdate
- type GoodsOrderState
- type List
- type LoyaltyProgramSettings
- type MembershipTier
- type OnlinePayment
- type Operation
- type OperationList
- type Origin
- type Participant
- type ParticipantShort
- type PaymentMethod
- type PaymentMethodType
- type PaymentProviderType
- type PurchaseDetail
- type Receipt
- type RefundOperationRequest
- type RewardOperationRequest
- type RewardOperationResponse
- type SetCustomerTagsRequest
- type Settings
- type TagModel
- type UpdateGoodsOrderRequest
Constants ¶
const BaseUri = "https://api.uds.app/partner/v2/"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ActionState ¶
type ActionState string
ActionState Статус операции.
const ( ActionStateNormal ActionState = "NORMAL" ActionStateCanceled ActionState = "CANCELED" ActionStateReversal ActionState = "REVERSAL" )
type ApiError ¶
type ApiError struct { ErrorCode ErrorCode `json:"errorCode"` // Код ошибки. Message string `json:"message"` // Описание ошибки. Errors []BadRequestError `json:"errors"` // Присутствует, если ErrorCode = ErrBadRequest }
type BadRequestError ¶
type BranchInfo ¶
Branch Информация о филиале.
type CalcOperationReceipt ¶
type CalcOperationReceipt struct { Total float64 `json:"total"` // Общая сумма чека до применения скидок в денежных единицах. SkipLoyaltyTotal *float64 `json:"skipLoyaltyTotal,omitempty"` // Часть суммы счета, на которую не начисляется кешбэк и на которую не распространяется скидка (в денежных единицах). UnredeemableTotal *float64 `json:"unredeemableTotal,omitempty"` // Часть суммы счета, которую нельзя погасить баллами. Points *float64 `json:"points,omitempty"` // Количество бонусных баллов, которое клиент хочет списать. По умолчанию максимально доступное число баллов. }
func (*CalcOperationReceipt) SetPoints ¶
func (r *CalcOperationReceipt) SetPoints(value float64) *CalcOperationReceipt
func (*CalcOperationReceipt) SetSkipLoyaltyTotal ¶
func (r *CalcOperationReceipt) SetSkipLoyaltyTotal(value float64) *CalcOperationReceipt
func (*CalcOperationReceipt) SetUnredeemableTotal ¶
func (r *CalcOperationReceipt) SetUnredeemableTotal(value float64) *CalcOperationReceipt
type CalcOperationRequest ¶
type CalcOperationRequest struct { Code *string `json:"code,omitempty"` // Код на оплату. Participant *ParticipantShort `json:"participant,omitempty"` // Информация о клиенте. Receipt CalcOperationReceipt `json:"receipt"` }
CalcOperationRequest Объект запроса на расчёт информации по операции
func (*CalcOperationRequest) SetCode ¶
func (o *CalcOperationRequest) SetCode(code string) *CalcOperationRequest
type CalcOperationResponse ¶
type CalcOperationResponse struct { User CustomerShortInfo `json:"user"` // Информация о клиенте. Purchase PurchaseDetail `json:"purchase"` // Информация об операции. }
CalcOperationResponse Объект ответа на запрос по расчёту информации по операции
type CashierExternal ¶
type CashierExternal struct { ExternalId string `json:"externalId"` // Внешний идентификатор сотрудника. Name *string `json:"name,omitempty"` // Имя сотрудника. }
CashierExternal Информация о сотруднике.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client Структура клиента UDS
func (*Client) CustomerFindByCode ¶
func (u *Client) CustomerFindByCode(code string, params *FindCustomerParams) (*FindCustomerResponse, *resty.Response, error)
CustomerFindByCode Поиск клиента по коду из приложения params может быть nil https://docs.uds.app/#tag/Customers/paths/~1customers~1find/get
func (*Client) CustomerFindByPhone ¶
func (u *Client) CustomerFindByPhone(phone string, params *FindCustomerParams) (*FindCustomerResponse, *resty.Response, error)
CustomerFindByPhone Поиск клиента по номеру телефона в формате +79998887766 params может быть nil https://docs.uds.app/#tag/Customers/paths/~1customers~1find/get
func (*Client) CustomerFindByUID ¶
func (u *Client) CustomerFindByUID(uid string, params *FindCustomerParams) (*FindCustomerResponse, *resty.Response, error)
CustomerFindByUID Поиск клиента по uid params может быть nil https://docs.uds.app/#tag/Customers/paths/~1customers~1find/get
func (*Client) CustomerGetByID ¶
func (u *Client) CustomerGetByID(id int64) (*CustomerDetail, *resty.Response, error)
CustomerGetByID Получение информации о клиенте по ID https://docs.uds.app/#tag/Customers/paths/~1customers~1{id}/get
func (*Client) CustomerGetList ¶
func (u *Client) CustomerGetList(maxValue int, offset int) (*List[Customer], *resty.Response, error)
CustomerGetList Получить список клиентов https://docs.uds.app/#tag/Customers/paths/~1customers/get
func (*Client) CustomerGetTags ¶
func (u *Client) CustomerGetTags(id int64) (*CustomerTagList, *resty.Response, error)
CustomerGetTags Получение списка тегов клиента https://docs.uds.app/#tag/Customers/paths/~1customers~1{id}~1tags/get
func (*Client) CustomerSetTags ¶
func (u *Client) CustomerSetTags(id int64, tagsReq SetCustomerTagsRequest) (*List[TagModel], *resty.Response, error)
CustomerSetTags Установка тегов клиенту https://docs.uds.app/#tag/Customers/paths/~1customers~1{id}~1tags/get
func (*Client) GoodsOrderAddItems ¶
func (u *Client) GoodsOrderAddItems(id int64, updatedOrder *UpdateGoodsOrderRequest[GoodsOrderItemNew]) (*GoodsOrderDetailed, *resty.Response, error)
GoodsOrderAddItems Добавить товары в заказ https://docs.uds.app/#tag/Goods-Order/paths/~1goods-orders~1{id}/put
func (*Client) GoodsOrderComplete ¶
func (u *Client) GoodsOrderComplete(id int64) (*CompleteGoodsOrder, *resty.Response, error)
GoodsOrderComplete Завершает заказ товара с идентификатором и создает транзакцию https://docs.uds.app/#tag/Goods-Order/paths/~1goods-orders~1{id}~1complete/post
func (*Client) GoodsOrderGenerateCode ¶
GoodsOrderGenerateCode Сгенерировать код для завершения заказа товара с идентификатором https://docs.uds.app/#tag/Goods-Order/paths/~1goods-orders~1{id}~1code/post
func (*Client) GoodsOrderGetByID ¶
func (u *Client) GoodsOrderGetByID(id int64) (*GoodsOrderDetailed, *resty.Response, error)
GoodsOrderGetByID Подробная информация о заказе https://docs.uds.app/#tag/Goods-Order/paths/~1goods-orders~1{id}/get
func (*Client) GoodsOrderUpdateItems ¶
func (u *Client) GoodsOrderUpdateItems(id int64, updatedOrder *UpdateGoodsOrderRequest[GoodsOrderItemUpdate]) (*GoodsOrderDetailed, *resty.Response, error)
GoodsOrderUpdateItems Изменить товары заказа https://docs.uds.app/#tag/Goods-Order/paths/~1goods-orders~1{id}/put
func (*Client) OperationCalc ¶
func (u *Client) OperationCalc(operation *CalcOperationRequest) (*CalcOperationResponse, *resty.Response, error)
OperationCalc Рассчитать информацию по операции https://docs.uds.app/#tag/Operations/paths/~1operations~1calc/post
func (*Client) OperationCreate ¶
func (u *Client) OperationCreate(operation *CreateOperationRequest) (*CreateOperationResponse, *resty.Response, error)
OperationCreate Проведение операции https://docs.uds.app/#tag/Operations/paths/~1operations/post
func (*Client) OperationGetByID ¶
OperationGetByID Получение информации об операции https://docs.uds.app/#tag/Operations/paths/~1operations~1{id}/get
func (*Client) OperationGetList ¶
func (u *Client) OperationGetList(maxValue int, cursor string) (*OperationList, *resty.Response, error)
OperationGetList Получить Список операций https://docs.uds.app/#tag/Operations/paths/~1operations/get
func (*Client) OperationRefund ¶
func (u *Client) OperationRefund(id int64, partialAmount float64) (*Operation, *resty.Response, error)
OperationRefund Операция возврата https://docs.uds.app/#tag/Operations/paths/~1operations~1{id}~1refund/post
func (*Client) OperationReward ¶
func (u *Client) OperationReward(operation RewardOperationRequest) (*RewardOperationResponse, *resty.Response, error)
OperationReward Начисление бонусов клиенту (подарок) https://docs.uds.app/#tag/Operations/paths/~1operations~1reward/post
func (*Client) SettingsGet ¶
SettingsGet Получение настроек компании https://docs.uds.app/#tag/Settings/paths/~1settings/get
type CompleteGoodsOrder ¶
type CompleteGoodsOrder struct { Transaction struct { Id int64 `json:"id"` // ID операции. } `json:"transaction"` Order GoodsOrderDetailed `json:"order"` // Информация о заказе. }
CompleteGoodsOrder Объект ответа на запрос о завершении заказа
type CreateOperationRequest ¶
type CreateOperationRequest struct { Code *string `json:"code,omitempty"` // Код на оплату. Participant *ParticipantShort `json:"participant,omitempty"` // Информация о клиенте. Nonce string `json:"nonce,omitempty"` // Уникальный идентификатор операции (UUID). Cashier *CashierExternal `json:"cashier,omitempty"` // Информация о сотруднике. Receipt Receipt `json:"receipt"` // Информация о чеке. Tags []int64 `json:"tags,omitempty"` // Список id тегов компании, назначаемых клиенту при проведении операции. Передача null означает, что существующее значение не будет изменено }
CreateOperationRequest Объект запроса на создание операции
func (*CreateOperationRequest) SetCode ¶
func (o *CreateOperationRequest) SetCode(code string) *CreateOperationRequest
type CreateOperationResponse ¶
type CreateOperationResponse struct { Id int64 `json:"id"` // ID операции в базе UDS. DateCreated time.Time `json:"dateCreated"` // Дата операции. Action string `json:"action"` // Тип операции. State ActionState `json:"state"` // Статус операции. Customer CustomerShortInfo `json:"customer"` // Информация о клиенте. Cashier Cashier `json:"cashier"` // Информация о сотруднике. Branch BranchInfo `json:"branch"` // Информация о филиале. Points float64 `json:"points"` // Количество бонусных баллов, которое будет списано с клиента после завершения операции. Отрицательное значение говорит о списании, а положительное - о начислении бонусных баллов. ReceiptNumber string `json:"receiptNumber"` // Номер чека. Origin Origin `json:"origin"` // Для сторнирующей операции - ссылка на оригинальную операцию. Total float64 `json:"total"` // Общая сумма чека до применения скидок в денежных единицах. Cash float64 `json:"cash"` // Оплачиваемая сумма в денежных единицах. }
CreateOperationResponse Объект ответа на создание операции
type Customer ¶
type Customer struct { Uid string `json:"uid"` // Идентификатор клиента в UDS (UID). Avatar string `json:"avatar"` // URL изображения клиента. DisplayName string `json:"displayName"` // Имя клиента. Gender Gender `json:"gender"` // Пол. Phone string `json:"phone"` // Номер телефона клиента. BirthDate string `json:"birthDate"` // Дата рождения клиента. Participant Participant `json:"participant"` // Информация о клиенте. ChannelName string `json:"channelName"` // Источник трафика. Email string `json:"email"` // Email клиента. }
Customer Объект с данными клиента
type CustomerDetail ¶
CustomerDetail Детальный объект с данными клиента
type CustomerShortInfo ¶
type CustomerShortInfo struct { Id int64 `json:"id"` // ID клиента в компании DisplayName string `json:"displayName"` // Имя и фамилия клиента. Uid string `json:"uid"` // Идентификатор клиента в UDS (UID). MembershipTier MembershipTier `json:"membershipTier"` // Настройки статусов клиентов. }
CustomerShortInfo Минимальная информация о клиенте.
type CustomerTagList ¶
type CustomerTagList struct { Rows []TagModel `json:"rows"` // Список тегов. Total int `json:"total"` // Количество тегов. }
CustomerTagList Список тегов клиента
type Delivery ¶
type Delivery struct { ReceiverName string `json:"receiverName"` // Имя клиента, который заберет заказа. ReceiverPhone string `json:"receiverPhone"` // Номер телефона клиента, который заберет заказ. UserComment string `json:"userComment"` // Комментарий клиента к заказу Branch BranchInfo `json:"branch"` // Информация о филиале. Type DeliveryType `json:"type"` // Способ получения заказа. }
Delivery Способ получения заказа.
type DeliveryCase ¶
type DeliveryCase struct { Name string `json:"name"` // Название доставки. Value float64 `json:"value"` // Стоимость доставки. }
DeliveryCase Информация о доставке.
type DeliveryType ¶
type DeliveryType string
DeliveryType Способ получения заказа.
const ( DeliveryTypePickUp DeliveryType = "PICKUP" DeliveryTypeDelivery DeliveryType = "DELIVERY" )
type DiscountPolicy ¶
type DiscountPolicy string
const ( DiscountPolicyApplyDiscount DiscountPolicy = "APPLY_DISCOUNT" // понижать сумму счета (скидка) DiscountPolicyChargeScores DiscountPolicy = "CHARGE_SCORES" // начислять бонусные баллы (кешбэк) )
type ErrorCode ¶
type ErrorCode string
const ( // ErrNotFound // Пользователь с данным кодом на оплату или идентификатором не найден. // В основном, возникает при неверно введенном коде клиента или время жизни кода истекло. // Также возникает при запросе find по номеру телефона, // если такой номер в системе не зарегистрирован и по нему в компании ранее не было операций. ErrNotFound ErrorCode = "notFound" // ErrBadRequest // Возникли ошибки при проведении валидации. // Для получения подробной информации об ошибке обратитесь к полю errors. // Возникает при передаче некорректного запроса. ErrBadRequest ErrorCode = "badRequest" // ErrForbidden // Доступ запрещен, данный токен аутентификации не установлен или не имеет соответствующего разрешения. ErrForbidden ErrorCode = "forbidden" // ErrInvalidChecksum // Указанные значения в полях cash, points или total не соответствуют настройке. // Способ предоставления скидки в настройках программы лояльности в UDS Бизнес. // Должно быть в случае начисления бонусных баллов total= cash + points. // Например, total =100, cash = 50, points = 50. // Для предоставления скидки total = (cash + point) / (1 - процент скидки). // Например, total =100, cash = 50, points = 40 (для скидки в 10%). // Ошибки часто возникают при применении сторонних скидок, неверном округлении. // В случае печати ваучера ошибка может возникать из-за способа предоставления скидки не CHARGE_SCORES; // размер начисляемых бонусных баллов равен 0.0; поле total меньше или равноskipLoyaltyTotal. ErrInvalidChecksum ErrorCode = "invalidChecksum" // ErrInsufficientFunds // Значение в поле points превышает доступное количество бонусных баллов на счете клиента. // Ошибка в основном возникает при неверном округлении, округлять баллы можно только в меньшую сторону. ErrInsufficientFunds ErrorCode = "insufficientFunds" // ErrDiscountLimitExceed // Соотношение points / total больше, чем указано в настройках UDS. // Компания может установить максимальный процент от чека, на который допускается списать бонусы. // Посмотреть допустимый процент списания баллов можно в настройках UDS Бизнес в Программа лояльности // в графе Какой процент счета можно оплатить баллами. ErrDiscountLimitExceed ErrorCode = "discountLimitExceed" // Неверно указан ID компании или API Key. // Необходимо проверить актуальность API Key и ID компании // на странице Интеграция и корректность аутентификации Basic. ErrUnauthorized ErrorCode = "unauthorized" // ErrWithdrawNotPermitted // В запросе было указано значение в поле participant -> uid, при этом значение в поле points не равно 0.0. // Ошибка может возникать, если передавать вместе с параметром code в запросе на проведение // операции со списанием баллов параметров uid или phone. // Необходимо удалить параметры uid и phone в запросе и оставить только code. // Ошибка может также возникать при попытке списать бонусы по uid или номеру телефона // (если в компании такая возможность отсутствует). // Необходимо внести корректировку в сумму баллов и указать 0.0. ErrWithdrawNotPermitted ErrorCode = "withdrawNotPermitted" // ErrPurchaseByPhoneDisabled // Проведение операции по номеру телефона не разрешено настройками UDS. // Необходимо включить настройку оплаты по номеру телефона в настройках UDS Бизнес. ErrPurchaseByPhoneDisabled ErrorCode = "purchaseByPhoneDisabled" // ErrGoodsNodeIndexInvalid // Для создания категории указание идентификатора nodeId недопустимо. // Необходимо проверить актуальный ID категории, в которую создается товар или категория. ErrGoodsNodeIndexInvalid ErrorCode = "goods.nodeIndex.invalid" // ErrGoodsLimitIsReached // Превышен лимит количества товаров. // Лимит товаров можно проверить в разделе Товары и услуги в UDS Бизнес. ErrGoodsLimitIsReached ErrorCode = "goods.limitIsReached" // ErrParticipantIsBlocked // Клиент в данной компании заблокирован. ErrParticipantIsBlocked ErrorCode = "participantIsBlocked" )
type FindCustomerParams ¶
type FindCustomerParams struct { ExchangeCode bool // Если указан, то в ответе будет отправлен новый долгоживущий код на оплату Total float64 // Общая сумма счета в денежных единицах SkipLoyaltyTotal float64 // Часть суммы счета, на которую не начисляется кешбэк и на которую не распространяется скидка (в денежных единицах). UnredeemableTotal float64 // Часть суммы счета, которую нельзя погасить баллами. }
type FindCustomerResponse ¶
type FindCustomerResponse struct { User CustomerDetail `json:"user"` // Информация о клиенте. Code string `json:"code"` // Новый долгоживущий код на оплату, если был запрошен параметр exchangeCode. Purchase PurchaseDetail `json:"purchase"` // Информация об операции. }
FindCustomerResponse Объект ответа на запрос поиска клиента
type GoodOrderItem ¶
type GoodOrderItem struct { Id int `json:"id"` // ID товара в UDS. ExternalId string `json:"externalId"` // Внешний идентификатор товара. Name string `json:"name"` // Название товара VariantName string `json:"variantName"` // Имя варианта товара, если тип этого товара VARYING_ITEM Sku string `json:"sku"` // Артикул товара. Type GoodsItemType `json:"type"` // Тип товара. Qty float64 `json:"qty"` // Количество. Price float64 `json:"price"` // Цена товара. Measurement GoodsMeasurement `json:"measurement"` // Единицы измерения товаров. }
GoodOrderItem Информация о товаре в заказе.
type GoodsItemType ¶
type GoodsItemType string
GoodsItemType Тип товара.
const ( GoodsItemTypeItem GoodsItemType = "ITEM" GoodsItemTypeVaryingItem GoodsItemType = "VARYING_ITEM" )
type GoodsMeasurement ¶
type GoodsMeasurement string
GoodsMeasurement Единицы измерения товаров.
const ( GoodsMeasurementPiece GoodsMeasurement = "PIECE" GoodsMeasurementCentimeter GoodsMeasurement = "CENTIMETRE" GoodsMeasurementMetre GoodsMeasurement = "METRE" GoodsMeasurementMillilitre GoodsMeasurement = "MILLILITRE" GoodsMeasurementLitre GoodsMeasurement = "LITRE" GoodsMeasurementGram GoodsMeasurement = "GRAM" GoodsMeasurementKiloGram GoodsMeasurement = "KILOGRAM" )
type GoodsOrderDetailed ¶
type GoodsOrderDetailed struct { Id int `json:"id"` // ID заказа. DateCreated time.Time `json:"dateCreated"` // Дата заказа. Comment string `json:"comment"` // Комментарий к заказу. State GoodsOrderState `json:"state"` // Статус заказа. Cash float64 `json:"cash"` // Сумма, оплачиваемая деньгами. Points float64 `json:"points"` // Количество списываемых баллов. Total float64 `json:"total"` // Сумма заказа. CertificatePoints float64 `json:"certificatePoints"` // Количество списываемых баллов сертификата. Customer CustomerShortInfo `json:"customer"` // Информация о клиенте. Delivery Delivery `json:"delivery"` // Способ получения заказа. OnlinePayment OnlinePayment `json:"onlinePayment"` // Информация об онлайн-оплате. PaymentMethod PaymentMethod `json:"paymentMethod"` // Информация об оплате. Items []GoodOrderItem `json:"items"` // Информация о товарах. Purchase PurchaseDetail `json:"purchase"` // Информация об операции. }
GoodsOrderDetailed Структура заказа
type GoodsOrderItemNew ¶
type GoodsOrderItemNew struct { ExternalId string `json:"externalId"` // Внешний идентификатор товара. Name string `json:"name"` // Название товара VariantName string `json:"variantName"` // Имя варианта товара, если тип этого товара VARYING_ITEM QTY int `json:"qty"` // Количество. Price float64 `json:"price"` // Цена товара. SkipLoyalty bool `json:"skipLoyalty"` // Не применять бонусную программу к товару. }
GoodsOrderItemNew Объект добавления нового товара в заказ
type GoodsOrderItemUpdate ¶
type GoodsOrderItemUpdate struct { Id int `json:"id"` // ID товара в UDS. VariantName string `json:"variantName"` // Имя варианта товара, если тип этого товара VARYING_ITEM Qty int `json:"qty"` // Количество. }
GoodsOrderItemUpdate Объект обновления товара
type GoodsOrderState ¶
type GoodsOrderState string
GoodsOrderState Статус заказа.
const ( GoodsOrderStateNew GoodsOrderState = "NEW" GoodsOrderStateCompleted GoodsOrderState = "COMPLETED" GoodsOrderStateDeleted GoodsOrderState = "DELETED" GoodsOrderStateWaitingPayment GoodsOrderState = "WAITING_PAYMENT" )
type LoyaltyProgramSettings ¶
type LoyaltyProgramSettings struct { BaseMembershipTier MembershipTier `json:"baseMembershipTier,omitempty"` // Настройки статусов клиентов. MembershipTiers []MembershipTier `json:"membershipTiers,omitempty"` // Настройки статусов. ReferralCashbackRates [3]float64 `json:"referralCashbackRates,omitempty"` // Коэффициенты начисления кешбэка для рефералов (3 уровня в %). CashierAward float64 `json:"cashierAward,omitempty"` // Процент вознаграждения кассиру за проведенную операцию. ReferralReward float64 `json:"referralReward,omitempty"` // Вознаграждение клиенту за эффективную рекомендацию. ReceiptLimit float64 `json:"receiptLimit,omitempty"` // Максимальная сумма операции, которую можно провести через UDS Кассир. DeferPointsForDays int `json:"deferPointsForDays,omitempty"` // Количество дней, после которых будут начислены отложенные бонусные баллы. FirstPurchasePoints float64 `json:"firstPurchasePoints,omitempty"` // Number of points for the first purchase }
LoyaltyProgramSettings Настройки бонусной программы компании.
type MembershipTier ¶
type MembershipTier struct { Uid string `json:"uid,omitempty"` // Идентификатор статуса. Name string `json:"name,omitempty"` // Название статуса. Rate float64 `json:"rate,omitempty"` // Коэффициент статуса. MaxScoresDiscount float64 `json:"maxScoresDiscount,omitempty"` // Процент счета, который можно оплатить бонусными баллами. // Условия для автоматического назначения статуса. Conditions struct { // Повысить статус, когда сумма покупок достигнет данного значения. TotalCashSpent struct { // Сумма покупок. Target float64 `json:"target,omitempty"` } `json:"totalCashSpent,omitempty"` // Повысить уровень, когда клиент достигнет значения effectiveInvitedCount. EffectiveInvitedCount struct { // Количество эффективных рекомендаций. Target int `json:"target,omitempty"` } `json:"effectiveInvitedCount,omitempty"` } `json:"conditions,omitempty"` }
MembershipTier Статус клиента
type OnlinePayment ¶
type OnlinePayment struct { PaymentProvider PaymentProviderType `json:"paymentProvider"` // Тип платежной системы Id string `json:"id"` // Идентификатор платежа во внешней платежной системе Completed bool `json:"completed"` // Статус оплаты. }
OnlinePayment Информация об онлайн-оплате.
type Operation ¶
type Operation struct { Id int64 `json:"id"` // D операции в базе UDS. DateCreated time.Time `json:"dateCreated"` // Дата операции. Action string `json:"action"` // Тип операции. State ActionState `json:"state"` // Статус операции. Customer CustomerShortInfo `json:"customer"` // Информация о клиенте. Cashier Cashier `json:"cashier"` // Информация о сотруднике. Branch BranchInfo `json:"branch"` // Информация о филиале. Points float64 `json:"points"` // Количество бонусных баллов, которое будет списано с клиента после завершения операции. Отрицательное значение говорит о списании, а положительное - о начислении бонусных баллов. ReceiptNumber string `json:"receiptNumber"` // Номер чека. Origin Origin `json:"origin"` // Для сторнирующей операции - ссылка на оригинальную операцию. Total float64 `json:"total"` // Общая сумма чека до применения скидок в денежных единицах. Cash float64 `json:"cash"` // Оплачиваемая сумма в денежных единицах. }
Operation Информация об операции.
type OperationList ¶
type OperationList struct { Rows []Operation `json:"rows"` // Информация об операциях. Cursor string `json:"cursor"` // Используйте это значение для следующего запроса }
OperationList Список операций
type Origin ¶
type Origin struct {
Id int64 `json:"id"` // Идентификатор исходной (оригинальной) операции.
}
Origin Для сторнирующей операции - ссылка на оригинальную операцию.
type Participant ¶
type Participant struct { Id int64 `json:"id"` // ID клиента в компании. InviterId int `json:"inviterId"` // ID клиента в компании, пригласившего данного клиента. Points float64 `json:"points"` // Баланс бонусных баллов клиента. DiscountRate float64 `json:"discountRate"` // Размер скидки (в процентах). CashbackRate float64 `json:"cashbackRate"` // Размер кешбэка (в процентах) для данного клиента UDS. MembershipTier MembershipTier `json:"membershipTier"` // Настройки статусов клиентов. DateCreated time.Time `json:"dateCreated"` // Дата, когда клиент присоединился к компании LastTransactionTime time.Time `json:"lastTransactionTime"` // Дата и время, когда клиент совершил последнюю транзакцию. }
Participant Информация о клиенте.
type ParticipantShort ¶
type ParticipantShort struct { Uid *string `json:"uid,omitempty"` // Идентификатор клиента в UDS (UID). Phone *string `json:"phone,omitempty"` // Номер телефона. }
func (*ParticipantShort) SetPhone ¶
func (p *ParticipantShort) SetPhone(phone string) *ParticipantShort
func (*ParticipantShort) SetUid ¶
func (p *ParticipantShort) SetUid(uid string) *ParticipantShort
type PaymentMethod ¶
type PaymentMethod struct { Type PaymentMethodType `json:"type"` // Тип оплаты. Name string `json:"name"` // Название пользовательского метода оплаты с типом MANUAL }
PaymentMethod Информация об оплате.
type PaymentMethodType ¶
type PaymentMethodType string
PaymentMethodType Тип оплаты.
const ( PaymentMethodBestToPay PaymentMethodType = "BEST_TO_PAY" PaymentMethodCloudPayments PaymentMethodType = "CLOUD_PAYMENTS" PaymentMethodCash PaymentMethodType = "CASH" PaymentMethodManual PaymentMethodType = "MANUAL" PaymentMethodCustom PaymentMethodType = "CUSTOM" )
type PaymentProviderType ¶
type PaymentProviderType string
PaymentProviderType Тип платежной системы
const ( PaymentProviderB2P PaymentProviderType = "B2P" PaymentProviderCloudPayments PaymentProviderType = "CLOUD_PAYMENTS" PaymentProviderCustom PaymentProviderType = "CUSTOM" )
type PurchaseDetail ¶
type PurchaseDetail struct { MaxPoints float64 `json:"maxPoints"` // Максимальное количество бонусных баллов, доступное для списания. Total float64 `json:"total"` // Общая сумма счета (в денежных единицах). SkipLoyaltyTotal float64 `json:"skipLoyaltyTotal"` // Часть суммы счета, на которую не начисляется кешбэк и на которую не распространяется скидка (в денежных единицах). UnredeemableTotal float64 `json:"unredeemableTotal"` // Часть суммы счета, которую нельзя погасить баллами. DiscountAmount float64 `json:"discountAmount"` // Размер скидки (в денежных единицах). DiscountPercent float64 `json:"discountPercent"` // Предоставленная скидка (в процентах). Points float64 `json:"points"` // Бонусных баллов к оплате. PointsPercent float64 `json:"pointsPercent"` // Размер скидки за счет бонусных баллов (в процентах). NetDiscount float64 `json:"netDiscount"` // Общий размер скидки (в денежных единицах). NetDiscountPercent float64 `json:"netDiscountPercent"` // Общий размер скидки (в процентах от общей суммы счета). CertificatePoints float64 `json:"certificatePoints"` // Количество списываемых бонусных баллов сертификата (в денежных единицах). Cash float64 `json:"cash"` // Сумма к оплате (в денежных единицах). CashTotal float64 `json:"cashTotal"` // Итоговая сумма к оплате с учетом доставки. CashBack float64 `json:"cashBack"` // Вознаграждение (кешбэк), которое получит клиент после проведения операции (в бонусных баллах). Extras struct { Delivery float64 `json:"delivery"` // Стоимость доставки. } `json:"extras"` // Дополнительный платежи, на которые не распространяется программа лояльности. MaxScoresDiscount float64 `json:"maxScoresDiscount"` // Процент счета, который можно оплатить бонусными баллами. }
PurchaseDetail Информация об операции.
type Receipt ¶
type Receipt struct { Total float64 `json:"total"` // Сумма счета в денежных единицах. Cash float64 `json:"cash"` // Оплачиваемая сумма в денежных единицах. Points float64 `json:"points"` // Оплачиваемая сумма в бонусных баллах. Number *string `json:"number,omitempty"` // Номер чека. SkipLoyaltyTotal *float64 `json:"skipLoyaltyTotal,omitempty"` // Часть суммы счета, на которую не начисляется кешбэк и на которую не распространяется скидка (в денежных единицах). UnredeemableTotal *float64 `json:"unredeemableTotal,omitempty"` // Часть суммы счета, которую нельзя погасить баллами. }
Receipt Информация о чеке.
type RefundOperationRequest ¶
type RefundOperationRequest struct {
PartialAmount float64 `json:"partialAmount"` // Сумма возврата.
}
RefundOperationRequest Объект запроса на возврат по операции
type RewardOperationRequest ¶
type RewardOperationRequest struct { Points float64 `json:"points"` // Количество бонусных баллов. (Можем иметь отрицательное значение - списание) Comment string `json:"comment,omitempty"` // Текст комментария, который увидит пользователь. Participants []int64 `json:"participants"` // Список ID клиентов в компании. Silent bool `json:"silent"` // Не отправлять пуш-уведомление клиенту (default false). }
RewardOperationRequest Объект запроса на начисление бонусов клиенту
type RewardOperationResponse ¶
type RewardOperationResponse struct {
Accepted int `json:"accepted"` // Количество пользователей, которым будут начислены бонусные баллы.
}
RewardOperationResponse Объект ответа на запрос на начисление бонусов клиенту
type SetCustomerTagsRequest ¶
type SetCustomerTagsRequest struct {
IDs []int64 `json:"ids"`
}
SetCustomerTagsRequest Объект запроса на установку тегов клиенту
type Settings ¶
type Settings struct { Id int `json:"id,omitempty"` // Идентификатор компании в UDS. Name string `json:"name,omitempty"` // Название компании. PromoCode string `json:"promoCode,omitempty"` // Промокод компании для вступления. Currency string `json:"currency,omitempty"` // Валюта компании (стандарт ISO-4217). BaseDiscountPolicy DiscountPolicy `json:"baseDiscountPolicy,omitempty"` // Определяет тип программы лояльности LoyaltyProgramSettings LoyaltyProgramSettings `json:"loyaltyProgramSettings,omitempty"` // Настройки бонусной программы компании. PurchaseByPhone bool `json:"purchaseByPhone,omitempty"` // Возможность проведения операции, используя номер телефона клиента. WriteInvoice bool `json:"writeInvoice,omitempty"` // Необходимо ли указывать номер счета при проведении оплаты через UDS Кассир. Slug string `json:"slug,omitempty"` // Доменное имя, которое отображается в ссылке на веб-страницу вашей компании. }
Settings Настройки компании.
type TagModel ¶
type TagModel struct { Id int64 `json:"id"` // Идентификатор тега. Name string `json:"name"` // Наименование тега. }
TagModel Тег клиента
type UpdateGoodsOrderRequest ¶
type UpdateGoodsOrderRequest[T GoodsOrderItemUpdate | GoodsOrderItemNew] struct { DeliveryCase DeliveryCase `json:"deliveryCase"` // Информация о доставке. Items []T `json:"items"` // Информация о товарах. }
UpdateGoodsOrderRequest Объект запроса на изменение заказа