ozon

package
v1.18.0 Latest Latest
Warning

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

Go to latest
Published: Mar 1, 2025 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SKUAvailabilityHidden    = "HIDDEN"
	SKUAvailabilityAvailable = "AVAILABLE"

	// SKU is deleted
	SKUAvailabilityUnavailable = "UNAVAILABLE"
)
View Source
const (
	DefaultAPIBaseUrl = "https://api-seller.ozon.ru"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AddCertificatesForProductsParams

type AddCertificatesForProductsParams struct {
	// Array of certificates for the product. Valid extensions are jpg, jpeg, png, pdf
	Files []byte `json:"files"`

	// Certificate name. No more than 100 characters
	Name string `json:"name"`

	// Certificate number. No more than 100 characters
	Number string `json:"number"`

	// Certificate type. To get the list of types, use the GET `/v1/product/certificate/types` method
	TypeCode string `json:"type_code"`

	// Accordance type. To get the list of types, use the GET `/v1/product/certificate/accordance-types` method
	AccordanceTypeCode string `json:"accordance_type_code"`

	// Issue date of the certificate
	IssueDate time.Time `json:"issue_date"`

	// Expiration date of the certificate. Can be empty for permanent certificates
	ExpireDate time.Time `json:"expire_date"`
}

type AddCertificatesForProductsResponse

type AddCertificatesForProductsResponse struct {
	core.CommonResponse

	Id int `json:"id"`
}

type AddProductToPromotionParams

type AddProductToPromotionParams struct {
	// Promotion identifier
	ActionId float64 `json:"action_id"`

	// Products list
	Products []AddProductToPromotionProduct `json:"products"`
}

type AddProductToPromotionProduct

type AddProductToPromotionProduct struct {
	// Product identifier
	ProductId float64 `json:"product_id"`

	// Promotional product price
	ActionPrice float64 `json:"action_price"`

	// Number of product units in a stock discount type promotion
	Stock float64 `json:"stock"`
}

type AddProductToPromotionResponse

type AddProductToPromotionResponse struct {
	core.CommonResponse

	// Method result
	Result AddProductToPromotionResult `json:"result"`
}

type AddProductToPromotionResult

type AddProductToPromotionResult struct {
	// List of product identifiers that were added to the promotion
	ProductIds []float64 `json:"product_ids"`

	// List of products that weren't added to the promotion
	Rejected []AddProductToPromotionResultRejected `json:"rejected"`
}

type AddProductToPromotionResultRejected

type AddProductToPromotionResultRejected struct {
	// Product identifier
	ProductId float64 `json:"product_id"`

	// Reason why the product wasn't added to the promotion
	Reason string `json:"reason"`
}

type AddProductsToHotSaleParams

type AddProductsToHotSaleParams struct {
	// Hot Sale promotion identifier
	HotSaleId float64 `json:"hotsale_id"`

	// Products to be added to the promotion. The maximum number in one request is 100
	Products []AddProductsToHotSaleProduct `json:"products"`
}

type AddProductsToHotSaleProduct

type AddProductsToHotSaleProduct struct {
	// Promotional product price
	ActionPrice float64 `json:"action_price"`

	// Product identifier
	ProductId float64 `json:"product_id"`

	// Number of product units in a stock discount type promotion
	Stock float64 `json:"stock"`
}

type AddProductsToStrategyParams

type AddProductsToStrategyParams struct {
	// List of product identifiers. The maximum number is 50
	ProductId []int64 `json:"product_id"`

	// Product identifier
	StrategyId string `json:"strategy_id"`
}

type AddProductsToStrategyResponse

type AddProductsToStrategyResponse struct {
	core.CommonResponse

	// Method result
	Result AddProductsToStrategyResult `json:"result"`
}

type AddProductsToStrategyResult

type AddProductsToStrategyResult struct {
	// Products with errors
	Errors []AddProductsToStrategyResultError `json:"errors"`

	// Number of products with errors
	FailedProductCount int32 `json:"failed_product_count"`
}

type AddProductsToStrategyResultError

type AddProductsToStrategyResultError struct {
	// Error code
	Code string `json:"code"`

	// Error message
	Error string `json:"error"`

	// Product identifier
	ProductId int64 `json:"product_id"`
}

type AddTrackingNumbersParams

type AddTrackingNumbersParams struct {
	// An array with shipment identifier—tracking number pairs
	TrackingNumbers []FBSTrackingNumbersParams `json:"tracking_numbers"`
}

type AddTrackingNumbersResponse

type AddTrackingNumbersResponse struct {
	core.CommonResponse

	// Method result
	Result []AddTrackingNumbersResponseResult `json:"result"`
}

type AddTrackingNumbersResponseResult

type AddTrackingNumbersResponseResult struct {
	// Error when processing the request
	Error []string `json:"error"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// If the request is executed without errors — true
	Result bool `json:"result"`
}

type AddWeightForBulkProductItem

type AddWeightForBulkProductItem struct {
	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`

	// List with weights of the products in the posting
	WeightReal []float64 `json:"weightReal"`
}

type AddWeightForBulkProductParams

type AddWeightForBulkProductParams struct {
	// Products information
	Items AddWeightForBulkProductItem `json:"items"`

	// Shipment identifier
	PostingNumber string `json:"posting_number"`
}

type AddWeightForBulkProductResponse

type AddWeightForBulkProductResponse struct {
	core.CommonResponse

	// Shipment identifier
	Result string `json:"result"`
}

type Analytics

type Analytics struct {
	// contains filtered or unexported fields
}

func (Analytics) GetAnalyticsData

func (c Analytics) GetAnalyticsData(ctx context.Context, params *GetAnalyticsDataParams) (*GetAnalyticsDataResponse, error)

Specify the period and metrics that are required. The response will contain analytical data grouped by the `dimensions` parameter.

There are restrictions for sellers without Premium subscription:

  • data is available for the last 3 months,
  • some of the data grouping methods and metrics aren't available.

There are no restrictions for sellers with Premium subscription

func (Analytics) GetProductTurnover added in v1.16.0

func (c Analytics) GetProductTurnover(ctx context.Context, params *GetProductTurnoverParams) (*GetProductTurnoverResponse, error)

Use the method to get the product turnover rate and the number of days the current stock will last.

If you request a list of products by sku, the limit and offset parameters are optional.

func (Analytics) GetStocksOnWarehouses

func (c Analytics) GetStocksOnWarehouses(ctx context.Context, params *GetStocksOnWarehousesParams) (*GetStocksOnWarehousesResponse, error)

Report on stocks and products movement at Ozon warehouses

func (Analytics) Stock added in v1.17.0

Use the method to find out how many product items are left in stock

type ApproveRFBSReturnParams added in v1.8.0

type ApproveRFBSReturnParams struct {
	// Return request identifier
	ReturnId int64 `json:"return_id"`

	// Method of product return
	ReturnMethodDescription string `json:"return_method_description"`
}

type ApproveRFBSReturnResponse added in v1.8.0

type ApproveRFBSReturnResponse struct {
	core.CommonResponse
}

type ApproveRejectCancellationsParams

type ApproveRejectCancellationsParams struct {
	// Cancellation request identifier
	CancellationId int64 `json:"cancellation_id"`

	// Comment
	Comment string `json:"comment,omitempty"`
}

type ApproveRejectCancellationsResponse

type ApproveRejectCancellationsResponse struct {
	core.CommonResponse
}

type ArchiveProductParams

type ArchiveProductParams struct {
	// Product identifier
	ProductId []int64 `json:"product_id"`
}

type ArchiveProductResponse

type ArchiveProductResponse struct {
	core.CommonResponse

	// The result of processing the request. true if the request was executed without errors
	Result bool `json:"result"`
}

type AttributeType

type AttributeType string
const (
	All      AttributeType = "ALL"
	Required AttributeType = "REQUIRED"
	Optional AttributeType = "OPTIONAL"
)

type AvailableFreightsListParams

type AvailableFreightsListParams struct {
	// Filter by delivery method identifier
	DeliveryMethodId int64 `json:"delivery_method_id"`

	// Shipping date. The default value is current date
	DepartureDate time.Time `json:"departure_date"`
}

type AvailableFreightsListResponse

type AvailableFreightsListResponse struct {
	core.CommonResponse

	// Method result
	Result []AvailableFreightsListResult `json:"result"`
}

type AvailableFreightsListResult

type AvailableFreightsListResult struct {
	// Freight identifier (document generation task number)
	CarriageId int64 `json:"carriage_id"`

	// Number of shipments in the freight
	CarriagePostingsCount int32 `json:"carriage_postings_count"`

	// Freight status for requested delivery method and shipping date
	CarriageStatus string `json:"carriage_status"`

	// Date and time before a shipment must be packaged
	CutoffAt time.Time `json:"cutoff_at"`

	// Delivery method identifier
	DeliveryMethodId int64 `json:"delivery_method_id"`

	// Delivery method name
	DeliveryMethodName string `json:"delivery_method_name"`

	// Errors list
	Errors []AvailableFreightsListResultError `json:"errors"`

	// First mile type
	FirstMileType string `json:"first_mile_type"`

	// Trusted acceptance attribute. true if trusted acceptance is enabled in the warehouse
	HasEntrustedAcceptance bool `json:"has_entrusted_acceptance"`

	// Number of shipments to be packaged
	MandatoryPostingsCount int32 `json:"mandatory_postings_count"`

	// Number of already packaged shipments
	MandatoryPackagedCount int32 `json:"mandatory_packaged_count"`

	// Recommended local time of shipping to the pick-up point
	RecommendedTimeLocal string `json:"recommended_time_local"`

	// Time zone offset of the recommended shipping time from UTC-0 in minutes
	RecommendedTimeUTCOffset int32 `json:"recommended_time_utc_offset_in_minutes"`

	// Delivery service icon link
	TPLProviderIconURL string `json:"tpl_provider_icon_url"`

	// Delivery service name
	TPLProviderName string `json:"tpl_provider_name"`

	// Warehouse city
	WarehouseCity string `json:"warehouse_city"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`

	// Warehouse name
	WarehouseName string `json:"warehouse_name"`

	// Warehouse timezone
	WarehouseTimezone string `json:"warehouse_timezone"`
}

type AvailableFreightsListResultError

type AvailableFreightsListResultError struct {
	// Error code
	Code string `json:"code"`

	// Error type:
	//   - warning
	//   - critical
	Status string `json:"status"`
}

type BarcodeFromProductShipmentParams added in v1.4.0

type BarcodeFromProductShipmentParams struct {
	// Freight identifier
	Id int64 `json:"id"`
}

type BarcodeFromProductShipmentResponse added in v1.4.0

type BarcodeFromProductShipmentResponse struct {
	core.CommonResponse

	// Link to barcode image
	Content string `json:"file_content"`

	// File name
	Name string `json:"file_name"`

	// File type
	Type string `json:"content_type"`
}

type BarcodeValueFromProductShipmentParams added in v1.4.0

type BarcodeValueFromProductShipmentParams struct {
	// Freight identifier
	Id int64 `json:"id"`
}

type BarcodeValueFromProductShipmentResponse added in v1.4.0

type BarcodeValueFromProductShipmentResponse struct {
	core.CommonResponse

	// Barcode in text format
	Result string `json:"result"`
}

type Barcodes added in v1.7.0

type Barcodes struct {
	// contains filtered or unexported fields
}

func (*Barcodes) Bind added in v1.7.0

If a product has a barcode that isn't specified in your account, bind it using this method. If a product doesn't have a barcode, you can create it using the `/v1/barcode/generate` method.

You can't bind barcodes to more than 100 products per request. Each product can have up to 100 barcodes. You can use the method no more than 20 times per minute.

func (*Barcodes) Generate added in v1.7.0

If a product doesn't have a barcode, you can create it using this method. If a barcode already exists, but it isn't specified in your account, you can bind it using the `/v1/barcode/add` method.

You can't generate barcodes for more than 100 products per request. You can use the method no more than 20 times per minute.

type BindBarcode added in v1.7.0

type BindBarcode struct {
	// Barcode. Maximum 100 characters
	Barcode string `json:"barcode"`

	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`
}

type BindBarcodesError added in v1.7.0

type BindBarcodesError struct {
	// Error code
	Code string `json:"code"`

	// Error details
	Error string `json:"error"`

	// Barcode that is failed to generate
	Barcode string `json:"barcode"`

	// SKU of the product for which the barcode binding failed
	SKU int64 `json:"sku"`
}

type BindBarcodesParams added in v1.7.0

type BindBarcodesParams struct {
	// List of barcodes and products
	Barcodes []BindBarcode `json:"barcodes"`
}

type BindBarcodesResponse added in v1.7.0

type BindBarcodesResponse struct {
	core.CommonResponse

	// Errors while binding barcodes
	Errors []BindBarcodesError `json:"errors"`
}

type Brands

type Brands struct {
	// contains filtered or unexported fields
}

func (Brands) List

List of certified brands

type CancelReason added in v1.17.0

type CancelReason struct {
	// Identifier of MOQ cancellation reason
	Id int64 `json:"cancel_reason_id"`

	// Cancellation reason name
	Name string `json:"cancel_reason_name"`

	// Cancellation initiator
	Responsible string `json:"responsible"`
}

type CancelSendingItem

type CancelSendingItem struct {
	// Number of products in the shipment
	Quantity int32 `json:"quantity"`

	// Product identifier in the seller's system
	SKU int64 `json:"sku"`
}

type CancelSendingParams

type CancelSendingParams struct {
	// Product shipping cancellation reason identifier
	CancelReasonId int64 `json:"cancel_reason_id"`

	// Additional information on cancellation. Required parameter
	CancelReasonMessage string `json:"cancel_reason_message"`

	// Products information
	Items []CancelSendingItem `json:"items"`

	// Shipment identifier
	PostingNumber string `json:"posting_number"`
}

type CancelSendingResponse

type CancelSendingResponse struct {
	core.CommonResponse

	// Shipment number
	Result string `json:"result"`
}

type CancelShipmentParams

type CancelShipmentParams struct {
	// Shipment cancellation reason identifier
	CancelReasonId int64 `json:"cancel_reason_id"`

	// Additional information on cancellation. If `cancel_reason_id` = 402, the parameter is required
	CancelReasonMessage string `json:"cancel_reason_message"`

	// Shipment identifier
	PostingNumber string `json:"posting_number"`
}

type CancelShipmentResponse

type CancelShipmentResponse struct {
	core.CommonResponse

	// Request processing result. true, if the request was executed without errors
	Result bool `json:"result"`
}

type CancelSuppyOrderParams added in v1.18.0

type CancelSuppyOrderParams struct {
	// Supply request identifier
	OrderId int64 `json:"order_id"`
}

type CancelSuppyOrderResponse added in v1.18.0

type CancelSuppyOrderResponse struct {
	core.CommonResponse

	// Operation identifier for canceling the request
	OperationId string `json:"operation_id"`
}

type CancellationInfo

type CancellationInfo struct {
	// Cancellation request identifier
	CancellationId int64 `json:"cancellation_id"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Cancellation reason
	CancellationReason CancellationInfoReason `json:"cancellation_reason"`

	// Cancellation request creation date
	CancelledAt time.Time `json:"cancelled_at"`

	// Comment to cancellation submitted by cancellation initiator
	CancellationReasonMessage string `json:"cancellation_reason_message"`

	// Delivery service integration type
	TPLIntegrationType TPLIntegrationType `json:"tpl_integration_type"`

	// Cancellation request status
	State CancellationInfoState `json:"state"`

	// Cancellation initiator
	CancellationInitiator string `json:"cancellation_initiator"`

	// Order creation date
	OrderDate time.Time `json:"order_date"`

	// Comment submitted on the cancellation request approval or rejection
	ApproveComment string `json:"approve_comment"`

	// Cancellation request approval or rejection date
	ApproveDate time.Time `json:"approve_date"`

	// Date after which the request will be automatically approved
	AutoApproveDate time.Time `json:"auto_approve_date"`
}

type CancellationInfoReason

type CancellationInfoReason struct {
	// Cancellation reason identifier
	Id int64 `json:"id"`

	// Cancellation reason name
	Name string `json:"name"`
}

type CancellationInfoState

type CancellationInfoState struct {
	// Status identifier
	Id int64 `json:"id"`

	// Status name
	Name string `json:"name"`

	// Request status
	State string `json:"state"`
}

type Cancellations

type Cancellations struct {
	// contains filtered or unexported fields
}

func (Cancellations) Approve

The method allows to approve an rFBS cancellation request in the ON_APPROVAL status. The order will be canceled and the money will be returned to the customer

func (Cancellations) GetInfo

Method for getting information about a rFBS cancellation request

func (Cancellations) List

Method for getting a list of rFBS cancellation requests

func (Cancellations) Reject

The method allows to reject an rFBS cancellation request in the ON_APPROVAL status. Explain your decision in the comment parameter.

The order will remain in the same status and must be delivered to the customer

type CarriageArrivalPass added in v1.12.0

type CarriageArrivalPass struct {
	// Driver full name
	DriverName string `json:"driver_name"`

	// Driver phone number
	DriverPhone string `json:"driver_phone"`

	// Car license plate
	VehicleLicensePlate string `json:"vehicle_license_plate"`

	// Car model
	VehicleModel string `json:"vehicle_model"`

	// true if you will export returns. Default is false
	WithReturns bool `json:"with_returns"`
}

type Categories

type Categories struct {
	// contains filtered or unexported fields
}

func (*Categories) Attributes

Getting characteristics for specified product category and type.

If the dictionary_id value is 0, there is no directory. If the value is different, there are directories. Get them using the `/v1/description-category/attribute/values` method.

func (*Categories) AttributesDictionary

Returns characteristics value directory.

To check if an attribute has a nested directory, use the `/v1/description-category/attribute` method.

func (*Categories) SearchAttributesDictionary added in v1.15.0

func (c *Categories) SearchAttributesDictionary(ctx context.Context, params *SearchAttributeDictionaryParams) (*SearchAttributeDictionaryResponse, error)

Returns found characteristics value directory.

To check if an attribute has a nested directory, use the `/v1/description-category/attribute` method.

func (*Categories) Tree

Returns product categories in the tree view.

New products can be created in the last level categories only. This means that you need to match these particular categories with the categories of your site. We don't create new categories by user request.

type Certificates

type Certificates struct {
	// contains filtered or unexported fields
}

func (Certificates) AddForProducts

Adding certificates for products

func (Certificates) Delete

Delete certificate

func (Certificates) DirectoryOfDocumentTypes

func (c Certificates) DirectoryOfDocumentTypes(ctx context.Context) (*DirectoryOfDocumentTypesResponse, error)

Directory of document types

func (Certificates) GetInfo

Certificate information

func (Certificates) LinkToProduct

Link the certificate to the product

func (Certificates) List

Certificates list

func (Certificates) ListOfAccordanceTypes

func (c Certificates) ListOfAccordanceTypes(ctx context.Context) (*ListOfAccordanceTypesResponse, error)

List of accordance types (version 2)

func (Certificates) ListOfCertifiedCategories

List of certified categories

func (Certificates) ListProductsForCertificate

A method for getting a list of possible statuses of products when binding them to a certificate

func (Certificates) PossibleRejectReasons

func (c Certificates) PossibleRejectReasons(ctx context.Context) (*PossibleRejectReasonsResponse, error)

Possible certificate rejection reasons

func (Certificates) PossibleStatuses

func (c Certificates) PossibleStatuses(ctx context.Context) (*PossibleStatusesResponse, error)

func (Certificates) ProductStatuses

func (c Certificates) ProductStatuses(ctx context.Context) (*ProductStatusesResponse, error)

func (Certificates) UnlinkFromProduct

Unbind products from a certificate

type ChangeProductIDsError

type ChangeProductIDsError struct {
	// Error message
	Message string `json:"message"`

	// Product identifier that wasn't changed
	OfferId string `json:"offer_id"`
}

type ChangeProductIDsParams

type ChangeProductIDsParams struct {
	// List of pairs with new and old values of product identifiers
	UpdateOfferId []ChangeProductIDsUpdateOffer `json:"update_offer_id"`
}

type ChangeProductIDsResponse

type ChangeProductIDsResponse struct {
	core.CommonResponse

	// Errors list
	Errors []ChangeProductIDsError `json:"errors"`
}

type ChangeProductIDsUpdateOffer

type ChangeProductIDsUpdateOffer struct {
	// New product identifier
	//
	// The maximum length of a string is 50 characters
	NewOfferId string `json:"new_offer_id"`

	// Old product identifier
	OfferId string `json:"offer_id"`
}

type ChangeShipmentCompositionParams added in v1.18.0

type ChangeShipmentCompositionParams struct {
	// Freight identifier
	CarriageId int64 `json:"carriage_id"`

	// Current list of shipments
	PostingNumbers []string `json:"posting_numbers"`
}

type ChangeShipmentCompositionResponse added in v1.18.0

type ChangeShipmentCompositionResponse struct {
	core.CommonResponse

	Result []ChangeShipmentCompositionResult `json:"result"`
}

type ChangeShipmentCompositionResult added in v1.18.0

type ChangeShipmentCompositionResult struct {
	// Error message
	Error string `json:"error"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Request processing result. true if the request was executed successfully
	Result bool `json:"result"`
}

type ChangeStatusParams added in v1.18.0

type ChangeStatusParams struct {
	// Array with review identifiers from 1 to 100
	ReviewIds []string `json:"review_ids"`

	// Review status
	Status string `json:"status"`
}

Only available to sellers with the Premium Plus subscription

type ChangeStatusResponse added in v1.18.0

type ChangeStatusResponse struct {
	core.CommonResponse
}

type ChangeStatusToParams

type ChangeStatusToParams struct {
	// Shipment identifier
	PostingNumber []string `json:"posting_number"`
}

type ChangeStatusToResponse

type ChangeStatusToResponse struct {
	core.CommonResponse

	// Method result
	Result []ChangeStatusToResponseResult `json:"result"`
}

type ChangeStatusToResponseResult

type ChangeStatusToResponseResult struct {
	// Error when processing the request
	Error []string `json:"error"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// If the request is executed without errors — true
	Result bool `json:"result"`
}

type ChangeStrategyStatusParams

type ChangeStrategyStatusParams struct {
	// Strategy status
	Enabled bool `json:"enabled"`

	// Product identifier
	StrategyId string `json:"strategy_id"`
}

type ChangeStrategyStatusResponse

type ChangeStrategyStatusResponse struct {
	core.CommonResponse
}

type ChatHistoryMessage

type ChatHistoryMessage struct {
	// Message creation date
	CreatedAt time.Time `json:"created_at"`

	// Array with message content in Markdown format
	Data []string `json:"data"`

	// Indication of the read message
	IsRead bool `json:"is_read"`

	// Message identifier
	MessageId string `json:"message_id"`

	// Chat participant identifier
	User ChatHistoryMessageUser `json:"user"`
}

type ChatHistoryMessageUser

type ChatHistoryMessageUser struct {
	// Chat participant identifier
	Id string `json:"id"`

	// Chat participant type:
	//   - customer
	//   - seller
	//   - crm—system messages
	//   - courier
	//   - support
	Type string `json:"type"`
}

type ChatHistoryParams

type ChatHistoryParams struct {
	// Chat idenitifier
	ChatId string `json:"chat_id"`

	// Messages sorting direction:
	//   - Forward—from old messages to new ones.
	//   - Backward—from new messages to old ones.
	// The default value is `Backward`. You can set the number of messages in the limit parameter
	Direction string `json:"direction" default:"Backward"`

	// Identifier of the message from which the chat history will be displayed.
	// Default value is the last visible message
	FromMessageId string `json:"from_message_id"`

	// Number of messages in the response. The default value is 50. The maximum value is 1000
	Limit int64 `json:"limit" default:"50"`
}

type ChatHistoryResponse

type ChatHistoryResponse struct {
	core.CommonResponse

	// Indicates that the response returned only a part of messages
	HasNext bool `json:"has_next"`

	// An array of messages sorted according to the direction parameter in the request body
	Messages []ChatHistoryMessage `json:"messages"`
}

type Chats

type Chats struct {
	// contains filtered or unexported fields
}

func (Chats) Create

Creates a new chat on the shipment with the customer. For example, to clarify the address or the product model

func (Chats) History

func (c Chats) History(ctx context.Context, params *ChatHistoryParams) (*ChatHistoryResponse, error)

Returns the history of chat messages. By default messages are shown from newest to oldest.

func (Chats) List

func (c Chats) List(ctx context.Context, params *ListChatsParams) (*ListChatsResponse, error)

Returns information about chats by specified filters

func (Chats) MarkAsRead

func (c Chats) MarkAsRead(ctx context.Context, params *MarkAsReadParams) (*MarkAsReadResponse, error)

A method for marking the selected message and messages before it as read

func (Chats) SendFile

func (c Chats) SendFile(ctx context.Context, params *SendFileParams) (*SendFileResponse, error)

Sends a file to an existing chat by its identifier

func (Chats) SendMessage

func (c Chats) SendMessage(ctx context.Context, params *SendMessageParams) (*SendMessageResponse, error)

Sends a message to an existing chat by its identifier

func (Chats) Update

func (c Chats) Update(ctx context.Context, params *UpdateChatParams) (*UpdateChatResponse, error)

Update chat

type CheckImageUploadingStatusItem added in v1.18.0

type CheckImageUploadingStatusItem struct {
	// Product identifier
	ProductId int64 `json:"product_id"`

	// Main image link
	PrimaryPhoto []string `json:"primary_photo"`

	// Links to product photos
	Photo []string `json:"photo"`

	// Links to uploaded color samples
	ColorPhoto []string `json:"color_photo"`

	// 360 images links
	Photo360 []string `json:"photo_360"`
}

type CheckImageUploadingStatusParams

type CheckImageUploadingStatusParams struct {
	// Product identifiers list
	ProductId []int64 `json:"product_id"`
}

type CheckImageUploadingStatusResponse added in v1.18.0

type CheckImageUploadingStatusResponse struct {
	core.CommonResponse

	// Product images
	Items []CheckImageUploadingStatusItem `json:"items"`
}

type CheckProductItemsDataParams

type CheckProductItemsDataParams struct {
	// Quantity of boxes the product is packed in
	MultiBoxQuantity int32 `json:"multi_box_qty"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Product list
	Products []CheckProductItemsDataProduct `json:"products"`
}

type CheckProductItemsDataProduct

type CheckProductItemsDataProduct struct {
	// Product items data
	Exemplars []CheckProductItemsDataProductExemplar `json:"exemplars"`

	// Indication that you need to pass the сustoms cargo declaration
	// (CCD) number for the product and shipment
	IsGTDNeeded bool `json:"is_gtd_needed"`

	// Indication that you need to pass the "Chestny ZNAK" labeling
	IsMandatoryMarkNeeded bool `json:"is_mandatory_mark_needed"`

	// Indication that you need to pass the product batch registration number
	IsRNPTNeeded bool `json:"is_rnpt_needed"`

	// Product ID
	ProductId int64 `json:"product_id"`

	// Items quantity
	Quantity int32 `json:"quantity"`
}

type CheckProductItemsDataProductExemplar added in v1.9.0

type CheckProductItemsDataProductExemplar struct {
	// Item identifier
	ExemplarId int64 `json:"exemplar_id"`

	// Customs cargo declaration (CCD) number
	GTD string `json:"gtd"`

	// Сustoms cargo declaration (CCD) check status
	GTDCheckStatus string `json:"gtd_check_status"`

	// Сustoms cargo declaration (CCD) check error codes
	GTDErrorCodes []string `json:"gtd_error_codes"`

	// Indication that the customs cargo declaration (CCD) number isn't specified
	IsGTDAbsent bool `json:"is_gtd_absent"`

	// "Chestny ZNAK" labeling check status
	MandatoryMarkCheckStatus MandatoryMarkStatus `json:"mandatory_mark_check_status"`

	// "Chestny ZNAK" labeling check error codes
	MandatoryMarkErrorCodes []string `json:"mandatory_mark_error_codes"`

	// Indication that the product batch registration number isn't specified
	IsRNPTAbsent bool `json:"is_rnpt_absent"`

	// Mandatory "Chestny ZNAK" labeling
	MandatoryMark string `json:"mandatory_mark"`

	// Product batch registration number
	RNPT string `json:"rnpt"`

	// Product batch registration number check status
	RNPTCheckStatus string `json:"rnpt_check_status"`

	// Product batch registration number check error codes
	RNPTErrorCodes []string `json:"rnpt_error_codes"`

	// Unique identifier of charges of the jewelry
	JWUIN string `json:"jw_uin"`
}

type CheckProductItemsDataResponse

type CheckProductItemsDataResponse struct {
	core.CommonResponse

	// Method result. true if the request was processed successfully
	Result bool `json:"result"`
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(opts ...ClientOption) *Client

func NewMockClient

func NewMockClient(handler http.HandlerFunc) *Client

func (Client) Analytics

func (c Client) Analytics() *Analytics

func (Client) Barcodes added in v1.7.0

func (c Client) Barcodes() *Barcodes

func (Client) Brands

func (c Client) Brands() *Brands

func (Client) Cancellations

func (c Client) Cancellations() *Cancellations

func (Client) Categories

func (c Client) Categories() *Categories

func (Client) Certificates

func (c Client) Certificates() *Certificates

func (Client) Chats

func (c Client) Chats() *Chats

func (Client) Clusters added in v1.17.0

func (c Client) Clusters() *Clusters

func (Client) FBO

func (c Client) FBO() *FBO

func (Client) FBS

func (c Client) FBS() *FBS

func (Client) Finance

func (c Client) Finance() *Finance

func (Client) Invoices

func (c Client) Invoices() *Invoices

func (Client) Passes added in v1.12.0

func (c Client) Passes() *Passes

func (Client) Polygons

func (c Client) Polygons() *Polygons

func (Client) Products

func (c Client) Products() *Products

func (Client) Promotions

func (c Client) Promotions() *Promotions

func (Client) Quants added in v1.17.0

func (c Client) Quants() *Quants

func (Client) Rating

func (c Client) Rating() *Rating

func (Client) Reports

func (c Client) Reports() *Reports

func (Client) Returns

func (c Client) Returns() *Returns

func (Client) Reviews added in v1.18.0

func (c Client) Reviews() *Reviews

func (Client) Strategies

func (c Client) Strategies() *Strategies

func (Client) Warehouses

func (c Client) Warehouses() *Warehouses

type ClientOption added in v1.9.0

type ClientOption func(c *ClientOptions)

func WithAPIKey added in v1.9.0

func WithAPIKey(apiKey string) ClientOption

func WithClientId added in v1.9.0

func WithClientId(clientId string) ClientOption

func WithHttpClient added in v1.9.0

func WithHttpClient(httpClient core.HttpClient) ClientOption

func WithURI added in v1.9.0

func WithURI(uri string) ClientOption

type ClientOptions added in v1.9.0

type ClientOptions struct {
	// contains filtered or unexported fields
}

type Cluster added in v1.17.0

type Cluster struct {
	// Cluster identifier
	Id int64 `json:"id"`

	// Cluster warehouse details
	LogisticClusters []LogisticCluster `json:"logistic_clusters"`

	// Cluster name
	Name string `json:"name"`

	// Cluster type
	Type string `json:"type"`
}

type Clusters added in v1.17.0

type Clusters struct {
	// contains filtered or unexported fields
}

func (Clusters) List added in v1.17.0

type Comment added in v1.18.0

type Comment struct {
	// Comment identifier
	Id string `json:"id"`

	// true, if the comment was left by an official, false if a customer left it
	IsOfficial bool `json:"is_official"`

	// true, if the comment was left by a seller, false if a customer left it
	IsOwner bool `json:"is_owner"`

	// Identifier of the parent comment to reply to
	ParentCommentId string `json:"parent_comment_id"`

	// Date the comment was published
	PublishedAt time.Time `json:"published_at"`

	// Comment text
	Text string `json:"text"`
}

type CompensateRFBSReturnParams added in v1.8.0

type CompensateRFBSReturnParams struct {
	// Compensation amount
	CompensationAmount string `json:"compensation_amount"`

	// Return request identifier
	ReturnId int64 `json:"return_id"`
}

type CompensateRFBSReturnResponse added in v1.8.0

type CompensateRFBSReturnResponse struct {
	core.CommonResponse
}

type Coordinates added in v1.17.0

type Coordinates struct {
	// Latitude
	Latitude float64 `json:"latitude"`

	// Longitude
	Longitude float64 `json:"longitude"`
}

type CountReviewsResponse added in v1.18.0

type CountReviewsResponse struct {
	core.CommonResponse

	// Number of processed review
	Processed int32 `json:"processed"`

	// Number of all reviews
	Total int32 `json:"total"`

	// Number of unprocessed reviews
	Unprocessed int32 `json:"unprocessed"`
}

type CreateActParams

type CreateActParams struct {
	// Number of package units.
	//
	// Use this parameter if you have trusted acceptance enabled and ship orders by package units.
	// If you do not have trusted acceptance enabled, skip it
	ContainersCount int32 `json:"containers_count"`

	// Delivery method identifier
	DeliveryMethodId int64 `json:"delivery_method_id"`

	// Shipping date.
	//
	// To make documents printing available before the shipping day,
	// enable Printing the acceptance certificate in advance in your personal account under the method settings.
	// The time for packaging (packaging SLA) should be more than 13 hours
	DepartureDate time.Time `json:"departure_date"`
}

type CreateActResponse

type CreateActResponse struct {
	core.CommonResponse

	// Method result
	Result CreateActResult `json:"result"`
}

type CreateActResult

type CreateActResult struct {
	// Document generation task number
	Id int64 `json:"id"`
}

type CreateCarriageParams added in v1.12.0

type CreateCarriageParams struct {
	// List of passes
	ArrivalPasses []CarriageArrivalPass `json:"arrival_passes"`

	// Freight identifier
	CarriageId int64 `json:"carriage_id"`
}

type CreateCarriageResponse added in v1.12.0

type CreateCarriageResponse struct {
	core.CommonResponse

	// Pass identifiers
	ArrivalPassIds []string `json:"arrival_pass_ids"`
}

type CreateDeliveryPolygonParams

type CreateDeliveryPolygonParams struct {
	// Delivery polygon coordinates in [[[lat long]]] format
	Coordinates string `json:"coordinates"`
}

type CreateDeliveryPolygonResponse

type CreateDeliveryPolygonResponse struct {
	core.CommonResponse

	// Polygon identifier
	PolygonId int64 `json:"polygon_id"`
}

type CreateNewChatParams

type CreateNewChatParams struct {
	// Shipment identifier
	PostingNumber string `json:"posting_number"`
}

type CreateNewChatResponse

type CreateNewChatResponse struct {
	core.CommonResponse

	//Method result
	Result CreateNewChatResult `json:"result"`
}

type CreateNewChatResult

type CreateNewChatResult struct {
	// Chat identifier
	ChatId string `json:"chat_id"`
}

type CreateOrGetProductExemplarParams added in v1.9.0

type CreateOrGetProductExemplarParams struct {
	// Shipment number
	PostingNumber string `json:"posting_number"`
}

type CreateOrGetProductExemplarResponse added in v1.9.0

type CreateOrGetProductExemplarResponse struct {
	core.CommonResponse

	// Quantity of boxes the product is packed in
	MultiBoxQuantity int32 `json:"multi_box_qty"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Product list
	Products []CheckProductItemsDataProduct `json:"products"`
}

type CreateOrUpdateAttribute

type CreateOrUpdateAttribute struct {
	// Identifier of the characteristic that supports nested properties.
	// For example, the "Processor" characteristic has nested characteristics "Manufacturer", "L2 Cache", and others.
	// Each of the nested characteristics can have multiple value variants
	ComplexId int64 `json:"complex_id"`

	// Characteristic identifier
	Id int64 `json:"id"`

	Values []CreateOrUpdateAttributeValue `json:"values"`
}

Array with the product characteristics. The characteristics depend on category. You can view them in Help Center or via API

type CreateOrUpdateAttributeValue

type CreateOrUpdateAttributeValue struct {
	// Directory identifier
	DictionaryValueId int64 `json:"dictionary_value_id"`

	// Value from the directory
	Value string `json:"value"`
}

type CreateOrUpdateComplexAttribute

type CreateOrUpdateComplexAttribute struct {
	Attributes []CreateOrUpdateAttribute `json:"attributes"`
}

type CreateOrUpdateProductItem

type CreateOrUpdateProductItem struct {
	// Array with the product characteristics. The characteristics depend on category.
	// You can view them in Help Center or via API
	Attributes []CreateOrUpdateAttribute `json:"attributes"`

	// Product barcode
	Barcode string `json:"barcode"`

	// Category identifier
	DescriptionCategoryId int64 `json:"description_category_id"`

	// New category identifier. Specify it if you want to change the current product category
	NewDescriptinoCategoryId int64 `json:"new_description_category_id"`

	// Marketing color.
	//
	// Pass the link to the image in the public cloud storage. The image format is JPG
	ColorImage string `json:"color_image"`

	// Array of characteristics that have nested attributes
	ComplexAttributes []CreateOrUpdateComplexAttribute `json:"complex_attributes"`

	// Package depth
	Depth int32 `json:"depth"`

	// Dimensions measurement units:
	//   - mm — millimeters,
	//   - cm — centimeters,
	//   - in — inches
	DimensionUnit string `json:"dimension_unit"`

	// Geo-restrictions. Pass a list consisting of name values received in the response of the /v1/products/geo-restrictions-catalog-by-filter method
	GeoNames []string `json:"geo_names"`

	// Package height
	Height int32 `json:"height"`

	// Array of images, up to 15 files. The images are displayed on the site in the same order as they are in the array.
	//
	// The first one will be set as the main image for the product if the primary_image parameter is not specified.
	//
	// If you use the primary_image parameter, the maximum number of images is 14. If the primary_image parameter is not specified, you can upload up to 15 images.
	//
	// Pass links to images in the public cloud storage. The image format is JPG or PNG
	Images []string `json:"images"`

	// Link to main product image
	PrimaryImage string `json:"primary_image"`

	// Array of 360 images—up to 70 files.
	//
	// Pass links to images in the public cloud storage. The image format is JPG
	Images360 []string `json:"images_360"`

	// Product name. Up to 500 characters
	Name string `json:"name"`

	// Product identifier in the seller's system.
	//
	// The maximum length of a string is 50 characters
	OfferId string `json:"offer_id"`

	// Currency of your prices. The passed value must be the same as the one set in the personal account settings.
	// By default, the passed value is RUB, Russian ruble.
	//
	// For example, if your currency set in the settings is yuan, pass the value CNY, otherwise an error will be returned
	CurrencyCode string `json:"currency_code"`

	// Price before discounts. Displayed strikethrough on the product description page. Specified in rubles. The fractional part is separated by decimal point, up to two digits after the decimal point.
	//
	// If you specified the old_price before and updated the price parameter you should update the old_price too
	OldPrice string `json:"old_price"`

	// List of PDF files
	PDFList []CreateOrUpdateProductPDF `json:"pdf_list"`

	// Product price including discounts. This value is shown on the product description card.
	// If there are no discounts on the product, specify the old_price value
	Price string `json:"price"`

	// Default: "IS_CODE_SERVICE"
	// Service type. Pass one of the values in upper case:
	//   - IS_CODE_SERVICE,
	//   - IS_NO_CODE_SERVICE
	ServiceType string `json:"service_type" default:"IS_CODE_SERVICE"`

	// Product type identifier.
	// You can get values from the type_id parameter in the `/v1/description-category/tree` method response.
	// When filling this parameter in,
	// you can leave out the attributes attribute if it has the `id:8229` parameter
	TypeId int64 `json:"type_id"`

	// VAT rate for the product
	VAT VAT `json:"vat"`

	// Product weight with the package. The limit value is 1000 kilograms or a corresponding converted value in other measurement units
	Weight int32 `json:"weight"`

	// Weight measurement units:
	//   - g—grams,
	//   - kg—kilograms,
	//   - lb—pounds
	WeightUnit string `json:"weight_unit"`

	// Package width
	Width int32 `json:"width"`
}

Data array

type CreateOrUpdateProductPDF

type CreateOrUpdateProductPDF struct {
	// Storage order index
	Index int64 `json:"index"`

	// File name
	Name string `json:"name"`

	// File address
	URL string `json:"url"`
}

type CreateOrUpdateProductParams

type CreateOrUpdateProductParams struct {
	// Data array
	Items []CreateOrUpdateProductItem `json:"items"`
}

type CreateOrUpdateProductResponse

type CreateOrUpdateProductResponse struct {
	core.CommonResponse

	// Method result
	Result CreateOrUpdateProductResult `json:"result"`
}

type CreateOrUpdateProductResult

type CreateOrUpdateProductResult struct {
	// Number of task for products upload
	TaskId int64 `json:"task_id"`
}

type CreatePassParams added in v1.17.0

type CreatePassParams struct {
	// Supply request identifier
	SupplyOrderId int64 `json:"supply_order_id"`

	// Driver and car information
	Vehicle GetSupplyRequestInfoVehicle `json:"vehicle"`
}

type CreatePassResponse added in v1.17.0

type CreatePassResponse struct {
	core.CommonResponse

	// Possible errors
	Errors []string `json:"error_reasons"`

	// Operation identifier
	OperationId string `json:"operation_id"`
}

type CreateProductByOzonIDParams

type CreateProductByOzonIDParams struct {
	// Products details
	Items []CreateProductsByOzonIDItem `json:"items"`
}

type CreateProductByOzonIDResponse

type CreateProductByOzonIDResponse struct {
	core.CommonResponse

	Result CreateProductByOzonIDResult `json:"result"`
}

type CreateProductByOzonIDResult added in v1.8.0

type CreateProductByOzonIDResult struct {
	// Products import task code
	TaskId int64 `json:"task_id"`

	// Products identifiers list
	UnmatchedSKUList []int64 `json:"unmatched_sku_list"`
}

type CreateProductsByOzonIDItem

type CreateProductsByOzonIDItem struct {
	// Product name. Up to 500 characters
	Name string `json:"name"`

	// Product identifier in the seller's system.
	//
	// The maximum length of a string is 50 characters
	OfferId string `json:"offer_id"`

	// Price before discounts. Displayed strikethrough on the product description page. Specified in rubles.
	// The fractional part is separated by decimal point, up to two digits after the decimal point
	OldPrice string `json:"old_price"`

	// Product price including discounts. This value is shown on the product description page.
	// If there are no discounts, pass the old_price value in this parameter
	Price string `json:"price"`

	// Currency of your prices. The passed value must be the same as the one set in the personal account settings.
	// By default, the passed value is RUB, Russian ruble.
	//
	// For example, if your currency set in the settings is yuan, pass the value CNY, otherwise an error will be returned
	CurrencyCode string `json:"currency_code"`

	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`

	// VAT rate for the product
	VAT VAT `json:"vat"`
}

type CreateReturnParams added in v1.12.0

type CreateReturnParams struct {
	// Array of passes
	ArrivalPasses []ReturnArrivalPass `json:"arrival_passes"`
}

type CreateReturnResponse added in v1.12.0

type CreateReturnResponse struct {
	core.CommonResponse

	// Pass identifiers
	ArrivalPassIds []string `json:"arrival_pass_ids"`
}

type CreateStrategyCompetitor

type CreateStrategyCompetitor struct {
	// Coefficient by which the minimum price among competitors will be multiplied.
	// The allowed range is from 0.5 to 1.2
	Coefficient float32 `json:"coefficient"`

	// Competitor identifier
	CompetitorId int64 `json:"competitor_id"`
}

type CreateStrategyParams

type CreateStrategyParams struct {
	// List of competitors
	Competitors []CreateStrategyCompetitor `json:"competitors"`

	// Strategy name
	StrategyName string `json:"strategy_name"`
}

type CreateStrategyResponse

type CreateStrategyResponse struct {
	core.CommonResponse

	// Method result
	Result CreateStrategyResult `json:"result"`
}

type CreateStrategyResult

type CreateStrategyResult struct {
	// Strategy identifier
	StrategyId string `json:"strategy_id"`
}

type CreateSupplyDraftItem added in v1.17.0

type CreateSupplyDraftItem struct {
	// Product quantity
	Quantity int32 `json:"quantity"`

	// Product identifier
	SKU int64 `json:"sku"`
}

type CreateSupplyDraftParams added in v1.17.0

type CreateSupplyDraftParams struct {
	// Clusters identifiers
	ClusterIds []string `json:"cluster_ids"`

	// Shipping point identifier: pick-up point or sorting center. Only for the type = CREATE_TYPE_CROSSDOCK supply type.
	DropoffWarehouseId int64 `json:"drop_off_point_warehouse_id"`

	// Products
	Items []CreateSupplyDraftItem `json:"items"`

	// Supply type
	Type string `json:"type"`
}

type CreateSupplyDraftResponse added in v1.17.0

type CreateSupplyDraftResponse struct {
	core.CommonResponse

	// Identifier of the supply request draft
	OperationId string `json:"operation_id"`
}

type CreateSupplyFromDraftParams added in v1.17.0

type CreateSupplyFromDraftParams struct {
	// Identifier of the supply request draft
	DraftId int64 `json:"draft_id"`

	// Supply time slot
	Timeslot CreateSupplyFromDraftTimeslot `json:"timeslot"`

	// Shipping warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`
}

type CreateSupplyFromDraftResponse added in v1.17.0

type CreateSupplyFromDraftResponse struct {
	core.CommonResponse

	// Supply request identifier
	OperationId string `json:"operation_id"`
}

type CreateSupplyFromDraftTimeslot added in v1.17.0

type CreateSupplyFromDraftTimeslot struct {
	// Supply time slot start date
	FromInTimezone time.Time `json:"from_in_timezone"`

	// Supply time slot end date
	ToInTimezone time.Time `json:"to_in_timezone"`
}

type CreateTaskForGeneratingLabelParams

type CreateTaskForGeneratingLabelParams struct {
	// Numbers of shipments that need labeling
	PostingNumber []string `json:"posting_number"`
}

type CreateTaskForGeneratingLabelResponse

type CreateTaskForGeneratingLabelResponse struct {
	core.CommonResponse

	// Method result
	Result CreateTaskForGeneratingLabelResult `json:"result"`
}

type CreateTaskForGeneratingLabelResult

type CreateTaskForGeneratingLabelResult struct {
	Tasks []CreateTaskForGeneratingLabelTask `json:"tasks"`
}

type CreateTaskForGeneratingLabelTask added in v1.14.0

type CreateTaskForGeneratingLabelTask struct {
	// Task identifier for labeling generation
	TaskId int64 `json:"task_id"`

	// Type of label generation task:
	//
	// 	big_label — for a regular label,
	// 	small_label — for a small label
	TaskType string `json:"task_type"`
}

type CreateUpdateProformaLinkHSCode added in v1.14.0

type CreateUpdateProformaLinkHSCode struct {
	// Product HS code
	Code string `json:"code"`

	// Product identifier in the Ozon system, SKU
	SKU string `json:"sku"`
}

type CreateUpdateProformaLinkParams

type CreateUpdateProformaLinkParams struct {
	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Invoice link. Use the `v1/invoice/file/upload` method to create a link
	URL string `json:"url"`

	// Product HS-codes
	HSCodes []CreateUpdateProformaLinkHSCode `json:"hs_codes"`

	// Invoice date
	Date time.Time `json:"date"`

	// Invoice number. The number can contain letters and digits, maximum length is 50 characters
	Number string `json:"number"`

	// Cost stated in the invoice. The fractional part is separated by decimal point, up to two digits after the decimal point
	Price float64 `json:"price"`

	// Invoice currency
	PriceCurrency InvoiceCurrency `json:"price_currency" default:"USD"`
}

type CreateUpdateProformaLinkResponse

type CreateUpdateProformaLinkResponse struct {
	core.CommonResponse

	// Method result
	Result bool `json:"result"`
}

type DateAvailableForDeliveryScheduleDeliveryInterval

type DateAvailableForDeliveryScheduleDeliveryInterval struct {
	// Period start date
	Begin time.Time `json:"begin"`

	// Period end date
	End time.Time `json:"end"`
}

type DateAvailableForDeliveryScheduleParams

type DateAvailableForDeliveryScheduleParams struct {
	// Shipment number
	PostingNumber string `json:"posting_number"`
}

type DateAvailableForDeliveryScheduleResponse

type DateAvailableForDeliveryScheduleResponse struct {
	core.CommonResponse

	// Number of delivery date reschedules made
	AvailableChangecount int64 `json:"available_change_count"`

	// Period of dates available for reschedule
	DeliveryInterval DateAvailableForDeliveryScheduleDeliveryInterval `json:"delivery_interval"`

	// Number of delivery date reschedules left
	RemainingChangeCount int64 `json:"remaining_change_count"`
}

type DeleteCarriageParams added in v1.12.0

type DeleteCarriageParams struct {
	// Pass identifiers
	ArrivalPassIds []int64 `json:"arrival_pass_ids"`

	// Freight identifier
	CarriageId int64 `json:"carriage_id"`
}

type DeleteCarriageResponse added in v1.12.0

type DeleteCarriageResponse struct {
	core.CommonResponse
}

type DeleteCertificateParams

type DeleteCertificateParams struct {
	// Certificate identifier
	CertificateId int32 `json:"certificate_id"`
}

type DeleteCertificateResponse

type DeleteCertificateResponse struct {
	core.CommonResponse

	// Result of deleting the certificate
	Result DeleteCertificateResult `json:"result"`
}

type DeleteCertificateResult

type DeleteCertificateResult struct {
	// Indication that a certificate has been deleted:
	//   - true — deleted
	//   - false — not deleted
	IsDelete bool `json:"is_delete"`

	// Description of errors during certificate deletion
	ErrorMessage string `json:"error_message"`
}

type DeleteCommentParams added in v1.18.0

type DeleteCommentParams struct {
	// Comment identifier
	CommentId string `json:"comment_id"`
}

type DeleteCommentResponse added in v1.18.0

type DeleteCommentResponse struct {
	core.CommonResponse
}

type DeleteProformaLinkParams

type DeleteProformaLinkParams struct {
	// Shipment number
	PostingNumber string `json:"posting_number"`
}

type DeleteProformaLinkResponse

type DeleteProformaLinkResponse struct {
	core.CommonResponse

	// Method result
	Result bool `json:"result"`
}

type DeleteReturnParams added in v1.12.0

type DeleteReturnParams struct {
	// Pass identifiers
	ArrivalPassIds []int64 `json:"arrival_pass_ids"`
}

type DeleteReturnResponse added in v1.12.0

type DeleteReturnResponse struct {
	core.CommonResponse
}

type DeleteShipmentParams added in v1.18.0

type DeleteShipmentParams struct {
	// Freight identifier
	CarriageId int64 `json:"carriage_id"`
}

type DeleteShipmentResponse added in v1.18.0

type DeleteShipmentResponse struct {
	core.CommonResponse

	// Error message
	Error string `json:"error"`

	// Carriage status
	Status string `json:"carriage_status"`
}

type DetailsDeliveryItemName

type DetailsDeliveryItemName string
const (
	DirectFlowLogisticSumDetailsDeliveryItemName DetailsDeliveryItemName = "MarketplaceServiceItemDirectFlowLogisticSum"
	DropoffDetailsDeliveryItemName               DetailsDeliveryItemName = "MarketplaceServiceItemDropoff"
	DelivToCustomerDetailsDeliveryItemName       DetailsDeliveryItemName = "MarketplaceServiceItemDelivToCustomer"
)

type DetailsOtherItemName

type DetailsOtherItemName string
const (
	RedistributionOfAcquiringOperation                   DetailsOtherItemName = "MarketplaceRedistributionOfAcquiringOperation"
	CompensationLossOfGoodsOperation                     DetailsOtherItemName = "MarketplaceSellerCompensationLossOfGoodsOperation"
	CorrectionOperation                                  DetailsOtherItemName = "MarketplaceSellerCorrectionOperation"
	OperationCorrectionSeller                            DetailsOtherItemName = "OperationCorrectionSeller"
	OperationMarketplaceWithHoldingForUndeliverableGoods DetailsOtherItemName = "OperationMarketplaceWithHoldingForUndeliverableGoods"
	OperationClaim                                       DetailsOtherItemName = "OperationClaim"
)

type DetailsReturnServiceName

type DetailsReturnServiceName string
const (
	ReturnAfterDelivToCustomerDetailsReturnServiceName DetailsReturnServiceName = "MarketplaceServiceItemReturnAfterDelivToCustomer"
	ReturnPartGoodsCustomerDetailsReturnServiceName    DetailsReturnServiceName = "MarketplaceServiceItemReturnPartGoodsCustomer"
	ReturnNotDelivToCustomerDetailsReturnServiceName   DetailsReturnServiceName = "MarketplaceServiceItemReturnNotDelivToCustomer"
	ReturnFlowLogisticDetailsReturnServiceName         DetailsReturnServiceName = "MarketplaceServiceItemReturnFlowLogistic"
)

type DetailsServiceItemName

type DetailsServiceItemName string
const (
	OtherMarketAndTech                          DetailsServiceItemName = "MarketplaceServiceItemOtherMarketAndTechService"
	ReturnStorageServiceAtThePickupPointFbsItem DetailsServiceItemName = "MarketplaceReturnStorageServiceAtThePickupPointFbsItem"
	SaleReviewsItem                             DetailsServiceItemName = "MarketplaceSaleReviewsItem"
	ServicePremiumCashbackIndividualPoints      DetailsServiceItemName = "MarketplaceServicePremiumCashbackIndividualPoints"
	ServiceStorageItem                          DetailsServiceItemName = "MarketplaceServiceStorageItem"
	ServiceStockDisposal                        DetailsServiceItemName = "MarketplaceServiceStockDisposal"
	ReturnDisposalServiceFbsItem                DetailsServiceItemName = "MarketplaceReturnDisposalServiceFbsItem"
	ServiceItemFlexiblePaymentSchedule          DetailsServiceItemName = "MarketplaceServiceItemFlexiblePaymentSchedule"
	ServiceProcessingSpoilage                   DetailsServiceItemName = "MarketplaceServiceProcessingSpoilage"
	ServiceProcessingIdentifiedSurplus          DetailsServiceItemName = "MarketplaceServiceProcessingIdentifiedSurplus"
	ServiceProcessingIdentifiedDiscrepancies    DetailsServiceItemName = "MarketplaceServiceProcessingIdentifiedDiscrepancies"
	ServiceItemInternetSiteAdvertising          DetailsServiceItemName = "MarketplaceServiceItemInternetSiteAdvertising"
	ServiceItemPremiumSubscribtion              DetailsServiceItemName = "MarketplaceServiceItemSubscribtionPremium"
	AgencyFeeAggregator3PLGlobalItem            DetailsServiceItemName = "MarketplaceAgencyFeeAggregator3PLGlobalItem"
)

type DigitalActType added in v1.4.0

type DigitalActType string
const (
	// acceptance certificate
	DigitalActTypeOfAcceptance DigitalActType = "act_of_acceptance"

	// discrepancy certificate
	DigitalActTypeOfMismatch DigitalActType = "act_of_mismatch"

	// surplus certificate
	DigitalActTypeOfExcess DigitalActType = "act_of_excess"
)

type DimensionsMM added in v1.17.0

type DimensionsMM struct {
	// Depth, mm
	Depth int64 `json:"depth"`

	// Height, mm
	Height int64 `json:"height"`

	// Weight, g
	Weight int64 `json:"weight"`

	// Width, mm
	Width int64 `json:"width"`
}

type DirectoryOfDocumentTypesResponse

type DirectoryOfDocumentTypesResponse struct {
	core.CommonResponse

	// List of certificate types and names
	Result []DirectoryOfDocumentTypesResult `json:"result"`
}

type DirectoryOfDocumentTypesResult

type DirectoryOfDocumentTypesResult struct {
	// Certificate name
	Name string `json:"name"`

	// Certificate type
	Value string `json:"value"`
}

type DiscountRequestParams

type DiscountRequestParams struct {
	// List of discount requests
	Tasks []DiscountRequestTask `json:"tasks"`
}

type DiscountRequestResponse

type DiscountRequestResponse struct {
	core.CommonResponse

	// Method result
	Result DiscountRequestResult `json:"result"`
}

type DiscountRequestResult

type DiscountRequestResult struct {
	// Errors when creating a request
	FailDetails []DiscountRequestResultFailDetail `json:"fail_details"`

	// The number of requests with a successful status change
	SuccessCount int32 `json:"success_count"`

	// The number of requests that failed to change their status
	FailCount int32 `json:"fail_count"`
}

type DiscountRequestResultFailDetail

type DiscountRequestResultFailDetail struct {
	// Request ID
	TaskId uint64 `json:"task_id"`

	// Error message
	ErrorForUser string `json:"error_for_user"`
}

type DiscountRequestTask

type DiscountRequestTask struct {
	// Request ID
	Id uint64 `json:"id"`

	// Approved price
	ApprovedPrice float64 `json:"approved_price"`

	// Seller's comment on the request
	SellerComment string `json:"seller_comment"`

	// Approved minimum quantity of products
	ApprovedQuantityMin uint64 `json:"approved_quantity_min"`

	// Approved maximum quantity of products
	ApprovedQuantityMax uint64 `json:"approved_quantity_max"`
}

type DraftTimeslot added in v1.17.0

type DraftTimeslot struct {
	// Current time in the warehouse time zone
	CurrentTimeInTimezone time.Time `json:"current_time_in_timezone"`

	// Supply time slots by dates
	Days []DraftTimeslotDay `json:"days"`

	// Warehouse identifier
	DropoffWarehouseId int64 `json:"drop_off_warehouse_id"`

	// Warehouse time zone
	WarehouseTimezone string `json:"warehouse_timezone"`
}

type DraftTimeslotDay added in v1.17.0

type DraftTimeslotDay struct {
	// Supply time slots date
	DateInTimezone time.Time `json:"date_in_timezone"`

	// Supply time slots details
	Timeslots []DraftTimeslotDayTimeslot `json:"timeslots"`
}

type DraftTimeslotDayTimeslot added in v1.17.0

type DraftTimeslotDayTimeslot struct {
	// Supply time slot start date
	FromInTimezone time.Time `json:"from_in_timezone"`

	// Supply time slot end date
	ToInTimezone time.Time `json:"to_in_timezone"`
}

type ETGBCustomDeclarationsResult

type ETGBCustomDeclarationsResult struct {
	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Declaration information
	ETGB ETGBCustomDeclarationsResultETGB `json:"etgb"`
}

type ETGBCustomDeclarationsResultETGB

type ETGBCustomDeclarationsResultETGB struct {
	// Number
	Number string `json:"number"`

	// Creation date
	Date string `json:"date"`

	// Link to file.
	//
	// If the field is empty and you need the file, contact Ozon support
	URL string `json:"url"`
}

type ETGBCustomsDeclarationsDate

type ETGBCustomsDeclarationsDate struct {
	// Start date
	From time.Time `json:"from"`

	// End date
	To time.Time `json:"to"`
}

type ETGBCustomsDeclarationsParams

type ETGBCustomsDeclarationsParams struct {
	// Filter by period of declaration creation
	Date ETGBCustomsDeclarationsDate `json:"date"`
}

type ETGBCustomsDeclarationsResponse

type ETGBCustomsDeclarationsResponse struct {
	core.CommonResponse

	// Request result
	Result []ETGBCustomDeclarationsResult `json:"result"`
}

type EconomyInfoItem added in v1.17.0

type EconomyInfoItem struct {
	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Product identifier
	ProductId int64 `json:"product_id"`

	// MOQ information
	QuantInfo EconomyInfoItemQuants `json:"quant_info"`
}

type EconomyInfoItemQuant added in v1.17.0

type EconomyInfoItemQuant struct {
	// Barcodes information
	BarcodesExtended []EconomyInfoItemQuantBarcode `json:"barcodes_extended"`

	// Dimensions
	Dimensions DimensionsMM `json:"dimensions"`

	// Marketing prices
	MarketingPrice EconomyInfoItemQuantMarketingPrice `json:"marketing_price"`

	// Minimum price specified by the seller
	MinPrice string `json:"min_price"`

	// The strikethrough price specified by the seller
	OldPrice string `json:"old_price"`

	// The selling price specified by the seller
	Price string `json:"price"`

	// Economy product identifier
	QuantCode string `json:"quant_code"`

	// MOQ size
	QuantSize int64 `json:"quant_sice"`

	// Product delivery type
	ShipmentType string `json:"shipment_type"`

	// Product SKU
	SKU int64 `json:"sku"`

	// Statuses descriptions
	Statuses EconomyInfoItemQuantStatus `json:"statuses"`
}

type EconomyInfoItemQuantBarcode added in v1.17.0

type EconomyInfoItemQuantBarcode struct {
	// Barcode
	Barcode string `json:"barcode"`

	// Error when receiving the barcode
	Error string `json:"error"`

	// Barcode status
	Status string `json:"status"`
}

type EconomyInfoItemQuantMarketingPrice added in v1.17.0

type EconomyInfoItemQuantMarketingPrice struct {
	// Selling price
	Price string `json:"price"`

	// Price specified by the seller
	SellerPrice string `json:"seller_price"`
}

type EconomyInfoItemQuantStatus added in v1.17.0

type EconomyInfoItemQuantStatus struct {
	// Status description
	StateDescription string `json:"state_description"`

	// Status name
	StateName string `json:"state_name"`

	// System name of the status
	StateSysName string `json:"state_sys_name"`

	// Tooltip with current product status details
	StateTooltip string `json:"state_tooltip"`
}

type EconomyInfoItemQuants added in v1.17.0

type EconomyInfoItemQuants struct {
	Quants []EconomyInfoItemQuant `json:"quants"`
}

type EconomyProduct added in v1.17.0

type EconomyProduct struct {
	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Product identifier
	ProductId int64 `json:"product_id"`

	// Product MOQs list
	Quants []EconomyProductQuant `json:"quants"`
}

type EconomyProductQuant added in v1.17.0

type EconomyProductQuant struct {
	// MOQ identifier
	QuantCode string `json:"quant_code"`

	// MOQ size
	QuantSize int64 `json:"quant_size"`
}

type FBO

type FBO struct {
	// contains filtered or unexported fields
}

func (FBO) CancelSuppyOrder added in v1.18.0

func (c FBO) CancelSuppyOrder(ctx context.Context, params *CancelSuppyOrderParams) (*CancelSuppyOrderResponse, error)

Cancel supply request

func (FBO) CreatePass added in v1.17.0

func (c FBO) CreatePass(ctx context.Context, params *CreatePassParams) (*CreatePassResponse, error)

func (FBO) CreateSupplyDraft added in v1.17.0

func (c FBO) CreateSupplyDraft(ctx context.Context, params *CreateSupplyDraftParams) (*CreateSupplyDraftResponse, error)

Create a direct or cross-docking supply request draft and specify the products to supply.

You can leave feedback on this method in the comments section to the discussion in the Ozon for dev community

func (FBO) CreateSupplyFromDraft added in v1.17.0

func (c FBO) CreateSupplyFromDraft(ctx context.Context, params *CreateSupplyFromDraftParams) (*CreateSupplyFromDraftResponse, error)

func (FBO) GetDraftTimeslots added in v1.17.0

func (c FBO) GetDraftTimeslots(ctx context.Context, params *GetDraftTimeslotsParams) (*GetDraftTimeslotsResponse, error)

Available supply time slots at final shipping warehouses

func (FBO) GetPass added in v1.17.0

func (c FBO) GetPass(ctx context.Context, params *GetPassParams) (*GetPassResponse, error)

func (FBO) GetShipmentDetails

func (c FBO) GetShipmentDetails(ctx context.Context, params *GetShipmentDetailsParams) (*GetShipmentDetailsResponse, error)

Returns information about the shipment by its identifier

func (FBO) GetShipmentsList

func (c FBO) GetShipmentsList(ctx context.Context, params *GetFBOShipmentsListParams) (*GetFBOShipmentsListResponse, error)

Returns a list of shipments for a specified period of time. You can additionally filter the shipments by their status

func (FBO) GetSupplyContent added in v1.17.0

func (c FBO) GetSupplyContent(ctx context.Context, params *GetSupplyContentParams) (*GetSupplyContentResponse, error)

func (FBO) GetSupplyDraftInfo added in v1.17.0

func (c FBO) GetSupplyDraftInfo(ctx context.Context, params *GetSupplyDraftInfoParams) (*GetSupplyDraftInfoResponse, error)

func (FBO) GetSupplyOrdersByStatus added in v1.17.0

func (c FBO) GetSupplyOrdersByStatus(ctx context.Context) (*GetSupplyOrdersByStatusResponse, error)

Returns the number of supply requests in a specific status.

func (FBO) GetSupplyRequestInfo

func (c FBO) GetSupplyRequestInfo(ctx context.Context, params *GetSupplyRequestInfoParams) (*GetSupplyRequestInfoResponse, error)

Method for getting detailed information on a supply request. Requests with supply both to a specific warehouse and via a virtual distribution center (vDC) are taken into account

func (FBO) GetSupplyTimeslotStatus added in v1.17.0

func (c FBO) GetSupplyTimeslotStatus(ctx context.Context, params *GetSupplyTimeslotStatusParams) (*GetSupplyTimeslotStatusResponse, error)

func (FBO) GetSupplyTimeslots added in v1.17.0

func (c FBO) GetSupplyTimeslots(ctx context.Context, params *GetSupplyTimeslotsParams) (*GetSupplyTimeslotsResponse, error)

func (FBO) GetWarehouseWorkload

func (c FBO) GetWarehouseWorkload(ctx context.Context) (*GetWarehouseWorkloadResponse, error)

Method returns a list of active Ozon warehouses with information about their average workload in the nearest future

func (FBO) ListSupplyRequests

func (c FBO) ListSupplyRequests(ctx context.Context, params *ListSupplyRequestsParams) (*ListSupplyRequestsResponse, error)

Requests with supply to a specific warehouse and through a virtual distribution center (vDC) are taken into account

func (FBO) StatusCancelledSupplyOrder added in v1.18.0

func (c FBO) StatusCancelledSupplyOrder(ctx context.Context, params *StatusCancelledSupplyOrderParams) (*StatusCancelledSupplyOrderResponse, error)

Get status of canceled supply request

func (FBO) UpdateSupplyTimeslot added in v1.17.0

func (c FBO) UpdateSupplyTimeslot(ctx context.Context, params *UpdateSupplyTimeslotParams) (*UpdateSupplyTimeslotResponse, error)

type FBOFinancialData

type FBOFinancialData struct {
	// Identifier of the cluster, where the shipment is sent from
	ClusterFrom string `json:"cluster_from"`

	// Identifier of the cluster, where the shipment is delivered to
	ClusterTo string `json:"cluster_to"`

	// Services
	PostingServices MarketplaceServices `json:"posting_services"`

	// Products list
	Products []FinancialDataProduct `json:"products"`
}

type FBOPostingProduct

type FBOPostingProduct struct {
	// Activation codes for services and digital products
	DigitalCodes []string `json:"digital_codes"`

	// Currency of your prices. It matches the currency set in the personal account settings
	CurrencyCode string `json:"currency_code"`

	// Product name
	Name string `json:"name"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Product price
	Price string `json:"price"`

	// Quantity of products in the shipment
	Quantity int64 `json:"quantity"`

	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`
}

type FBPFilter added in v1.6.0

type FBPFilter string
const (
	// all shipments matching other filters will be returned in the response
	FBPFilterAll FBPFilter = "all"

	// only FBP shipments will be returned
	FBPFilterOnly FBPFilter = "only"

	// all shipments except FBP will be returned
	FBPFilterWithout FBPFilter = "without"
)

type FBS

type FBS struct {
	// contains filtered or unexported fields
}

func (FBS) AddTrackingNumbers

func (c FBS) AddTrackingNumbers(ctx context.Context, params *AddTrackingNumbersParams) (*AddTrackingNumbersResponse, error)

Add tracking numbers to shipments

func (FBS) AddWeightForBulkProduct

func (c FBS) AddWeightForBulkProduct(ctx context.Context, params *AddWeightForBulkProductParams) (*AddWeightForBulkProductResponse, error)

Add weight for bulk products in a shipment

func (FBS) AvailableFreightsList

func (c FBS) AvailableFreightsList(ctx context.Context, params *AvailableFreightsListParams) (*AvailableFreightsListResponse, error)

Method for getting freights that require printing acceptance and transfer certificates and a waybill

func (FBS) BarcodeFromProductShipment added in v1.4.0

func (c FBS) BarcodeFromProductShipment(ctx context.Context, params *BarcodeFromProductShipmentParams) (*BarcodeFromProductShipmentResponse, error)

Method for getting a barcode to show at a pick-up point or sorting center during the shipment

func (FBS) BarcodeValueFromProductShipment added in v1.4.0

func (c FBS) BarcodeValueFromProductShipment(ctx context.Context, params *BarcodeValueFromProductShipmentParams) (*BarcodeValueFromProductShipmentResponse, error)

Use this method to get the barcode from the /v2/posting/fbs/act/get-barcode response in text format.

func (FBS) CancelSending

func (c FBS) CancelSending(ctx context.Context, params *CancelSendingParams) (*CancelSendingResponse, error)

Use this method if you cannot send some of the products from the shipment.

To get the cancel_reason_id cancellation reason identifiers when working with the FBS or rFBS schemes, use the /v2/posting/fbs/cancel-reason/list method.

You can't cancel presumably delivered orders.

func (FBS) CancelShipment

func (c FBS) CancelShipment(ctx context.Context, params *CancelShipmentParams) (*CancelShipmentResponse, error)

Change shipment status to `cancelled`.

If you are using the rFBS scheme, you have the following cancellation reason identifiers (`cancel_reason_id`) available:

352—product is out of stock ; 400—only defective products left; 401—cancellation from arbitration; 402—other reason; 665—the customer didn't pick the order; 666—delivery isn't available in the region; 667—order was lost by the delivery service. The last 4 reasons are available for shipments in the "Delivering" and "Courier on the way" statuses.

You can't cancel presumably delivered orders.

If `cancel_reason_id` parameter value is 402, fill the `cancel_reason_message` field.

func (FBS) ChangeShipmentComposition added in v1.18.0

func (c FBS) ChangeShipmentComposition(ctx context.Context, params *ChangeShipmentCompositionParams) (*ChangeShipmentCompositionResponse, error)

Method overwrites the list of orders in the shipment. Pass only orders in the awaiting_deliver status and ones which are ready for shipping.

func (FBS) ChangeStatusToDelivered

func (c FBS) ChangeStatusToDelivered(ctx context.Context, params *ChangeStatusToParams) (*ChangeStatusToResponse, error)

Changes the shipment status to "Delivered" if a third-party delivery service is being used

func (FBS) ChangeStatusToDelivering

func (c FBS) ChangeStatusToDelivering(ctx context.Context, params *ChangeStatusToParams) (*ChangeStatusToResponse, error)

Changes the shipment status to "Delivering" if a third-party delivery service is being used

func (FBS) ChangeStatusToLastMile

func (c FBS) ChangeStatusToLastMile(ctx context.Context, params *ChangeStatusToParams) (*ChangeStatusToResponse, error)

Changes the shipment status to "Last mile" if a third-party delivery service is being used

func (FBS) ChangeStatusToSendBySeller

func (c FBS) ChangeStatusToSendBySeller(ctx context.Context, params *ChangeStatusToParams) (*ChangeStatusToResponse, error)

Change shipment status to "Sent by seller". Status is only available to sellers with a first mile selling from abroad

func (FBS) CheckProductItemsData added in v1.8.0

func (c FBS) CheckProductItemsData(ctx context.Context, params *CheckProductItemsDataParams) (*CheckProductItemsDataResponse, error)

Asynchronous method:

for checking the availability of product items in the “Chestny ZNAK” labeling system;
for saving product items data.

To get the checks results, use the /v4/fbs/posting/product/exemplar/status method. To get data about created items, use the /v5/fbs/fbs/posting/product/exemplar/create-or-get method.

If necessary, specify the number of the cargo customs declaration in the gtd parameter. If it is missing, pass the value is_gtd_absent = true.

If you have multiple identical products in a shipment, specify one product_id and exemplars array for each product in the shipment.

Always pass a complete set of product items data.

For example, you have 10 product items in your system. You've passed them for checking and saving. Then you added another 60 product items to your system. When you pass product items for checking and saving again, pass all of them: both old and newly added.

Unlike /v4/fbs/posting/product/exemplar/set, you can pass more item information in the request.

The 200 response code doesn't guarantee that instance data has been received. It indicates that a task for adding the information has been created. To check the task status, use the /v4/fbs/posting/product/exemplar/status method.

func (FBS) CreateAct

func (c FBS) CreateAct(ctx context.Context, params *CreateActParams) (*CreateActResponse, error)

Launches the procedure for generating the transfer documents: acceptance and transfer certificate and the waybill.

To generate and receive transfer documents, transfer the shipment to the `awaiting_deliver` status

func (FBS) CreateOrGetProductExemplar added in v1.9.0

func (c FBS) CreateOrGetProductExemplar(ctx context.Context, params *CreateOrGetProductExemplarParams) (*CreateOrGetProductExemplarResponse, error)

Method returns the created items data passed in the `/v5/fbs/posting/product/exemplar/set` method.

Use this method to get the `exemplar_id`

func (FBS) CreateTaskForGeneratingLabel

func (c FBS) CreateTaskForGeneratingLabel(ctx context.Context, params *CreateTaskForGeneratingLabelParams) (*CreateTaskForGeneratingLabelResponse, error)

Method for creating a task for asynchronous labeling generation.

To get labels created as a result of the method, use the /v1/posting/fbs/package-label/get method

func (FBS) DateAvailableForDeliverySchedule

func (c FBS) DateAvailableForDeliverySchedule(ctx context.Context, params *DateAvailableForDeliveryScheduleParams) (*DateAvailableForDeliveryScheduleResponse, error)

Method for getting the dates and number of times available for delivery reschedule

func (FBS) DeleteShipment added in v1.18.0

func (c FBS) DeleteShipment(ctx context.Context, params *DeleteShipmentParams) (*DeleteShipmentResponse, error)

func (FBS) ETGBCustomsDeclarations

func (c FBS) ETGBCustomsDeclarations(ctx context.Context, params *ETGBCustomsDeclarationsParams) (*ETGBCustomsDeclarationsResponse, error)

Method for getting Elektronik Ticaret Gümrük Beyannamesi (ETGB) customs declarations for sellers from Turkey

func (FBS) GenerateAct

func (c FBS) GenerateAct(ctx context.Context, params *GenerateActParams) (*GenerateActResponse, error)

Get current status of generating digital acceptance and transfer certificate and waybill

func (FBS) GetActPDF added in v1.4.0

func (c FBS) GetActPDF(ctx context.Context, params *GetActPDFParams) (*GetActPDFResponse, error)

Get the generated transfer documents in PDF format: an acceptance and transfer certificate and a waybill.

If you are not connected to electronic document circulation (EDC), the method returns an acceptance and transfer certificate and a waybill.

If you are connected to EDC, the method returns a waybill only.

func (FBS) GetCancellationReasons added in v1.16.0

func (c FBS) GetCancellationReasons(ctx context.Context) (*GetCancellationReasonsResponse, error)

func (FBS) GetCarriage added in v1.12.0

func (c FBS) GetCarriage(ctx context.Context, params *GetCarriageParams) (*GetCarriageResponse, error)

func (FBS) GetDigitalAct

func (c FBS) GetDigitalAct(ctx context.Context, params *GetDigitalActParams) (*GetDigitalActResponse, error)

Specify the type of a certificate in the doc_type parameter: `act_of_acceptance`, `act_of_mismatch`, `act_of_excess`

func (FBS) GetDropOffPointRestrictions

func (c FBS) GetDropOffPointRestrictions(ctx context.Context, params *GetDropOffPointRestrictionsParams) (*GetDropOffPointRestrictionsResponse, error)

Method for getting dimensions, weight, and other restrictions of the drop-off point by the shipment number. The method is applicable only for the FBS scheme

func (FBS) GetFBSShipmentsList

func (c FBS) GetFBSShipmentsList(ctx context.Context, params *GetFBSShipmentsListParams) (*GetFBSShipmentsListResponse, error)

Returns a list of shipments for the specified time period: it shouldn't be longer than one year.

You can filter shipments by their status. The list of available statuses is specified in the description of the filter.status parameter.

The true value of the has_next parameter in the response means there is not the entire array of shipments in the response. To get information on the remaining shipments, make a new request with a different offset value.

func (FBS) GetLabeling

func (c FBS) GetLabeling(ctx context.Context, params *GetLabelingParams) (*GetLabelingResponse, error)

Method for getting labeling after using the /v1/posting/fbs/package-label/create method

func (FBS) GetProductItemsCheckStatuses

func (c FBS) GetProductItemsCheckStatuses(ctx context.Context, params *GetProductItemsCheckStatusesParams) (*GetProductItemsCheckStatusesResponse, error)

Method for getting check statuses of product items that were passed in the `/fbs/posting/product/exemplar/set` method. Also returns data on these product items.

func (FBS) GetShipmentDataByBarcode

func (c FBS) GetShipmentDataByBarcode(ctx context.Context, params *GetShipmentDataByBarcodeParams) (*GetShipmentDataByBarcodeResponse, error)

Method for getting shipments data by barcode

func (FBS) GetShipmentDataByIdentifier

func (c FBS) GetShipmentDataByIdentifier(ctx context.Context, params *GetShipmentDataByIdentifierParams) (*GetShipmentDataByIdentifierResponse, error)

Method for getting shipment details by identifier

func (FBS) ListManufacturingCountries

func (c FBS) ListManufacturingCountries(ctx context.Context, params *ListManufacturingCountriesParams) (*ListManufacturingCountriesResponse, error)

Method for getting a list of available manufacturing countries and their ISO codes

func (FBS) ListOfShipmentCertificates

func (c FBS) ListOfShipmentCertificates(ctx context.Context, params *ListOfShipmentCertificatesParams) (*ListOfShipmentCertificatesResponse, error)

Returns a list of shipment certificates allowing to filter them by time period, status, and integration type

func (FBS) ListShipmentInCertificate

func (c FBS) ListShipmentInCertificate(ctx context.Context, params *ListShipmentInCertificateParams) (*ListShipmentInCertificateResponse, error)

Returns a list of shipments in the certificate by certificate identifier

func (FBS) ListUnpaidProducts added in v1.17.0

func (c FBS) ListUnpaidProducts(ctx context.Context, params *ListUnpaidProductsParams) (*ListUnpaidProductsResponse, error)

func (FBS) OpenDisputeOverShipment

func (c FBS) OpenDisputeOverShipment(ctx context.Context, params *OpenDisputeOverShipmentParams) (*OpenDisputeOverShipmentResponse, error)

If the shipment has been handed over for delivery, but has not been scanned at the sorting center, you can open a dispute. Opened dispute will put the shipment into the `arbitration` status

func (FBS) PackOrder

func (c FBS) PackOrder(ctx context.Context, params *PackOrderParams) (*PackOrderResponse, error)

Divides the order into shipments and changes its status to awaiting_deliver.

Each element of the packages may contain several instances of the products. One instance of the products is one shipment. Each element of the products is a product included into the shipment.

It is necessary to split the order if:

the products do not fit in one package, the products cannot be put in one package. Differs from /v2/posting/fbs/ship by the presence of the field `exemplar_info` in the request.

If necessary, specify the number of the cargo customs declaration in the gtd parameter. If it is missing, pass the value is_gtd_absent = true

func (FBS) PackageUnitLabel

func (c FBS) PackageUnitLabel(ctx context.Context, params *PackageUnitLabelsParams) (*PackageUnitLabelsResponse, error)

Method creates package unit labels

func (FBS) PartialPackOrder

func (c FBS) PartialPackOrder(ctx context.Context, params *PartialPackOrderParams) (*PartialPackOrderResponse, error)

If you pass some of the shipped products through the request, the primary shipment will split into two parts. The primary unassembled shipment will contain some of the products that weren't passed to the request.

Default status of created shipments is awaiting_packaging, which indicates that the shipment is awaiting assembly.

The status of the original shipment will only change when the split shipments status changes

func (FBS) PassShipmentToShipping

func (c FBS) PassShipmentToShipping(ctx context.Context, params *PassShipmentToShippingParams) (*PassShipmentToShippingResponse, error)

Transfers disputed orders to shipping. The shipment status will change to `awaiting_deliver`

func (FBS) PrintLabeling

func (c FBS) PrintLabeling(ctx context.Context, params *PrintLabelingParams) (*PrintLabelingResponse, error)

Generates a PDF file with a labeling for the specified shipments. You can pass a maximum of 20 identifiers in one request. If an error occurs for at least one shipment, the labeling will not be generated for all shipments in the request.

We recommend requesting the label 45-60 seconds after the shipments were packed.

The next postings are not ready error means that the label is not ready. Try again later

func (FBS) RescheduleShipmentDeliveryDate

func (c FBS) RescheduleShipmentDeliveryDate(ctx context.Context, params *RescheduleShipmentDeliveryDateParams) (*RescheduleShipmentDeliveryDateResponse, error)

You can change the delivery date of a shipment up to two times

func (FBS) SetManufacturingCountry

func (c FBS) SetManufacturingCountry(ctx context.Context, params *SetManufacturingCountryParams) (*SetManufacturingCountryResponse, error)

The method to set the manufacturing country to the product if it hasn't been specified

func (FBS) SetShippingDate added in v1.16.0

func (c FBS) SetShippingDate(ctx context.Context, params *SetShippingDateParams) (*SetShippingDateResponse, error)

func (FBS) ShipmentCancellationReasons

func (c FBS) ShipmentCancellationReasons(ctx context.Context, params *ShipmentCancellationReasonsParams) (*ShipmentCancellationReasonsResponse, error)

Returns a list of cancellation reasons for particular shipments

func (FBS) ShipmentsCancellationReasons

func (c FBS) ShipmentsCancellationReasons(ctx context.Context) (*ShipmentsCancellationReasonsResponse, error)

Returns a list of cancellation reasons for particular shipments

func (FBS) SpecifyNumberOfBoxes

func (c FBS) SpecifyNumberOfBoxes(ctx context.Context, params *SpecifyNumberOfBoxesParams) (*SpecifyNumberOfBoxesResponse, error)

Method for passing the number of boxes for multi-box shipments when working under the rFBS Aggregator scheme (using the Ozon partner delivery)

func (FBS) SplitOrder added in v1.16.0

func (c FBS) SplitOrder(ctx context.Context, params *SplitOrderParams) (*SplitOrderResponse, error)

func (FBS) StatusOfAct

func (c FBS) StatusOfAct(ctx context.Context, params *StatusOfActParams) (*StatusOfActResponse, error)

If you are not connected to electronic document circulation (EDC), the method returns status of generating an acceptance and transfer certificate and a waybill.

If you are connected to EDC, the method returns status of generating a waybill only

func (FBS) ValidateLabelingCodes

func (c FBS) ValidateLabelingCodes(ctx context.Context, params *ValidateLabelingCodesParams) (*ValidateLabelingCodesResponse, error)

Method for checking whether labeling codes meet the "Chestny ZNAK" system requirements on length and symbols.

If you don't have the customs cargo declaration (CCD) number, you don't have to specify it

func (FBS) VerifyCourierCode added in v1.18.0

func (c FBS) VerifyCourierCode(ctx context.Context, params *VerifyCourierCodeParams) (*VerifyCourierCodeResponse, error)

Use this method to verify the courier code when handing over realFBS Express shipments

type FBSAct

type FBSAct struct {
	// Certificate creation date
	CreatedAt time.Time `json:"created_at"`

	// Certificate status:
	//   - FORMING — not ready yet
	//   - FORMED — formed
	//   - CONFIRMED — signed by Ozon
	//   - CONFIRMED_WITH_MISMATCH — signed with discrepancies by Ozon
	//   - ACCEPTED_BY_CARGO_PLACES — accepted by package units
	//   - PRINTED_CARRIAGE — digital signature not required
	//   - ERROR, UNKNOWN_ERROR — error
	DocumentStatus string `json:"document_status"`
}

type FBSBarcode

type FBSBarcode struct {
	// Lower barcode on the shipment label
	LowerBarcode string `json:"lower_barcode"`

	// Upper barcode on the shipment label
	UpperBarcode string `json:"upper_barcode"`
}

type FBSCancellation

type FBSCancellation struct {
	// If the cancellation affects the seller's rating—true
	AffectCancellationRating bool `json:"affect_cancellation_rating"`

	// Cancellation reason
	CancelReason string `json:"cancel_reason"`

	// Cancellation reason identifier
	CancelReasonId int64 `json:"cancel_reason_id"`

	// Shipment cancellation initiator:
	//
	// Клиент—client,
	// Ozon,
	// Продавец—seller
	CancellationInitiator string `json:"cancellation_initiator"`

	// Cancellation type:
	//
	// client—canceled by client.
	// ozon—canceled by Ozon.
	// seller—canceled by seller
	CancellationType string `json:"cancellation_type"`

	// If the cancellation occurred after the shipment had been packaged—true
	CancelledAfterShip bool `json:"cancelled_after_ship"`
}

type FBSCustomer

type FBSCustomer struct {
	// Delivery address details
	Address FBSCustomerAddress `json:"address"`

	// Customer identifier
	CustomerId int64 `json:"customer_id"`

	// Customer name
	Name string `json:"name"`

	// Customer phone number.
	//
	// Returns an empty string ""
	Phone string `json:"phone"`
}

type FBSCustomerAddress

type FBSCustomerAddress struct {
	// Address in text format
	AddressTail string `json:"address_tail"`

	// Delivery city
	City string `json:"city"`

	// Comment on the order
	Comment string `json:"comment"`

	// Delivery country
	Country string `json:"country"`

	// Delivery area
	District string `json:"district"`

	// Latitude
	Latitude float64 `json:"latitude"`

	// Longitude
	Longitude float64 `json:"longitude"`

	// 3PL pick-up point code
	ProviderPVZCode string `json:"provider_pvz_code"`

	// Pick-up point code
	PVZCode int64 `json:"pvz_code"`

	// Delivery region
	Region string `json:"region"`

	// Recipient postal code
	ZIPCode string `json:"zip_code"`
}

type FBSDeliveryMethod

type FBSDeliveryMethod struct {
	// Delivery method identifier
	Id int64 `json:"id"`

	// Delivery method name
	Name string `json:"name"`

	// Delivery service
	TPLProvider string `json:"tpl_provider"`

	// Delivery service identifier
	TPLProviderId int64 `json:"tpl_provider_id"`

	// Warehouse name
	Warehouse string `json:"warehouse"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`
}

type FBSFinancialData

type FBSFinancialData struct {
	// Identifier of the cluster, where the shipment is sent from
	ClusterFrom string `json:"cluster_from"`

	// Identifier of the cluster, where the shipment is delivered
	ClusterTo string `json:"cluster_to"`

	// Services
	PostingServices MarketplaceServices `json:"posting_services"`

	// List of products in the shipment
	Products []FinancialDataProduct `json:"products"`
}

type FBSPosting

type FBSPosting struct {
	// Recipient details
	Addressee FBSPostingAddressee `json:"addressee"`

	// Analytics data
	AnalyticsData FBSPostingAnalyticsData `json:"analytics_data"`

	// Available actions and shipment information
	AvailableActions []string `json:"available_actions"`

	// Shipment barcodes
	Barcodes FBSBarcode `json:"barcodes"`

	// Cancellation details
	Cancellation FBSCancellation `json:"cancellation"`

	// Customer details
	Customer FBSCustomer `json:"customer"`

	// Date when the shipment was transferred for delivery
	DeliveringDate time.Time `json:"delivering_date"`

	// Delivery method
	DeliveryMethod FBSDeliveryMethod `json:"delivery_method"`

	// Data on the product cost, discount amount, payout and commission
	FinancialData FBSFinancialData `json:"financial_data"`

	// Start date and time of shipment processing
	InProccessAt time.Time `json:"in_process_at"`

	// If Ozon Express fast delivery was used — `true`
	IsExpress bool `json:"is_express"`

	// Indication that there is a multi-box product in the shipment
	// and you need to pass the number of boxes for it
	IsMultibox bool `json:"is_multibox"`

	// Number of boxes in which the product is packed
	MultiBoxQuantity int32 `json:"multi_box_qty"`

	// Identifier of the order to which the shipment belongs
	OrderId int64 `json:"order_id"`

	// Number of the order to which the shipment belongs
	OrderNumber string `json:"order_number"`

	// Number of the parent shipment which split resulted in the current shipment
	ParentPostingNumber string `json:"parent_posting_number"`

	// Date and time of successful verification of the courier code
	PickupCodeVerifiedAt time.Time `json:"pickup_code_verified_at"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// List of products in the shipment
	Products []PostingProduct `json:"products"`

	// The parameter is only relevant for bulky products
	// with a delivery by a third-party or integrated service
	PRROption PRROptionStatus `json:"prr_option"`

	// Array of Ozon Product IDs (SKU) for which you need to pass the
	// customs cargo declaration (CCD) number, the manufacturing country,
	// product batch registration number, or "Chestny ZNAK" labeling to
	// change the shipment status to the next one
	Requirements FBSRequirements `json:"requirements"`

	// Date and time before which the shipment must be packaged.
	// If the shipment is not packaged by this date, it will be
	// canceled automatically
	ShipmentDate time.Time `json:"shipment_date"`

	// Shipment status
	Status string `json:"status"`

	// Shipment substatus
	Substatus string `json:"substatus"`

	// Type of integration with the delivery service
	TPLIntegrationType TPLIntegrationType `json:"tpl_integration_type"`

	// Shipment tracking number
	TrackingNumber string `json:"tracking_number"`

	// Details on shipping rate
	Tariffication []FBSPostingTariffication `json:"tariffication"`

	// Economy product identifier
	QuantumId int64 `json:"quantum_id"`
}

type FBSPostingAddressee

type FBSPostingAddressee struct {
	// Recipient name
	Name string `json:"name"`

	// Recipient phone number.
	//
	// Returns an empty string
	Phone string `json:"phone"`
}

type FBSPostingAnalyticsData

type FBSPostingAnalyticsData struct {
	// Delivery city. Only for rFBS shipments
	City string `json:"city"`

	// Delivery start date and time
	DeliveryDateBegin time.Time `json:"delivery_date_begin"`

	// Delivery end date and time
	DeliveryDateEnd time.Time `json:"delivery_date_end"`

	// Delivery method
	DeliveryType string `json:"delivery_type"`

	// Indication that the recipient is a legal entity:
	//
	// true — a legal entity,
	// false — a natural person
	IsLegal bool `json:"is_legal"`

	// Premium subscription availability
	IsPremium bool `json:"is_premium"`

	// Payment method
	PaymentTypeGroupName PaymentTypeGroupName `json:"payment_type_group_name"`

	// Delivery region. Only for rFBS shipments
	Region string `json:"region"`

	// Delivery service
	TPLProvider string `json:"tpl_provider"`

	// Delivery service identifier
	TPLProviderId int64 `json:"tpl_provider_id"`

	// Order shipping warehouse name
	Warehouse string `json:"warehouse"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`
}

type FBSPostingTariffication added in v1.17.0

type FBSPostingTariffication struct {
	// Current shipping rate as a percentage
	CurrentTariffRate float64 `json:"current_tariff_rate"`

	// Type of shipping rate adjustment: discount or surcharge
	CurrentTariffType string `json:"current_tariff_type"`

	// Current amount of discount or surcharge
	CurrentTariffCharge string `json:"current_tariff_charge"`

	// Currency of the amount
	CurrencyTariffCurrencyCode string `json:"current_tariff_charge_currency_code"`

	// Percentage by which the shipping rate is adjusted
	// after the time specified in the next_tariff_starts_at parameter
	NextTariffRate float64 `json:"next_tariff_rate"`

	// The adjustment type applied to the shipping rate
	// after the time specified in the next_tariff_starts_at parameter:
	// discount or surcharge
	NextTariffType string `json:"next_tariff_type"`

	// Discount or surcharge amount applied during the next shipping rate adjustment step
	NextTariffCharge string `json:"next_tariff_charge"`

	// Date and time when the new shipping rate is applied
	NextTariffStartsAt time.Time `json:"next_tariff_starts_at"`

	// New shipping rate currency
	NextTariffCurrencyCode string `json:"next_tariff_charge_currency_code"`
}

type FBSProductExemplar

type FBSProductExemplar struct {
	// Product item validation errors
	Errors []string `json:"errors"`

	// Mandatory “Chestny ZNAK” labeling
	MandatoryMark string `json:"mandatory_mark"`

	// "Chestny ZNAK" labeling check status
	MandatoryMarkCheckStatus MandatoryMarkStatus `json:"mandatory_mark_check_status"`

	// "Chestny ZNAK" labeling check error codes
	MandatoryMarkErrorCodes []string `json:"mandatory_mark_error_codes"`

	// Сustoms cargo declaration (CCD) number
	GTD string `json:"gtd"`

	// Сustoms cargo declaration (CCD) check status
	GTDCheckStatus string `json:"gtd_check_status"`

	// Indication that a сustoms cargo declaration (CCD) number hasn't been specified
	IsGTDAbsest bool `json:"is_gtd_absent"`

	// Сustoms cargo declaration (CCD) check error codes
	GTDErrorCodes []string `json:"gtd_error_codes"`

	// Product batch registration number
	RNPT string `json:"rnpt"`

	// Indication that a product batch registration number hasn't been specified
	IsRNPTAbsent bool `json:"is_rnpt_absent"`

	// Check result.
	// `true` if the labeling code of product item meets the requirements
	Valid bool `json:"valid"`
}

type FBSRequirements

type FBSRequirements struct {
	// Array of Ozon Product IDs (SKU) for which you need to pass the customs cargo declaration (CCD) numbers.
	//
	// To pack the shipment, pass the CCD number for all listed SKUs.
	// If you do not have a CCD number, pass the value `is_gtd_absent` = true
	// via the `/v3/posting/fbs/ship/package`
	ProductsRequiringGTD []string `json:"products_requiring_gtd"`

	// Array of Ozon Product IDs (SKU) for which
	// you need to pass the manufacturing country.
	//
	// To pack the shipment, pass the manufacturing
	// country value for all listed SKUs via the `/v2/posting/fbs/product/country/set` method
	ProductsRequiringCountry []string `json:"products_requiring_country"`

	// Array of Ozon Product IDs (SKU) for which you need to pass the "Chestny ZNAK" labeling
	ProductsRequiringMandatoryMark []string `json:"products_requiring_mandatory_mark"`

	// Array of Ozon Product IDs (SKU) for which you need to pass a product batch registration number
	ProductsRequiringRNPT []string `json:"products_requiring_rnpt"`
}

type FBSTrackingNumbersParams

type FBSTrackingNumbersParams struct {
	// Shipment identifier
	PostingNumber string `json:"posting_number"`

	// Shipment tracking number
	TrackingNumber string `json:"tracking_number"`
}

type Finance

type Finance struct {
	// contains filtered or unexported fields
}

func (Finance) GetTotalTransactionsSum

func (c Finance) GetTotalTransactionsSum(ctx context.Context, params *GetTotalTransactionsSumParams) (*GetTotalTransactionsSumResponse, error)

Returns total sums for transactions for specified period

func (Finance) ListTransactions

func (c Finance) ListTransactions(ctx context.Context, params *ListTransactionsParams) (*ListTransactionsResponse, error)

Returns detailed information on all accruals. The maximum period for which you can get information in one request is 1 month.

If you don't specify the posting_number in request, the response contains all shipments for the specified period or shipments of a certain type

func (Finance) MutualSettlements added in v1.17.0

func (c Finance) MutualSettlements(ctx context.Context, params *GetReportParams) (*ReportResponse, error)

Use the method to get mutual settlements report. Matches the Finance → Documents → Analytical reports → Mutual settlements report section in your personal account.

func (Finance) ReportOnSoldProducts

func (c Finance) ReportOnSoldProducts(ctx context.Context, params *ReportOnSoldProductsParams) (*ReportOnSoldProductsResponse, error)

Returns information on products sold and returned within a month. Canceled or non-purchased products are not included.

Report is returned no later than the 5th day of the next month

func (Finance) SalesToLegalEntities added in v1.17.0

func (c Finance) SalesToLegalEntities(ctx context.Context, params *GetReportParams) (*ReportResponse, error)

Use the method to get sales to legal entities report. Matches the Finance → Documents → Legal entities sales register section in your personal account.

type FinancialDataProduct

type FinancialDataProduct struct {
	// Actions
	Actions []string `json:"actions"`

	// Customer price
	ClientPrice string `json:"client_price"`

	// Commission amount for the product
	CommissionAmount float64 `json:"commission_amount"`

	// Commission percentage
	CommissionPercent int64 `json:"commission_percent"`

	// Code of the currency used to calculate the commissions
	CommissionsCurrencyCode string `json:"commissions_currency_code"`

	// Services
	//
	// Deprecated: The parameter is outdated. To get information on accruals, use the `ListTransactions` method
	ItemServices MarketplaceServices `json:"item_services"`

	// Currency of your prices. It matches the currency set in the personal account settings
	CurrencyCode string `json:"currency_code"`

	// Price before discounts. Displayed strikethrough on the product description page
	OldPrice float64 `json:"old_price"`

	// Payment to the seller
	Payout float64 `json:"payout"`

	// Delivery details.
	//
	// Returns `null`
	Picking FinancialDataProductPicking `json:"picking"`

	// Product price including discounts. This value is shown on the product description page
	Price float64 `json:"price"`

	// Product identifier
	ProductId int64 `json:"product_id"`

	// Product quantity in the shipment
	Quantity int64 `json:"quantity"`

	// Discount percentage
	TotalDiscountPercent float64 `json:"total_discount_percent"`

	// Discount amount
	TotalDiscountValue float64 `json:"total_discount_value"`
}

type FinancialDataProductPicking

type FinancialDataProductPicking struct {
	// Delivery cost
	Amount float64 `json:"amount"`

	// Delivery date and time
	Moment time.Time `json:"moment"`

	// Bulky products or not
	Tag string `json:"tag"`
}

type GenerateActParams

type GenerateActParams struct {
	// Document generation task number (freight identifier) received from the POST `/v2/posting/fbs/act/create` method
	Id int64 `json:"id"`
}

type GenerateActResponse

type GenerateActResponse struct {
	core.CommonResponse

	// Document generation task number
	Id int64 `json:"id"`

	// Documents generation status:
	//   - FORMING—in process,
	//   - FORMED—generated successfully,
	//   - CONFIRMED—signed by Ozon,
	//   - CONFIRMED_WITH_MISMATCH—signed by Ozon with mismatches,
	//   - NOT_FOUND—documents are not found,
	//   - UNKNOWN_ERROR—unknown error
	Status string `json:"status"`
}

type GenerateBarcodesError added in v1.7.0

type GenerateBarcodesError struct {
	// Error code
	Code string `json:"code"`

	// Error details
	Error string `json:"error"`

	// Barcode that is failed to generate
	Barcode string `json:"barcode"`

	// Product identifier for which the barcode generation failed
	ProductId int64 `json:"product_id"`
}

type GenerateBarcodesParams added in v1.7.0

type GenerateBarcodesParams struct {
	// List of products for which you want to generate barcodes
	ProductIds []int64 `json:"product_ids"`
}

type GenerateBarcodesResponse added in v1.7.0

type GenerateBarcodesResponse struct {
	core.CommonResponse

	Errors []GenerateBarcodesError `json:"errors"`
}

type GetActPDFParams added in v1.4.0

type GetActPDFParams struct {
	// Document generation task number (freight identifier) received from
	// the POST `/v2/posting/fbs/act/create` method
	Id int64 `json:"id"`
}

type GetActPDFResponse added in v1.4.0

type GetActPDFResponse struct {
	core.CommonResponse

	// File content in binary format
	FileContent string `json:"file_content"`

	// File name
	FileName string `json:"file_name"`

	// File type
	ContentType string `json:"content_type"`
}

type GetAnalyticsDataDimension

type GetAnalyticsDataDimension string
const (
	UnknownDimension   GetAnalyticsDataDimension = "unknownDimension"
	SKUDimension       GetAnalyticsDataDimension = "sku"
	SPUDimension       GetAnalyticsDataDimension = "spu"
	DayDimension       GetAnalyticsDataDimension = "day"
	WeekDimension      GetAnalyticsDataDimension = "week"
	MonthDimension     GetAnalyticsDataDimension = "month"
	YearDimension      GetAnalyticsDataDimension = "year"
	Category1Dimension GetAnalyticsDataDimension = "category1"
	Category2Dimension GetAnalyticsDataDimension = "category2"
	Category3Dimension GetAnalyticsDataDimension = "category3"
	Category4Dimension GetAnalyticsDataDimension = "category4"
	BrandDimension     GetAnalyticsDataDimension = "brand"
	ModelIDDimension   GetAnalyticsDataDimension = "modelID"
)

type GetAnalyticsDataFilter

type GetAnalyticsDataFilter struct {
	// Sorting parameter. You can pass any attribute from the `dimension` and `metric` parameters except the `brand` attribute
	Key string `json:"key"`

	// Comparison operation
	Operation GetAnalyticsDataFilterOperation `json:"operation"`

	// Value for comparison
	Value string `json:"value"`
}

type GetAnalyticsDataFilterMetric

type GetAnalyticsDataFilterMetric string
const (
	UnknownMetric       GetAnalyticsDataFilterMetric = "unknown_metric"
	HitsViewSearch      GetAnalyticsDataFilterMetric = "hits_view_search"
	HistViewPDP         GetAnalyticsDataFilterMetric = "hits_view_pdp"
	HitsView            GetAnalyticsDataFilterMetric = "hist_view"
	HitsToCartSearch    GetAnalyticsDataFilterMetric = "hits_tocart_search"
	HitsToCartPDP       GetAnalyticsDataFilterMetric = "hits_tocart_pdp"
	SessionViewSearch   GetAnalyticsDataFilterMetric = "session_view_search"
	SessionViewPDP      GetAnalyticsDataFilterMetric = "session_view_pdp"
	SessionView         GetAnalyticsDataFilterMetric = "session_view"
	ConvToCartSearch    GetAnalyticsDataFilterMetric = "conv_tocart_search"
	ConvToCartPDP       GetAnalyticsDataFilterMetric = "conv_tocart_pdp"
	ConvToCart          GetAnalyticsDataFilterMetric = "conv_tocart"
	Revenue             GetAnalyticsDataFilterMetric = "revenue"
	ReturnsMetric       GetAnalyticsDataFilterMetric = "returns"
	CancellationsMetric GetAnalyticsDataFilterMetric = "cancellations"
	OrderedUnits        GetAnalyticsDataFilterMetric = "ordered_units"
	DeliveredUnits      GetAnalyticsDataFilterMetric = "delivered_units"
	PositionCategory    GetAnalyticsDataFilterMetric = "position_category"
)

type GetAnalyticsDataFilterOperation

type GetAnalyticsDataFilterOperation string

type GetAnalyticsDataParams

type GetAnalyticsDataParams struct {
	// Date from which the data will be in the report
	DateFrom *core.TimeFormat `json:"date_from"`

	// Date up to which the data will be in the report
	DateTo *core.TimeFormat `json:"date_to"`

	// Items Enum: "unknownDimension" "sku" "spu" "day" "week" "month" "year" "category1" "category2" "category3" "category4" "brand" "modelID"
	// Data grouping available to all sellers:
	//   - unknownDimension—unknown,
	//   - sku—product identifier,
	//   - spu—product identifier,
	//   - day—day,
	//   - week—week,
	//   - month—month.
	// Data grouping available to sellers with Premium subscription:
	//   - year—year,
	//   - category1—first level category,
	//   - category2—second level category,
	//   - category3—third level category,
	//   - category4—fourth level category,
	//   - brand—brand,
	//   - modelID—model.
	Dimension []GetAnalyticsDataDimension `json:"dimension"`

	// Filters
	Filters []GetAnalyticsDataFilter `json:"filters"`

	// Number of items in the respones:
	//   - maximum is 1000,
	//   - minimum is 1.
	Limit int64 `json:"limit"`

	// Specify up to 14 metrics. If there are more, you will get an error with the InvalidArgument code
	// The list of metrics for which the report will be generated.
	//
	// Metrics available to all sellers:
	//
	// 	 - revenue—ordered amount,
	//   - ordered_units—ordered products.
	// Metrics available to sellers with Premium subscription:
	//   - unknown_metric—unknown metric,
	//   - hits_view_search—impressions in search and category,
	//   - hits_view_pdp—impressions on the product description page,
	//   - hits_view—total impressions,
	//   - hits_tocart_search—added to cart from search or category,
	//   - hits_tocart_pdp—added to cart from the product description page,
	//   - hits_tocart—added to cart total,
	//   - session_view_search—sessions with impressions in search or category,
	//   - session_view_pdp—sessions with impressions on the product description page,
	//   - session_view—sessions total,
	//   - conv_tocart_search—conversion to cart from search or category,
	//   - conv_tocart_pdp—conversion to cart from a product description page,
	//   - conv_tocart—total conversion to cart,
	//   - returns—returned products,
	//   - cancellations—canceled products,
	//   - delivered_units—delivered products,
	//   - position_category—position in search and category.
	Metrics []GetAnalyticsDataFilterMetric `json:"metrics"`

	// Number of elements that will be skipped in the response. For example, if `offset=10`, the response will start with the 11th element found
	Offset int64 `json:"offset"`

	// Report sorting settings
	Sort []GetAnalyticsDataSort `json:"sort"`
}

type GetAnalyticsDataResponse

type GetAnalyticsDataResponse struct {
	core.CommonResponse

	// Method result
	Result GetAnalyticsDataResult `json:"result"`

	// Report creation time
	Timestamp string `json:"timestamp"`
}

type GetAnalyticsDataResult

type GetAnalyticsDataResult struct {
	// Data array
	Data []GetAnalyticsDataResultData `json:"data"`

	// Total and average metrics values
	Totals []float64 `json:"totals"`
}

type GetAnalyticsDataResultData

type GetAnalyticsDataResultData struct {
	// Data grouping in the report
	Dimensions []GetAnalyticsDataResultDimension `json:"dimensions"`

	// Metric values list
	Metrics []float64 `json:"metrics"`
}

type GetAnalyticsDataResultDimension

type GetAnalyticsDataResultDimension struct {
	// Product SKU
	Id string `json:"id"`

	// Name
	Name string `json:"name"`
}

type GetAnalyticsDataSort

type GetAnalyticsDataSort struct {
	// Metric by which the method result will be sorted
	Key GetAnalyticsDataFilterMetric `json:"key"`

	// Sorting type
	Order Order `json:"order"`
}

Report sorting settings

type GetAttributeDictionaryParams

type GetAttributeDictionaryParams struct {
	// Characteristics identifier
	AttributeId int64 `json:"attribute_id"`

	// Category identifier
	DescriptionCategoryId int64 `json:"description_category_id"`

	// Response language
	Language Language `json:"language,omitempty"`

	// Identifier of the directory to start the response with.
	// If `last_value_id` is 10, the response will contain directories starting from the 11th
	LastValueId int64 `json:"last_value_id"`

	// Number of values in the response:
	//
	// 	- maximum—5000,
	// 	- minimum—1.
	Limit int64 `json:"limit,omitempty"`

	// Product type identifier
	TypeId int64 `json:"type_id"`
}

type GetAttributeDictionaryResponse

type GetAttributeDictionaryResponse struct {
	core.CommonResponse

	// Indication that only part of characteristic values was returned in the response:
	//
	// 	- true—make a request with a new last_value_id parameter value for getting the rest of characteristic values;
	// 	- false—all characteristic values were returned
	HasNext bool `json:"has_next"`

	// Characteristic values
	Result []GetAttributeDictionaryResult `json:"result"`
}

type GetAttributeDictionaryResult

type GetAttributeDictionaryResult struct {
	// Characteristic value identifier
	Id int64 `json:"id"`

	// Additional description
	Info string `json:"info"`

	// Image link
	Picture string `json:"picture"`

	// Product characteristic value
	Value string `json:"value"`
}

type GetAvailablePromotionsResponse

type GetAvailablePromotionsResponse struct {
	core.CommonResponse

	// Method result
	Result []GetAvailablePromotionsResult `json:"result"`
}

type GetAvailablePromotionsResult

type GetAvailablePromotionsResult struct {
	// Promotion identifier
	Id float64 `json:"id"`

	// Promotion name
	Title string `json:"title"`

	// Promotion type
	ActionType string `json:"action_type"`

	// Promotion description
	Description string `json:"description"`

	// Promotion start date
	DateStart string `json:"date_start"`

	// Promotion end date
	DateEnd string `json:"date_end"`

	// Promotion freeze date.
	//
	// If the field is filled, the seller can't increase prices, change the list of products, or decrease the number of product units in the promotion.
	//
	// The seller can lower prices and increase the product units number in the promotion
	FreezeDate string `json:"freeze_date"`

	// Number of products that can participate in the promotion
	PotentialProductsCount float64 `json:"potential_products_count"`

	// Number of products that participate in the promotion
	ParticipatingProductsCount float64 `json:"participating_products_count"`

	// Whether or not you participate in the promotion
	IsParticipating bool `json:"is_participating"`

	// Indication that customers need a promo code to participate in the promotion
	IsVoucherAction bool `json:"is_voucher_action"`

	// Number of blocked products
	BannedProductsCount float64 `json:"banned_products_count"`

	// Indication of the promotion is with the target audience
	WithTargeting bool `json:"with_targeting"`

	// Order amount
	OrderAmount float64 `json:"order_amount"`

	// Discount type
	DiscountType string `json:"discount_type"`

	// Discount size
	DiscountValue float64 `json:"discount_value"`
}

type GetCancellationInfoParams

type GetCancellationInfoParams struct {
	// Cancellation request identifier
	CancellationId int64 `json:"cancellation_id"`
}

type GetCancellationInfoResponse

type GetCancellationInfoResponse struct {
	core.CommonResponse

	// Method result
	Result CancellationInfo `json:"result"`
}

type GetCancellationReasonsResponse added in v1.16.0

type GetCancellationReasonsResponse struct {
	core.CommonResponse

	// Method result
	Result []GetCancellationReasonsResult `json:"result"`
}

type GetCancellationReasonsResult added in v1.16.0

type GetCancellationReasonsResult struct {
	// Cancellation reasons identifier
	Id int64 `json:"id"`

	// Shipment cancellation result. true if the request is available for cancellation
	IsAvailableForCancellation bool `json:"is_available_for_cancellation"`

	// Category name
	Title string `json:"title"`

	// Shipment cancellation initiator
	TypeId string `json:"type_id"`
}

type GetCarriageCancelAvailability added in v1.12.0

type GetCarriageCancelAvailability struct {
	// true if the freight can be cancelled
	IsCancelAvailable bool `json:"is_cancel_available"`

	// Reason why freight can't be cancelled
	Reason string `json:"reason"`
}

type GetCarriageParams added in v1.12.0

type GetCarriageParams struct {
	CarriageId int64 `json:"carriage_id"`
}

type GetCarriageResponse added in v1.12.0

type GetCarriageResponse struct {
	core.CommonResponse

	// Acceptance certificate type for FBS sellers
	ActType string `json:"act_type"`

	// Pass identifiers for the freight
	ArrivalPassIds []string `json:"arrival_pass_ids"`

	// List of available actions on the freight
	AvailableActions []string `json:"available_actions"`

	// Cancel availability
	CancelAvailability GetCarriageCancelAvailability `json:"cancel_availability"`

	// Freight identifier
	CarriageId int64 `json:"carriage_id"`

	// Company identifier
	CompanyId int64 `json:"company_id"`

	// Number of package units
	ContainersCount int32 `json:"containers_count"`

	// Date and time of freight creation
	CreatedAt time.Time `json:"created_at"`

	// Delivery method identifier
	DeliveryMethodId int64 `json:"delivery_method_id"`

	// Shipping date
	DepartureDate string `json:"departure_date"`

	// First mile type
	FirstMileType string `json:"first_mile_type"`

	// true if there are shipments subject to shipping that are not in the current freight
	HasPostingsForNextCarriage bool `json:"has_postings_for_next_carriage"`

	// Delivery service integration type
	IntegrationType string `json:"integration_type"`

	// true if you already printed shipping labels
	IsContainerLabelPrinted bool `json:"is_container_label_printed"`

	// true if the freight is partial
	IsPartial bool `json:"is_partial"`

	// Serial number of the partial freight
	PartialNum int64 `json:"partial_num"`

	// The number of retries to create a freight
	RetryCount int32 `json:"retry_count"`

	// Freight status
	Status GetCarriageStatus `json:"status"`

	// Delivery method identifier
	TPLProviderId int64 `json:"tpl_provider_id"`

	// Date and time when the freight was last updated
	UpdatedAt time.Time `json:"updated_at"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`
}

type GetCarriageStatus added in v1.13.0

type GetCarriageStatus string
const (
	// acceptance in progress
	GetCarriageStatusReceived GetCarriageStatus = "received"

	// closed after acceptance
	GetCarriageStatusClosed GetCarriageStatus = "closed"

	GetCarriageStatusSended GetCarriageStatus = "sended"

	GetCarriageStatusCancelled GetCarriageStatus = "cancelled"
)

type GetCategoryAttributesParams

type GetCategoryAttributesParams struct {
	// Category identifier
	DescriptionCategoryId int64 `json:"description_category_id"`

	// Response language
	Language Language `json:"language,omitempty"`

	// Product type identifier
	TypeId int64 `json:"type_id"`
}

type GetCategoryAttributesResponse

type GetCategoryAttributesResponse struct {
	core.CommonResponse

	// Method result
	Result []GetCategoryAttributesResult `json:"result"`
}

type GetCategoryAttributesResult

type GetCategoryAttributesResult struct {
	// Indication that the dictionary attribute values depend on the category:
	//
	// 	true — the attribute has its own set of values for each category.
	// 	false — the attribute has the same set of values for all categories
	CategoryDependent bool `json:"category_dependent"`

	// Characteristic description
	Description string `json:"description"`

	// Directory identifier
	DictionaryId int64 `json:"dictionary_id"`

	// Characteristics group identifier
	GroupId int64 `json:"group_id"`

	// Characteristics group name
	GroupName string `json:"group_name"`

	// Number of document generation task
	Id int64 `json:"id"`

	// Indicates that the attribute is aspect. An aspect attribute is a characteristic that distinguishes products of the same model.
	//
	// For example, clothes or shoes of the same model may have different colors and sizes. That is, color and size are aspect attributes.
	//
	// Values description:
	//
	// 	- `true`—the attribute is aspect and can't be changed after the products are delivered to the warehouse or sold from the seller's warehouse.
	// 	- `false`—the attribute is not aspect and can be changed at any time
	IsAspect bool `json:"is_aspect"`

	// Indicates that the characteristic is a set of values:
	//
	// 	- `true`—the characteristic is a set of values,
	// 	- `false`—the characteristic consists of a single value
	IsCollection bool `json:"is_collection"`

	// Indicates that the characteristic is mandatory:
	//
	// 	- `true`—a mandatory characteristic,
	// 	- `false`—an optional characteristic
	IsRequired bool `json:"is_required"`

	// Name
	Name string `json:"name"`

	// Characteristic type
	Type string `json:"type"`

	// Complex attribute identifier
	AttributeComplexId int64 `json:"attribute_complex_id"`

	// Maximum number of values for attribute
	MaxValueCount int64 `json:"max_value_count"`
}

type GetCertificateInfoParams

type GetCertificateInfoParams struct {
	// Certificate identifier
	CertificateNumber string `json:"certificate_number"`
}

type GetCertificateInfoResponse

type GetCertificateInfoResponse struct {
	core.CommonResponse

	// Certificate information
	Result GetCertificateInfoResult `json:"result"`
}

type GetCertificateInfoResult

type GetCertificateInfoResult struct {
	// Identifier
	CertificateId int32 `json:"certificate_id"`

	// Number
	CertificateNumber string `json:"certificate_number"`

	// Name
	CertificateName string `json:"certificate_name"`

	// Type
	TypeCode string `json:"type_code"`

	// Status
	StatusCode string `json:"status_code"`

	// Accordance type
	AccordanceTypeCode string `json:"accordance_type_code"`

	// Certificate rejection reason
	RejectionReasonCode string `json:"rejection_reason_code"`

	// Moderator's comment
	VerificationComment string `json:"verification_comment"`

	// Issue date
	IssueDate time.Time `json:"issue_date"`

	// Expire date
	ExpireDate time.Time `json:"expire_date"`

	// Number of products associated with a certificate
	ProductsCount int32 `json:"products_count"`
}

type GetCompetitorPriceParams

type GetCompetitorPriceParams struct {
	// Product identifier
	ProductId int64 `json:"product_id"`
}

type GetCompetitorPriceResponse

type GetCompetitorPriceResponse struct {
	core.CommonResponse

	// Method result
	Result GetCompetitorPriceResult `json:"result"`
}

type GetCompetitorPriceResult

type GetCompetitorPriceResult struct {
	// Product identifier
	StrategyId string `json:"strategy_id"`

	// true if the product is in the pricing strategy
	IsEnabled bool `json:"is_enabled"`

	// Price of product in the strategy
	StrategyProductPrice int32 `json:"strategy_product_price"`

	// Price setting date
	PriceDownloadedAt string `json:"price_downloaded_at"`

	// Competitor identifier
	StrategyCompetitorId int64 `json:"strategy_competitor_id"`

	// Link to a competitor's product
	StrategyCompetitorProductURL string `json:"strategy_competitor_product_url"`
}

type GetCurrentSellerRatingInfoGroup

type GetCurrentSellerRatingInfoGroup struct {
	// Ratings group name
	GroupName string `json:"group_name"`

	// Ratings list
	Items []GetCurrentSellerRatingInfoGroupItem `json:"items"`
}

type GetCurrentSellerRatingInfoGroupItem

type GetCurrentSellerRatingInfoGroupItem struct {

	// Rating change: the ratio of the previous value to the current one
	Change GetCurrentSellerRatingInfoGroupItemChange `json:"change"`

	// Current rating value
	CurrentValue float64 `json:"current_value"`

	// Rating name
	Name string `json:"name"`

	// Previous rating value
	PastValue float64 `json:"past_value"`

	// System rating name
	Rating string `json:"rating"`

	// What should be the rating value to be considered good:
	//   - UNKNOWN_DIRECTION — unknown.
	//   - NEUTRAL — doesn't matter.
	//   - HIGHER_IS_BETTER — the higher the better.
	//   - LOWER_IS_BETTER — the lower the better.
	RatingDirection string `json:"rating_direction"`

	// Rating status:
	//   - UNKNOWN_STATUS — unknown status.
	//   - OK — everything is OK.
	//   - WARNING — indicators require attention.
	//   - CRITICAL — critical rating
	Status string `json:"status"`

	// Value type:
	//   - UNKNOWN_VALUE — unknown,
	//   - INDEX,
	//   - PERCENT,
	//   - TIME,
	//   - RATIO — coefficient,
	//   - REVIEW_SCORE — score,
	//   - COUNT
	ValueType string `json:"value_type"`
}

type GetCurrentSellerRatingInfoGroupItemChange

type GetCurrentSellerRatingInfoGroupItemChange struct {
	// How the rating value has changed:
	//   - DIRECTION_UNKNOWN — unknown.
	//   - DIRECTION_NONE — has not changed.
	//   - DIRECTION_RISE — has increased.
	//   - DIRECTION_FALL — has dropped.
	Direction string `json:"direction"`

	// What the change means:
	//   - MEANING_UNKNOWN — unknown.
	//   - MEANING_NONE — neutral.
	//   - MEANING_GOOD — the indicator is improving, everything is good.
	//   - MEANING_BAD — the indicator is dropping, you should do something.
	Meaning string `json:"meaning"`
}

type GetCurrentSellerRatingInfoResponse

type GetCurrentSellerRatingInfoResponse struct {
	core.CommonResponse

	// Rating groups list
	Groups []GetCurrentSellerRatingInfoGroup `json:"groups"`

	// Localization index details.
	// If you had no sales in the last 14 days,
	// the parameter fields will be empty
	LocalizationIndex []LocalizationIndex `json:"localization_index"`

	// An indication that the penalty points balance is exceeded
	PenaltyScoreExceeded bool `json:"penalty_score_exceeded"`

	// An indication that you participate in the Premium program
	Premium bool `json:"premium"`
}

type GetDescriptionOfProductFilter

type GetDescriptionOfProductFilter struct {
	// Filter by the `offer_id` parameter. It is possible to pass a list of values
	OfferId []string `json:"offer_id"`

	// Filter by the product_id parameter. It is possible to pass a list of values
	ProductId []int64 `json:"product_id"`

	// Filter by product visibility
	Visibility string `json:"visibility"`
}

type GetDescriptionOfProductParams

type GetDescriptionOfProductParams struct {
	// Filter by product
	Filter GetDescriptionOfProductFilter `json:"filter"`

	// Identifier of the last value on the page. Leave this field blank in the first request.
	//
	// To get the next values, specify `last_id` from the response of the previous request
	LastId string `json:"last_id"`

	// Number of values per page. Minimum is 1, maximum is 1000
	Limit int64 `json:"limit"`

	// The parameter by which the products will be sorted
	SortBy string `json:"sort_by,omitempty"`

	// Sorting direction
	SortDirection string `json:"sort_dir,omitempty"`
}

type GetDescriptionOfProductResponse

type GetDescriptionOfProductResponse struct {
	core.CommonResponse

	// Request results
	Result []GetDescriptionOfProductResult `json:"result"`

	// Identifier of the last value on the page.
	//
	// To get the next values, specify the recieved value in the next request in the last_id parameter
	LastId string `json:"last_id"`

	// Number of products in the list
	Total int32 `json:"total"`
}

type GetDescriptionOfProductResult

type GetDescriptionOfProductResult struct {
	// Array of product characteristics
	Attributes []GetDescriptionOfProductResultAttr `json:"attributes"`

	// Barcode
	Barcode string `json:"barcode"`

	// Category identifier
	DescriptionCategoryId int64 `json:"description_category_id"`

	// Marketing color
	ColorImage string `json:"color_image"`

	// Array of nested characteristics
	ComplexAttributes []GetDescriptionOfProductResultComplexAttrs `json:"complex_attributes"`

	// Depth
	Depth int32 `json:"depth"`

	// Dimension measurement units:
	//   - mm — millimeters,
	//   - cm — centimeters,
	//   - in — inches
	DimensionUnit string `json:"dimension_unit"`

	// Package height
	Height int32 `json:"height"`

	// Product characteristic identifier
	Id int64 `json:"id"`

	// Array of links to product images
	Images []GetDescriptionOfProductResultImage `json:"images"`

	// Array of 360 images
	Images360 []GetDescriptionOfProductResultImage360 `json:"images360"`

	// Product name. Up to 500 characters
	Name string `json:"name"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Array of PDF files
	PDFList []GetDescriptionOfProductResultPDF `json:"pdf_list"`

	// Product type identifier
	TypeId int64 `json:"type_id"`

	// Weight of product in the package
	Weight int32 `json:"weight"`

	// Weight measurement unit
	WeightUnit string `json:"weight_unit"`

	// Package width
	Width int32 `json:"width"`
}

type GetDescriptionOfProductResultAttr

type GetDescriptionOfProductResultAttr struct {
	// Characteristic identifier
	AttributeId int64 `json:"attribute_id"`

	// Identifier of the characteristic that supports nested properties.
	// For example, the "Processor" characteristic has nested characteristics "Manufacturer" and "L2 Cache".
	// Each of the nested characteristics can have multiple value variants
	ComplexId int64 `json:"complex_id"`

	// Array of characteristic values
	Values []GetDescriptionOfProductResultAttrValue `json:"values"`
}

type GetDescriptionOfProductResultAttrValue

type GetDescriptionOfProductResultAttrValue struct {
	// Characteristic identifier in the dictionary
	DictionaryValueId int64 `json:"dictionary_value_id"`

	// Product characteristic value
	Value string `json:"value"`
}

type GetDescriptionOfProductResultComplexAttr

type GetDescriptionOfProductResultComplexAttr struct {
	// Characteristic identifier
	AttributeId int64 `json:"attribute_id"`

	// Identifier of the characteristic that supports nested properties.
	// For example, the "Processor" characteristic has nested characteristics "Manufacturer" and "L2 Cache".
	// Each of the nested characteristics can have multiple value variants
	ComplexId int64 `json:"complex_id"`

	// Array of characteristic values
	Values []GetDescriptionOfProductResultComplexAttrValue `json:"values"`
}

type GetDescriptionOfProductResultComplexAttrValue

type GetDescriptionOfProductResultComplexAttrValue struct {
	// Characteristic identifier in the dictionary
	DictionaryValueId int64 `json:"dictionary_value_id"`

	// Product characteristic value
	Value string `json:"value"`
}

type GetDescriptionOfProductResultComplexAttrs

type GetDescriptionOfProductResultComplexAttrs struct {
	// Array of product characteristics
	Attributes []GetDescriptionOfProductResultComplexAttr `json:"attributes"`
}

type GetDescriptionOfProductResultImage

type GetDescriptionOfProductResultImage struct {
	Default  bool   `json:"default"`
	FileName string `json:"file_name"`
	Index    int64  `json:"index"`
}

type GetDescriptionOfProductResultImage360

type GetDescriptionOfProductResultImage360 struct {
	FileName string `json:"file_name"`
	Index    int64  `json:"index"`
}

type GetDescriptionOfProductResultPDF

type GetDescriptionOfProductResultPDF struct {
	// Path to PDF file
	FileName string `json:"file_name"`

	// Storage order index
	Index int64 `json:"index"`

	// File name
	Name string `json:"name"`
}

type GetDescriptionOfProductsAttribute added in v1.17.0

type GetDescriptionOfProductsAttribute struct {
	Id        int64                                    `json:"id"`
	ComplexId int64                                    `json:"complex_id"`
	Values    []GetDescriptionOfProductsAttributeValue `json:"values"`
}

type GetDescriptionOfProductsAttributeValue added in v1.17.0

type GetDescriptionOfProductsAttributeValue struct {
	DictionaryValueId int64  `json:"dictionary_value_id"`
	Value             string `json:"value"`
}

type GetDescriptionOfProductsComplexAttribute added in v1.17.0

type GetDescriptionOfProductsComplexAttribute struct {
	Id        int64                                    `json:"id,omitempty"`
	ComplexId int64                                    `json:"complex_id,omitempty"`
	Values    []GetDescriptionOfProductsAttributeValue `json:"values,omitempty"`
}

type GetDescriptionOfProductsFilter added in v1.17.0

type GetDescriptionOfProductsFilter struct {
	ProductId  []string `json:"product_id,omitempty"`
	OfferId    []string `json:"offer_id,omitempty"`
	Sku        []string `json:"sku,omitempty"`
	Visibility string   `json:"visibility,omitempty"`
}

type GetDescriptionOfProductsParams added in v1.17.0

type GetDescriptionOfProductsParams struct {
	Filter        GetDescriptionOfProductsFilter `json:"filter"`
	LastId        string                         `json:"last_id,omitempty"`
	Limit         int64                          `json:"limit,omitempty"`
	SortBy        string                         `json:"sort_by,omitempty"`
	SortDirection string                         `json:"sort_dir,omitempty"`
}

type GetDescriptionOfProductsResponse added in v1.17.0

type GetDescriptionOfProductsResponse struct {
	core.CommonResponse

	Result []GetDescriptionOfProductsResult `json:"result"`
	Total  int32                            `json:"total"`
	LastId string                           `json:"last_id"`
}

type GetDescriptionOfProductsResult added in v1.17.0

type GetDescriptionOfProductsResult struct {
	Id                    int64  `json:"id"`
	Barcode               string `json:"barcode"`
	Name                  string `json:"name"`
	OfferId               string `json:"offer_id"`
	Height                int32  `json:"height"`
	Depth                 int32  `json:"depth"`
	Width                 int32  `json:"width"`
	DimensionUnit         string `json:"dimension_unit"`
	Weight                int32  `json:"weight"`
	WeightUnit            string `json:"weight_unit"`
	DescriptionCategoryId int64  `json:"description_category_id"`
	TypeId                int64  `json:"type_id"`
	PrimaryImage          string `json:"primary_image"`

	// new "model_info" structure
	ModelInfo *ModelInfo `json:"model_info,omitempty"`

	Images  []string `json:"images"`
	PDFList []string `json:"pdf_list"`

	Attributes        []GetDescriptionOfProductsAttribute        `json:"attributes"`
	ComplexAttributes []GetDescriptionOfProductsComplexAttribute `json:"complex_attributes"`
	ColorImage        string                                     `json:"color_image"`
}

type GetDigitalActParams

type GetDigitalActParams struct {
	// Document generation task number (freight identifier) received from the POST `/v2/posting/fbs/act/create` method
	Id int64 `json:"id"`

	// Type of shipment certificate:
	//   - act_of_acceptance — acceptance certificate,
	//   - act_of_mismatch — discrepancy certificate,
	//   - act_of_excess — surplus certificate
	DocType DigitalActType `json:"doc_type"`
}

type GetDigitalActResponse

type GetDigitalActResponse struct {
	core.CommonResponse

	// File content in binary format
	Content string `json:"file_content"`

	// File name
	Name string `json:"file_name"`

	// File type
	Type string `json:"content_type"`
}

type GetDraftTimeslotsParams added in v1.17.0

type GetDraftTimeslotsParams struct {
	// Start date of the available supply time slots period
	DateFrom time.Time `json:"date_from"`

	// End date of the available supply time slots period
	//
	// The maximum period is 28 days from the current date
	DateTo time.Time `json:"date_to"`

	// Identifier of the supply request draft
	DraftId int64 `json:"draft_id"`

	// The warehouses identifiers for which supply time slots are required
	WarehouseIds []string `json:"warehouse_ids"`
}

type GetDraftTimeslotsResponse added in v1.17.0

type GetDraftTimeslotsResponse struct {
	core.CommonResponse

	// Warehouses supply time slots
	DropoffWarehouseTimeslots []DraftTimeslot `json:"drop_off_warehouse_timeslots"`

	// Start date of the necessary period
	RequestedDateFrom time.Time `json:"requested_date_from"`

	// End date of the necessary period
	RequestedDateTo time.Time `json:"requested_date_to"`
}

type GetDropOffPointRestrictionsParams

type GetDropOffPointRestrictionsParams struct {
	// The number of shipment for which you want to determine the restrictions
	PostingNumber string `json:"posting_number"`
}

type GetDropOffPointRestrictionsResponse

type GetDropOffPointRestrictionsResponse struct {
	core.CommonResponse

	// Method result
	Result GetDropOffPointRestrictionsResult `json:"result"`
}

type GetDropOffPointRestrictionsResult

type GetDropOffPointRestrictionsResult struct {
	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Maximum weight limit in grams
	MaxPostingWeight float64 `json:"max_posting_weight"`

	// Minimum weight limit in grams
	MinPostingWeight float64 `json:"min_posting_weight"`

	// Width limit in centimeters
	Width float64 `json:"width"`

	// Length limit in centimeters
	Length float64 `json:"length"`

	// Height limit in centimeters
	Height float64 `json:"height"`

	// Maximum shipment cost limit in rubles
	MaxPostingPrice float64 `json:"max_posting_price"`

	// Minimum shipment cost limit in rubles
	MinPostingPrice float64 `json:"min_posting_price"`
}

type GetEconomyInfoParams added in v1.17.0

type GetEconomyInfoParams struct {
	// List of MOQs with products
	QuantCode []string `json:"quant_code"`
}

type GetEconomyInfoResponse added in v1.17.0

type GetEconomyInfoResponse struct {
	core.CommonResponse

	// Economy products
	Items []EconomyInfoItem `json:"items"`
}

type GetFBOReturnsFilterStatus

type GetFBOReturnsFilterStatus string
const (
	GetFBOReturnsFilterStatusCreated                   GetFBOReturnsFilterStatus = "Created"
	GetFBOReturnsFilterStatusReturnedToOzon            GetFBOReturnsFilterStatus = "ReturnedToOzon"
	GetFBOReturnsFilterStatusCancelled                 GetFBOReturnsFilterStatus = "Cancelled"
	GetFBOReturnsFilterStatusCancelledWithCompensation GetFBOReturnsFilterStatus = "CancelledWithCompensation"
)

type GetFBOReturnsReturnStatus

type GetFBOReturnsReturnStatus string
const (
	GetFBOReturnsReturnStatusCancelled            GetFBOReturnsReturnStatus = "Возврат отменен"
	GetFBOReturnsReturnStatusAcceptedFromCustomer GetFBOReturnsReturnStatus = "Принят от покупателя"
	GetFBOReturnsReturnStatusReceivedAtOzon       GetFBOReturnsReturnStatus = "Получен в Ozon"
)

type GetFBOShipmentsListFilter

type GetFBOShipmentsListFilter struct {
	// Period start in YYYY-MM-DD format
	Since *core.TimeFormat `json:"since,omitempty"`

	// Shipment status
	Status string `json:"status,omitempty"`

	// Period end in YYYY-MM-DD format
	To *core.TimeFormat `json:"to,omitempty"`
}

Shipment search filter

type GetFBOShipmentsListParams

type GetFBOShipmentsListParams struct {
	// Sorting direction
	Direction Order `json:"dir,omitempty"`

	// Shipment search filter
	Filter GetFBOShipmentsListFilter `json:"filter"`

	// Number of values in the response. Maximum is 1000, minimum is 1
	Limit int64 `json:"limit"`

	// Number of elements that will be skipped in the response. For example, if offset=10, the response will start with the 11th element found
	Offset int64 `json:"offset,omitempty"`

	// true if the address transliteration from Cyrillic to Latin is enabled
	Translit bool `json:"translit,omitempty"`

	// Additional fields to add to the response
	With *GetFBOShipmentsListWith `json:"with,omitempty"`
}

type GetFBOShipmentsListResponse

type GetFBOShipmentsListResponse struct {
	core.CommonResponse

	// Shipments list
	Result []GetFBOShipmentsListResult `json:"result"`
}

type GetFBOShipmentsListResult

type GetFBOShipmentsListResult struct {
	// Additional data for shipment list
	AdditionalData []GetFBOShipmentsListResultAdditionalData `json:"additional_data"`

	// Analytical data
	AnalyticsData GetFBOShipmentsListResultAnalyticsData `json:"analytics_data"`

	// Shipment cancellation reason identifier
	CancelReasonId int64 `json:"cancel_reason_id"`

	// Date and time of shipment creation
	CreatedAt time.Time `json:"created_at"`

	// Financial data
	FinancialData FBOFinancialData `json:"financial_data"`

	// Date and time of shipment processing start
	InProccessAt time.Time `json:"in_process_at"`

	// Identifier of the order to which the shipment belongs
	OrderId int64 `json:"order_id"`

	// Number of the order to which the shipment belongs
	OrderNumber string `json:"order_number"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Number of products in the shipment
	Products []FBOPostingProduct `json:"products"`

	// Shipment status
	Status string `json:"status"`
}

type GetFBOShipmentsListResultAdditionalData

type GetFBOShipmentsListResultAdditionalData struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

type GetFBOShipmentsListResultAnalyticsData

type GetFBOShipmentsListResultAnalyticsData struct {
	// Delivery method
	DeliveryType string `json:"delivery_type"`

	// Indication that the recipient is a legal person
	//   * true — a legal person,
	//   * false — a natural person.
	IsLegal bool `json:"is_legal"`

	// Premium subscription
	IsPremium bool `json:"is_premium"`

	// Payment method
	PaymentTypeGroupName PaymentTypeGroupName `json:"payment_type_group_name"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`

	// Name of the warehouse from which the order is shipped
	WarehouseName string `json:"warehouse_name"`
}

type GetFBOShipmentsListWith

type GetFBOShipmentsListWith struct {
	// Specify true to add analytics data to the response
	AnalyticsData bool `json:"analytics_data"`

	// Specify true to add financial data to the response
	FinancialData bool `json:"financial_data"`
}

Additional fields to add to the response

type GetFBSQuantityDropoffPoint added in v1.12.0

type GetFBSQuantityDropoffPoint struct {
	// Drop-off point address
	Address string `json:"address"`

	// Drop-off point identifier
	Id int64 `json:"id"`

	// Drop-off point name
	Name string `json:"name"`

	// Pass information
	PassInfo GetFBSQuantityDropoffPointPassInfo `json:"pass_info"`

	// The warehouse identifier to which the shipment will arrive
	PlaceId int64 `json:"place_id"`

	// Quantity of returns at the drop-off point
	ReturnsCount int32 `json:"returns_count"`

	// Seller's warehouses identifiers
	WarehouseIds []string `json:"warehouses_ids"`

	// Number of boxes in drop-off point
	BoxCount int32 `json:"box_count"`

	// Time zone offset of the shipping time from UTC-0
	UTCOffset string `json:"utc_offset"`
}

type GetFBSQuantityDropoffPointPassInfo added in v1.12.0

type GetFBSQuantityDropoffPointPassInfo struct {
	// Quantity of drop-off point passes
	Count int32 `json:"count"`

	// true if you need a pass to the drop-off point
	IsRequired bool `json:"is_required"`
}

type GetFBSQuantityReturnsFilter added in v1.12.0

type GetFBSQuantityReturnsFilter struct {
	// Filter by drop-off point identifier
	PlaceId int64 `json:"place_id"`
}

type GetFBSQuantityReturnsPagination added in v1.12.0

type GetFBSQuantityReturnsPagination struct {
	// Identifier of the last drop-off point on the page. Leave this field blank in the first request.
	//
	// To get the next values, specify id of the last drop-off point from the response of the previous request
	LastId int64 `json:"last_id"`

	// Number of drop-off points per page. Maximum is 500
	Limit int32 `json:"limit"`
}

type GetFBSQuantityReturnsParams added in v1.12.0

type GetFBSQuantityReturnsParams struct {
	Filter GetFBSQuantityReturnsFilter `json:"filter"`

	// Split the method response
	Pagination GetFBSQuantityReturnsPagination `json:"pagination"`
}

type GetFBSQuantityReturnsResponse added in v1.12.0

type GetFBSQuantityReturnsResponse struct {
	core.CommonResponse

	DropoffPoints []GetFBSQuantityDropoffPoint `json:"drop_off_points"`

	// true if there are any other points where sellers have orders waiting
	HasNext bool `json:"has_next"`
}

type GetFBSReturnsFilterStatus

type GetFBSReturnsFilterStatus string
const (
	Moving                    GetFBSReturnsFilterStatus = "moving"
	ReturnedToSeller          GetFBSReturnsFilterStatus = "returned_to_seller"
	WaitingForSeller          GetFBSReturnsFilterStatus = "waiting_for_seller"
	AcceptedFromCustomer      GetFBSReturnsFilterStatus = "accepted_from_customer"
	CancelledWithCompensation GetFBSReturnsFilterStatus = "cancelled_with_compensation"
	ReadyForShipment          GetFBSReturnsFilterStatus = "ready_for_shipment"
	Disposing                 GetFBSReturnsFilterStatus = "disposing"
	Disposed                  GetFBSReturnsFilterStatus = "disposed"
	ArrivedForResale          GetFBSReturnsFilterStatus = "arrived_for_resale"
	MovingToResale            GetFBSReturnsFilterStatus = "moving_to_resale"
)

type GetFBSReturnsFilterTimeRange

type GetFBSReturnsFilterTimeRange struct {
	// The beginning of the period.
	//
	// Format: YYYY-MM-DDTHH:mm:ss.sssZ.
	//
	// Example: 2019-11-25T10:43:06.51
	TimeFrom time.Time `json:"time_from"`

	// The end of the period
	//
	// Format: YYYY-MM-DDTHH:mm:ss.sssZ.
	//
	// Example: 2019-11-25T10:43:06.51
	TimeTo time.Time `json:"time_to"`
}

type GetFBSShipmentsListFilter

type GetFBSShipmentsListFilter struct {
	// Delivery method identifier
	DeliveryMethodId []int64 `json:"delivery_method_id"`

	// Filter for shipments delivered from partner warehouse (FBP)
	//
	// Default value is all.
	//
	// The FBP scheme is available only for sellers from China
	FBPFilter FBPFilter `json:"fbpFilter" default:"all"`

	// Order identifier
	OrderId int64 `json:"order_id"`

	// Specify true to get only MOQ shipments.
	//
	// The default value is false, the response contains all shipments
	IsQuantum bool `json:"is_quantum"`

	// Delivery service identifier
	ProviderId []int64 `json:"provider_id"`

	// Start date of the period for which a list of shipments should be generated.
	//
	// Format: YYYYY-MM-DDTHH:MM:SSZ.
	//
	// Example: 2019-08-24T14:15:22Z
	Since time.Time `json:"since"`

	// End date of the period for which a list of shipments should be generated.
	//
	// Format: YYYYY-MM-DDTHH:MM:SSZ.
	//
	// Example: 2019-08-24T14:15:22Z.
	To time.Time `json:"to"`

	// Shipment status
	Status string `json:"status"`

	// Warehouse identifier
	WarehouseId []int64 `json:"warehouse_id"`

	LastChangedStatusDate GetFBSShipmentsListFilterLastChangeDate `json:"last_changed_status_date"`
}

type GetFBSShipmentsListFilterLastChangeDate added in v1.14.0

type GetFBSShipmentsListFilterLastChangeDate struct {
	From time.Time `json:"from"`
	To   time.Time `json:"to"`
}

type GetFBSShipmentsListParams

type GetFBSShipmentsListParams struct {
	// Sorting direction
	Direction Order `json:"dir,omitempty"`

	// Filter
	Filter GetFBSShipmentsListFilter `json:"filter"`

	// Number of shipments in the response:
	//   - maximum is 50,
	//   - minimum is 1.
	Limit int64 `json:"limit"`

	// Number of elements that will be skipped in the response. For example, if offset=10, the response will start with the 11th element found
	Offset int64 `json:"offset,omitempty"`

	// Additional fields that should be added to the response
	With *GetFBSShipmentsListWith `json:"with,omitempty"`
}

type GetFBSShipmentsListResponse

type GetFBSShipmentsListResponse struct {
	core.CommonResponse

	// Array of shipments
	Result GetFBSShipmentsListResult `json:"result"`
}

type GetFBSShipmentsListResult

type GetFBSShipmentsListResult struct {
	// Indicates that the response returned not the entire array of shipments:
	//
	//   - true — it is necessary to make a new request with a different offset value to get information on the remaining shipments;
	//   - false — the entire array of shipments for the filter specified in the request was returned in the response
	HasNext bool `json:"has_next"`

	// Shipment details
	Postings []FBSPosting `json:"postings"`
}

type GetFBSShipmentsListWith

type GetFBSShipmentsListWith struct {
	// Add analytics data to the response
	AnalyticsData bool `json:"analytics_data"`

	// Add the shipment barcodes to the response
	Barcodes bool `json:"barcodes"`

	// Add financial data to the response
	FinancialData bool `json:"financial_data"`

	// Transliterate the return values
	Translit bool `json:"translit"`
}

type GetFBSStocksParams added in v1.8.0

type GetFBSStocksParams struct {
	// Response language
	Language string `json:"language"`

	// Warehouses identifiers
	WarehouseIds []int64 `json:"warehouse_id"`
}

type GetFBSStocksResponse added in v1.8.0

type GetFBSStocksResponse struct {
	core.CommonResponse

	// Method result
	Result GetFBSStocksResult `json:"result"`
}

type GetFBSStocksResult added in v1.8.0

type GetFBSStocksResult struct {
	// Unique report identifier
	Code string `json:"code"`
}

type GetFinancialReportDatePeriod

type GetFinancialReportDatePeriod struct {
	// Date from which the report is calculated
	From time.Time `json:"from"`

	// Date up to which the report is calculated
	To time.Time `json:"to"`
}

type GetFinancialReportParams

type GetFinancialReportParams struct {
	// Report generation period
	Date GetFinancialReportDatePeriod `json:"date"`

	// Number of the page returned in the request
	Page int64 `json:"page"`

	// true, если нужно добавить дополнительные параметры в ответ
	WithDetails bool `json:"with_details"`

	// Number of items on the page
	PageSize int64 `json:"page_size"`
}

type GetFinancialReportResponse

type GetFinancialReportResponse struct {
	core.CommonResponse

	// Method result
	Result GetFinancialResultResult `json:"result"`
}

type GetFinancialResultResult

type GetFinancialResultResult struct {
	// Reports list
	CashFlows []GetFinancialResultResultCashflow `json:"cash_flows"`

	// Detailed info
	Details GetFinancialResultResultDetail `json:"details"`

	// Number of pages with reports
	PageCount int64 `json:"page_count"`
}

type GetFinancialResultResultCashflow

type GetFinancialResultResultCashflow struct {
	// Period data
	Period GetFinancialResultResultCashflowPeriod `json:"period"`

	// Sum of sold products prices
	OrdersAmount float64 `json:"orders_amount"`

	// Sum of returned products prices
	ReturnsAmount float64 `json:"returns_amount"`

	// Ozon sales commission
	CommissionAmount float64 `json:"commission_amount"`

	// Additional services cost
	ServicesAmount float64 `json:"services_amount"`

	// Logistic services cost
	ItemDeliveryAndReturnAmount float64 `json:"item_delivery_and_return_amount"`

	// Code of the currency used to calculate the commissions
	CurrencyCode string `json:"currency_code"`
}

type GetFinancialResultResultCashflowPeriod

type GetFinancialResultResultCashflowPeriod struct {
	// Period identifier
	Id int64 `json:"id"`

	// Period start
	Begin time.Time `json:"begin"`

	// Period end
	End time.Time `json:"end"`
}

type GetFinancialResultResultDetail

type GetFinancialResultResultDetail struct {
	// Balance on the beginning of period
	BeginBalanceAmount float64 `json:"begin_balance_amount"`

	// Orders
	Delivery GetFinancialResultResultDetailDelivery `json:"delivery"`

	// Amount to be paid for the period
	InvoiceTransfer float64 `json:"invoice_transfer"`

	// Transfer under loan agreements
	Loan float64 `json:"loan"`

	// Paid for the period
	Payments []GetFinancialResultResultDetailPayment `json:"payments"`

	// Period data
	Period GetFinancialResultResultDetailPeriod `json:"period"`

	// Returns and cancellations
	Return GetFinancialResultResultDetailReturn `json:"return"`

	// rFBS transfers
	RFBS GetFinancialResultResultDetailRFBS `json:"rfbs"`

	// Services
	Services GetFinancialResultResultDetailService `json:"services"`

	// Compensation and other accruals
	Others GetFinancialResultResultDetailOthers `json:"others"`

	// Balance at the end of the period
	EndBalanceAmount float64 `json:"end_balance_amount"`
}

type GetFinancialResultResultDetailDelivery

type GetFinancialResultResultDetailDelivery struct {
	// Total amount
	Total float64 `json:"total"`

	// Amount for which products were purchased, including commission fees
	Amount float64 `json:"amount"`

	// Processing and delivery fees
	DeliveryServices GetFinancialResultResultDetailDeliveryServices `json:"delivery_services"`
}

type GetFinancialResultResultDetailDeliveryServices

type GetFinancialResultResultDetailDeliveryServices struct {
	// Total amount
	Total float64 `json:"total"`

	// Details
	Items []GetFinancialResultResultDetailDeliveryServicesItem `json:"items"`
}

type GetFinancialResultResultDetailDeliveryServicesItem

type GetFinancialResultResultDetailDeliveryServicesItem struct {
	// Operation name
	Name DetailsDeliveryItemName `json:"name"`

	// Amount by operation
	Price float64 `json:"price"`
}

type GetFinancialResultResultDetailOthers

type GetFinancialResultResultDetailOthers struct {
	// Total amount
	Total float64 `json:"total"`

	// Details
	Items []GetFinancialResultResultDetailOthersItem `json:"items"`
}

type GetFinancialResultResultDetailOthersItem

type GetFinancialResultResultDetailOthersItem struct {
	// Operation name
	Name DetailsOtherItemName `json:"name"`

	// Amount by operation
	Price float64 `json:"price"`
}

type GetFinancialResultResultDetailPayment

type GetFinancialResultResultDetailPayment struct {
	// Currency
	CurrencyCode string `json:"currency_code"`

	// Payment amount
	Payment float64 `json:"payment"`
}

type GetFinancialResultResultDetailPeriod

type GetFinancialResultResultDetailPeriod struct {
	// Period start
	Begin time.Time `json:"begin"`

	// Period end
	End time.Time `json:"end"`

	// Period identifier
	Id int64 `json:"id"`
}

type GetFinancialResultResultDetailRFBS

type GetFinancialResultResultDetailRFBS struct {
	// Total amount
	Total float64 `json:"total"`

	// Transfers from customers
	TransferDelivery float64 `json:"transfer_delivery"`

	// Return of transfers to customers
	TransferDeliveryReturn float64 `json:"transfer_delivery_return"`

	// Compensation of delivery fees
	CompensationDeliveryReturn float64 `json:"compensation_delivery_return"`

	// Transfers of partial refunds to customers
	PartialCompensation float64 `json:"partial_compensation"`

	// Compensation of partial refunds
	PartialCompensationReturn float64 `json:"partial_compensation_return"`
}

type GetFinancialResultResultDetailReturn

type GetFinancialResultResultDetailReturn struct {
	// Total amount
	Total float64 `json:"total"`

	// Amount of returns received, including commission fees
	Amount float64 `json:"amount"`

	// Returns and cancellation fees
	ReturnServices GetFinancialResultResultDetailReturnServices `json:"return_services"`
}

type GetFinancialResultResultDetailReturnServices

type GetFinancialResultResultDetailReturnServices struct {
	// Total amount
	Total float64 `json:"total"`

	// Details
	Items []GetFinancialResultResultDetailReturnServicesItem `json:"items"`
}

type GetFinancialResultResultDetailReturnServicesItem

type GetFinancialResultResultDetailReturnServicesItem struct {
	// Operation name
	Name DetailsReturnServiceName `json:"name"`

	// Amount by operation
	Price float64 `json:"price"`
}

type GetFinancialResultResultDetailService

type GetFinancialResultResultDetailService struct {
	// Total amount
	Total float64 `json:"total"`

	// Details
	Items []GetFinancialResultResultDetailServiceItem `json:"items"`
}

type GetFinancialResultResultDetailServiceItem

type GetFinancialResultResultDetailServiceItem struct {
	// Operation name
	Name DetailsServiceItemName `json:"name"`

	// Amount by operation
	Price float64 `json:"price"`
}

type GetGiveoutBarcodeResponse added in v1.8.0

type GetGiveoutBarcodeResponse struct {
	core.CommonResponse

	// Barcode value in text format
	Barcode string `json:"barcode"`
}

type GetGiveoutInfoArticle added in v1.8.0

type GetGiveoutInfoArticle struct {
	// `true` if the shipment is confirmed
	Approved bool `json:"approved"`

	// Delivery schema
	DeliverySchema GiveoutDeliverySchema `json:"delivery_schema"`

	// Product name
	Name string `json:"name"`

	// Seller identifier
	SellerId int64 `json:"seller_id"`
}

type GetGiveoutInfoParams added in v1.8.0

type GetGiveoutInfoParams struct {
	// Shipment identifier
	GiveoutId int64 `json:"giveout_id"`
}

type GetGiveoutInfoResponse added in v1.8.0

type GetGiveoutInfoResponse struct {
	core.CommonResponse

	// Product IDs
	Articles []GetGiveoutInfoArticle `json:"articles"`

	// Shipment identifier
	GiveoutId int64 `json:"giveout_id"`

	// Return shipment status
	GiveoutStatus GiveoutStatus `json:"giveout_status"`

	// Warehouse address
	WarehouseAddress string `json:"warehouse_address"`

	// Warehouse name
	WarehouseName string `json:"warehouse_name"`
}

type GetGiveoutListGiveout added in v1.8.0

type GetGiveoutListGiveout struct {
	// Number of products in shipment
	ApprovedArticlesCount int32 `json:"approved_articles_count"`

	// Creation date and time
	CreatedAt time.Time `json:"created_at"`

	// Shipment identifier
	GiveoutId int64 `json:"giveout_id"`

	// Return shipment status
	GiveoutStatus GiveoutStatus `json:"giveout_status"`

	// Total number of products to be picked up from the warehouse
	TotalArticlesCount int32 `json:"total_articles_count"`

	// Warehouse address
	WarehouseAddress string `json:"warehouse_address"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`

	// Warehouse name
	WarehouseName string `json:"warehouse_name"`
}

type GetGiveoutListParams added in v1.8.0

type GetGiveoutListParams struct {
	// Identifier of the last value on the page
	LastId int64 `json:"last_id"`

	// Number of values in the response
	Limit int64 `json:"limit"`
}

type GetGiveoutListResponse added in v1.8.0

type GetGiveoutListResponse struct {
	core.CommonResponse

	// Shipment identifier
	Giveouts []GetGiveoutListGiveout `json:"giveouts"`
}

type GetGiveoutResponse added in v1.8.0

type GetGiveoutResponse struct {
	core.CommonResponse

	// PDF file with barcode in binary format
	FileContent string `json:"file_content"`

	// File name
	FileName string `json:"file_name"`

	// File type
	ContentType string `json:"content_type"`
}

type GetLabelingParams

type GetLabelingParams struct {
	// Task identifier for labeling generation from the /v1/posting/fbs/package-label/create method response
	TaskId int64 `json:"task_id"`
}

type GetLabelingResponse

type GetLabelingResponse struct {
	core.CommonResponse

	// Method result
	Result GetLabelingResult `json:"result"`
}

type GetLabelingResult

type GetLabelingResult struct {
	// Error code
	Error string `json:"error"`

	// Link to a labeling file
	FileUrl string `json:"file_url"`

	// Status of labeling generation:
	//   - pending — task is in the queue.
	//   - in_progress — being generated.
	//   - completed — labeling file is ready.
	//   - error — error occurred during file generation
	Status string `json:"status"`
}

type GetListOfDeliveryMethodsFilter

type GetListOfDeliveryMethodsFilter struct {
	// Delivery service identifier
	ProviderId int64 `json:"provider_id"`

	// Delivery method status:
	//   - NEW—created
	//   - EDITED—being edited
	//   - ACTIVE—active
	//   - DISABLED—inactive
	Status string `json:"status"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`
}

type GetListOfDeliveryMethodsParams

type GetListOfDeliveryMethodsParams struct {
	// Search filter for delivery methods
	Filter *GetListOfDeliveryMethodsFilter `json:"filter,omitempty"`

	// Number of items in a response. Maximum is 50, minimum is 1
	Limit int64 `json:"limit"`

	// Number of elements that will be skipped in the response.
	// For example, if offset=10, the response will start with the 11th element found
	Offset int64 `json:"offset"`
}

type GetListOfDeliveryMethodsResponse

type GetListOfDeliveryMethodsResponse struct {
	core.CommonResponse

	// Indication that only part of delivery methods was returned in the response:
	//   - true — make a request with a new offset parameter value for getting the rest of delivery methods;
	//   - false — all delivery methods were returned
	HasNext bool `json:"has_next"`

	// Method result
	Result []GetListOfDeliveryMethodsResult `json:"result"`
}

type GetListOfDeliveryMethodsResult

type GetListOfDeliveryMethodsResult struct {
	// Company identifier
	CompanyId int64 `json:"company_id"`

	// Date and time of delivery method creation
	CreatedAt time.Time `json:"created_at"`

	// Time before an order must be packaged
	Cutoff string `json:"cutoff"`

	// Delivery method identifier
	Id int64 `json:"id"`

	// Delivery method name
	Name string `json:"name"`

	// Delivery service identifier
	ProviderId int64 `json:"provider_id"`

	// Minimum time to package an order in minutes according to warehouse settings
	SLACutIn int64 `json:"sla_cut_in"`

	// Delivery method status:
	//   - NEW—created,
	//   - EDITED—being edited,
	//   - ACTIVE—active,
	//   - DISABLED—inactive
	Status string `json:"status"`

	// Order delivery service identifier
	TemplateId int64 `json:"template_id"`

	// Date and time when the delivery method was last updated
	UpdatedAt time.Time `json:"updated_at"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`
}

type GetListOfProductsFilter

type GetListOfProductsFilter struct {
	// Filter by the offer_id parameter. You can pass a list of values in this parameter
	OfferId []string `json:"offer_id,omitempty"`

	// Filter by the product_id parameter. You can pass a list of values in this parameter
	ProductId []int64 `json:"product_id,omitempty"`

	// Filter by product visibility
	Visibility string `json:"visibility,omitempty"`
}

GetListOfProductsFilter holds filtering options for /v3/product/list.

type GetListOfProductsParams

type GetListOfProductsParams struct {
	// Filter by product
	Filter GetListOfProductsFilter `json:"filter"`

	// Identifier of the last value on the page. Leave this field blank in the first request.
	// To get the next values, specify last_id from the response of the previous request
	LastId string `json:"last_id"`

	// Number of values per page. Minimum is 1, maximum is 1000
	Limit int64 `json:"limit"`
}

GetListOfProductsParams reflects the new /v3/product/list request body. Filter, LastId, and Limit are used the same way as in the v2 version, plus we keep offer_id and product_id for backward compatibility if needed.

type GetListOfProductsResponse

type GetListOfProductsResponse struct {
	core.CommonResponse

	// Result object containing list of products and pagination info
	Result GetListOfProductsResult `json:"result"`
}

GetListOfProductsResponse describes the /v3/product/list response body.

type GetListOfProductsResult

type GetListOfProductsResult struct {
	// Products list
	Items []GetListOfProductsResultItem `json:"items"`

	// Total number of products
	Total int32 `json:"total"`

	// Identifier of the last value on the page.
	// To get the next values, specify the received value in the next request in the last_id parameter
	LastId string `json:"last_id"`
}

GetListOfProductsResult contains the products, total count, and last_id.

type GetListOfProductsResultItem

type GetListOfProductsResultItem struct {
	// Product ID
	ProductId int64 `json:"product_id"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Flag indicating presence of FBO stocks
	HasFboStocks bool `json:"has_fbo_stocks"`

	// Flag indicating presence of FBS stocks
	HasFbsStocks bool `json:"has_fbs_stocks"`

	// Product archive status
	Archived bool `json:"archived"`

	// Whether the product has an active discount
	IsDiscounted bool `json:"is_discounted"`

	// List of quants with detailed stock information
	Quants []ProductQuant `json:"quants"`
}

GetListOfProductsResultItem describes a single product item in the /v3/product/list response.

type GetListOfWarehousesResponse

type GetListOfWarehousesResponse struct {
	core.CommonResponse

	Result []GetListOfWarehousesResult `json:"result"`
}

type GetListOfWarehousesResult

type GetListOfWarehousesResult struct {
	// Trusted acceptance attribute. `true` if trusted acceptance is enabled in the warehouse
	HasEntrustedAcceptance bool `json:"has_entrusted_acceptance"`

	// Indication that the warehouse works under the rFBS scheme:
	//   - true — the warehouse works under the rFBS scheme;
	//   - false — the warehouse does not work under the rFBS scheme.
	IsRFBS bool `json:"is_rfbs"`

	// Warehouse name
	Name string `json:"name"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`

	// Possibility to print an acceptance certificate in advance. `true` if printing in advance is possible
	CanPrintActInAdvance bool `json:"can_print_act_in_advance"`

	// FBS first mile
	FirstMileType GetListOfWarehousesResultFirstMile `json:"first_mile_type"`

	// Indication if there is a limit on the minimum number of orders. `true` if there is such a limit
	HasPostingsLimit bool `json:"has_postings_limit"`

	// Indication that the warehouse is not working due to quarantine
	IsKarantin bool `json:"is_karantin"`

	// Indication that the warehouse accepts bulky products
	IsKGT bool `json:"is_kgt"`

	// true if the warehouse handles economy products
	IsEconomy bool `json:"is_economy"`

	// Indication that warehouse schedule can be changed
	IsTimetableEditable bool `json:"is_timetable_editable"`

	// Minimum limit value: the number of orders that can be brought in one shipment
	MinPostingsLimit int32 `json:"min_postings_limit"`

	// Limit value. -1 if there is no limit
	PostingsLimit int32 `json:"postings_limit"`

	// Number of warehouse working days
	MinWorkingDays int64 `json:"min_working_days"`

	// Warehouse status
	Status string `json:"status"`

	// Warehouse working days
	WorkingDays []WorkingDay `json:"working_days"`
}

type GetListOfWarehousesResultFirstMile

type GetListOfWarehousesResultFirstMile struct {
	// DropOff point identifier
	DropoffPointId string `json:"dropoff_point_id"`

	// DropOff timeslot identifier
	DropoffTimeslotId int64 `json:"dropoff_timeslot_id"`

	// Indication that the warehouse settings are being updated
	FirstMileIsChanging bool `json:"first_mile_is_changing"`

	// First mile type:
	//
	// Enum: "DropOff" "Pickup"
	//   - DropOff
	//   - Pickup
	FirstMileType string `json:"first_mile_type"`
}

type GetMarkdownInfoItem

type GetMarkdownInfoItem struct {
	// Comment on the damage reason
	CommentReasonDamaged string `json:"comment_reason_damaged"`

	// Product condition: new or used
	Condition string `json:"condition"`

	// Product condition on a 1 to 7 scale.
	//   - 1 — satisfactory,
	//   - 2 — good,
	//   - 3 — very good,
	//   - 4 — excellent,
	//   - 5–7 — like new
	ConditionEstimation string `json:"condition_estimation"`

	// Product defects
	Defects string `json:"defects"`

	// Markdown product SKU
	DiscountedSKU int64 `json:"discounted_sku"`

	// Mechanical damage description
	MechanicalDamage string `json:"mechanical_damage"`

	// Packaging damage description
	PackageDamage string `json:"package_damage"`

	// Indication of package integrity damage
	PackagingViolation string `json:"packaging_violation"`

	// Damage reason
	ReasonDamaged string `json:"reason_damaged"`

	// Indication of repaired product
	Repair string `json:"repair"`

	// Indication that the product is incomplete
	Shortage string `json:"shortage"`

	// Main products SKU
	SKU int64 `json:"sku"`

	// Indication that the product has a valid warranty
	WarrantyType string `json:"warranty_type"`
}

type GetMarkdownInfoParams

type GetMarkdownInfoParams struct {
	// Markdown products SKUs list
	DiscountedSKUs []string `json:"discounted_skus"`
}

type GetMarkdownInfoResponse

type GetMarkdownInfoResponse struct {
	core.CommonResponse

	// Information about the markdown and the main product
	Items []GetMarkdownInfoItem `json:"items"`
}

type GetPassParams added in v1.17.0

type GetPassParams struct {
	// Operation identifier
	OperationId string `json:"operation_id"`
}

type GetPassResponse added in v1.17.0

type GetPassResponse struct {
	core.CommonResponse

	// Possible errors
	Errors []string `json:"errors"`

	// Status of driver and vehicle data entry
	Result string `json:"result"`
}

type GetProductDescriptionParams

type GetProductDescriptionParams struct {
	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Product identifier
	ProductId int64 `json:"product_id"`
}

type GetProductDescriptionResponse

type GetProductDescriptionResponse struct {
	core.CommonResponse

	// Method result
	Result GetProductDescriptionResult `json:"result"`
}

type GetProductDescriptionResult

type GetProductDescriptionResult struct {
	// Description
	Description string `json:"description"`

	// Identifier
	Id int64 `json:"id"`

	// Name
	Name string `json:"name"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`
}

type GetProductDetailsResponseItemError

type GetProductDetailsResponseItemError struct {
	// Error code
	Code string `json:"code"`

	// Product state in which an error occurred
	State string `json:"state"`

	// Error level
	Level string `json:"level"`

	// Error description
	Description string `json:"description"`

	// Error field
	Field string `json:"field"`

	// Error attribute identifier
	AttributeId int64 `json:"attribute_id"`

	// Attribute name
	AttributeName string `json:"attribute_name"`

	// Additional fields for error description
	OptionalDescriptionElements map[string]string `json:"optional_description_elements"`
}

type GetProductImportStatusParams

type GetProductImportStatusParams struct {
	// Importing products task code
	TaskId int64 `json:"task_id"`
}

type GetProductImportStatusResponse

type GetProductImportStatusResponse struct {
	core.CommonResponse

	// Method result
	Result GetProductImportStatusResult `json:"result"`
}

type GetProductImportStatusResult

type GetProductImportStatusResult struct {
	// Product details
	Items []GetProductImportStatusResultItem `json:"items"`

	// Product identifier in the seller's system
	Total int32 `json:"total"`
}

type GetProductImportStatusResultItem

type GetProductImportStatusResultItem struct {
	// Product identifier in the seller's system.
	//
	// The maximum length of a string is 50 characters
	OfferId string `json:"offer_id"`

	// Product identifier
	ProductId int64 `json:"product_id"`

	// Product creation status. Product information is processed in queues. Possible parameter values:
	//   - pending — product in the processing queue;
	//   - imported — product loaded successfully;
	//   - failed — product loaded with errors
	Status string `json:"status"`

	// Array of errors
	Errors []GetProductImportStatusResultItemError `json:"errors"`
}

type GetProductImportStatusResultItemError

type GetProductImportStatusResultItemError struct {
	GetProductDetailsResponseItemError

	// Error technical description
	Message string `json:"message"`
}

type GetProductItemsCheckStatusesParams

type GetProductItemsCheckStatusesParams struct {
	// Shipment number
	PostingNumber string `json:"posting_number"`
}

type GetProductItemsCheckStatusesResponse

type GetProductItemsCheckStatusesResponse struct {
	core.CommonResponse

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Products list
	Products []CheckProductItemsDataProduct `json:"products"`

	// Product items check statuses and order collection availability:
	//   - ship_available — order collection is available,
	//   - ship_not_available — order collection is unavailable,
	//   - validation_in_process — product items validation is in progress
	Status string `json:"status"`
}

type GetProductPriceInfoFilter

type GetProductPriceInfoFilter struct {
	// Filter by the `offer_id` parameter. It is possible to pass a list of values
	OfferId []string `json:"offer_id"`

	// Filter by the `product_id` parameter. It is possible to pass a list of up to 1000 values
	ProductId []int64 `json:"product_id"`

	// Filter by product visibility
	Visibility string `json:"visibility" default:"ALL"`
}

type GetProductPriceInfoParams

type GetProductPriceInfoParams struct {
	// Filter by product
	Filter GetProductPriceInfoFilter `json:"filter"`

	// Cursor for the next data sample
	Cursor string `json:"cursor"`

	// Number of values per page. Minimum is 1, maximum is 1000
	Limit int32 `json:"limit"`
}

type GetProductPriceInfoResponse

type GetProductPriceInfoResponse struct {
	core.CommonResponse

	Result GetProductPriceInfoResult `json:"result"`
}

type GetProductPriceInfoResult

type GetProductPriceInfoResult struct {
	// Products list
	Items []GetProductPriceInfoResultItem `json:"items"`

	// Cursor for the next data sample
	Cursor string `json:"cursor"`

	// Products number in the list
	Total int32 `json:"total"`
}

type GetProductPriceInfoResultItem added in v1.12.0

type GetProductPriceInfoResultItem struct {
	// Maximum acquiring fee
	Acquiring int32 `json:"acquiring"`

	// Commissions information
	Commissions GetProductPriceInfoResultItemCommission `json:"commissions"`

	// Promotions information
	MarketingActions *GetProductPriceInfoResultItemMarketingActions `json:"marketing_actions"`

	// Seller product identifier
	OfferId string `json:"offer_id"`

	// Product price
	Price GetProductPriceInfoResultItemPrice `json:"price"`

	// Product price indexes
	PriceIndexes GetProductPriceInfoResultItemPriceIndexes `json:"price_indexes"`

	// Product identifier
	ProductId int64 `json:"product_id"`

	// Product volume weight
	VolumeWeight float64 `json:"volume_weight"`
}

type GetProductPriceInfoResultItemCommission

type GetProductPriceInfoResultItemCommission struct {
	// Last mile (FBO)
	FBOLastMile float64 `json:"fbo_deliv_to_customer_amount"`

	// Pipeline to (FBO)
	FBOPipelineTo float64 `json:"fbo_direct_flow_trans_max_amount"`

	// Pipeline from (FBO)
	FBOPipelineFrom float64 `json:"fbo_direct_flow_trans_min_amount"`

	// Order packaging fee (FBO)
	FBOOrderPackagingFee float64 `json:"fbo_fulfillment_amount"`

	// Return and cancellation fees (FBO)
	FBOReturnCancellationFee float64 `json:"fbo_return_flow_amount"`

	// Reverse logistics fee from (FBO)
	FBOReverseLogisticsFeeFrom float64 `json:"fbo_return_flow_trans_min_amount"`

	// Reverse logistics fee to (FBO)
	FBOReverseLogisticsFeeTo float64 `json:"fbo_return_flow_trans_max_amount"`

	// Last mile (FBS)
	FBSLastMile float64 `json:"fbs_deliv_to_customer_amount"`

	// Pipeline to (FBS)
	FBSPipelineTo float64 `json:"fbs_direct_flow_trans_max_amount"`

	// Pipeline from (FBS)
	FBSPipelineFrom float64 `json:"fbs_direct_flow_trans_min_amount"`

	// Minimal shipment processing fee (FBS) — 0 rubles
	FBSShipmentProcessingToFee float64 `json:"fbs_first_mile_min_amount"`

	// Maximal shipment processing fee (FBS) — 25 rubles
	FBSShipmentProcessingFromFee float64 `json:"fbs_first_mile_max_amount"`

	// Return and cancellation fees, shipment processing (FBS)
	FBSReturnCancellationProcessingFee float64 `json:"fbs_return_flow_amount"`

	// Return and cancellation fees, pipeline to (FBS)
	FBSReturnCancellationToFees float64 `json:"fbs_return_flow_trans_max_amount"`

	// Return and cancellation fees, pipeline from (FBS)
	FBSReturnCancellationFromFees float64 `json:"fbs_return_flow_trans_min_amount"`

	// Sales commission percentage (FBO)
	SalesCommissionFBORate float64 `json:"sales_percent_fbo"`

	// Sales commission percentage (FBS)
	SalesCommissionFBSRate float64 `json:"sales_percent_fbs"`

	// Larger sales commission percentage among FBO and FBS
	SalesCommissionRate float64 `json:"sales_percent"`
}

type GetProductPriceInfoResultItemMarketingActions

type GetProductPriceInfoResultItemMarketingActions struct {
	// Seller's promotions. The parameters date_from, date_to, discount_value and title are specified for each seller's promotion
	Actions []GetProductPriceInfoResultItemMarketingActionsAction `json:"actions"`

	// Current period start date and time for all current promotions
	CurrentPeriodFrom time.Time `json:"current_period_from"`

	// Current period end date and time for all current promotions
	CurrentPeriodTo time.Time `json:"current_period_to"`

	// If a promotion can be applied to the product at the expense of Ozon, this field is set to true
	OzonActionsExist bool `json:"ozon_actions_exist"`
}

type GetProductPriceInfoResultItemMarketingActionsAction

type GetProductPriceInfoResultItemMarketingActionsAction struct {
	// Date and time when the seller's promotion starts
	DateFrom time.Time `json:"date_from"`

	// Date and time when the seller's promotion ends
	DateTo time.Time `json:"date_to"`

	// Promotion name
	Title string `json:"title"`

	// Discount on the seller's promotion
	Value float64 `json:"value"`
}

type GetProductPriceInfoResultItemPrice

type GetProductPriceInfoResultItemPrice struct {
	// If promos auto-application is enabled, the value is true
	AutoActionEnabled bool `json:"auto_action_enabled"`

	// Currency of your prices. It matches the currency set in the personal account settings
	CurrencyCode string `json:"currency_code"`

	// Product price including all promotion discounts. This value will be indicated on the Ozon storefront
	MarketingPrice float64 `json:"marketing_price"`

	// Product price with seller's promotions applied
	MarketingSellerPrice float64 `json:"marketing_seller_price"`

	// Minimum price for similar products on Ozon
	MinOzonPrice float64 `json:"min_ozon_price"`

	// Minimum product price with all promotions applied
	MinPrice float64 `json:"min_price"`

	// Price before discounts. Displayed strikethrough on the product description page
	OldPrice float64 `json:"old_price"`

	// Product price including discounts. This value is shown on the product description page
	Price float64 `json:"price"`

	// Retailer price
	RetailPrice float64 `json:"retail_price"`

	// Product VAT rate
	VAT float64 `json:"vat"`
}

type GetProductPriceInfoResultItemPriceIndexes

type GetProductPriceInfoResultItemPriceIndexes struct {
	// Resulting price index of the product
	ColorIndex string `json:"color_index"`

	// Competitors' product price on other marketplaces
	ExternalIndexData GetProductPriceInfoResultItemPriceIndexesValue `json:"external_index_data"`

	// Competitors' product price on Ozon
	OzonIndexData GetProductPriceInfoResultItemPriceIndexesValue `json:"ozon_index_data"`

	// Price of your product on other marketplaces
	SelfMarketplaceIndexData GetProductPriceInfoResultItemPriceIndexesValue `json:"self_marketplaces_index_data"`
}

type GetProductPriceInfoResultItemPriceIndexesValue added in v1.18.0

type GetProductPriceInfoResultItemPriceIndexesValue struct {
	// Minimum price of your product on other marketplaces
	MinimalPrice float64 `json:"min_price"`

	// Price currency
	MinimalPriceCurrency string `json:"min_price_currency"`

	// Price index value
	PriceIndexValue float64 `json:"price_index_value"`
}

type GetProductRangeLimitResponse

type GetProductRangeLimitResponse struct {
	core.CommonResponse

	// Daily product creation limit
	DailyCreate GetProductRangeLimitUploadQuota `json:"daily_create"`

	// Daily product update limit
	DailyUpdate GetProductRangeLimitUploadQuota `json:"daily_update"`

	// Product range limit
	Total GetProductRangeLimitTotal `json:"total"`
}

type GetProductRangeLimitTotal

type GetProductRangeLimitTotal struct {
	// How many products you can create in your personal account
	Limit int64 `json:"limit"`

	// How many products you've already created
	Usage int64 `json:"usage"`
}

type GetProductRangeLimitUploadQuota

type GetProductRangeLimitUploadQuota struct {
	// How many products you can create in one day
	Limit int64 `json:"limit"`

	// Counter reset time for the current day in UTC format
	ResetAt time.Time `json:"reset_at"`

	// How many products you've created in the current day
	Usage int64 `json:"usage"`
}

type GetProductTreeParams

type GetProductTreeParams struct {
	// Response language
	Language Language `json:"language,omitempty"`
}

type GetProductTreeResponse

type GetProductTreeResponse struct {
	core.CommonResponse

	// Categories list
	Result []GetProductTreeResult `json:"result"`
}

type GetProductTreeResult

type GetProductTreeResult struct {
	// Category identifier
	DescriptionCategoryId int64 `json:"description_category_id"`

	// Category name
	CategoryName string `json:"category_name"`

	// `true`, if you can't create products in the category. `false`, if you can
	Disabled bool `json:"disabled"`

	// Product type identifier
	TypeId int64 `json:"type_id"`

	// Product type name
	TypeName string `json:"type_name"`

	// Subcategory tree
	Children []GetProductTreeResult `json:"children"`
}

type GetProductTurnoverParams added in v1.16.0

type GetProductTurnoverParams struct {
	// Number of values in the response
	Limit int64 `json:"limit"`

	// Number of elements to skip in the response.
	//
	// For example, if offset = 10, the response starts with the 11th element found
	Offset int32 `json:"offset"`

	// Product identifiers in the Ozon system, SKU
	SKU []string `json:"sku"`
}

type GetProductTurnoverResponse added in v1.16.0

type GetProductTurnoverResponse struct {
	core.CommonResponse

	// Products
	Items []ProductTurnoverItem `json:"items"`
}

type GetProductsRatingBySKUParams

type GetProductsRatingBySKUParams struct {
	// List of product SKUs for which content rating should be returned
	SKUs []int64 `json:"skus"`
}

type GetProductsRatingBySKUProductGroup

type GetProductsRatingBySKUProductGroup struct {
	// List of conditions that increase the product content rating
	Conditions []GetProductsRatingBySKUProductGroupCondition `json:"conditions"`

	// Number of attributes you need to fill in to get the maximum score in this characteristics group
	ImproveAtLeast int32 `json:"improve_at_least"`

	// List of attributes that can increase the product content rating
	ImproveAttributes []GetProductsRatingBySKUProductGroupImproveAttr `json:"improve_attributes"`

	// Group identifier
	Key string `json:"key"`

	// Group name
	Name string `json:"name"`

	// Rating in the group
	Rating float64 `json:"rating"`

	// Percentage influence of group characteristics on the content rating
	Weight float64 `json:"weight"`
}

type GetProductsRatingBySKUProductGroupCondition

type GetProductsRatingBySKUProductGroupCondition struct {
	// Number of content rating points that the condition gives
	Cost float64 `json:"cost"`

	// Condition description
	Description string `json:"description"`

	// Indication that the condition is met
	Fulfilled bool `json:"fulfilled"`

	// Condition identifier
	Key string `json:"key"`
}

type GetProductsRatingBySKUProductGroupImproveAttr

type GetProductsRatingBySKUProductGroupImproveAttr struct {
	// Attribute identifier
	Id int64 `json:"id"`

	// Attribute name
	Name string `json:"name"`
}

type GetProductsRatingBySKUResponse

type GetProductsRatingBySKUResponse struct {
	core.CommonResponse

	// Products' content rating
	Products []GetProductsRatingbySKUProduct `json:"products"`
}

type GetProductsRatingbySKUProduct

type GetProductsRatingbySKUProduct struct {
	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`

	// Product content rating: 0 to 100
	Rating float64 `json:"rating"`

	// Groups of characteristics that make up the content rating
	Groups []GetProductsRatingBySKUProductGroup `json:"groups"`
}

type GetProductsReportParams

type GetProductsReportParams struct {
	// Default: "DEFAULT"
	// Response language:
	//   - RU — Russian
	//   - EN — English
	Language string `json:"language" default:"DEFAULT"`

	// Product identifier in the seller's system
	OfferId []string `json:"offer_id"`

	// Search by record content, checks for availability
	Search string `json:"search"`

	// Product identifier in the Ozon system, SKU
	SKU []int64 `json:"sku"`

	// Default: "ALL"
	// Filter by product visibility
	Visibility string `json:"visibility" default:"ALL"`
}

type GetProductsReportResponse

type GetProductsReportResponse struct {
	core.CommonResponse

	// Method result
	Result GetProductsReportResult `json:"result"`
}

type GetProductsReportResult

type GetProductsReportResult struct {
	// Unique report identifier
	Code string `json:"code"`
}

type GetProformaLinkParams

type GetProformaLinkParams struct {
	// Shipment number
	PostingNumber string `json:"posting_number"`
}

type GetProformaLinkResponse

type GetProformaLinkResponse struct {
	core.CommonResponse

	// Method result
	Result GetProformaLinkResult `json:"result"`
}

type GetProformaLinkResult

type GetProformaLinkResult struct {
	// Invoice uploading date
	Date time.Time `json:"date"`

	// Invoice link
	FileURL string `json:"file_url"`

	// Product HS-codes
	HSCodes []CreateUpdateProformaLinkHSCode `json:"hs_codes"`

	// Invoice number
	Number string `json:"number"`

	// Cost stated in the invoice.
	// The fractional part is separated by decimal point,
	// up to two digits after the decimal point.
	//
	// Example: 199.99
	Price float64 `json:"price"`

	// Invoice currency
	PriceCurrency InvoiceCurrency `json:"price_currency"`
}

type GetQuantParams added in v1.17.0

type GetQuantParams struct {
	// MOQ inventory identifier
	QuantId int64 `json:"inv_quant_id"`
}

type GetQuantResponse added in v1.17.0

type GetQuantResponse struct {
	core.CommonResponse

	// MOQ information
	Result []GetQuantResult `json:"result"`
}

type GetQuantResult added in v1.17.0

type GetQuantResult struct {
	// Available actions
	AvailableActions []string `json:"available_actions"`

	// Date until which the leftover stock amount must be specified
	AwaitingStockDueDate time.Time `json:"awaiting_stock_due_date"`

	// Shipment cancellation reason
	CancelReason CancelReason `json:"cancel_reason"`

	// Current number of shipments in the MOQ
	CurrentPostingsCount int64 `json:"current_postings_count"`

	// Time until which the MOQ must be assembled
	Cutoff time.Time `json:"cutoff"`

	// Delivery method name
	DeliveryMethodName string `json:"delivery_method_name"`

	// Destination point identifier
	DestinationPlaceId int64 `json:"destination_place_id"`

	// Destination point name
	DestinationPlaceName string `json:"destination_place_name"`

	// MOQ filling percentage
	FillingPercent float32 `json:"filling_percent"`

	// Date when the shipments start to get canceled if the MOQ isn't reserved
	FirstPostingCancellationDate time.Time `json:"first_posting_cancellation_date"`

	// MOQ identifier
	Id int64 `json:"id"`

	// MOQ inventory identifier
	QuantId int64 `json:"inv_quant_id"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Shipments
	Postings []GetQuantResultPosting `json:"postings"`

	// Link to product photo
	ProductPictureURL string `json:"product_picture_url"`

	// Total price of products in the MOQ
	ProductsPrice float32 `json:"products_price"`

	// Start date of MOQ filling
	QuantumStartDate time.Time `json:"quantum_start_date"`

	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`

	// Product name
	SKUName string `json:"sku_name"`

	// MOQ statuses
	Status string `json:"status"`

	// Required number of products in the MOQ
	TargetPostingsCount int64 `json:"target_postings_count"`

	// Delivery service name
	TPLProviderName string `json:"tpl_provider_name"`

	// MOQ type: box or pallet
	Type string `json:"type"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`

	// Warehouse name
	WarehouseName string `json:"warehouse_name"`
}

type GetQuantResultPosting added in v1.17.0

type GetQuantResultPosting struct {
	// Shipment cancellation reason
	CancelReason CancelReason `json:"cancel_reason"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Total price of products in the MOQ
	ProductsPrice float32 `json:"products_price"`

	// Status text
	StatusAlias string `json:"status_alias"`

	// Status identifier
	StatusId int64 `json:"status_id"`
}

type GetRFBSReturn added in v1.8.0

type GetRFBSReturn struct {
	// List of available actions on the request
	AvailableActions []GetRFBSReturnAction `json:"available_actions"`

	// Customer name
	ClientName string `json:"client_name"`

	// Links to product images
	ClientPhoto []string `json:"client_photo"`

	// Information on return method
	ClientReturnMethodType GetRFBSReturnMethodType `json:"client_return_method_type"`

	// Customer comment
	Comment string `json:"comment"`

	// Request creation date
	CreatedAt time.Time `json:"created_at"`

	// Order number
	OrderNumber string `json:"order_number"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Product details
	Product GetRFBSReturnsProduct `json:"product"`

	// Comment on request rejection
	RejectionComment string `json:"rejection_comment"`

	// Information on rejection reason
	RejectionReason []GetRFBSReturnRejectionReason `json:"rejection_reason"`

	// Method of product return
	ReturnMethodDescription string `json:"return_method_description"`

	// Return request number
	ReturnNumber string `json:"return_number"`

	// Information on return reason
	ReturnReason GetRFBSReturnReason `json:"return_reason"`

	// Postal tracking number
	RUPostTrackingNumber string `json:"ru_post_tracking_number"`

	// Information on return status
	State GetRFBSReturnState `json:"state"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`
}

type GetRFBSReturnAction added in v1.8.0

type GetRFBSReturnAction struct {
	// Action identifier
	Id int32 `json:"id"`

	// Action name
	Name string `json:"name"`
}

type GetRFBSReturnMethodType added in v1.8.0

type GetRFBSReturnMethodType struct {
	// Identifier
	Id int32 `json:"id"`

	// Name
	Name string `json:"name"`
}

type GetRFBSReturnParams added in v1.8.0

type GetRFBSReturnParams struct {
	// Request identifier
	ReturnId int64 `json:"return_id"`
}

type GetRFBSReturnReason added in v1.8.0

type GetRFBSReturnReason struct {
	// Reason identifier
	Id int32 `json:"id"`

	// `true` if the product is defective
	IsDefect bool `json:"is_defect"`

	// Reason description
	Name string `json:"name"`
}

type GetRFBSReturnRejectionReason added in v1.8.0

type GetRFBSReturnRejectionReason struct {
	// Hint on further actions with the return
	Hint string `json:"hint"`

	// Reason identifier
	Id int32 `json:"id"`

	// `true` if you need to attach a comment
	IsCommentRequired bool `json:"is_comment_required"`

	// Reason description
	Name string `json:"name"`
}

type GetRFBSReturnResponse added in v1.8.0

type GetRFBSReturnResponse struct {
	core.CommonResponse

	Returns GetRFBSReturn `json:"returns"`
}

type GetRFBSReturnState added in v1.8.0

type GetRFBSReturnState struct {
	// Status
	State string `json:"state"`

	// Status name in Russian
	StateName string `json:"state_name"`
}

type GetRFBSReturnsCurrency added in v1.8.0

type GetRFBSReturnsCurrency string
const (
	// Russian ruble
	GetRFBSReturnsCurrencyRUB GetRFBSReturnsCurrency = "RUB"

	// Belarusian ruble
	GetRFBSReturnsCurrencyBYN GetRFBSReturnsCurrency = "BYN"

	// Tenge
	GetRFBSReturnsCurrencyKZT GetRFBSReturnsCurrency = "KZT"

	// Euro
	GetRFBSReturnsCurrencyEUR GetRFBSReturnsCurrency = "EUR"

	// US dollar
	GetRFBSReturnsCurrencyUSD GetRFBSReturnsCurrency = "USD"

	// Yuan
	GetRFBSReturnsCurrencyCNY GetRFBSReturnsCurrency = "CNY"
)

type GetRFBSReturnsFilter added in v1.8.0

type GetRFBSReturnsFilter struct {
	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Filter by request statuses
	GroupState []RFBSReturnsGroupState `json:"group_state"`

	// Period of request creation
	CreatedAt GetRFBSReturnsFilterCreatedAt `json:"created_at"`
}

type GetRFBSReturnsFilterCreatedAt added in v1.8.0

type GetRFBSReturnsFilterCreatedAt struct {
	// Period start date
	From time.Time `json:"from"`

	// Period end date
	To time.Time `json:"to"`
}

type GetRFBSReturnsParams added in v1.8.0

type GetRFBSReturnsParams struct {
	// Filter
	Filter *GetRFBSReturnsFilter `json:"filter,omitempty"`

	// Identifier of the last value on the page.
	// Leave this field blank in the first request
	LastId int32 `json:"last_id"`

	// Number of values per page
	Limit int32 `json:"limit"`
}

type GetRFBSReturnsProduct added in v1.8.0

type GetRFBSReturnsProduct struct {
	// Product name
	Name string `json:"name"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Currency of your prices. It matches the currency set in your personal account
	CurrencyCode GetRFBSReturnsCurrency `json:"currency_code"`

	// Product price
	Price string `json:"price"`

	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`
}

type GetRFBSReturnsResponse added in v1.8.0

type GetRFBSReturnsResponse struct {
	core.CommonResponse

	// Information on return requests
	Returns GetRFBSReturnsReturn `json:"returns"`
}

type GetRFBSReturnsReturn added in v1.8.0

type GetRFBSReturnsReturn struct {
	// Customer name
	ClientName string `json:"client_name"`

	// Request creation date
	CreatedAt time.Time `json:"created_at"`

	// Order number
	OrderNumber string `json:"order_number"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Product details
	Product GetRFBSReturnsProduct `json:"product"`

	// Return request identifier
	ReturnId int64 `json:"return_id"`

	// Return request number
	ReturnNumber string `json:"return_number"`

	// Request and refund statuses
	State GetRFBSReturnsState `json:"state"`
}

type GetRFBSReturnsState added in v1.8.0

type GetRFBSReturnsState struct {
	// Request status by the applied filter
	GroupState RFBSReturnsGroupState `json:"group_state"`

	// Refund status
	MoneyReturnStateName string `json:"money_return_state_name"`

	// Request status
	State string `json:"state"`

	// Request status name in Russian
	StateName string `json:"state_name"`
}

type GetRelatedSKUsError added in v1.7.0

type GetRelatedSKUsError struct {
	// Error code
	Code string `json:"code"`

	// SKU, in which the error occurred
	SKU int `json:"sku"`

	// Error text
	Message string `json:"message"`
}

type GetRelatedSKUsItem added in v1.7.0

type GetRelatedSKUsItem struct {
	// Product availability attribute by SKU
	Availability SKUAvailability `json:"availability"`

	// Date and time of deletion
	DeletedAt time.Time `json:"deleted_at"`

	// Delivery scheme
	DeliverySchema string `json:"delivery_schema"`

	// Product identifier
	ProductId int64 `json:"product_id"`

	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`
}

type GetRelatedSKUsParams added in v1.7.0

type GetRelatedSKUsParams struct {
	// List of SKUs
	SKUs []string `json:"sku"`
}

type GetRelatedSKUsResponse added in v1.7.0

type GetRelatedSKUsResponse struct {
	core.CommonResponse

	// Related SKUs information
	Items []GetRelatedSKUsItem `json:"items"`

	// Errors
	Errors []GetRelatedSKUsError `json:"errors"`
}

type GetReportDetailResult

type GetReportDetailResult struct {
	// Unique report identifier
	Code string `json:"code"`

	// Report creation date
	CreatedAt time.Time `json:"created_at"`

	// Error code when generating the report
	Error string `json:"error"`

	// Link to CSV file
	File string `json:"file"`

	// Array with the filters specified when the seller created the report
	Params map[string]string `json:"params"`

	// Report type
	ReportType ReportType `json:"report_type"`

	// Report generation status
	Status ReportInfoStatus `json:"status"`
}

type GetReportDetailsParams

type GetReportDetailsParams struct {
	// Unique report identifier
	Code string `json:"code"`
}

type GetReportDetailsResponse

type GetReportDetailsResponse struct {
	core.CommonResponse

	// Report details
	Result GetReportDetailResult `json:"result"`
}

type GetReportParams added in v1.17.0

type GetReportParams struct {
	// Time period in the YYYY-MM format
	Date string `json:"date"`

	// Response language
	Language string `json:"language"`
}

type GetReportsListParams

type GetReportsListParams struct {
	// Page number
	Page int32 `json:"page"`

	// The number of values on the page:
	//   - default value is 100,
	//   - maximum value is 1000
	PageSize int32 `json:"page_size"`

	// Default: "ALL"
	// Report type:
	//   - ALL — all reports,
	//   - SELLER_PRODUCTS — products report,,
	//   - SELLER_TRANSACTIONS — transactions report,
	//   - SELLER_PRODUCT_PRICES — product prices report,
	//   - SELLER_STOCK — stocks report,
	//   - SELLER_PRODUCT_MOVEMENT — products movement report,
	//   - SELLER_RETURNS — returns report,
	//   - SELLER_POSTINGS — shipments report,
	//   - SELLER_FINANCE — financial report
	ReportType string `json:"report_type" default:"ALL"`
}

type GetReportsListResponse

type GetReportsListResponse struct {
	core.CommonResponse

	// Method result
	Result GetReportsListResult `json:"result"`
}

type GetReportsListResult

type GetReportsListResult struct {
	// Array with generated reports
	Reports []GetReportsListResultReport `json:"reports"`

	// Total number of reports
	Total int32 `json:"total"`
}

type GetReportsListResultReport

type GetReportsListResultReport struct {
	// Unique report identifier
	Code string `json:"code"`

	// Report creation date
	CreatedAt time.Time `json:"created_at"`

	// Error code when generating the report
	Error string `json:"error"`

	// Link to CSV file
	//
	// For a report with the SELLER_RETURNS type,
	// the link is available within 5 minutes after making a request.
	File string `json:"file"`

	// Array with the filters specified when the seller created the report
	Params map[string]string `json:"params"`

	// Report type:
	//   - SELLER_PRODUCTS — products report,
	//   - SELLER_TRANSACTIONS — transactions report,
	//   - SELLER_PRODUCT_PRICES — product prices report,
	//   - SELLER_STOCK — stocks report,
	//   - SELLER_PRODUCT_MOVEMENT — products movement report,
	//   - SELLER_RETURNS — returns report,
	//   - SELLER_POSTINGS — shipments report,
	//   - SELLER_FINANCE — financial report
	ReportType string `json:"report_type"`

	// Report generation status
	//   - `success`
	//   - `failed`
	Status string `json:"status"`
}

type GetReturnsReportParams

type GetReturnsReportParams struct {
	// Filter
	Filter *GetReturnsReportsFilter `json:"filter,omitempty"`

	// Default: "DEFAULT"
	// Response language:
	//   - RU — Russian
	//   - EN — English
	Language string `json:"language" default:"DEFAULT"`
}

type GetReturnsReportResponse

type GetReturnsReportResponse struct {
	core.CommonResponse

	// Unique report identifier. The report is available for downloading within 3 days after making a request.
	Code string `json:"code"`
}

type GetReturnsReportsFilter

type GetReturnsReportsFilter struct {
	// Order delivery scheme: fbs — delivery from seller's warehouse
	DeliverySchema string `json:"delivery_schema"`

	// Date from which the data is displayed in the report.
	//
	// Available for the last three months only
	DateFrom time.Time `json:"date_from"`

	// Date up to which the data is displayed in the report.
	//
	// Available for the last three months only
	DateTo time.Time `json:"date_to"`

	// Order status
	Status string `json:"status"`
}

type GetReviewParams added in v1.18.0

type GetReviewParams struct {
	// Review identifier
	ReviewId string `json:"review_id"`
}

type GetReviewResponse added in v1.18.0

type GetReviewResponse struct {
	core.CommonResponse

	ReviewDetails

	// Number of dislikes on the review
	DislikesAmount int32 `json:"dislikes_amount"`

	// Number of likes on the review
	LikesAmount int32 `json:"likes_amount"`

	// Image details
	Photos []ReviewPhoto `json:"photos"`

	// Video details
	Videos []ReviewVideo `json:"videos"`
}

type GetSellerRatingInfoForPeriodParams

type GetSellerRatingInfoForPeriodParams struct {
	// Period start
	DateFrom time.Time `json:"date_from"`

	// Period end
	DateTo time.Time `json:"date_to"`

	// Filter by rating
	Ratings []string `json:"ratings"`

	// Indication that the response should contain information about Premium program penxalty points
	WithPremiumScores bool `json:"with_premium_scores"`
}

type GetSellerRatingInfoPeriodPremiumScore

type GetSellerRatingInfoPeriodPremiumScore struct {
	// Date when the penalty points were received
	Date time.Time `json:"date"`

	// Rating value for which the penalty points were received
	RatingValue float64 `json:"rating_value"`

	// Number of received penalty points
	Value int32 `json:"value"`
}

type GetSellerRatingInfoPeriodPremiumScores

type GetSellerRatingInfoPeriodPremiumScores struct {
	// Rating name
	Rating string `json:"rating"`

	// Information on penalty points
	Scores []GetSellerRatingInfoPeriodPremiumScore `json:"scores"`
}

type GetSellerRatingInfoPeriodRating

type GetSellerRatingInfoPeriodRating struct {
	// Rating threshold, after which sales will be blocked
	DangerThreshold float64 `json:"danger_threshold"`

	// Rating threshold for participation in the Premium program
	PremiumThreshold float64 `json:"premium_threshold"`

	// Rating system name
	Rating string `json:"rating"`

	// Rating values list
	Values []GetSellerRatingInfoPeriodRatingValue `json:"values"`

	// Rating threshold, after which a warning about possible blocking appears
	WarningThreshold float64 `json:"warning_threshold"`
}

type GetSellerRatingInfoPeriodRatingValue

type GetSellerRatingInfoPeriodRatingValue struct {
	// Rating calculation start date
	DateFrom time.Time `json:"date_from"`

	// Rating calculation end date
	DateTo time.Time `json:"date_to"`

	// Rating status
	Status GetSellerRatingInfoPeriodRatingValueStatus `json:"status"`

	// Rating value
	Value float64 `json:"value"`
}

type GetSellerRatingInfoPeriodRatingValueStatus

type GetSellerRatingInfoPeriodRatingValueStatus struct {
	// Indication if the rating threshold for blocking is exceeded
	Danger bool `json:"danger"`

	// Indication whether the threshold for participation in the Premium program has been reached
	Premium bool `json:"premium"`

	// Indication of a warning that the threshold for blocking may be exceeded
	Warning bool `json:"warning"`
}

type GetSellerRatingInfoPeriodResponse

type GetSellerRatingInfoPeriodResponse struct {
	core.CommonResponse

	// Information on the Premium program penalty points
	PremiumScores []GetSellerRatingInfoPeriodPremiumScores `json:"premium_scores"`

	// Information on the seller ratings
	Ratings []GetSellerRatingInfoPeriodRating `json:"ratings"`
}

type GetShipmentDataByBarcodeParams

type GetShipmentDataByBarcodeParams struct {
	// Shipment barcode
	Barcode string `json:"barcode"`
}

type GetShipmentDataByBarcodeResponse

type GetShipmentDataByBarcodeResponse struct {
	core.CommonResponse

	// Method result
	Result GetShipmentDataByBarcodeResult `json:"result"`
}

type GetShipmentDataByBarcodeResult

type GetShipmentDataByBarcodeResult struct {
	// Analytical data
	AnalyticsData GetShipmentDataByBarcodeResultAnalyticsData `json:"analytics_data"`

	// Shipment barcodes
	Barcodes FBSBarcode `json:"barcodes"`

	// Cancellation reason identifier
	CancelReasonId int64 `json:"cancel_reason_id"`

	// Date and time when the shipment was created
	CreatedAt time.Time `json:"created_at"`

	// Financial data
	FinancialData GetShipmentDataByBarcodeResultFinancialData `json:"financial_data"`

	// Start date and time of shipment processing
	InProcessAt time.Time `json:"in_process_at"`

	// Order identifier to which the shipment belongs
	OrderId int64 `json:"order_id"`

	// Order number to which the shipment belongs
	OrderNumber string `json:"order_number"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// List of products in the shipment
	Products []PostingProduct `json:"products"`

	// Date and time before which the shipment must be packaged.
	// If the shipment is not packaged by this date, it will be canceled automatically
	ShipmentDate time.Time `json:"shipment_date"`

	// Shipment status
	Status string `json:"status"`
}

type GetShipmentDataByBarcodeResultAnalyticsData

type GetShipmentDataByBarcodeResultAnalyticsData struct {
	// Delivery city
	City string `json:"city"`

	// Delivery method
	DeliveryType string `json:"delivery_type"`

	// Indication that the recipient is a legal entity:
	//   - true — a legal entity
	//   - false — a natural person
	IsLegal bool `json:"is_legal"`

	// Premium subscription availability
	IsPremium bool `json:"is_premium"`

	// Payment method
	PaymentTypeGroupName string `json:"payment_type_group_name"`

	// Delivery region
	Region string `json:"region"`
}

type GetShipmentDataByBarcodeResultFinancialData

type GetShipmentDataByBarcodeResultFinancialData struct {
	// Identifier of the cluster, where the shipment is sent from
	ClusterFrom string `json:"cluster_from"`

	// Identifier of the cluster, where the shipment is delivered to
	ClusterTo string `json:"cluster_to"`

	// Services
	PostingServices []MarketplaceServices `json:"posting_services"`

	// Products list
	Products []FinancialDataProduct `json:"products"`
}

type GetShipmentDataByIdentifierParams

type GetShipmentDataByIdentifierParams struct {
	// Shipment identifier
	PostingNumber string `json:"posting_number"`

	// Additional fields that should be added to the response
	With *GetShipmentDataByIdentifierWith `json:"with,omitempty"`
}

type GetShipmentDataByIdentifierResponse

type GetShipmentDataByIdentifierResponse struct {
	core.CommonResponse

	// Method result
	Result GetShipmentDataByIdentifierResult `json:"result"`
}

type GetShipmentDataByIdentifierResult

type GetShipmentDataByIdentifierResult struct {
	// Additional Data Key-Value
	AdditionalData []GetShipmentDataByIdentifierResultAdditionalData `json:"additional_data"`

	// Recipient details
	Addressee GetShipmentDataByIdentifierResultAddressee `json:"addressee"`

	// Analytics data
	AnalyticsData GetShipmentDataByIdentifierResultAnalyticsData `json:"analytics_data"`

	// Available actions and shipment information
	AvailableActions []string `json:"available_actions"`

	// Shipment barcodes
	Barcodes FBSBarcode `json:"barcodes"`

	// Cancellation details
	Cancellation FBSCancellation `json:"cancellation"`

	// Courier information
	Courier GetShipmentDataByIdentifierResultCourier `json:"courier"`

	// Customer details
	Customer FBSCustomer `json:"customer"`

	// Date when the shipment was transferred for delivery
	DeliveringDate time.Time `json:"delivering_date"`

	// Delivery method
	DeliveryMethod FBSDeliveryMethod `json:"delivery_method"`

	// Delivery cost
	DeliveryPrice string `json:"delivery_price"`

	// Data on the product cost, discount amount, payout and commission
	FinancialData FBSFinancialData `json:"financial_data"`

	// Start date and time of shipment processing
	InProcessAt time.Time `json:"in_process_at"`

	// If Ozon Express fast delivery was used—true
	IsExpress bool `json:"is_express"`

	// Indication that there is a multi-box product in the shipment and you need to pass the number of boxes for it:
	//   - true — before packaging pass the number of boxes using the /v3/posting/multiboxqty/set method.
	//   - false — you packed the shipment specifying the number of boxes in the multi_box_qty parameter, or there is no multi-box product in the shipment
	IsMultibox bool `json:"is_multibox"`

	// Number of boxes in which the product is packed
	MultiBoxQuantity int32 `json:"multi_box_qty"`

	// Order identifier to which the shipment belongs
	OrderId int64 `json:"order_id"`

	// Order number to which the shipment belongs
	OrderNumber string `json:"order_number"`

	// Number of the parent shipment which split resulted in the current shipment
	ParentPostingNumber string `json:"parent_posting_number"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Date and time of successful verification of the courier code
	PickupCodeVerifiedAt time.Time `json:"pickup_code_verified_at"`

	// Information on products and their instances.
	//
	// The response contains the field product_exemplars, if the attribute with.product_exemplars = true is passed in the request
	ProductExemplars GetShipmentDataByIdentifierResultExemplars `json:"product_exemplars"`

	// Array of products in the shipment
	Products []ShipmentProduct `json:"products"`

	// Delivery service status
	ProviderStatus string `json:"provider_status"`

	// Previous sub-status of the shipment
	PreviousSubstatus string `json:"previous_substatus"`

	// Information on lifting service. Only relevant for bulky products
	// with a delivery by a third-party or integrated service
	PRROption GetShipmentDataByIdentifierResultPRROption `json:"prr_option"`

	// Related shipments
	RelatedPostings GetShipmentDataByIdentifierResultRelatedPostings `json:"related_postings"`

	// Array of Ozon Product IDs (SKU) for which you need to pass the customs cargo declaration (CCD) number, the manufacturing country,
	// product batch registration number, or "Chestny ZNAK" labeling to change the shipment status to the next one
	Requirements FBSRequirements `json:"requirements"`

	// Date and time before which the shipment must be packaged.
	// If the shipment is not packaged by this date, it will be canceled automatically
	ShipmentDate time.Time `json:"shipment_date"`

	// Shipment status
	Status ShipmentStatus `json:"status"`

	// Shipment substatus
	Substatus ShipmentSubstatus `json:"substatus"`

	// Type of integration with the delivery service
	TPLIntegrationType TPLIntegrationType `json:"tpl_integration_type"`

	// Shipment tracking number
	TrackingNumber string `json:"tracking_number"`

	// Details on shipping rate
	Tariffication []FBSPostingTariffication `json:"tariffication"`
}

type GetShipmentDataByIdentifierResultAdditionalData

type GetShipmentDataByIdentifierResultAdditionalData struct {
	// Key
	Key string `json:"key"`

	// value
	Value string `json:"value"`
}

type GetShipmentDataByIdentifierResultAddressee

type GetShipmentDataByIdentifierResultAddressee struct {
	// Recipient name
	Name string `json:"name"`

	// Recipient phone number.
	//
	// Returns an empty string ""
	Phone string `json:"phone"`
}

type GetShipmentDataByIdentifierResultAnalyticsData

type GetShipmentDataByIdentifierResultAnalyticsData struct {
	// Delivery city. Only for rFBS shipments
	City string `json:"city"`

	// Delivery start date and time
	DeliveryDateBegin time.Time `json:"delivery_date_begin"`

	// Delivery end date and time
	DeliveryDateEnd time.Time `json:"delivery_date_end"`

	// Delivery method
	DeliveryType string `json:"delivery_type"`

	// Indication that the recipient is a legal entity:
	//   - true — a legal entity,
	//   - false — a natural person
	IsLegal bool `json:"is_legal"`

	// Premium subscription availability
	IsPremium bool `json:"is_premium"`

	// Payment method
	PaymentTypeGroupName string `json:"payment_type_group_name"`

	// Delivery region. Only for rFBS shipments
	Region string `json:"region"`

	// Delivery service
	TPLProvider string `json:"tpl_provider"`

	// Delivery service identifier
	TPLProviderId int64 `json:"tpl_provider_id"`

	// Order shipping warehouse name
	Warehouse string `json:"warehouse"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`
}

type GetShipmentDataByIdentifierResultCourier

type GetShipmentDataByIdentifierResultCourier struct {
	// Car model
	CarModel string `json:"car_model"`

	// Car number
	CarNumber string `json:"car_number"`

	// Courier's full name
	Name string `json:"name"`

	// Courier's phone number
	//
	// Returns an empty string ""
	Phone string `json:"phone"`
}

type GetShipmentDataByIdentifierResultExemplars

type GetShipmentDataByIdentifierResultExemplars struct {
	// Products
	Products []GetShipmentDataByIdentifierResultExemplarsProduct `json:"products"`
}

type GetShipmentDataByIdentifierResultExemplarsProduct

type GetShipmentDataByIdentifierResultExemplarsProduct struct {
	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`

	// Array of exemplars
	Exemplars []FBSProductExemplar `json:"exemplars"`
}

type GetShipmentDataByIdentifierResultPRROption

type GetShipmentDataByIdentifierResultPRROption struct {
	// Lifting service code
	Code PRROptionStatus `json:"code"`

	// Service cost, which Ozon reimburses to the seller
	Price string `json:"price"`

	// Currency
	CurrencyCode string `json:"currency_code"`

	// Floor to which you need to lift the product
	Floor string `json:"floor"`
}

type GetShipmentDataByIdentifierResultRelatedPostings

type GetShipmentDataByIdentifierResultRelatedPostings struct {
	RelatedPostingNumbers []string `json:"related_posting_numbers"`
}

type GetShipmentDataByIdentifierWith

type GetShipmentDataByIdentifierWith struct {
	// Add analytics data to the response
	AnalyticsData bool `json:"analytics_data"`

	// Add the shipment barcodes to the response
	Barcodes bool `json:"barcodes"`

	// Add financial data to the response
	FinancialData bool `json:"financial_data"`

	// Add data on products and their instances to the response
	ProductExemplars bool `json:"product_exemplars"`

	// Add related shipment numbers to the response.
	// Related shipments are ones into which the parent shipment was split during packaging
	RelatedPostings bool `json:"related_postings"`

	// Transliterate the return values
	Translit bool `json:"translit"`
}

type GetShipmentDetailsParams

type GetShipmentDetailsParams struct {
	// Shipment number
	PostingNumber string `json:"posting_number"`

	// true if the address transliteration from Cyrillic to Latin is enabled
	Translit bool `json:"translit,omitempty"`

	// Additional fields to add to the response
	With *GetShipmentDetailsWith `json:"with,omitempty"`
}

type GetShipmentDetailsResponse

type GetShipmentDetailsResponse struct {
	core.CommonResponse

	// Method result
	Result GetShipmentDetailsResult `json:"result"`
}

type GetShipmentDetailsResult

type GetShipmentDetailsResult struct {
	// Additional data
	AdditionalData []GetShipmentDetailsResultAdditionalData `json:"additional_data"`

	// Analytical data
	AnalyticsData GetShipmentDetailsResultAnalyticsData `json:"analytics_data"`

	// Shipment cancellation reason identifier
	CancelReasonId int64 `json:"cancel_reason_id"`

	// Date and time of shipment creation
	CreatedAt time.Time `json:"created_at"`

	// Financial data
	FinancialData FBOFinancialData `json:"financial_data"`

	// Date and time of shipment processing start
	InProcessAt time.Time `json:"in_process_at"`

	// Identifier of the order to which the shipment belongs
	OrderId int64 `json:"order_id"`

	// Number of the order to which the shipment belongs
	OrderNumber string `json:"order_number"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Number of products in the shipment
	Products []FBOPostingProduct `json:"products"`

	// Shipment status
	Status string `json:"status"`
}

type GetShipmentDetailsResultAdditionalData

type GetShipmentDetailsResultAdditionalData struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

type GetShipmentDetailsResultAnalyticsData

type GetShipmentDetailsResultAnalyticsData struct {
	// Delivery method
	DeliveryType string `json:"delivery_type"`

	// Indication that the recipient is a legal person:
	//   - true — a legal person
	//   - false — a natural person
	IsLegal bool `json:"is_legal"`

	// Premium subscription
	IsPremium bool `json:"is_premium"`

	// Payment method
	PaymentTypeGroupName string `json:"payment_type_group_name"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`

	// Name of the warehouse from which the order is shipped
	WarehouseName string `json:"warehouse_name"`
}

type GetShipmentDetailsWith

type GetShipmentDetailsWith struct {
	// Specify true to add analytics data to the response
	AnalyticsData bool `json:"analytics_data"`

	// Specify true to add financial data to the response
	FinancialData bool `json:"financial_data"`
}

type GetShipmentReportFilter

type GetShipmentReportFilter struct {
	// Cancellation reason identifier
	CancelReasonId []int64 `json:"cancel_reason_id"`

	// The scheme of operation is FBO or FBS.
	//
	// Only one of the parameters can be passed to the array per query:
	//
	// fbo - to get a report by FBO scheme,
	// fbs - to get a report by FBS scheme
	DeliverySchema []string `json:"delivery_schema"`

	// Product identifier
	OfferId string `json:"offer_id"`

	// Order processing start date and time
	ProcessedAtFrom *core.TimeFormat `json:"processed_at_from,omitempty"`

	// Time when the order appeared in your personal account
	ProcessedAtTo *core.TimeFormat `json:"processed_at_to,omitempty"`

	// Product identifier in the Ozon system, SKU
	SKU []int64 `json:"sku"`

	// Status text
	StatusAlias []string `json:"status_alias"`

	// Numerical status
	Statuses []int64 `json:"statused"`

	// Product name
	Title string `json:"title"`
}

type GetShipmentReportParams

type GetShipmentReportParams struct {
	// Filter
	Filter *GetShipmentReportFilter `json:"filter,omitempty"`

	// Default: "DEFAULT"
	// Response language:
	//   - RU — Russian
	//   - EN — English
	Language string `json:"language" default:"DEFAULT"`
}

type GetShipmentReportResponse

type GetShipmentReportResponse struct {
	core.CommonResponse

	// Method result
	Result GetShipmentReportResult `json:"result"`
}

type GetShipmentReportResult

type GetShipmentReportResult struct {
	// Unique report identifier
	Code string `json:"code"`
}

type GetStockManagementFilter added in v1.17.0

type GetStockManagementFilter struct {
	// Product identifiers in the Ozon system, SKU
	SKUs []string `json:"skus"`

	// The type of item in stock
	StockTypes string `json:"stock_types"`

	// Warehouse identifiers
	WarehouseIds []string `json:"warehouse_ids"`
}

type GetStockManagementParams added in v1.17.0

type GetStockManagementParams struct {
	// GetStockManagementFilter
	Filter GetStockManagementFilter `json:"filter"`

	// Number of values in the response
	Limit int32 `json:"limit,omitempty"`

	// Number of elements to skip in the response
	Offset int32 `json:"offset,omitempty"`
}

type GetStockManagementResponse added in v1.17.0

type GetStockManagementResponse struct {
	core.CommonResponse

	// Products
	Items []StockItem `json:"items"`
}

type GetStocksInfoFilter

type GetStocksInfoFilter struct {
	// Filter by the offer_id parameter. It is possible to pass a list of values
	OfferId []string `json:"offer_id,omitempty"`

	// Filter by the product_id parameter. It is possible to pass a list of values
	ProductId []int64 `json:"product_id,omitempty"`

	// Filter by product visibility
	Visibility string `json:"visibility,omitempty"`

	// Products at the “Economy” tariff
	WithQuant GetStocksInfoFilterWithQuant `json:"with_quant"`
}

type GetStocksInfoFilterWithQuant added in v1.18.0

type GetStocksInfoFilterWithQuant struct {
	// Active economy products
	Created bool `json:"created"`

	// Economy products in all statuses
	Exists bool `json:"exists"`
}

type GetStocksInfoParams

type GetStocksInfoParams struct {
	// Cursor for the next data sample
	Cursor string `json:"cursor"`

	// Limit on number of entries in a reply. Default value is 1000. Maximum value is 1000
	Limit int32 `json:"limit"`

	// Filter by product
	Filter GetStocksInfoFilter `json:"filter"`
}

type GetStocksInfoResponse

type GetStocksInfoResponse struct {
	core.CommonResponse

	// Cursor for the next data sample
	Cursor string `json:"cursor"`

	// The number of unique products for which information about stocks is displayed
	Total int32 `json:"total"`

	// Product details
	Items []GetStocksInfoResultItem `json:"items"`
}

type GetStocksInfoResultItem

type GetStocksInfoResultItem struct {
	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Product identifier
	ProductId int64 `json:"product_id"`

	// Stock details
	Stocks []GetStocksInfoResultItemStock `json:"stocks"`
}

type GetStocksInfoResultItemStock

type GetStocksInfoResultItemStock struct {
	// In a warehouse
	Present int32 `json:"present"`

	// Reserved
	Reserved int32 `json:"reserved"`

	// Warehouse type
	Type string `json:"type" default:"ALL"`

	// Packaging type
	ShipmentType string `json:"shipment_type"`

	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`
}

type GetStocksOnWarehousesParams

type GetStocksOnWarehousesParams struct {
	// Number of values per page.
	//
	// Default is 100
	Limit int64 `json:"limit" default:"100"`

	// Number of elements that will be skipped in the response. For example, if `offset=10`, the response will start with the 11th element found
	Offset int64 `json:"offset"`

	// Warehouse type filter
	WarehouseType WarehouseType `json:"warehouse_type" default:"ALL"`
}

type GetStocksOnWarehousesResponse

type GetStocksOnWarehousesResponse struct {
	core.CommonResponse

	// Method result
	Result GetStocksOnWarehousesResult `json:"result"`
}

type GetStocksOnWarehousesResult

type GetStocksOnWarehousesResult struct {
	// Information about products and stocks
	Rows []GetStocksOnWarehousesResultRow `json:"rows"`
}

type GetStocksOnWarehousesResultRow

type GetStocksOnWarehousesResultRow struct {
	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`

	// Product identifier in the seller's system
	ItemCode string `json:"item_code"`

	// Product name in the Ozon system
	ItemName string `json:"item_name"`

	// Product amount available for sale on Ozon
	FreeToSellAmount int64 `json:"free_to_sell_amount"`

	// Product amount specified for confirmed future supplies
	PromisedAmount int64 `json:"promised_amount"`

	// Product amount reserved for purchase, returns, and transportation between warehouses
	ReservedAmount int64 `json:"reserved_amount"`

	// Name of the warehouse where the products are stored
	WarehouseName string `json:"warehouse_name"`

	// Number of days the stock will last based on your average daily sales
	IDC float64 `json:"idc"`
}

type GetStrategiesByProductIdsParams

type GetStrategiesByProductIdsParams struct {
	// List of product identifiers. The maximum number is 50
	ProductId []int64 `json:"product_id"`
}

type GetStrategiesByProductIdsResponse

type GetStrategiesByProductIdsResponse struct {
	core.CommonResponse

	// Method result
	Result GetStrategiesByProductIdsResult `json:"result"`
}

type GetStrategiesByProductIdsResult

type GetStrategiesByProductIdsResult struct {
	// Product information
	ProductsInfo []GetStrategiesByProductIdsResultProductInfo `json:"products_info"`
}

type GetStrategiesByProductIdsResultProductInfo

type GetStrategiesByProductIdsResultProductInfo struct {
	// Product identifier
	ProductId int64 `json:"product_id"`

	// Strategy identifier to which the product is bounded
	StrategyId string `json:"strategy_id"`
}

type GetSupplyContentParams added in v1.17.0

type GetSupplyContentParams struct {
	// Identifiers of supply contents. You can get them using the /v2/supply-order/get method.
	BundleIds []string `json:"bundle_ids"`

	// true, to sort in ascending order
	IsAsc bool `json:"is_asc"`

	// Identifier of the last SKU value on the page.
	LastId string `json:"last_id"`

	// Number of products on the page.
	Limit int32 `json:"limit"`

	// Search query, for example: by name, article code, or SKU
	Query string `json:"query"`

	// Sorting by parameters
	SortField string `json:"sort_field"`
}

type GetSupplyContentResponse added in v1.17.0

type GetSupplyContentResponse struct {
	core.CommonResponse

	// List of products in the supply request
	Items []SupplyContentItem `json:"items"`

	// Quantity of products in the request
	TotalCount int32 `json:"total_count"`

	// Indication that the response hasn't returned all products
	HasNext bool `json:"has_next"`

	// Identifier of the last value on the page
	LastId string `json:"last_id"`
}

type GetSupplyDraftInfoError added in v1.17.0

type GetSupplyDraftInfoError struct {
	// Possible errors
	Message string `json:"error_message"`

	// Validation errors
	ItemsValidation []GetSupplyDraftInfoValidationError `json:"items_validation"`

	// Unknown clusters identifiers
	UnknownClusterIds []string `json:"unknown_cluster_ids"`
}

type GetSupplyDraftInfoParams added in v1.17.0

type GetSupplyDraftInfoParams struct {
	// Identifier of the supply request draft
	OperationId string `json:"operation_id"`
}

type GetSupplyDraftInfoResponse added in v1.17.0

type GetSupplyDraftInfoResponse struct {
	core.CommonResponse

	// Clusters
	Clusters []SupplyDraftCluster `json:"clusters"`

	// Identifier of the supply request draft
	DraftId int64 `json:"draft_id"`

	// Errors
	Errors []GetSupplyDraftInfoError `json:"errors"`

	// Creation status of the supply request draft
	Status string `json:"status"`
}

type GetSupplyDraftInfoValidationError added in v1.17.0

type GetSupplyDraftInfoValidationError struct {
	// Error reasons
	Reasons []string `json:"reasons"`

	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`
}

type GetSupplyOrdersByStatusParams added in v1.17.0

type GetSupplyOrdersByStatusParams struct {
}

type GetSupplyOrdersByStatusResponse added in v1.17.0

type GetSupplyOrdersByStatusResponse struct {
	core.CommonResponse

	Items []SupplyOrdersByStatus `json:"items"`
}

type GetSupplyRequestInfoParams

type GetSupplyRequestInfoParams struct {
	// Supply request identifier in the Ozon system
	OrderIds []string `json:"order_ids"`
}

type GetSupplyRequestInfoResponse

type GetSupplyRequestInfoResponse struct {
	core.CommonResponse

	// Supply request details
	Orders []SupplyOrder `json:"orders"`

	// Warehouse details
	Warehouses []SupplyWarehouse `json:"warehouses"`
}

type GetSupplyRequestInfoVehicle

type GetSupplyRequestInfoVehicle struct {
	// Driver name
	DriverName string `json:"driver_name"`

	// Driver phone number
	DriverPhone string `json:"driver_phone"`

	// Car model
	VehicleModel string `json:"vehicle_model"`

	// Car number
	VehicleNumber string `json:"vehicle_number"`
}

type GetSupplyTimeslotStatusParams added in v1.17.0

type GetSupplyTimeslotStatusParams struct {
	// Operation identifier
	OperationId string `json:"operation_id"`
}

type GetSupplyTimeslotStatusResponse added in v1.17.0

type GetSupplyTimeslotStatusResponse struct {
	core.CommonResponse

	// Possible errors
	Errors []string `json:"errors"`

	// Data status
	Status string `json:"status"`
}

type GetSupplyTimeslotsParams added in v1.17.0

type GetSupplyTimeslotsParams struct {
	// Supply request identifier
	SupplyOrderId int64 `json:"supply_order_id"`
}

type GetSupplyTimeslotsResponse added in v1.17.0

type GetSupplyTimeslotsResponse struct {
	core.CommonResponse

	// Supply time slot
	Timeslots []SupplyTimeslotValueTimeslot `json:"timeslots"`

	// Time zone
	Timezones []SupplyTimeslotValueTimezone `json:"timezone"`
}

type GetTotalTransactionsSumDate

type GetTotalTransactionsSumDate struct {
	// Period start.
	//
	// Format: YYYY-MM-DDTHH:mm:ss.sssZ.
	// Example: 2019-11-25T10:43:06.51
	From time.Time `json:"from"`

	// Period end.
	//
	// Format: YYYY-MM-DDTHH:mm:ss.sssZ.
	// Example: 2019-11-25T10:43:06.51
	To time.Time `json:"to"`
}

type GetTotalTransactionsSumParams

type GetTotalTransactionsSumParams struct {
	// Filter by date
	Date GetTotalTransactionsSumDate `json:"date"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Transaction type:
	//
	//   - all — all,
	//   - orders — orders,
	//   - returns — returns and cancellations,
	//   - services — service fees,
	//   - compensation — compensation,
	//   - transferDelivery — delivery cost,
	//   - other — other
	TransactionType string `json:"transaction_type"`
}

type GetTotalTransactionsSumResponse

type GetTotalTransactionsSumResponse struct {
	core.CommonResponse

	// Method result
	Result GetTotalTransactionsSumResult `json:"result"`
}

type GetTotalTransactionsSumResult

type GetTotalTransactionsSumResult struct {
	// Total cost of products and returns for specified period
	AccrualsForSale float64 `json:"accruals_for_sale"`

	// Compensations
	CompensationAmount float64 `json:"compensation_amount"`

	// Charges for delivery and returns when working under rFBS scheme
	MoneyTransfer float64 `json:"money_transfer"`

	// Other accurals
	OthersAmount float64 `json:"others_amount"`

	// Cost of shipment processing, orders packaging, pipeline and last mile services, and delivery cost before the new commissions and rates applied from February 1, 2021.
	//
	// Pipeline is delivery of products from one cluster to another.
	//
	// Last mile is products delivery to the pick-up point, parcle terminal, or by courier
	ProcessingAndDelivery float64 `json:"processing_and_delivery"`

	// Cost of reverse pipeline, returned, canceled and unredeemed orders processing, and return cost before the new commissions and rates applied from February 1, 2021.
	//
	// Pipeline is delivery of products from one cluster to another.
	//
	// Last mile is products delivery to the pick-up point, parcle terminal, or by courier
	RefundsAndCancellations float64 `json:"refunds_and_cancellations"`

	// The commission withheld when the product was sold and refunded when the product was returned
	SaleCommission float64 `json:"sale_commission"`

	// The additional services cost that are not directly related to deliveries and returns.
	// For example, promotion or product placement
	ServicesAmount float64 `json:"services_amount"`
}

type GetWarehouseWorkloadResponse

type GetWarehouseWorkloadResponse struct {
	core.CommonResponse

	// Method result
	Result []GetWarehouseWorkloadResult `json:"result"`
}

type GetWarehouseWorkloadResult

type GetWarehouseWorkloadResult struct {
	// Workload
	Schedule GetWarehouseWorkloadResultSchedule `json:"schedule"`

	// Warehouse
	Warehouse GetWarehouseWorkloadResultWarehouse `json:"warehouse"`
}

type GetWarehouseWorkloadResultSchedule

type GetWarehouseWorkloadResultSchedule struct {
	// Data on the products quantity supplied to the warehouse
	Capacity []GetWarehouseWorkloadResultScheduleCapacity `json:"capacity"`

	// The closest available date for supply, local time
	Date time.Time `json:"date"`
}

type GetWarehouseWorkloadResultScheduleCapacity

type GetWarehouseWorkloadResultScheduleCapacity struct {
	// Period start, local time
	Start time.Time `json:"start"`

	// Period end, local time
	End time.Time `json:"end"`

	// Average number of products that the warehouse can accept per day for the period
	Value int32 `json:"value"`
}

type GetWarehouseWorkloadResultWarehouse

type GetWarehouseWorkloadResultWarehouse struct {
	// Warehouse identifier
	Id string `json:"id"`

	// Warehouse name
	Name string `json:"name"`
}

type GiveoutDeliverySchema added in v1.8.0

type GiveoutDeliverySchema string
const (
	// Undefined, contact support team
	GiveoutDeliverySchemaUnspecified GiveoutDeliverySchema = "GIVEOUT_DELIVERY_SCHEMA_UNSPECIFIED"

	// FBO
	GiveoutDeliverySchemaFBO GiveoutDeliverySchema = "GIVEOUT_DELIVERY_SCHEMA_FBO"

	// FBS
	GiveoutDeliverySchemaFBS GiveoutDeliverySchema = "GIVEOUT_DELIVERY_SCHEMA_FBS"
)

type GiveoutStatus added in v1.8.0

type GiveoutStatus string
const (
	// Undefined, contact support team
	GiveoutStatusUnspecified GiveoutStatus = "GIVEOUT_STATUS_UNSPECIFIED"

	// Created
	GiveoutStatusCreated GiveoutStatus = "GIVEOUT_STATUS_CREATED"

	// Approved
	GiveoutStatusApproved GiveoutStatus = "GIVEOUT_STATUS_APPROVED"

	// Completed
	GiveoutStatusCompleted GiveoutStatus = "GIVEOUT_STATUS_COMPLETED"

	// Cancelled
	GiveoutStatusCancelled GiveoutStatus = "GIVEOUT_STATUS_CANCELLED"
)

type InfoStrategyParams

type InfoStrategyParams struct {
	// Strategy identifier
	StrategyId string `json:"strategy_id"`
}

type InfoStrategyResponse

type InfoStrategyResponse struct {
	core.CommonResponse

	// Method result
	Result InfoStrategyResult `json:"result"`
}

type InfoStrategyResult

type InfoStrategyResult struct {
	// List of competitors
	Competitors []CreateStrategyCompetitor `json:"competitors"`

	// Strategy status
	Enabled bool `json:"enabled"`

	// Strategy name
	Name string `json:"name"`

	// Strategy type
	Type StrategyType `json:"type"`

	// Type of the last strategy change
	UpdateType StrategyUpdateType `json:"update_type"`
}

type InvoiceCurrency added in v1.6.0

type InvoiceCurrency string
const (
	// dollar
	InvoiceCurrencyUSD InvoiceCurrency = "USD"

	// euro
	InvoiceCurrencyEUR InvoiceCurrency = "EUR"

	// Turkish lira
	InvoiceCurrencyTRY InvoiceCurrency = "TRY"

	// yuan
	InvoiceCurrencyCNY InvoiceCurrency = "CNY"

	// ruble
	InvoiceCurrencyRUB InvoiceCurrency = "RUB"

	// pound sterling
	InvoiceCurrencyGBP InvoiceCurrency = "GBP"
)

type Invoices

type Invoices struct {
	// contains filtered or unexported fields
}

func (Invoices) CreateUpdate

Create or edit an invoice for VAT refund to Turkey sellers

func (Invoices) Delete

func (Invoices) Get

Get a proforma invoice link

func (Invoices) Upload added in v1.14.0

Available file types: JPEG and PDF. Maximum file size: 10 MB

type IsGiveoutEnabledResponse added in v1.8.0

type IsGiveoutEnabledResponse struct {
	core.CommonResponse

	// `true` if you can pick up a return shipment by barcode.
	Enabled bool `json:"enabled"`
}

type IssueOnDiscountedProductsResponse

type IssueOnDiscountedProductsResponse struct {
	core.CommonResponse

	// Unique report identifier
	Code string `json:"code"`
}

type Language

type Language string
const (
	Default Language = "DEFAULT"
	Russian Language = "RU"
	English Language = "EN"
	Turkish Language = "TR"
	Chinese Language = "ZH_HANS"
)

type LeaveCommentParams added in v1.18.0

type LeaveCommentParams struct {
	// Review status update
	MarkReviewAsProcesses bool `json:"mark_review_as_processed"`

	// Identifier of the parent comment you're replying to
	ParentCommentId string `json:"parent_comment_id"`

	// Review identifier
	ReviewId string `json:"review_id"`

	// Comment text
	Text string `json:"text"`
}

type LeaveCommentResponse added in v1.18.0

type LeaveCommentResponse struct {
	core.CommonResponse

	// Comment identifier
	CommentId string `json:"comment_id"`
}

type LinkCertificateToProductParams

type LinkCertificateToProductParams struct {
	// Certificate identifier that was assigned when it was uploaded
	CertificateId int64 `json:"certificate_id"`

	// An array of product identifiers that this certificate applies to
	ProductId []int64 `json:"product_id"`
}

type LinkCertificateToProductResponse

type LinkCertificateToProductResponse struct {
	core.CommonResponse

	// The result of processing the request. true if the request was executed without errors
	Result bool `json:"result"`
}

type LinkDeliveryMethodToPolygonParams

type LinkDeliveryMethodToPolygonParams struct {
	// Delivery method identifier
	DeliveryMethodId int32 `json:"delivery_method_id"`

	// Polygons list
	Polygons []LinkDeliveryMethodToPolygonPolygon `json:"polygons"`

	// Warehouse location
	WarehouseLocation LinkDeliveryMethodToPolygonWarehouse `json:"warehouse_location"`
}

type LinkDeliveryMethodToPolygonPolygon

type LinkDeliveryMethodToPolygonPolygon struct {
	// Polygon identifier
	PolygonId int64 `json:"polygon_id"`

	// Delivery time within polygon in minutes
	Time int64 `json:"time"`
}

type LinkDeliveryMethodToPolygonResponse

type LinkDeliveryMethodToPolygonResponse struct {
	core.CommonResponse
}

type LinkDeliveryMethodToPolygonWarehouse

type LinkDeliveryMethodToPolygonWarehouse struct {
	// Warehouse location latitude
	Latitude string `json:"lat"`

	// Warehouse location longitude
	Longitude string `json:"log"`
}

type ListCancellationResponseCounters

type ListCancellationResponseCounters struct {
	// Number of requests for approval
	OnApproval int64 `json:"on_approval"`

	// Number of approved requests
	Approved int64 `json:"approved"`

	// Number of rejected requests
	Rejected int64 `json:"rejected"`
}

type ListCancellationWith

type ListCancellationWith struct {
	// Indication that the counter of requests in different statuses should be displayed in the response
	Counters bool `json:"counters"`
}

type ListCancellationsFilter

type ListCancellationsFilter struct {
	// Filter by cancellation initiator
	CancellationInitiator []string `json:"cancellation_initiator,omitempty"`

	// Filter by shipment number.
	//
	// Optional parameter. You can pass several values here
	PostingNumber string `json:"posting_number,omitempty"`

	// Filter by cancellation request status
	State string `json:"state,omitempty"`
}

type ListCancellationsParams

type ListCancellationsParams struct {
	// Filters
	Filter *ListCancellationsFilter `json:"filter,omitempty"`

	// Number of cancellation requests in the response
	Limit int32 `json:"limit,omitempty"`

	// Number of elements that will be skipped in the response.
	// For example, if offset=10, the response will start with the 11th element found
	Offset int32 `json:"offset,omitempty"`

	// Additional information
	With *ListCancellationWith `json:"with,omitempty"`
}

type ListCancellationsResponse

type ListCancellationsResponse struct {
	core.CommonResponse

	// Cancellation requests list
	Result []CancellationInfo `json:"result"`

	// The total number of requests by the specified filters
	Total int32 `json:"total"`

	// Counter of requests in different statuses
	Counters ListCancellationResponseCounters `json:"counters"`
}

type ListCertificatesParams

type ListCertificatesParams struct {
	// Product identifier associated with the certificate.
	// Pass the parameter if you need certificates that certain products are associated with
	OfferId string `json:"offer_id"`

	// Certificate status. Pass the parameter if you need certificates with a certain status
	Status string `json:"status"`

	// Certificate type. Pass the parameter if you need certificates with a certain type
	Type string `json:"type"`

	// Page from which the list should be displayed. The minimum value is 1
	Page int32 `json:"page"`

	// Number of objects on the page. The value is from 1 to 1000
	PageSize int32 `json:"page_size"`
}

type ListCertificatesResponse

type ListCertificatesResponse struct {
	core.CommonResponse

	// Certificates
	Result ListCertificatesResult `json:"result"`
}

type ListCertificatesResult

type ListCertificatesResult struct {
	// Сertificate information
	Certificates []ListCertificatesResultCert `json:"certificates"`

	// Number of pages
	PageCount int32 `json:"page_count"`
}

type ListCertificatesResultCert

type ListCertificatesResultCert struct {
	// Identifier
	CertificateId int32 `json:"certificate_id"`

	// Number
	CertificateNumber string `json:"certificate_number"`

	// Name
	CertificateName string `json:"certificate_name"`

	// Type
	TypeCode string `json:"type_code"`

	// Status
	StatusCode string `json:"status_code"`

	// Accordance type
	AccordanceTypecode string `json:"accordance_type_code"`

	// Certificate rejection reason
	RejectionReasonCode string `json:"rejection_reason_code"`

	// Moderator's comment
	VerificationComment string `json:"verification_comment"`

	// Issue date
	IssueDate time.Time `json:"issue_date"`

	// Expire date
	ExpireDate time.Time `json:"expire_date"`

	// Number of products associated with a certificate
	ProductsCount int32 `json:"products_count"`
}

type ListCertifiedBrandsParams

type ListCertifiedBrandsParams struct {
	// Number of the page returned in the request
	Page int32 `json:"page"`

	// Number of elements on the page
	PageSize int32 `json:"page_size"`
}

type ListCertifiedBrandsResponse

type ListCertifiedBrandsResponse struct {
	core.CommonResponse

	// Method result
	Result ListCertifiedBrandsResult `json:"result"`
}

type ListCertifiedBrandsResult

type ListCertifiedBrandsResult struct {
	// Certified brands details
	BrandCertification []ListCertifiedBrandsResultCertificate `json:"brand_certification"`

	// Total number of brands
	Total int64 `json:"total"`
}

type ListCertifiedBrandsResultCertificate

type ListCertifiedBrandsResultCertificate struct {
	// Brand name
	BrandName string `json:"brand_name"`

	// Indication that the certificate is required:
	//   - true if the certificate is required;
	//   - false if not
	HasCertificate bool `json:"has_certificate"`
}

type ListChatsChatData

type ListChatsChatData struct {
	// Chat identifier
	ChatId string `json:"chat_id"`

	// Chat status:
	//   - All
	//   - Opened
	//   - Closed
	ChatStatus string `json:"chat_status"`

	// Chat type:
	//   - Seller_Support — support chat
	//   - Buyer_Seller — chat with a customer
	ChatType string `json:"chat_type"`

	// Chat creation date
	CreatedAt time.Time `json:"created_at"`

	// Identifier of the first unread chat message
	FirstUnreadMessageId uint64 `json:"first_unread_message_id"`

	// Identifier of the last message in the chat
	LastMessageId uint64 `json:"last_message_id"`

	// Number of unread messages in the chat
	UnreadCount int64 `json:"unread_count"`
}

type ListChatsFilter

type ListChatsFilter struct {
	// Filter by chat status:
	//   - All
	//   - Opened
	//   - Closed
	ChatStatus string `json:"chat_status" default:"ALL"`

	// Filter by chats with unread messages
	UnreadOnly bool `json:"unread_only"`
}

type ListChatsParams

type ListChatsParams struct {
	// Chats filter
	Filter *ListChatsFilter `json:"filter,omitempty"`

	// Number of values in the response. The default value is 30. The maximum value is 1000
	Limit int64 `json:"limit" default:"30"`

	// Number of elements that will be skipped in the response.
	// For example, if offset=10, the response will start with the 11th element found
	Offset int64 `json:"offset,omitempty"`
}

type ListChatsResponse

type ListChatsResponse struct {
	core.CommonResponse

	// Chats data
	Chats []ListChatsChatData `json:"chats"`

	// Total number of chats
	TotalChatsCount int64 `json:"total_chats_count"`

	// Total number of unread messages
	TotalUnreadCount int64 `json:"total_unread_count"`
}

type ListClustersParams added in v1.17.0

type ListClustersParams struct {
	// Clusters identifiers
	ClusterIds []string `json:"cluster_ids"`

	// Cluster type
	ClusterType string `json:"cluster_type"`
}

type ListClustersResponse added in v1.17.0

type ListClustersResponse struct {
	core.CommonResponse

	// Cluster details
	Clusters []Cluster `json:"clusters"`
}

type ListCommentsParams added in v1.18.0

type ListCommentsParams struct {
	// Limit of values in the response. Minimum is 20. Maximum is 100
	Limit int32 `json:"limit"`

	// Number of elements that is skipped in the response.
	// For example, if offset = 10, the response starts with the 11th element found
	Offset int32 `json:"offset"`

	// Review identifier
	ReviewId string `json:"review_id"`

	// 	Sorting direction
	SortDir Order `json:"sort_dir"`
}

type ListCommentsResponse added in v1.18.0

type ListCommentsResponse struct {
	core.CommonResponse

	// Number of elements in the response
	Offset int32 `json:"offset"`

	// Comment details
	Comments []Comment `json:"comments"`
}

type ListCompetitorsCompetitor

type ListCompetitorsCompetitor struct {
	// Competitor's name
	Name string `json:"competitor_name"`

	// Competitor identifier
	Id int64 `json:"competitor_id"`
}

type ListCompetitorsParams

type ListCompetitorsParams struct {
	// Page number from which you want to download the list of competitors.
	// The minimum value is 1
	Page int64 `json:"page"`

	// Maximum number of competitors on the page. Allowed values: 1–50
	Limit int64 `json:"limit"`
}

type ListCompetitorsResponse

type ListCompetitorsResponse struct {
	core.CommonResponse

	// List of competitors
	Competitor []ListCompetitorsCompetitor `json:"competitor"`

	// Total number of competitors
	Total int32 `json:"total"`
}

type ListDiscountRequestsParams

type ListDiscountRequestsParams struct {
	// Discount request status
	Status ListDiscountRequestsStatus `json:"status" default:"UNKNOWN"`

	// Page number from which you want to download the list of discount requests
	Page uint64 `json:"page"`

	// The maximum number of requests on a page
	Limit uint64 `json:"limit"`
}

type ListDiscountRequestsResponse

type ListDiscountRequestsResponse struct {
	core.CommonResponse

	// List of requests
	Result []ListDiscountRequestsResult `json:"result"`
}

type ListDiscountRequestsResult

type ListDiscountRequestsResult struct {
	// Request ID
	Id uint64 `json:"id"`

	// Request created date
	CreatedAt time.Time `json:"created_at"`

	// End time of the request
	EndAt time.Time `json:"end_at"`

	// Time to change the decision
	EditedTill time.Time `json:"edited_till"`

	// Request status
	Status string `json:"status"`

	// Customer's name
	CustomerName string `json:"customer_name"`

	// Product identifier in the Ozon system, SKU
	SKU uint64 `json:"sku"`

	// Customer's comment on the request
	UserComment string `json:"user_comment"`

	// Seller's comment on the request
	SellerComment string `json:"seller_comment"`

	// Requested price
	RequestedPrice float64 `json:"requested_price"`

	// Approved price
	ApprovedPrice float64 `json:"approved_price"`

	// Product price before all discounts
	OriginalPrice float64 `json:"original_price"`

	// Discount in rubles
	Discount float64 `json:"discount"`

	// Discount percentage
	DiscountPercent float64 `json:"discount_percent"`

	// Base price at which a product is selling on Ozon, if not eligible for a promotion
	BasePrice float64 `json:"base_price"`

	// The minimum price after auto-application of discounts and promotions
	MinAutoPrice float64 `json:"min_auto_price"`

	// ID of the previous customer request for this product
	PrevTaskId uint64 `json:"prev_task_id"`

	// If product is damaged — true
	IsDamaged bool `json:"is_damaged"`

	// Moderation date: review, approval or decline of the request
	ModeratedAt time.Time `json:"moderated_at"`

	// Discount in rubles approved by the seller. Pass the value 0 if the seller did not approve the request
	ApprovedDiscount float64 `json:"approved_discount"`

	// Discount percentage approved by the seller. Pass the value 0 if the seller did not approve the request
	ApprovedDiscountPercent float64 `json:"approved_discount_percent"`

	// Whether the customer has purchased the product. true if purchased
	IsPurchased bool `json:"is_purchased"`

	// Whether the request was moderated automatically. true if moderation was automatic
	IsAutoModerated bool `json:"is_auto_moderated"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Email of the user who processed the request
	Email string `json:"email"`

	// Last name of the user who processed the request
	LastName string `json:"last_name"`

	// First name of the user who processed the request
	FirstName string `json:"first_name"`

	// Patronymic of the user who processed the request
	Patronymic string `json:"patronymic"`

	// Approved minimum quantity of products
	ApprovedQuantityMin uint64 `json:"approved_quantity_min"`

	// Approved maximum quantity of products
	ApprovedQuantityMax uint64 `json:"approved_quantity_max"`

	// Requested minimum number of products
	RequestedQuantityMin uint64 `json:"requested_quantity_min"`

	// Requested maximum number of products
	RequestedQuantityMax uint64 `json:"requested_quantity_max"`

	// Requested price with fee
	RequestedPriceWithFee float64 `json:"requested_price_with_fee"`

	// Approved price with fee
	ApprovedPriceWithFee float64 `json:"approved_price_with_fee"`

	// Approved price fee percent
	ApprovedPriceFeePercent float64 `json:"approved_price_fee_percent"`
}

type ListDiscountRequestsStatus

type ListDiscountRequestsStatus string
const (
	New            ListDiscountRequestsStatus = "NEW"
	Seen           ListDiscountRequestsStatus = "SEEN"
	Approved       ListDiscountRequestsStatus = "APPROVED"
	PartlyApproved ListDiscountRequestsStatus = "PARTLY_APPROVED"
	Declined       ListDiscountRequestsStatus = "DECLINED"
	AutoDeclined   ListDiscountRequestsStatus = "AUTO_DECLINED"
	DeclinedByUser ListDiscountRequestsStatus = "DECLINED_BY_USER"
	Coupon         ListDiscountRequestsStatus = "COUPON"
	Purchased      ListDiscountRequestsStatus = "PURCHASED"
)

type ListEconomyProductsParams added in v1.17.0

type ListEconomyProductsParams struct {
	// Cursor for the next data sample
	Cursor string `json:"cursor"`

	// Maximum number of values in the response
	Limit int64 `json:"limit"`

	// Filter by product visibility
	Visibility string `json:"visibility"`
}

type ListEconomyProductsResponse added in v1.17.0

type ListEconomyProductsResponse struct {
	core.CommonResponse

	// Cursor for the next data sample
	Cursor string `json:"cursor"`

	// Economy products
	Products []EconomyProduct `json:"products"`

	// Leftover stock in all warehouses
	TotalItems int32 `json:"total_items"`
}

type ListForShippingParams added in v1.17.0

type ListForShippingParams struct {
	// Supply type
	FilterBySupplyType []string `json:"filter_by_supply_type"`

	// Search by warehouse name. To search for pick-up points, specify the full name
	Search string `json:"search"`
}

type ListForShippingResponse added in v1.17.0

type ListForShippingResponse struct {
	core.CommonResponse

	// Warehouse search result
	Search []ListForShippingSearch `json:"search"`
}

type ListForShippingSearch added in v1.17.0

type ListForShippingSearch struct {
	// Warehouse address
	Address string `json:"address"`

	// Warehouse coordinates
	Coordinates Coordinates `json:"coordinates"`

	// Warehouse name
	Name string `json:"name"`

	// Identifier of the warehouse, pick-up point, or sorting center
	WarehouseId int64 `json:"warehouse_id"`

	// Type of warehouse, pick-up point, or sorting center
	WarehouseType string `json:"warehouse_type"`
}

type ListHotSalePromotionsResponse

type ListHotSalePromotionsResponse struct {
	core.CommonResponse

	// Method result
	Result []ListHotSalePromotionsResult `json:"result"`
}

type ListHotSalePromotionsResult

type ListHotSalePromotionsResult struct {
	// Promotion end date
	DateEnd string `json:"date_end"`

	// Promotion start date
	DateStart string `json:"date_start"`

	// Promotion description
	Description string `json:"description"`

	// Promotion freeze date.
	//
	// If the field is filled, the seller can't increase prices, change the list of products,
	// or decrease the number of product units in the promotion.
	//
	// The seller can lower prices and increase the product units number in the promotion
	FreezeDate string `json:"freeze_date"`

	// Hot Sale promotion identifier
	HotsaleId float64 `json:"hotsale_id"`

	// Indication that you participate in this promotion
	IsParticipating bool `json:"is_participating"`

	// Promotion name
	Title string `json:"title"`
}

type ListManufacturingCountriesParams

type ListManufacturingCountriesParams struct {
	// Filtering by line
	NameSearch string `json:"name_search"`
}

type ListManufacturingCountriesResponse

type ListManufacturingCountriesResponse struct {
	core.CommonResponse

	// List of manufacturing countries and their ISO codes
	Result []ListManufacturingCountriesResult `json:"result"`
}

type ListManufacturingCountriesResult

type ListManufacturingCountriesResult struct {
	// Country name in Russian
	Name string `json:"name"`

	// Country ISO code
	CountriISOCode string `json:"country_iso_code"`
}

type ListOfAccordanceTypesResponse

type ListOfAccordanceTypesResponse struct {
	core.CommonResponse

	// Accordance types
	Result ListOfAccordanceTypesResult `json:"result"`
}

type ListOfAccordanceTypesResult

type ListOfAccordanceTypesResult struct {
	// Main accordance types
	Base []ListOfAccordanceTypesResultBase `json:"base"`

	// Main accordance types related to dangerous products
	Hazard []ListOfAccordanceTypesResultHazard `json:"hazard"`
}

type ListOfAccordanceTypesResultBase

type ListOfAccordanceTypesResultBase struct {
	// Accordance type code
	Code string `json:"code"`

	// Accordance type description
	Title string `json:"title"`
}

type ListOfAccordanceTypesResultHazard

type ListOfAccordanceTypesResultHazard struct {
	// Accordance type code
	Code string `json:"code"`

	// Accordance type description
	Title string `json:"title"`
}

type ListOfCertifiedCategoriesParams

type ListOfCertifiedCategoriesParams struct {
	// Number of the page returned in the query
	Page int32 `json:"page"`

	// Number of elements on the page
	PageSize int32 `json:"page_size"`
}

type ListOfCertifiedCategoriesResponse

type ListOfCertifiedCategoriesResponse struct {
	core.CommonResponse

	// Certified categories details
	Certification []ListOfCertifiedCategoriesResultCert `json:"certification"`

	// Total number of categories
	Total int64 `json:"total"`
}

type ListOfCertifiedCategoriesResultCert

type ListOfCertifiedCategoriesResultCert struct {
	// Identifier of the certified category
	CategoryId int64 `json:"category_id"`

	// Category name
	CategoryName string `json:"category_name"`

	// Indication of a mandatory category
	IsRequired bool `json:"is_required"`

	// Type identifier of the certified category
	TypeId int64 `json:"type_id"`

	// Name of the type of certified category
	TypeName string `json:"type_name"`
}

type ListOfShipmentCertificatesFilter

type ListOfShipmentCertificatesFilter struct {
	// Initial date of shipment creation
	DateFrom string `json:"date_from"`

	// Final date of shipment creation
	DateTo string `json:"date_to"`

	// Type of integration with the delivery service:
	//   - ozon — delivery by the Ozon service,
	//   - 3pl_tracking — delivery by the integrated service,
	//   - non_integrated — delivery by a third-party service,
	//   - aggregator — delivery by Ozon partner delivery
	IntegrationType string `json:"integration_type"`

	// Freight statuses
	Status []ShipmentCertificateFilterStatus `json:"status"`
}

type ListOfShipmentCertificatesParams

type ListOfShipmentCertificatesParams struct {
	// Filter parameters
	Filter ListOfShipmentCertificatesFilter `json:"filter"`

	// Maximum number of certificates in the response
	Limit int64 `json:"limit"`
}

type ListOfShipmentCertificatesResponse

type ListOfShipmentCertificatesResponse struct {
	core.CommonResponse

	// Request result
	Result []ListOfShipmentCertificatesResult `json:"result"`
}

type ListOfShipmentCertificatesResult

type ListOfShipmentCertificatesResult struct {
	// Shipment identifier
	Id int64 `json:"id"`

	// Delivery method identifier
	DeliveryMethodId int64 `json:"delivery_method_id"`

	// Delivery method name
	DeliveryMethodName string `json:"delivery_method_name"`

	// Type of integration with the delivery service:
	//   - ozon — delivery by the Ozon service,
	//   - 3pl — delivery by the integrated service
	IntegrationType string `json:"integration_type"`

	// Number of package units
	ContainersCount int32 `json:"containers_count"`

	// Shipping status
	Status string `json:"status"`

	// Shipping date
	DepartureDate string `json:"departure_date"`

	// Shipping record creation date
	CreatedAt time.Time `json:"created_at"`

	// Shipping record update date
	UpdatedAt time.Time `json:"updated_at"`

	// Acceptance certificate type for FBS sellers
	ActType string `json:"act_type"`

	// Indication of a partial freight. true if the freigth is partial.
	//
	// Partial freigt means that the shipment was splitted into several parts
	// and for each of them you need to generate separate acts
	IsPartial bool `json:"is_partial"`

	// Indication that there are shipments subject to shipping that are not in the current freight.
	// true if there are such shipments
	HasPostingsForNextCarriage bool `json:"has_postings_for_next_carriage"`

	// Serial number of the partial freight
	PartialNum int64 `json:"partial_num"`

	// Information about shipment certificates
	RelatedDocs ListOfShipmentCertificatesResultDocs `json:"related_docs"`
}

type ListOfShipmentCertificatesResultDocs

type ListOfShipmentCertificatesResultDocs struct {
	// Information about acceptance certificate
	ActOfAcceptance FBSAct `json:"act_of_acceptance"`

	// Information about discrepancy certificate
	ActOfMismatch FBSAct `json:"act_of_mismatch"`

	// Information about surplus certificate
	ActOfExcess FBSAct `json:"act_of_excess"`
}

type ListPassesArrivalPass added in v1.12.0

type ListPassesArrivalPass struct {
	// Pass identifier
	ArrivalPassId int64 `json:"arrival_pass_id"`

	// Arrival purpose
	ArrivalReasons []string `json:"arrival_reasons"`

	// Date and time of arrival in UTC format
	ArrivalTime time.Time `json:"arrival_time"`

	// Driver full name
	DriverName string `json:"driver_name"`

	// Driver phone number
	DriverPhone string `json:"driver_phone"`

	// Drop-off point identifier
	DropoffPointId int64 `json:"dropoff_point_id"`

	// true if the request is active
	IsActive bool `json:"is_active"`

	// Car license plate
	VehicleLicensePlate string `json:"vehicle_license_plate"`

	// Car model
	VehicleModel string `json:"vehicle_model"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`
}

type ListPassesFilter added in v1.12.0

type ListPassesFilter struct {
	// Filter by pass identifier
	ArrivalPassIds []string `json:"arrival_pass_ids"`

	// Filter by purpose of arrival:
	//
	// FBS_DELIVERY—delivery.
	// FBS_RETURN—take out returns.
	// If the parameter isn't specified, both purposes are considered.
	//
	// The specified purpose must be in the list of reasons for passes
	ArrivalReason string `json:"arrival_reason"`

	// Filter by drop-off points identifier
	DropoffPointIds []int64 `json:"dropoff_point_ids"`

	// true to get only active pass requests
	OnlyActivePasses bool `json:"only_active_passes"`

	// Filter by seller's warehouses identifier
	WarehouseIds []int64 `json:"warehouse_ids"`
}

type ListPassesParams added in v1.12.0

type ListPassesParams struct {
	// Cursor for the next data sample
	Cursor string `json:"curson"`

	// Filters
	Filter ListPassesFilter `json:"filter"`

	// Limit on number of entries in a reply. Default value is 1000. Maximum value is 1000
	Limit int32 `json:"limit"`
}

type ListPassesResponse added in v1.12.0

type ListPassesResponse struct {
	core.CommonResponse

	// List of passes
	ArrivalPasses []ListPassesArrivalPass `json:"arrival_passes"`

	// Cursor for the next data sample. If the parameter is empty, there is no more data
	Cursor string `json:"cursor"`
}

type ListProductsByIDsParams

type ListProductsByIDsParams struct {
	// Product identifier in the seller's system
	OfferId []string `json:"offer_id"`

	// Product identifier
	ProductId []int64 `json:"product_id"`

	// Product identifier in the Ozon system, SKU
	SKU []int64 `json:"sku"`
}

type ListProductsByIDsResponse

type ListProductsByIDsResponse struct {
	core.CommonResponse

	// Data array
	Items []ProductDetails `json:"items"`
}

type ListProductsForCertificateParams

type ListProductsForCertificateParams struct {
	// Certificate identifier
	CertificateId int32 `json:"certificate_id"`

	// Status of the product verification when binding to a certificate
	ProductStatusCode string `json:"product_status_code"`

	// Page from which the list should be displayed. The minimum value is 1
	Page int32 `json:"page"`

	// Number of objects on the page. The value is from 1 to 1000
	PageSize int32 `json:"page_size"`
}

type ListProductsForCertificateResponse

type ListProductsForCertificateResponse struct {
	core.CommonResponse

	// Method result
	Result ListProductsForCertificateResult `json:"result"`
}

type ListProductsForCertificateResult

type ListProductsForCertificateResult struct {
	// List of products
	Items []struct {
		// Product identifier
		ProductId int64 `json:"product_id"`

		// Status of the product processing when binding to a certificate
		ProductStatusCode string `json:"product_status_code"`
	} `json:"items"`

	// Number of products found
	Count int64 `json:"count"`
}

type ListProductsInStrategyParams

type ListProductsInStrategyParams struct {
	// Strategy identifier
	StrategyId string `json:"strategy_id"`
}

type ListProductsInStrategyResponse

type ListProductsInStrategyResponse struct {
	core.CommonResponse

	// Method result
	Result ListProductsInStrategyResult `json:"result"`
}

type ListProductsInStrategyResult

type ListProductsInStrategyResult struct {
	// Product identifier
	ProductId []string `json:"product_id"`
}

type ListQuantsFilter added in v1.17.0

type ListQuantsFilter struct {
	// MOQ creation period
	CreatedAt *ListQuantsFilterTime `json:"created_at"`

	// Time for MOQ assembly
	Cutoff *ListQuantsFilterTime `json:"cutoff"`

	// Destination point identifier
	DestinationPlaceId int64 `json:"destination_place_id"`

	// MOQ inventory identifiers
	InvQuantIds []string `json:"inv_quants_ids"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Product name
	SKUName string `json:"sku_name"`

	// MOQ statuses
	Statuses []string `json:"statuses"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`
}

type ListQuantsFilterTime added in v1.17.0

type ListQuantsFilterTime struct {
	// Start date
	From string `json:"from"`

	// End date
	To string `json:"to"`
}

type ListQuantsParams added in v1.17.0

type ListQuantsParams struct {
	// Cursor for the next data sample
	Cursor string `json:"cursor"`

	// Filter
	Filter ListQuantsFilter `json:"filter"`

	// Maximum number of values in the response
	Limit int32 `json:"limit"`

	// Parameter by which products will be sorted
	Sort string `json:"sort"`

	// Sorting direction
	SortDir string `json:"sort_dir"`
}

type ListQuantsResponse added in v1.17.0

type ListQuantsResponse struct {
	core.CommonResponse

	Result ListQuantsResult `json:"result"`
}

type ListQuantsResult added in v1.17.0

type ListQuantsResult struct {
	// Cursor for the next data sample
	Cursor string `json:"cursor"`

	// Indication that the response returned only a part of characteristic values
	HasNext bool `json:"has_next"`

	// MOQs list
	Quants []Quant `json:"quants"`
}

type ListReturnsFilter added in v1.16.0

type ListReturnsFilter struct {
	// Filter by return creation date
	LogisticReturnDate *GetFBSReturnsFilterTimeRange `json:"logistic_return_date"`

	// Filter by storage fees start date
	StorageTarifficationDate *GetFBSReturnsFilterTimeRange `json:"storage_tariffication_start_date"`

	// Filter by date the return status changed
	VisualStatusChangeMoment *GetFBSReturnsFilterTimeRange `json:"visual_status_change_moment"`

	// Filter by order identifier
	OrderId int64 `json:"order_id,omitempty"`

	// Filter by shipment number. Pass no more than 50 postings
	PostingNumbers []string `json:"posting_numbers,omitempty"`

	// Filter by product name
	ProductName string `json:"product_name,omitempty"`

	// Filter by product identifier in the seller's system
	OfferId string `json:"offer_id,omitempty"`

	// Filter by return status
	VisualStatusName VisualStatus `json:"visual_status_name,omitempty"`

	// Filter by warehouse identifier
	WarehouseId int64 `json:"warehouse_id,omitempty"`

	// Filter by return label barcode
	Barcode string `json:"barcode,omitempty"`

	// Filter by delivery scheme: FBS or FBO
	ReturnSchema string `json:"return_schema,omitempty"`
}

type ListReturnsParams added in v1.16.0

type ListReturnsParams struct {
	// Filters. Use only one filter per request. Otherwise it returns an error
	Filter *ListReturnsFilter `json:"filter,omitempty"`

	// Number of loaded returns. The maximum value is 500
	Limit int32 `json:"limit"`

	// Identifier of the last loaded return
	LastId int64 `json:"last_id"`
}

type ListReturnsResponse added in v1.16.0

type ListReturnsResponse struct {
	core.CommonResponse

	// Returns details
	Returns []Return `json:"returns"`

	// true, if the seller has other returns
	HasNext bool `json:"has_next"`
}

type ListReviewsParams added in v1.18.0

type ListReviewsParams struct {
	// Identifier of the last review on the page
	LastId string `json:"last_id"`

	// Number of reviews in the response. Minimum is 20, maximum is 100
	Limit int32 `json:"limit"`

	// Sorting direction
	SortDir Order `json:"sort_dir"`

	// Review statuses
	Status string `json:"status"`
}

type ListReviewsResponse added in v1.18.0

type ListReviewsResponse struct {
	core.CommonResponse

	// true, if not all reviews were returned in the response
	HasNext bool `json:"has_next"`

	// Identifier of the last review on the page
	LastId string `json:"last_id"`

	// Review details
	Reviews []ReviewDetails `json:"reviews"`
}

type ListShipmentInCertificateParams

type ListShipmentInCertificateParams struct {
	// Certificate identifier
	Id int64 `json:"id"`
}

type ListShipmentInCertificateResponse

type ListShipmentInCertificateResponse struct {
	core.CommonResponse

	// Information about shipments
	Result []ListShipmentInCertificateResult `json:"result"`
}

type ListShipmentInCertificateResult

type ListShipmentInCertificateResult struct {
	// Certificate identifier
	Id int64 `json:"id"`

	// Number of boxes in which the product is packed
	MultiBoxQuantity int32 `json:"multi_box_qty"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Shipment status
	Status string `json:"status"`

	// Error code explanation
	SellerError string `json:"seller_error"`

	// Shipment record update date and time
	UpdatedAt time.Time `json:"updated_at"`

	// Shipment record creation date and time
	CreatedAt time.Time `json:"created_at"`

	// List of products in the shipment
	Products []ListShipmentInCertificateResultProduct `json:"products"`
}

type ListShipmentInCertificateResultProduct

type ListShipmentInCertificateResultProduct struct {
	// Product name
	Name string `json:"name"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Product price
	Price string `json:"price"`

	// Product number in the shipment
	Quantity int32 `json:"quantity"`

	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`
}

type ListStrategiesParams

type ListStrategiesParams struct {
	// Page number from which you want to download the list of competitors.
	// The minimum value is 1
	Page int64 `json:"page"`

	// Maximum number of competitors on the page. Allowed values: 1–50
	Limit int64 `json:"limit"`
}

type ListStrategiesResponse

type ListStrategiesResponse struct {
	core.CommonResponse

	// List of strategies
	Strategies []ListStrategiesStrategy `json:"strategies"`

	// Total number of strategies
	Total int32 `json:"total"`
}

type ListStrategiesStrategy

type ListStrategiesStrategy struct {
	// Strategy identifier
	Id string `json:"strategy_id"`

	// Strategy name
	Name string `json:"strategy_name"`

	// Strategy type
	Type StrategyType `json:"type"`

	// Type of the last strategy change
	UpdateType StrategyUpdateType `json:"update_type"`

	// Date of last change
	UpdatedAt string `json:"updated_at"`

	// Number of products in the strategy
	ProductsCount int64 `json:"products_count"`

	// Number of selected competitors
	CompetitorsCount int64 `json:"competitors_count"`

	// Strategy status
	Enabled bool `json:"enabled"`
}

type ListSupplyRequestsFilter added in v1.17.0

type ListSupplyRequestsFilter struct {
	States []string `json:"states"`
}

type ListSupplyRequestsPaging added in v1.17.0

type ListSupplyRequestsPaging struct {
	// Supply number from which the list of requests will start
	FromOrderId int64 `json:"from_supply_order_id"`

	// Number of requests in the response
	Limit int32 `json:"limit"`
}

type ListSupplyRequestsParams

type ListSupplyRequestsParams struct {
	// Filter
	Filter *ListSupplyRequestsFilter `json:"filter"`

	// Customizing the display of the requests list
	Paging *ListSupplyRequestsPaging `json:"paging"`
}

type ListSupplyRequestsResponse

type ListSupplyRequestsResponse struct {
	core.CommonResponse

	// Supply request identifier you last requested
	LastSupplyOrderId int64 `json:"last_supply_order_id"`

	// Supply request identifier
	SupplyOrderId []string `json:"supply_order_id"`
}

type ListTransactionsFilter

type ListTransactionsFilter struct {
	// Filter by date
	Date ListTransactionsFilterDate `json:"date"`

	// Operation type
	OperationType []string `json:"operation_type"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Transaction type
	TransactionType string `json:"transaction_type"`
}

type ListTransactionsFilterDate

type ListTransactionsFilterDate struct {
	// Period start.
	//
	// Format: YYYY-MM-DDTHH:mm:ss.sssZ.
	// Example: 2019-11-25T10:43:06.51
	From time.Time `json:"from"`

	// Period end.
	//
	// Format: YYYY-MM-DDTHH:mm:ss.sssZ.
	// Example: 2019-11-25T10:43:06.51
	To time.Time `json:"to"`
}

type ListTransactionsParams

type ListTransactionsParams struct {
	// Filter
	Filter ListTransactionsFilter `json:"filter"`

	// Number of the page returned in the request
	Page int64 `json:"page"`

	// Number of items on the page
	PageSize int64 `json:"page_size"`
}

type ListTransactionsResponse

type ListTransactionsResponse struct {
	core.CommonResponse

	// Method result
	Result ListTransactionsResult `json:"result"`
}

type ListTransactionsResult

type ListTransactionsResult struct {
	// Transactions infromation
	Operations []ListTransactionsResultOperation `json:"operations"`

	// Number of pages. If 0, there are no more pages
	PageCount int64 `json:"page_count"`

	// Number of transactions on all pages. If 0, there are no more transactions
	RowCount int64 `json:"row_count"`
}

type ListTransactionsResultOperation

type ListTransactionsResultOperation struct {
	// Cost of the products with seller's discounts applied
	AccrualsForSale float64 `json:"accruals_for_sale"`

	// Total transaction sum
	Amount float64 `json:"amount"`

	// Delivery cost for charges by rates that were in effect until February 1, 2021, and for charges for bulky products
	DeliveryCharge float64 `json:"delivery_charge"`

	// Product information
	Items []ListTransactionsResultOperationItem `json:"items"`

	// Operation date
	OperationDate string `json:"operation_date"`

	// Operation identifier
	OperationId int64 `json:"operation_id"`

	// Operation type
	OperationType string `json:"operation_type"`

	// Operation type name
	OperationTypeName string `json:"operation_type_name"`

	// Shipment information
	Posting ListTransactionsResultOperationPosting `json:"posting"`

	// Returns and cancellation cost for charges by rates that were in effect until February 1, 2021, and for charges for bulky products
	ReturnDeliveryCharge float64 `json:"return_delivery_charge"`

	// Sales commission or sales commission refund
	SaleCommission float64 `json:"sale_commission"`

	// Additional services
	Services []ListTransactionsResultOperationService `json:"services"`

	// Transaction type
	Type string `json:"type"`
}

type ListTransactionsResultOperationItem

type ListTransactionsResultOperationItem struct {
	// Product name
	Name string `json:"name"`

	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`
}

type ListTransactionsResultOperationPosting

type ListTransactionsResultOperationPosting struct {
	// Delivery scheme:
	//   - FBO — delivery to Ozon warehouse
	//   - FBS — delivery from seller's warehouse
	//   - RFBS — delivery service of seller's choice
	//   - Crossborder — delivery from abroad
	DeliverySchema string `json:"delivery_schema"`

	// Date the product was accepted for processing
	OrderDate string `json:"order_date"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`
}

type ListTransactionsResultOperationService

type ListTransactionsResultOperationService struct {
	// Service name
	Name TransactionOperationService `json:"name"`

	// Price
	Price float64 `json:"price"`
}

type ListUnpaidProductsParams added in v1.17.0

type ListUnpaidProductsParams struct {
	// Cursor for the next data sample
	Cursor string `json:"cursor"`

	// Number of values in the response
	Limit int32 `json:"limit,omitempty"`
}

type ListUnpaidProductsResponse added in v1.17.0

type ListUnpaidProductsResponse struct {
	core.CommonResponse

	Products []UnpaidProduct `json:"products"`

	// Cursor for the next data sample
	Cursor string `json:"cursor"`
}

type ListUnprocessedShipmentsFilter

type ListUnprocessedShipmentsFilter struct {
	// Filter by the time by which the seller should pack the order. Period start.
	//
	// Format: YYYY-MM-DDThh: mm:ss. mcsZ. Example: 2020-03-18T07:34:50.359 Z
	CutoffFrom *core.TimeFormat `json:"cutoff_from,omitempty"`

	// Filter by the time by which the seller should pack the order. Period end.
	//
	// Format: YYYY-MM-DDThh: mm:ss. mcsZ. Example: 2020-03-18T07:34:50.359 Z
	CutoffTo *core.TimeFormat `json:"cutoff_to,omitempty"`

	// Minimum date when shipment should be handed over for delivery
	DeliveringDateFrom *core.TimeFormat `json:"delivering_date_from,omitempty"`

	// Maximum date when shipment should be handed over for delivery
	DeliveringDateTo *core.TimeFormat `json:"delivering_date_to,omitempty"`

	// Delivery method identifier
	DeliveryMethodId []int64 `json:"delivery_method_id"`

	// Specify true to get only MOQ shipments.
	//
	// The default value is false, the response contains all shipments
	IsQuantum bool `json:"is_quantum"`

	// Filter for shipments delivered from partner warehouse (FBP). You can pass one of the following values:
	//
	// Default value is all.
	//
	// The FBP scheme is available only for sellers from China
	FBPFilter FBPFilter `json:"fbpFilter" default:"all"`

	// Delivery service identifier
	ProviderId []int64 `json:"provider_id"`

	// Shipment status
	Status string `json:"status"`

	// Warehouse identifier
	WarehouseId []int64 `json:"warehouse_id"`
}

type ListUnprocessedShipmentsParams

type ListUnprocessedShipmentsParams struct {
	// Sorting direction
	Direction Order `json:"dir,omitempty"`

	// Request filter
	Filter ListUnprocessedShipmentsFilter `json:"filter"`

	// Number of values in the response:
	//
	// maximum — 1000,
	// minimum — 1.
	Limit int64 `json:"limit"`

	// Number of elements that will be skipped in the response.
	// For example, if `offset` = 10, the response will start with the 11th element found
	Offset int64 `json:"offset,omitempty"`

	// Additional fields that should be added to the response
	With *ListUnprocessedShipmentsWith `json:"with,omitempty"`
}

type ListUnprocessedShipmentsResponse

type ListUnprocessedShipmentsResponse struct {
	core.CommonResponse

	// Request result
	Result ListUnprocessedShipmentsResult `json:"result"`
}

type ListUnprocessedShipmentsResult

type ListUnprocessedShipmentsResult struct {
	// Element counter in the response
	Count int64 `json:"count"`

	// List of shipments and detailed information on each one
	Postings []FBSPosting `json:"postings"`
}

type ListUnprocessedShipmentsWith

type ListUnprocessedShipmentsWith struct {
	// Add analytics data to the response
	AnalyticsData bool `json:"analytics_data"`

	// Add the shipment barcodes to the response
	Barcodes bool `json:"barcodes"`

	// Add financial data to the response
	FinancialData bool `json:"financial_data"`

	// Transliterate the return values
	Translit bool `json:"translit"`
}

type LocalizationIndex added in v1.16.0

type LocalizationIndex struct {
	// Date of localization index calculation
	CalculationDate time.Time `json:"calculation_date"`

	// Localization index value
	LocalizationPercentage int32 `json:"localization_percentage"`
}

type LogisticCluster added in v1.17.0

type LogisticCluster struct {
	// Warehouse status
	IsArchived bool `json:"is_archived"`

	// Warehouses
	Warehouses []LogisticClusterWarehouse `json:"warehouses"`
}

type LogisticClusterWarehouse added in v1.17.0

type LogisticClusterWarehouse struct {
	// Warehouse name
	Name string `json:"name"`

	// Warehouse type
	Type string `json:"type"`

	// Warehouse identifier
	Id int64 `json:"warehouse_id"`
}

type MandatoryMarkStatus added in v1.8.0

type MandatoryMarkStatus string
const (
	// Labeling is processed
	MandatoryMarkStatusProcessing MandatoryMarkStatus = "processing"

	// Check is passed
	MandatoryMarkStatusPassed MandatoryMarkStatus = "passed"

	// Check is failed
	MandatoryMarkStatusFailed MandatoryMarkStatus = "failed"
)

type MarkAsReadParams

type MarkAsReadParams struct {
	// Chat identifier
	ChatId string `json:"chat_id"`

	// Message identifier
	FromMessageId uint64 `json:"from_message_id"`
}

type MarkAsReadResponse

type MarkAsReadResponse struct {
	core.CommonResponse

	// Number of unread messages in the chat
	UnreadCount int64 `json:"unread_count"`
}

type MarketplaceServices

type MarketplaceServices struct {
	// Last mile
	DeliveryToCustomer float64 `json:"marketplace_service_item_deliv_to_customer"`

	// Pipeline
	DirectFlowTrans float64 `json:"marketplace_service_item_direct_flow_trans"`

	// Shipment processing in the fulfilment warehouse (FF)
	DropoffFF float64 `json:"marketplace_service_item_dropoff_ff"`

	// Shipment processing at the pick up point
	DropoffPVZ float64 `json:"marketplace_service_item_dropoff_pvz"`

	// Shipment processing at the sorting center
	DropoffSC float64 `json:"marketplace_service_item_dropoff_sc"`

	// Order packaging
	Fulfillment float64 `json:"marketplace_service_item_fulfillment"`

	// Transport arrival to the seller's address for shipments pick-up (Pick-up)
	Pickup float64 `json:"marketplace_service_item_pickup"`

	// Return processing
	ReturnAfterDeliveryToCustomer float64 `json:"marketplace_service_item_return_after_deliv_to_customer"`

	// Reverse pipeline
	ReturnFlowTrans float64 `json:"marketplace_service_item_return_flow_trans"`

	// Cancellations processing
	ReturnNotDeliveryToCustomer float64 `json:"marketplace_service_item_return_not_deliv_to_customer"`

	// Non-purchase processing
	ReturnPartGoodsCustomer float64 `json:"marketplace_service_item_return_part_goods_customer"`
}

type ModelInfo added in v1.17.0

type ModelInfo struct {
	ModelId int64 `json:"model_id"`
	Count   int64 `json:"count"`
}

type NameValue added in v1.18.0

type NameValue struct {
	Name string `json:"name"`

	Value string `json:"value"`
}

type NumberOfSubsToProductAvailabilityParams

type NumberOfSubsToProductAvailabilityParams struct {
	// List of SKUs, product identifiers in the Ozon system
	SKUS []int64 `json:"skus"`
}

type NumberOfSubsToProductAvailabilityResponse

type NumberOfSubsToProductAvailabilityResponse struct {
	core.CommonResponse

	// Method result
	Result []NumberOfSubsToProductAvailabilityResult `json:"result"`
}

type NumberOfSubsToProductAvailabilityResult

type NumberOfSubsToProductAvailabilityResult struct {
	// Number of subscribed users
	Count int64 `json:"count"`

	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`
}

type OpenDisputeOverShipmentParams

type OpenDisputeOverShipmentParams struct {
	// Shipment identifier
	PostingNumber []string `json:"posting_number"`
}

type OpenDisputeOverShipmentResponse

type OpenDisputeOverShipmentResponse struct {
	core.CommonResponse

	// Request processing result. true, if the request was executed without errors
	Result bool `json:"result"`
}

type Order

type Order string
const (
	Ascending  Order = "ASC"
	Descending Order = "DESC"
)

type PRROptionStatus

type PRROptionStatus string
const (
	// carrying the bulky product using the elevator
	PRROptionLift PRROptionStatus = "lift"

	// carrying the bulky product upstairs
	PRROptionStairs PRROptionStatus = "stairs"

	// the customer canceled the service,
	// you don't need to lift the shipment
	PRROptionNone PRROptionStatus = "none"

	// delivery is included in the price.
	// According to the offer you need to
	// deliver products to the floor
	PRROptionDeliveryDefault PRROptionStatus = "delivery_default"
)

type PackOrderAdditionalData

type PackOrderAdditionalData struct {
	// Shipment number
	PostingNumber string `json:"posting_number"`

	// List of products in the shipment
	Products []PostingProduct `json:"products"`
}

type PackOrderPackage

type PackOrderPackage struct {
	Products []PackOrderPackageProduct `json:"products"`
}

type PackOrderPackageProduct

type PackOrderPackageProduct struct {
	// Product identifier
	ProductId int64 `json:"product_id"`

	// Product items quantity
	Quantity int32 `json:"quantity"`
}

type PackOrderParams

type PackOrderParams struct {
	// List of packages. Each package contains a list of shipments that the order was divided into
	Packages []PackOrderPackage `json:"packages"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Additional information
	With *PackOrderWith `json:"with,omitempty"`
}

type PackOrderResponse

type PackOrderResponse struct {
	core.CommonResponse

	// Additional information about shipments
	AdditionalData []PackOrderAdditionalData `json:"additional_data"`

	// Order packaging result
	Result []string `json:"result"`
}

type PackOrderWith

type PackOrderWith struct {
	// Pass true to get additional information
	AdditionalData bool `json:"additional_data"`
}

type PackageUnitLabelsParams

type PackageUnitLabelsParams struct {
	// Document generation task number (freight identifier) received from the POST `/v2/posting/fbs/act/create` method.
	Id int64 `json:"id"`
}

type PackageUnitLabelsResponse

type PackageUnitLabelsResponse struct {
	core.CommonResponse

	// Content
	Content string `json:"content"`

	// Name
	Name string `json:"name"`

	// Type
	Type string `json:"type"`
}

type PartialPackOrderAdditionalData

type PartialPackOrderAdditionalData struct {
	// Shipment identifier
	PostingNumber string `json:"posting_number"`

	// List of products in the shipment
	Products []PostingProduct `json:"products"`
}

type PartialPackOrderParams

type PartialPackOrderParams struct {
	// Shipment ID
	PostingNumber string `json:"posting_number"`

	// Array of products
	Products []PartialPackOrderProduct `json:"products"`
}

type PartialPackOrderProduct

type PartialPackOrderProduct struct {
	// Product item identifiers
	ExemplarIds []string `json:"exemplarIds"`

	// FBS product identifier in the Ozon system, SKU
	ProductId int64 `json:"product_id"`

	// Product quantity
	Quantity int32 `json:"quantity"`
}

type PartialPackOrderResponse

type PartialPackOrderResponse struct {
	core.CommonResponse

	// Shipments numbers formed after packaging
	Result string `json:"result"`
}

type PassShipmentToShippingParams

type PassShipmentToShippingParams struct {
	// Shipment identifier. The maximum number of values in one request is 100
	PostingNumber []string `json:"posting_number"`
}

type PassShipmentToShippingResponse

type PassShipmentToShippingResponse struct {
	core.CommonResponse

	// Request processing result. true, if the request was executed without errors
	Result bool `json:"result"`
}

type Passes added in v1.12.0

type Passes struct {
	// contains filtered or unexported fields
}

func (Passes) CreateCarriage added in v1.12.0

func (c Passes) CreateCarriage(ctx context.Context, params *CreateCarriageParams) (*CreateCarriageResponse, error)

func (Passes) CreateReturn added in v1.12.0

func (c Passes) CreateReturn(ctx context.Context, params *CreateReturnParams) (*CreateReturnResponse, error)

func (Passes) DeleteCarriage added in v1.12.0

func (c Passes) DeleteCarriage(ctx context.Context, params *DeleteCarriageParams) (*DeleteCarriageResponse, error)

func (Passes) DeleteReturn added in v1.12.0

func (c Passes) DeleteReturn(ctx context.Context, params *DeleteReturnParams) (*DeleteReturnResponse, error)

func (Passes) List added in v1.12.0

func (Passes) UpdateCarriage added in v1.12.0

func (c Passes) UpdateCarriage(ctx context.Context, params *UpdateCarriageParams) (*UpdateCarriageResponse, error)

func (Passes) UpdateReturn added in v1.12.0

func (c Passes) UpdateReturn(ctx context.Context, params *UpdateReturnParams) (*UpdateReturnResponse, error)

type PaymentTypeGroupName added in v1.14.0

type PaymentTypeGroupName string
const (
	PaymentTypeGroupByCardOnline              PaymentTypeGroupName = "by card online"
	PaymentTypeGroupOzonCard                  PaymentTypeGroupName = "Ozon Card"
	PaymentTypeGroupOzonCardAtCheckout        PaymentTypeGroupName = "Ozon Card at checkout"
	PaymentTypeGroupBySavedBankCardUponPickup PaymentTypeGroupName = "by saved bank card upon pick-up"
	PaymentTypeGroupFasterPaymentSystem       PaymentTypeGroupName = "Faster payment system"
	PaymentTypeGroupOzonInstallment           PaymentTypeGroupName = "Ozon Installment"
	PaymentTypeGroupPaymentToCurrentAccount   PaymentTypeGroupName = "payment to current account"
	PaymentTypeGroupSberpay                   PaymentTypeGroupName = "Sberpay"
)

type Polygons

type Polygons struct {
	// contains filtered or unexported fields
}

func (Polygons) CreateDelivery

You can link a polygon to the delivery method.

Create a polygon getting its coordinates on https://geojson.io: mark at least 3 points on the map and connect them

Link delivery method to a delivery polygon

type PossibleRejectReasonsResponse

type PossibleRejectReasonsResponse struct {
	core.CommonResponse

	// Certificate rejection reasons
	Result []PossibleRejectReasonsResult `json:"result"`
}

type PossibleRejectReasonsResult

type PossibleRejectReasonsResult struct {
	// Сode of a certificate rejection reason
	Code string `json:"code"`

	// Description of a certificate rejection reason
	Name string `json:"name"`
}

type PossibleStatusesResponse

type PossibleStatusesResponse struct {
	core.CommonResponse

	// Possible certificate statuses
	Result []PossibleStatusesResult `json:"result"`
}

type PossibleStatusesResult

type PossibleStatusesResult struct {
	// Certificate status code
	Code string `json:"code"`

	// Status description
	Name string `json:"name"`
}

type PostingProduct

type PostingProduct struct {
	// Mandatory product labeling
	MandatoryMark []string `json:"mandatory_mark"`

	// Product name
	Name string `json:"name"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Currency of your prices. It matches the one set in the personal account settings
	CurrencyCode string `json:"currency_code"`

	// Product price
	Price string `json:"price"`

	// Product quantity in the shipment
	Quantity int32 `json:"quantity"`

	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`
}

type PriceRelevanceTimerStatus added in v1.18.0

type PriceRelevanceTimerStatus struct {
	// Timer end time
	ExpiredAt time.Time `json:"expired_at"`

	// true, if Ozon takes into account the minimum price when creating promotions
	MinPriceForAutoActionsEnabled bool `json:"min_price_for_auto_actions_enabled"`

	// Product identifier
	ProductId int64 `json:"product_id"`
}

type PriceStrategy added in v1.4.0

type PriceStrategy string
const (
	// enable
	PriceStrategyEnabled PriceStrategy = "ENABLED"

	// disable
	PriceStrategyDisabled PriceStrategy = "DISABLED"

	// don't change anything. Default value
	PriceStrategyUnknown PriceStrategy = "UNKNOWN"
)

type PrintLabelingParams

type PrintLabelingParams struct {
	// Shipment identifier
	PostingNumber []string `json:"posting_number"`
}

type PrintLabelingResponse

type PrintLabelingResponse struct {
	core.CommonResponse

	// Order content
	Content string `json:"file_content"`

	// File name
	FileName string `json:"file_name"`

	// File type
	ContentType string `json:"content_type"`
}

type ProductDetailCommission

type ProductDetailCommission struct {
	// Delivery cost
	DeliveryAmount float64 `json:"delivery_amount"`

	// Commission percentage
	Percent float64 `json:"percent"`

	// Return cost
	ReturnAmount float64 `json:"return_amount"`

	// Sale scheme
	SaleSchema string `json:"sale_schema"`

	// Commission fee amount
	Value float64 `json:"value"`
}

type ProductDetailPriceIndex

type ProductDetailPriceIndex struct {
	// Competitors' product price on other marketplaces
	ExternalIndexData ProductDetailPriceIndexExternal `json:"external_index_data"`

	// Competitors' product price on Ozon
	OzonIndexData ProductDetailPriceIndexOzon `json:"ozon_index_data"`

	// Types of price index
	ColorIndex string `json:"color_index"`

	// Price of your product on other marketplaces
	SelfMarketplaceIndexData ProductDetailPriceIndexSelfMarketplace `json:"self_marketplaces_index_data"`
}

type ProductDetailPriceIndexExternal

type ProductDetailPriceIndexExternal struct {
	// Minimum competitors' product price on other marketplaces
	MinimalPrice string `json:"minimal_price"`

	// Price currency
	MinimalPriceCurrency string `json:"minimal_price_currency"`

	// Price index value
	PriceIndexValue float64 `json:"price_index_value"`
}

type ProductDetailPriceIndexOzon

type ProductDetailPriceIndexOzon struct {
	// Minimum competitors' product price on Ozon
	MinimalPrice string `json:"minimal_price"`

	// Price currency
	MinimalPriceCurrency string `json:"minimal_price_currency"`

	// Price index value
	PriceIndexValue float64 `json:"price_index_value"`
}

type ProductDetailPriceIndexSelfMarketplace

type ProductDetailPriceIndexSelfMarketplace struct {
	// Minimum price of your product on other marketplaces
	MinimalPrice string `json:"minimal_price"`

	// Price currency
	MinimalPriceCurrency string `json:"minimal_price_currency"`

	// Price index value
	PriceIndexValue float64 `json:"price_index_value"`
}

type ProductDetailSource

type ProductDetailSource struct {
	// Product creation date
	CreatedAt time.Time `json:"created_at"`

	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`

	// Link to the source
	Source string `json:"source"`

	// Package type
	ShipmentType string `json:"shipment_type"`

	// List of MOQs with products
	QuantCode string `json:"quant_code"`
}

type ProductDetailStatus

type ProductDetailStatus struct {
	// Product state
	State string `json:"state"`

	// Product state on the transition to which an error occurred
	StateFailed string `json:"state_failed"`

	// Moderation status
	ModerateStatus string `json:"moderate_status"`

	// Product decline reasons
	DeclineReasons []string `json:"decline_reasons"`

	// Validation status
	ValidationsState string `json:"validation_state"`

	// Product status name
	StateName string `json:"state_name"`

	// Product state description
	StateDescription string `json:"state_description"`

	// Indiction that there were errors while creating products
	IsFailed bool `json:"is_failed"`

	// Indiction that the product was created
	IsCreated bool `json:"is_created"`

	// Tooltips for the current product state
	StateTooltip string `json:"state_tooltip"`

	// Product loading errors
	ItemErrors []GetProductDetailsResponseItemError `json:"item_errors"`

	// The last time product state changed
	StateUpdatedAt time.Time `json:"state_updated_at"`
}

type ProductDetailStock

type ProductDetailStock struct {
	// true, if there are stocks at the warehouses
	HasStock bool `json:"has_stock"`

	// Status of product stocks
	Stocks []ProductDetailStockStock `json:"stocks"`
}

type ProductDetailStockStock added in v1.18.0

type ProductDetailStockStock struct {
	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`

	// Currently at the warehouse
	Present int32 `json:"present"`

	// Reserved
	Reserved int32 `json:"reserved"`

	// Sales scheme
	Source string `json:"source"`
}

type ProductDetailVisibilityDetails

type ProductDetailVisibilityDetails struct {
	// If the product is active, the value is true
	//
	// Deprecated: Use `visible` parameter of `ProductDetails`
	ActiveProduct bool `json:"active_product"`

	// If the price is set, the value is true
	HasPrice bool `json:"has_price"`

	// If there is stock at the warehouses, the value is true
	HasStock bool `json:"has_stock"`

	// Reason why the product is hidden
	Reasons map[string]interface{} `json:"reasons"`
}

type ProductDetails

type ProductDetails struct {
	// All product barcodes
	Barcodes []string `json:"barcodes"`

	// Main offer price on Ozon.
	//
	// The field is deprecated. Returns an empty string ""
	BuyboxPrice string `json:"buybox_price"`

	// Category identifier
	DescriptionCategoryId int64 `json:"description_category_id"`

	// Markdown product stocks at the Ozon warehouse
	DiscountedFBOStocks int32 `json:"discounted_fbo_stocks"`

	// Details on errors when creating or validating a product
	Errors []ProductDetailsError `json:"errors"`

	// Indication that the product has similar markdown products at the Ozon warehouse
	HasDiscountedFBOItem bool `json:"has_discounted_fbo_item"`

	// Product type identifier
	TypeId int64 `json:"type_id"`

	// Marketing color
	ColorImage []string `json:"color_image"`

	// Commission fees details
	Commissions []ProductDetailCommission `json:"commissions"`

	// Date and time when the product was created
	CreatedAt time.Time `json:"created_at"`

	// Product SKU
	SKU int64 `json:"sku"`

	// SKU of the product that is sold from the Ozon warehouse (FBO)
	FBOSKU int64 `json:"fbo_sku,omitempty"`

	// SKU of the product that is sold from the seller's warehouse (FBS and rFBS)
	FBSSKU int64 `json:"fbs_sku,omitempty"`

	// Product identifier
	Id int64 `json:"id"`

	// An array of links to images. The images in the array are arranged in the order of their arrangement on the site. If the `primary_image` parameter is not specified, the first image in the list is the main one for the product
	Images []string `json:"images"`

	// Main product image
	PrimaryImage []string `json:"primary_image"`

	// Array of 360 images
	Images360 []string `json:"images360"`

	// true if the product has markdown equivalents at the Ozon warehouse
	HasDiscountedItem bool `json:"has_discounted_item"`

	// Indication of a markdown product:
	//
	// * true if the product was created by the seller as a markdown
	//
	// * false if the product is not markdown or was marked down by Ozon
	IsDiscounted bool `json:"is_discounted"`

	// Markdown products stocks
	DiscountedStocks ProductDiscountedStocks `json:"discounted_stocks"`

	// Indication of a bulky product
	IsKGT bool `json:"is_kgt"`

	// Indication of mandatory prepayment for the product:
	//
	// * true — to buy a product, you need to make a prepayment.
	//
	// * false—prepayment is not required
	IsPrepayment bool `json:"is_prepayment"`

	// If prepayment is possible, the value is true
	IsPrepaymentAllowed bool `json:"is_prepayment_allowed"`

	// Currency of your prices. It matches the currency set in the personal account settings
	CurrencyCode string `json:"currency_code"`

	// The price of the product including all promotion discounts. This value will be shown on the Ozon storefront
	MarketingPrice string `json:"marketing_price"`

	// Minimum price for similar products on Ozon.
	//
	// The field is deprecated. Returns an empty string ""
	MinOzonPrice string `json:"min_ozon_price"`

	// Minimum product price with all promotions applied
	MinPrice string `json:"min_price"`

	// Name
	Name string `json:"name"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Price before discounts. Displayed strikethrough on the product description page
	OldPrice string `json:"old_price"`

	// Product price including discounts. This value is shown on the product description page
	Price string `json:"price"`

	// Product price indexes
	PriceIndexes ProductDetailPriceIndex `json:"price_indexes"`

	// Deprecated: Price index. Learn more in Help Center
	//
	// Use PriceIndexes instead
	PriceIndex string `json:"price_index"`

	// Product state description
	Status ProductDetailStatus `json:"status"`

	// Details about the sources of similar offers. Learn more in Help Сenter
	Sources []ProductDetailSource `json:"sources"`

	// Details about product stocks
	Stocks ProductDetailStock `json:"stocks"`

	// Date of the last product update
	UpdatedAt time.Time `json:"updated_at"`

	// Product VAT rate
	VAT string `json:"vat"`

	// Product visibility settings
	VisibilityDetails ProductDetailVisibilityDetails `json:"visibility_details"`

	// If the product is on sale, the value is true
	Visible bool `json:"visible"`

	// Product volume weight
	VolumeWeight float64 `json:"volume_weight"`

	// 'true' if the item is archived manually.
	IsArchived bool `json:"is_archived"`

	// 'true' if the item is archived automatically.
	IsArchivedAuto bool `json:"is_autoarchived"`

	// Product status details
	Statuses ProductDetailsStatus `json:"statuses"`

	// Product model details
	ModelInfo ProductDetailsModelInfo `json:"model_info"`

	// Indication of a super product
	IsSuper bool `json:"is_super"`
}

type ProductDetailsError added in v1.18.0

type ProductDetailsError struct {
	// Characteristic identifier
	AttributeId int64 `json:"attribute_id"`

	// Error code
	Code string `json:"code"`

	// Field in which the error occurred
	Field string `json:"field"`

	// Error level description
	Level string `json:"level"`

	// Status of the product with the error
	State string `json:"state"`

	// Error description
	Texts ProductDetailsErrorText `json:"texts"`
}

type ProductDetailsErrorText added in v1.18.0

type ProductDetailsErrorText struct {
	// Attribute name
	AttributeName string `json:"attribute_name"`

	// Error description
	Description string `json:"description"`

	// Error code in the Ozon system
	HintCode string `json:"hint_code"`

	// Error message
	Message string `json:"message"`

	// Short description of the error
	ShortDescription string `json:"short_description"`

	// Parameters in which the error occurred
	Params []NameValue `json:"params"`
}

type ProductDetailsModelInfo added in v1.18.0

type ProductDetailsModelInfo struct {
	// Number of products in the response
	Count int64 `json:"count"`

	// Identifier of the product model
	ModelId int64 `json:"model_id"`
}

type ProductDetailsStatus added in v1.18.0

type ProductDetailsStatus struct {
	// true, if the product is created correctly
	IsCreated bool `json:"is_created"`

	// Moderation status
	ModerateStatus string `json:"moderate_status"`

	// Product status
	Status string `json:"status"`

	// Product status description
	Description string `json:"status_description"`

	// Status of the product where the error occurred
	Failed string `json:"status_failed"`

	// Product status name
	Name string `json:"status_name"`

	// Status description
	Tooltip string `json:"status_tooltip"`

	// Time of the last status change
	UpdatedAt time.Time `json:"status_updated_at"`

	// Validation status
	ValidationStatus string `json:"validation_status"`
}

type ProductDimension

type ProductDimension struct {
	// Package height
	Height string `json:"height"`

	// Product length
	Length string `json:"length"`

	// Weight of product in the package
	Weight string `json:"weight"`

	// Package width
	Width string `json:"width"`
}

type ProductDiscountedStocks

type ProductDiscountedStocks struct {
	// Quantity of products to be supplied
	Coming int32 `json:"coming"`

	// Quantity of products in warehouse
	Present int32 `json:"present"`

	// Quantity of products reserved
	Reserved int32 `json:"reserved"`
}

type ProductInfoResponse

type ProductInfoResponse struct {
	core.CommonResponse

	// Method result
	Result ProductInfoResult `json:"result"`
}

type ProductInfoResult

type ProductInfoResult struct {
	// Pictures
	Pictures []ProductInfoResultPicture `json:"pictures"`
}

type ProductInfoResultPicture

type ProductInfoResultPicture struct {
	// Attribute of a 360 image
	Is360 bool `json:"is_360"`

	// Attribute of a marketing color
	IsColor bool `json:"is_color"`

	// Attribute of a marketing color
	IsPrimary bool `json:"is_primary"`

	// Product identifier
	ProductId int64 `json:"product_id"`

	// Image uploading status.
	//
	// If the `/v1/product/pictures/import` method was called, the response will always be imported—image not processed.
	// To see the final status, call the `/v2/product/pictures/info` method after about 10 seconds.
	//
	// If you called the `/v2/product/pictures/info` method, one of the statuses will appear:
	//   - uploaded — image uploaded;
	//   - pending — image was not uploaded
	State string `json:"state"`

	// The link to the image in the public cloud storage. The image format is JPG or PNG
	URL string `json:"url"`
}

type ProductQuant added in v1.18.0

type ProductQuant struct {
	// Warehouse ID where the stock is located
	WarehouseId int64 `json:"warehouse_id"`

	// Quantity available in the warehouse
	Quantity int64 `json:"quantity"`

	// Quantity reserved in the warehouse
	Reserved int64 `json:"reserved"`
}

ProductQuant describes a single quant entry with warehouse, available quantity, and reserved.

type ProductStatusesResponse

type ProductStatusesResponse struct {
	core.CommonResponse

	// Product statuses
	Result []ProductStatusesResult `json:"result"`
}

type ProductStatusesResult

type ProductStatusesResult struct {
	// Product status code when linking it to the certificate
	Code string `json:"code"`

	// Status description
	Name string `json:"name"`
}

type ProductTurnoverItem added in v1.16.0

type ProductTurnoverItem struct {
	// Average daily number of product items sold over the last 60 days
	Ads float64 `json:"ads"`

	// Product stock, pcs
	CurrentStock int64 `json:"current_stock"`

	// Number of days the stock will last based on your average daily sales
	IDC float64 `json:"idc"`

	// Product stock level
	IDCGrade string `json:"idc_grade"`
}

type Products

type Products struct {
	// contains filtered or unexported fields
}

func (Products) ArchiveProduct

func (c Products) ArchiveProduct(ctx context.Context, params *ArchiveProductParams) (*ArchiveProductResponse, error)

Archive product

func (Products) ChangeProductIDs

func (c Products) ChangeProductIDs(ctx context.Context, params *ChangeProductIDsParams) (*ChangeProductIDsResponse, error)

Method for changing the offer_id linked to products. You can change multiple offer_id in this method.

We recommend transmitting up to 250 values in an array

func (Products) CheckImageUploadingStatus

Check products images uploading status

func (Products) CreateOrUpdateProduct

func (c Products) CreateOrUpdateProduct(ctx context.Context, params *CreateOrUpdateProductParams) (*CreateOrUpdateProductResponse, error)

This method allows you to create products and update their details More info: https://docs.ozon.ru/api/seller/en/#operation/ProductAPI_ImportProductsV3

func (Products) CreateProductByOzonID

func (c Products) CreateProductByOzonID(ctx context.Context, params *CreateProductByOzonIDParams) (*CreateProductByOzonIDResponse, error)

The method creates a copy of the product description page with the specified SKU.

You cannot create a copy if the seller has prohibited the copying of their PDPs.

It's not possible to update products using SKU.

func (Products) EconomyInfo added in v1.17.0

func (c Products) EconomyInfo(ctx context.Context, params *GetEconomyInfoParams) (*GetEconomyInfoResponse, error)

func (Products) GetDescriptionOfProduct

func (c Products) GetDescriptionOfProduct(ctx context.Context, params *GetDescriptionOfProductParams) (*GetDescriptionOfProductResponse, error)

Returns a product characteristics description by product identifier. You can search for the product by `offer_id` or `product_id`

func (Products) GetDescriptionOfProducts added in v1.17.0

/v4/product/info/attributes

func (Products) GetListOfProducts

func (c Products) GetListOfProducts(ctx context.Context, params *GetListOfProductsParams) (*GetListOfProductsResponse, error)

GetListOfProducts calls the new /v3/product/list endpoint. When using the filter by offer_id or product_id identifier, other parameters are not required. Only one identifiers group can be used at a time, not more than 1000 products.

If you do not use identifiers for display, specify limit and last_id in subsequent requests.

func (Products) GetMarkdownInfo

func (c Products) GetMarkdownInfo(ctx context.Context, params *GetMarkdownInfoParams) (*GetMarkdownInfoResponse, error)

Get information about the markdown and the main product by the markdown product SKU

A method for getting information about the condition and defects of a markdown product by its SKU. The method also returns the SKU of the main product

func (Products) GetProductDescription

func (c Products) GetProductDescription(ctx context.Context, params *GetProductDescriptionParams) (*GetProductDescriptionResponse, error)

Get product description

func (Products) GetProductImportStatus

func (c Products) GetProductImportStatus(ctx context.Context, params *GetProductImportStatusParams) (*GetProductImportStatusResponse, error)

Allows you to get the status of a product description page creation process

func (Products) GetProductPriceInfo

func (c Products) GetProductPriceInfo(ctx context.Context, params *GetProductPriceInfoParams) (*GetProductPriceInfoResponse, error)

You can specify up to 1000 products in the request

Check minimum and maximum commissions for FBO pipeline in your personal account. The `fbo_direct_flow_trans_max_amount` and `fbo_direct_flow_trans_min_amount` parameters from the method response are in development and return 0

func (Products) GetProductRangeLimit

func (c Products) GetProductRangeLimit(ctx context.Context) (*GetProductRangeLimitResponse, error)

Method for getting information about the following limits:

  • Product range limit: how many products you can create in your personal account.
  • Products creation limit: how many products you can create per day.
  • Products update limit: how many products you can update per day.

If you have a product range limit and you exceed it, you won't be able to create new products

func (Products) GetProductsRatingBySKU

func (c Products) GetProductsRatingBySKU(ctx context.Context, params *GetProductsRatingBySKUParams) (*GetProductsRatingBySKUResponse, error)

Method for getting products' content rating and recommendations on how to increase it

func (Products) GetRelatedSKUs added in v1.7.0

func (c Products) GetRelatedSKUs(ctx context.Context, params *GetRelatedSKUsParams) (*GetRelatedSKUsResponse, error)

Method for getting a single SKU based on the old SKU FBS and SKU FBO identifiers. The response will contain all SKUs related to the passed ones.

The method can handle any SKU, even hidden or deleted.

In one request, you can pass up to 200 SKUs.

func (Products) GetStocksInfo

func (c Products) GetStocksInfo(ctx context.Context, params *GetStocksInfoParams) (*GetStocksInfoResponse, error)

Returns information about the quantity of products in stock:

* how many items are available,

* how many are reserved by customers.

func (Products) ListEconomy added in v1.17.0

func (Products) ListProductsByIDs

func (c Products) ListProductsByIDs(ctx context.Context, params *ListProductsByIDsParams) (*ListProductsByIDsResponse, error)

Method for getting an array of products by their identifiers.

The request body must contain an array of identifiers of the same type. The response will contain an items array.

For each shipment in the items array the fields match the ones recieved in the /v2/product/info method

func (Products) NumberOfSubsToProductAvailability

You can pass multiple products in a request

func (Products) RemoveProductWithoutSKU

func (c Products) RemoveProductWithoutSKU(ctx context.Context, params *RemoveProductWithoutSKUParams) (*RemoveProductWithoutSKUResponse, error)

Remove a product without an SKU from the archive

You can pass up to 500 identifiers in one request

func (Products) SetDiscountOnMarkdownProduct

A method for setting the discount percentage on markdown products sold under the FBS scheme

func (Products) StatusOfUploadingActivationCodes

Get status of uploading activation codes task for services and digital products

func (Products) StatusPriceRelevanceTimer added in v1.18.0

Get status of timer you've set

func (Products) StocksInSellersWarehouse

Get stocks in seller's warehouse

func (Products) UnarchiveProduct

func (c Products) UnarchiveProduct(ctx context.Context, params *ArchiveProductParams) (*ArchiveProductResponse, error)

Warning: Since June 14, 2023 the method is disabled.

Unarchive product

func (Products) UpdateCharacteristics

func (c Products) UpdateCharacteristics(ctx context.Context, params *UpdateCharacteristicsParams) (*UpdateCharacteristicsResponse, error)

func (Products) UpdatePriceRelevanceTimer added in v1.18.0

func (Products) UpdatePrices

func (c Products) UpdatePrices(ctx context.Context, params *UpdatePricesParams) (*UpdatePricesResponse, error)

Allows you to change a price of one or more products. The price of each product can be updated no more than 10 times per hour. To reset old_price, set 0 for this parameter.

func (Products) UpdateProductImages

func (c Products) UpdateProductImages(ctx context.Context, params *UpdateProductImagesParams) (*ProductInfoResponse, error)

The method for uploading and updating product images.

Each time you call the method, pass all the images that should be on the product description page. For example, if you call a method and upload 10 images, and then call the method a second time and load one imahe, then all 10 previous ones will be erased.

To upload image, pass a link to it in a public cloud storage. The image format is JPG or PNG.

Arrange the pictures in the images array as you want to see them on the site. The first picture in the array will be the main one for the product.

You can upload up to 15 pictures for each product.

To upload 360 images, use the images360 field, and to upload a marketing color use color_image.

If you want to add, remove, or replace some images, or change their order, first get the details using `/v2/product/info` or `/v2/product/info/list` methods. Using them you can get the current list of images and their order. Copy the data from the images, images360, and color_image fields and make the necessary changes to it

func (Products) UpdateQuantityStockProducts

Allows you to change the products in stock quantity.

With one request you can change the availability for 100 products. You can send up to 80 requests in a minute.

You can update the stock of one product in one warehouse only once in 2 minutes, otherwise there will be the TOO_MANY_REQUESTS error in the response.

You can set the availability of an item only after the product status is changed to price_sent

Bulky products stock can only be updated in the warehouses for bulky products.

func (Products) UpdateStocks

func (c Products) UpdateStocks(ctx context.Context, params *UpdateStocksParams) (*UpdateStocksResponse, error)

Allows you to change the products in stock quantity. The method is only used for FBS and rFBS warehouses.

With one request you can change the availability for 100 products. You can send up to 80 requests in a minute.

Availability can only be set after the product status has been changed to processed.

func (Products) UploadActivationCodes

func (c Products) UploadActivationCodes(ctx context.Context, params *UploadActivationCodesParams) (*UploadActivationCodesResponse, error)

Upload activation codes when you upload service or digital products. Activation code is associated with the digital product card

type ProductsAvailableForHotSalePromotionParams

type ProductsAvailableForHotSalePromotionParams struct {
	// Hot Sale promotion identifier
	HotSaleId float64 `json:"hotsale_id"`

	// Number of elements in the response. Default value is 100
	Limit float64 `json:"limit"`

	// Number of elements that will be skipped in the response. For example, if offset=10, the response will start with the 11th element found
	Offset float64 `json:"offset,omitempty"`
}

type ProductsAvailableForHotSalePromotionResponse

type ProductsAvailableForHotSalePromotionResponse struct {
	core.CommonResponse

	// Method result
	Result ProductsAvailableForHotSalePromotionResult `json:"result"`
}

type ProductsAvailableForHotSalePromotionResult

type ProductsAvailableForHotSalePromotionResult struct {
	// Products list
	Products []ProductsAvailableForHotSalePromotionResultProduct `json:"products"`

	// Total number of products that are available for the promotion
	Total float64 `json:"total"`
}

type ProductsAvailableForHotSalePromotionResultProduct

type ProductsAvailableForHotSalePromotionResultProduct struct {
	// Promotional product price
	ActionPrice float64 `json:"action_price"`

	// Date when the product participates in the promotion in the YYYY-MM-DD format
	DateDayPromo string `json:"date_day_promo"`

	// Product identifier
	Id float64 `json:"id"`

	// Indication that product participates in the promotion
	IsActive bool `json:"is_active"`

	// Maximum possible promotional price of the product
	MaxActionPrice float64 `json:"max_action_price"`

	// Minimum number of product units in a stock discount type promotion
	MinStock float64 `json:"min_stock"`

	// Number of product units in a stock discount type promotion
	Stock float64 `json:"stock"`
}

type ProductsAvailableForPromotionParams

type ProductsAvailableForPromotionParams struct {
	// Promotion identifier
	ActionId float64 `json:"action_id"`

	// Number of values in the response. The default value is 100
	Limit float64 `json:"limit"`

	// Number of elements that will be skipped in the response.
	// For example, if offset=10, the response will start with the 11th element found
	Offset float64 `json:"offset,omitempty"`
}

type ProductsAvailableForPromotionResponse

type ProductsAvailableForPromotionResponse struct {
	core.CommonResponse

	// Method result
	Result ProductsAvailableForPromotionResult `json:"result"`
}

type ProductsAvailableForPromotionResult

type ProductsAvailableForPromotionResult struct {
	// Products list
	Products []PromotionProduct `json:"products"`

	// Total number of products that can participate in the promotion
	Total float64 `json:"total"`
}

type ProductsInPromotionParams

type ProductsInPromotionParams struct {
	// Promotion identifier
	ActionId float64 `json:"action_id"`

	// Number of values in the response. The default value is 100
	Limit float64 `json:"limit"`

	// Number of elements that will be skipped in the response. For example, if offset=10, the response will start with the 11th element found
	Offset float64 `json:"offset,omitempty"`
}

type ProductsInPromotionResponse

type ProductsInPromotionResponse struct {
	core.CommonResponse

	// Method result
	Result ProductsInPromotionResult `json:"result"`
}

type ProductsInPromotionResult

type ProductsInPromotionResult struct {
	// Products list
	Products []PromotionProduct `json:"products"`

	// Total number of products that can participate in the promotion
	Total float64 `json:"total"`
}

type ProductsToHotSaleResponse

type ProductsToHotSaleResponse struct {
	core.CommonResponse

	// Method result
	Result ProductsToHotSaleResult `json:"result"`
}

type ProductsToHotSaleResult

type ProductsToHotSaleResult struct {
	// List of products that haven't been added to the promotion
	Rejected []ProductsToHotSaleResultRejected `json:"rejected"`
}

type ProductsToHotSaleResultRejected

type ProductsToHotSaleResultRejected struct {
	//Product identifier
	ProductId float64 `json:"product_id"`

	// Reason why the product hasn't been added to the promotion
	Reason string `json:"reason"`
}

type PromotionProduct

type PromotionProduct struct {
	// Product identifier
	Id float64 `json:"id"`

	// Current product price without a discount
	Price float64 `json:"price"`

	// Promotional product price
	ActionPrice float64 `json:"action_price"`

	// Maximum possible promotional product price
	MaxActionPrice float64 `json:"max_action_price"`

	// Type of adding a product to the promotion: automatically or manually by the seller
	AddMode string `json:"add_mode"`

	// Minimum number of product units in a stock discount type promotion
	MinStock float64 `json:"min_stock"`

	// Number of product units in a stock discount type promotion
	Stock float64 `json:"stock"`
}

type Promotions

type Promotions struct {
	// contains filtered or unexported fields
}

func (Promotions) AddProductsToHotSale

func (c Promotions) AddProductsToHotSale(ctx context.Context, params *AddProductsToHotSaleParams) (*ProductsToHotSaleResponse, error)

func (Promotions) AddToPromotion

A method for adding products to an available promotion

func (Promotions) ApproveDiscountRequest

func (c Promotions) ApproveDiscountRequest(ctx context.Context, params *DiscountRequestParams) (*DiscountRequestResponse, error)

You can approve applications in statuses:

  • NEW — new
  • SEEN — viewed

func (Promotions) DeclineDiscountRequest

func (c Promotions) DeclineDiscountRequest(ctx context.Context, params *DiscountRequestParams) (*DiscountRequestResponse, error)

You can decline applications in statuses:

  • NEW—new
  • SEEN—viewed

func (Promotions) GetAvailablePromotions

func (c Promotions) GetAvailablePromotions(ctx context.Context) (*GetAvailablePromotionsResponse, error)

A method for getting a list of promotions that you can participate in

func (Promotions) ListDiscountRequests

Method for getting a list of products that customers want to buy with discount

func (Promotions) ListHotSalePromotions

func (c Promotions) ListHotSalePromotions(ctx context.Context) (*ListHotSalePromotionsResponse, error)

List of available Hot Sale promotions

func (Promotions) ProductsAvailableForHotSalePromotion

Method for getting a list of products that can participate or are already participating in the Hot Sale promotion

func (Promotions) ProductsAvailableForPromotion

A method for getting a list of products that can participate in the promotion by the promotion identifier

func (Promotions) ProductsInPromotion

func (c Promotions) ProductsInPromotion(ctx context.Context, params *ProductsInPromotionParams) (*ProductsInPromotionResponse, error)

A method for getting the list of products participating in the promotion by its identifier

func (Promotions) RemoveProduct

A method for removing products from the promotion

func (Promotions) RemoveProductsToHotSale

func (c Promotions) RemoveProductsToHotSale(ctx context.Context, params *RemoveProductsToHotSaleParams) (*ProductsToHotSaleResponse, error)

Remove product from the Hot Sale promotion

type Quant added in v1.17.0

type Quant struct {
	// List of available actions with MOQ
	AvailableActions []string `json:"available_actions"`

	// Date until which the leftover stock amount must be specified
	AwaitingStockDueDate string `json:"awaiting_stock_due_date"`

	// MOQ cancellation reason
	CancelReason `json:"cancel_reason"`

	// Seller company identifier
	CompanyId int64 `json:"company_id"`

	// MOQ creation date
	CreatedAt string `json:"created_at"`

	// Current number of shipments in the MOQ
	CurrentPostingsCount int64 `json:"current_postings_count"`

	// Time until which the MOQ must be assembled
	Cutoff string `json:"cutoff"`

	// Delivery method name
	DeliveryMethod string `json:"delivery_method_name"`

	// Destination point identifier
	DestinationPlaceId int64 `json:"destination_place_id"`

	// Destination point name
	DestinationPlaceName string `json:"destination_place_name"`

	// MOQ filling percentage
	FillingPercent float32 `json:"filling_percent"`

	// Date when the shipments start to get canceled if the MOQ is not reserved
	FirstPostingCancellationDate string `json:"first_posting_cancellation_date"`

	// MOQ identifier in Ozon system
	Id int64 `json:"id"`

	// MOQ inventory identifier
	InvQuantId int64 `json:"inv_quant_id"`

	// Date of the last MOQ status change
	LastStatusChangeAt string `json:"last_status_change_at"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Total cost of products in the MOQ
	ProductsPrice float32 `json:"products_price"`

	// Start date of MOQ filling
	QuantumStartDate string `json:"quantum_start_date"`

	// Product SKU
	SKU int64 `json:"sku"`

	// Product name
	SKUName string `json:"sku_name"`

	// MOQ statuses
	Status string `json:"status"`

	// Required number of products in the MOQ
	TargetPostingsCount int64 `json:"target_postings_count"`

	// Delivery service name
	TPLProviderName string `json:"tpl_provider_name"`

	// MOQ type: box or pallet
	Type string `json:"type"`

	// Seller warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`

	// Seller warehouse name
	WarehouseName string `json:"warehouse_name"`
}

type Quants added in v1.17.0

type Quants struct {
	// contains filtered or unexported fields
}

func (Quants) Get added in v1.17.0

func (q Quants) Get(ctx context.Context, params *GetQuantParams) (*GetQuantResponse, error)

func (Quants) List added in v1.17.0

You can leave feedback on this method in the comments section to the discussion in the Ozon for dev community.

func (Quants) Ship added in v1.17.0

func (q Quants) Ship(ctx context.Context, params *ShipQuantParams) (*ShipQuantResponse, error)

func (Quants) Status added in v1.17.0

func (q Quants) Status(ctx context.Context, params *StatusQuantParams) (*StatusQuantResponse, error)

type RFBSReturnsGroupState added in v1.8.0

type RFBSReturnsGroupState string
const (
	// All requests
	RFBSReturnsGroupStateAll RFBSReturnsGroupState = "All"

	// New
	RFBSReturnsGroupStateNew RFBSReturnsGroupState = "New"

	// Returned product is on the way for check
	RFBSReturnsGroupStateDelivering RFBSReturnsGroupState = "Delivering"

	// Returned product is being checked
	RFBSReturnsGroupStateCheckout RFBSReturnsGroupState = "Checkout"

	// Disputed
	RFBSReturnsGroupStateArbitration RFBSReturnsGroupState = "Arbitration"

	// Approved
	RFBSReturnsGroupStateApproved RFBSReturnsGroupState = "Approved"

	// Rejected
	RFBSReturnsGroupStateRejected RFBSReturnsGroupState = "Rejected"
)

type Rating

type Rating struct {
	// contains filtered or unexported fields
}

func (Rating) GetCurrentSellerRatingInfo

func (c Rating) GetCurrentSellerRatingInfo(ctx context.Context) (*GetCurrentSellerRatingInfoResponse, error)

type ReceiveRFBSReturnParams added in v1.8.0

type ReceiveRFBSReturnParams struct {
	// Return request identifier
	ReturnId int64 `json:"return_id"`
}

type ReceiveRFBSReturnResponse added in v1.8.0

type ReceiveRFBSReturnResponse struct {
	core.CommonResponse
}

type RefundRFBSParams added in v1.8.0

type RefundRFBSParams struct {
	// Return request identifier
	ReturnId int64 `json:"return_id"`

	// Refund amount for shipping the product
	ReturnForBackWay int64 `json:"return_for_back_way"`
}

type RefundRFBSResponse added in v1.8.0

type RefundRFBSResponse struct {
	core.CommonResponse
}

type RejectRFBSReturnParams added in v1.8.0

type RejectRFBSReturnParams struct {
	// Return request identifier
	ReturnId int64 `json:"return_id"`

	// Comment
	//
	// The comment is required if the
	// `rejection_reason.is_comment_required` parameter is `true`
	// in the response of the `/v2/returns/rfbs/get` method
	Comment string `json:"comment"`

	// Rejection reason identifier.
	//
	// Pass the value from the list of reasons received in the response
	// of the `/v2/returns/rfbs/get` method in the `rejection_reason` parameter
	RejectionReasonId int64 `json:"rejection_reason_id"`
}

type RejectRFBSReturnResponse added in v1.8.0

type RejectRFBSReturnResponse struct {
	core.CommonResponse
}

type RemoveProductFromPromotionParams

type RemoveProductFromPromotionParams struct {
	// Promotion identifier
	ActionId float64 `json:"action_id"`

	// List of products identifiers
	ProductIds []float64 `json:"product_ids"`
}

type RemoveProductFromPromotionResponse

type RemoveProductFromPromotionResponse struct {
	core.CommonResponse

	// Method result
	Result RemoveProductFromPromotionResult `json:"result"`
}

type RemoveProductFromPromotionResult

type RemoveProductFromPromotionResult struct {
	// List of product identifiers that were removed from the promotion
	ProductIds []float64 `json:"product_ids"`

	// List of product identifiers that weren't removed from the promotion
	Rejected []RemoveProductFromPromotionResultRejected `json:"rejected"`
}

type RemoveProductFromPromotionResultRejected

type RemoveProductFromPromotionResultRejected struct {
	// Product identifier
	ProductId float64 `json:"product_id"`

	// Reason why the product wasn't removed from the promotion
	Reason string `json:"reason"`
}

type RemoveProductWithoutSKUParams

type RemoveProductWithoutSKUParams struct {
	// Product identifier
	Products []RemoveProductWithoutSKUProduct `json:"products"`
}

type RemoveProductWithoutSKUProduct

type RemoveProductWithoutSKUProduct struct {
	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`
}

type RemoveProductWithoutSKUResponse

type RemoveProductWithoutSKUResponse struct {
	core.CommonResponse

	// Product processing status
	Status []RemoveProductWithoutSKUStatus `json:"status"`
}

type RemoveProductWithoutSKUStatus

type RemoveProductWithoutSKUStatus struct {
	// Reason of the error that occurred while processing the request
	Error string `json:"error"`

	// If the request was executed without errors and the products were deleted, the value is true
	IsDeleted bool `json:"is_deleted"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`
}

type RemoveProductsFromStrategyParams

type RemoveProductsFromStrategyParams struct {
	// List of product identifiers. The maximum number is 50
	ProductId []int64 `json:"product_id"`
}

type RemoveProductsFromStrategyResponse

type RemoveProductsFromStrategyResponse struct {
	core.CommonResponse

	// Method result
	Result RemoveProductsFromStrategyResult `json:"result"`
}

type RemoveProductsFromStrategyResult

type RemoveProductsFromStrategyResult struct {
	// Number of products with errors
	FailedProductCount int32 `json:"failed_product_count"`
}

type RemoveProductsToHotSaleParams

type RemoveProductsToHotSaleParams struct {
	// Hot Sale promotion identifier
	HotSaleId float64 `json:"hotsale_id"`

	// List of products identifiers. Maximum number of values in one request is 100
	ProductIds []float64 `json:"product_ids"`
}

type RemoveStrategyParams

type RemoveStrategyParams struct {
	// Strategy identifier
	StrategyId string `json:"strategy_id"`
}

type RemoveStrategyResponse

type RemoveStrategyResponse struct {
	core.CommonResponse
}

type ReportInfoStatus added in v1.7.0

type ReportInfoStatus string
const (
	ReportInfoWaiting    ReportInfoStatus = "waiting"
	ReportInfoProcessing ReportInfoStatus = "processing"
	ReportInfoSuccess    ReportInfoStatus = "success"
	ReportInfoFailed     ReportInfoStatus = "failed"
)

type ReportOnSoldProductsParams

type ReportOnSoldProductsParams struct {
	// Month
	Month int32 `json:"month"`

	// Year
	Year int32 `json:"year"`
}

type ReportOnSoldProductsResponse

type ReportOnSoldProductsResponse struct {
	core.CommonResponse

	// Query result
	Result ReportonSoldProductsResult `json:"result"`
}

type ReportOnSoldProductsResultHeader

type ReportOnSoldProductsResultHeader struct {
	// Report ID
	Id string `json:"number"`

	// Report generation date
	DocDate string `json:"doc_date"`

	// Date of the offer agreement
	ContractDate string `json:"contract_date"`

	// Offer agreement number
	ContractNum string `json:"contract_number"`

	// Currency of your prices
	CurrencySysName string `json:"currency_sys_name"`

	// Amount to accrue
	DocAmount float64 `json:"doc_amount"`

	// Amount to accrue with VAT
	VATAmount float64 `json:"vat_amount"`

	// Payer's TIN
	PayerINN string `json:"payer_inn"`

	// Payer's Tax Registration Reason Code (KPP)
	PayerKPP string `json:"payer_kpp"`

	// Payer's name
	PayerName string `json:"payer_name"`

	// Recipient's TIN
	RecipientINN string `json:"receiver_inn"`

	// Recipient's Tax Registration Reason Code (KPP)
	RecipientKPP string `json:"receiver_kpp"`

	// Recipient's name
	RecipientName string `json:"receiver_name"`

	// Period start in the report
	StartDate string `json:"start_date"`

	// Period end in the report
	StopDate string `json:"stop_date"`
}

type ReportOnSoldProductsResultRow

type ReportOnSoldProductsResultRow struct {
	// Row number
	RowNumber int32 `json:"rowNumber"`

	// Product Information
	Item ReturnOnSoldProduct `json:"item"`

	// Commission including the quantity of products, discounts and extra charges.
	// Ozon compensates it for the returned products
	ReturnCommission ReturnCommission `json:"return_commission"`

	// Percentage of sales commission by category
	CommissionRatio float64 `json:"commission_ratio"`

	// Delivery fee
	DeliveryCommission ReturnCommission `json:"delivery_commission"`

	// Seller's discounted price
	SellerPricePerInstance float64 `json:"seller_price_per_instance"`
}

type ReportResponse added in v1.17.0

type ReportResponse struct {
	core.CommonResponse

	// Method result
	Result ReportResult `json:"result"`
}

type ReportResult added in v1.17.0

type ReportResult struct {
	// Unique report identifier
	Code string `json:"code"`
}

type ReportType added in v1.7.0

type ReportType string
const (
	// products report
	ReportTypeSellerProducts ReportType = "SELLER_PRODUCTS"

	// transactions report
	ReportTypeSellerTransactions ReportType = "SELLER_TRANSACTIONS"

	// product prices report
	ReportTypeSellerProductPrices ReportType = "SELLER_PRODUCT_PRICES"

	// stocks report
	ReportTypeSellerStock ReportType = "SELLER_STOCK"

	// products movement report
	ReportTypeSellerProductMovement ReportType = "SELLER_PRODUCT_MOVEMENT"

	// returns report
	ReportTypeSellerReturns ReportType = "SELLER_RETURNS"

	// shipments report
	ReportTypeSellerPostings ReportType = "SELLER_POSTINGS"

	// financial report
	ReportTypeSellerFinance ReportType = "SELLER_FINANCE"

	// report on sales to legal entities
	ReportTypeDocB2BSales ReportType = "DOCUMENT_B2B_SALES"

	// settlement report
	ReportTypeMutualSettlement ReportType = "MUTUAL_SETTLEMENT"
)

type ReportonSoldProductsResult

type ReportonSoldProductsResult struct {
	// Report title page
	Header ReportOnSoldProductsResultHeader `json:"header"`

	// Report table
	Rows []ReportOnSoldProductsResultRow `json:"rows"`
}

type Reports

type Reports struct {
	// contains filtered or unexported fields
}

func (Reports) GetFBSStocks added in v1.8.0

func (c Reports) GetFBSStocks(ctx context.Context, params *GetFBSStocksParams) (*GetFBSStocksResponse, error)

Report with information about the number of available and reserved products in stock.

The method returns a report identifier. To get the report, send the identifier in the request of the `/v1/report/info` method.

func (Reports) GetFinancial

Returns information about a created report by its identifier

func (Reports) GetList

Returns the list of reports that have been generated before

func (Reports) GetProducts

Method for getting a report with products data. For example, Ozon ID, number of products, prices, status

func (Reports) GetReportDetails

func (c Reports) GetReportDetails(ctx context.Context, params *GetReportDetailsParams) (*GetReportDetailsResponse, error)

Returns information about a created report by its identifier

func (Reports) GetReturns

Method for getting a report on FBO and FBS returns

func (Reports) GetShipment

Shipment report with orders details:

  • order statuses
  • processing start date
  • order numbers
  • shipment numbers
  • shipment costs
  • shipments contents

func (Reports) IssueOnDiscountedProducts

func (c Reports) IssueOnDiscountedProducts(ctx context.Context) (*IssueOnDiscountedProductsResponse, error)

Generates a report on discounted products in Ozon warehouses. For example, Ozon can discount a product due to damage when delivering.

Returns report identifier. To get the report, send the identifier in the request body of a method `/v1/report/discounted/info`

type RescheduleShipmentDeliveryDateParams

type RescheduleShipmentDeliveryDateParams struct {
	// New delivery date period
	NewTimeslot RescheduleShipmentDeliveryDateTimeslot `json:"new_timeslot"`

	// Shipment number
	PostingNumber string `json:"posting_number"`
}

type RescheduleShipmentDeliveryDateResponse

type RescheduleShipmentDeliveryDateResponse struct {
	core.CommonResponse

	// true, if the date was changed
	Result bool `json:"result"`
}

type RescheduleShipmentDeliveryDateTimeslot

type RescheduleShipmentDeliveryDateTimeslot struct {
	// Period start date
	From time.Time `json:"from"`

	// Period end date
	To time.Time `json:"to"`
}

type Return added in v1.16.0

type Return struct {
	// Product items data
	Exemplars []ReturnExemplar `json:"exemplars"`

	// Return identifier
	Id int64 `json:"id"`

	// Company identifier
	CompanyId int64 `json:"company_id"`

	// Return reason
	ReturnReasonName string `json:"return_reason_name"`

	// Return type
	Type string `json:"type"`

	// Return scheme
	Schema string `json:"schema"`

	// Order identifier
	OrderId int64 `json:"order_id"`

	// Order number
	OrderNumber string `json:"order_number"`

	// Warehouse where the return is stored
	Place ReturnPlace `json:"place"`

	// Warehouse where returns are sent to
	TargetPlace ReturnPlace `json:"target_place"`

	// Storage details
	Storage ReturnStorage `json:"storage"`

	// Product details
	Product ReturnProduct `json:"product"`

	// Return details
	Logistic ReturnLogistic `json:"logistic"`

	// Return status details
	Visual ReturnVisual `json:"visual"`

	// Additional information
	AdditionalInfo ReturnAdditionalInfo `json:"additional_info"`

	// Previous return identifier
	SourceId int64 `json:"source_id"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Original shipment barcode
	ClearingId int64 `json:"clearing_id"`

	// Package unit identifier in the Ozon logistics system
	ReturnClearingId int64 `json:"return_clearing_id"`
}

type ReturnAdditionalInfo added in v1.16.0

type ReturnAdditionalInfo struct {
	// true, if the return package is opened
	IsOpened bool `json:"is_opened"`

	// true, if the return belongs to Super Economy products
	IsSuperEconom bool `json:"is_super_econom"`
}

type ReturnArrivalPass added in v1.12.0

type ReturnArrivalPass struct {
	// Date and time of arrival in UTC format. At that time, the pass will become valid
	ArrivalTime time.Time `json:"arrival_time"`

	// Driver full name
	DriverName string `json:"driver_name"`

	// Driver phone number
	DriverPhone string `json:"driver_phone"`

	// Car license plate
	VehicleLicensePlate string `json:"vehicle_license_plate"`

	// Car model
	VehicleModel string `json:"vehicle_model"`

	// Drop-off point identifier for which the pass is issued
	DropoffPointId int64 `json:"dropoff_point_id"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`
}

type ReturnCommission added in v1.17.0

type ReturnCommission struct {
	// Amount
	Amount float64 `json:"amount"`

	// Points for discounts
	Bonus float64 `json:"bonus"`

	// Commission for sold products, including discounts and extra charges
	Commission float64 `json:"commission"`

	// Additional payment at the expense of Ozon
	Compensation float64 `json:"compensation"`

	// Price per item
	PricePerInstance float64 `json:"price_per_instance"`

	// Product quantity
	Quantity int32 `json:"quantity"`

	// Ozon referral fee
	StandardFee float64 `json:"standard_fee"`

	// Payouts on partner loyalty mechanics: green prices
	BankCoinvestment float64 `json:"bank_coinvestment"`

	// Payouts on partner loyalty mechanics: stars
	Stars float64 `json:"stars"`

	// Total accrual
	Total float64 `json:"total"`
}

type ReturnExemplar added in v1.16.0

type ReturnExemplar struct {
	// Product identifier
	Id int64 `json:"id"`
}

type ReturnLogistic added in v1.16.0

type ReturnLogistic struct {
	// Date when the order was placed for technical return
	TechnicalReturnMoment time.Time `json:"technical_return_moment"`

	// Date when the return arrived to the warehouse or was handed over to the seller
	FinalMoment time.Time `json:"final_moment"`

	// Date when the seller received compensation for the return
	CancelledWithCompensationMoment time.Time `json:"cancelled_with_compensation_moment"`

	// Date when the customer returned the product
	ReturnDate time.Time `json:"return_date"`

	// Return label barcode
	Barcode string `json:"barcode"`
}

type ReturnOnSoldProduct added in v1.17.0

type ReturnOnSoldProduct struct {
	// Product name
	ProductName string `json:"name"`

	// Product barcode
	Barcode string `json:"barcode"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	SKU int64 `json:"sku"`
}

type ReturnPlace added in v1.16.0

type ReturnPlace struct {
	// Warehouse identifier
	Id int64 `json:"id"`

	// Warehouse name
	Name string `json:"name"`

	// Warehouse address
	Address string `json:"address"`
}

type ReturnProduct added in v1.16.0

type ReturnProduct struct {
	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// product name
	Name string `json:"name"`

	// Product price details
	Price ReturnSum `json:"price"`

	// Product cost without commission
	PriceWithoutCommission ReturnSum `json:"price_without_commission"`

	// Sales commission by category
	CommissionPercent float64 `json:"commission_percent"`

	// Commission details
	Commission ReturnSum `json:"commission"`

	// Product quantity
	Quantity int32 `json:"quantity"`
}

type ReturnStorage added in v1.16.0

type ReturnStorage struct {
	// Storage cost details
	Sum ReturnSum `json:"sum"`

	// First day of charging for storage
	TarifficationsFirstDate time.Time `json:"tariffication_first_date"`

	// Start date for storage fees
	TarifficationsStartDate time.Time `json:"tariffication_start_date"`

	// Date when the return was ready for handover
	ArrivedMoment time.Time `json:"arrived_moment"`

	// Number of days the return has been waiting for handover
	Days int64 `json:"days"`

	// Disposal cost details
	UtilizationSum ReturnSum `json:"utilization_sum"`

	// Planned disposal date
	UtilizationForecastDate string `json:"utilization_forecast_date"`
}

type ReturnSum added in v1.16.0

type ReturnSum struct {
	// Currency
	CurrencyCode string `json:"currency_code"`

	// Disposal cost
	Price float64 `json:"price"`
}

type ReturnVisual added in v1.16.0

type ReturnVisual struct {
	// Return status
	Status ReturnVisualStatus `json:"status"`

	// Date the return status changed
	ChangeMoment time.Time `json:"change_moment"`
}

type ReturnVisualStatus added in v1.16.0

type ReturnVisualStatus struct {
	// Return status identifier
	Id int32 `json:"id"`

	// Return status name
	DisplayName string `json:"display_name"`

	// System name of the return status
	SystemName string `json:"sys_name"`
}

type Returns

type Returns struct {
	// contains filtered or unexported fields
}

func (Returns) ApproveRFBSReturn added in v1.8.0

func (c Returns) ApproveRFBSReturn(ctx context.Context, params *ApproveRFBSReturnParams) (*ApproveRFBSReturnResponse, error)

The method allows to approve an rFBS return request and agree to receive products for verification.

Confirm that you've received the product using the `/v2/returns/rfbs/receive-return` method.

func (Returns) CompensateRFBSReturn added in v1.8.0

func (c Returns) CompensateRFBSReturn(ctx context.Context, params *CompensateRFBSReturnParams) (*CompensateRFBSReturnResponse, error)

Using this method you can confirm the partial compensation and agree to keep the product with the customer

func (Returns) FBSQuantity added in v1.12.0

func (Returns) GetGiveoutBarcode added in v1.8.0

func (c Returns) GetGiveoutBarcode(ctx context.Context) (*GetGiveoutBarcodeResponse, error)

Value of barcode for return shipments

Use this method to get the barcode from the response of the `/v1/return/giveout/get-png` and `/v1/return/giveout/get-pdf` methods in text format

func (Returns) GetGiveoutInfo added in v1.8.0

func (c Returns) GetGiveoutInfo(ctx context.Context, params *GetGiveoutInfoParams) (*GetGiveoutInfoResponse, error)

Information on return shipment

func (Returns) GetGiveoutList added in v1.8.0

func (c Returns) GetGiveoutList(ctx context.Context, params *GetGiveoutListParams) (*GetGiveoutListResponse, error)

Return shipments list

func (Returns) GetGiveoutPDF added in v1.8.0

func (c Returns) GetGiveoutPDF(ctx context.Context) (*GetGiveoutResponse, error)

Barcode for return shipment in PDF format

Returns a PDF file with a barcode

func (Returns) GetGiveoutPNG added in v1.8.0

func (c Returns) GetGiveoutPNG(ctx context.Context) (*GetGiveoutResponse, error)

Barcode for return shipment in PNG format

Returns a PNG file with a barcode

func (Returns) GetRFBSReturn added in v1.8.0

func (c Returns) GetRFBSReturn(ctx context.Context, params *GetRFBSReturnParams) (*GetRFBSReturnResponse, error)

Get information about a return request

func (Returns) GetRFBSReturns added in v1.8.0

func (c Returns) GetRFBSReturns(ctx context.Context, params *GetRFBSReturnsParams) (*GetRFBSReturnsResponse, error)

Get a list of return requests

func (Returns) IsGiveoutEnabled added in v1.8.0

func (c Returns) IsGiveoutEnabled(ctx context.Context) (*IsGiveoutEnabledResponse, error)

Check the ability to receive return shipments by barcode

The `enabled` parameter is true if you can pick up return shipments by barcode.

func (Returns) List added in v1.16.0

func (Returns) ReceiveRFBSReturn added in v1.8.0

func (c Returns) ReceiveRFBSReturn(ctx context.Context, params *ReceiveRFBSReturnParams) (*ReceiveRFBSReturnResponse, error)

Confirm receipt of a product for check

func (Returns) RefundRFBS added in v1.8.0

func (c Returns) RefundRFBS(ctx context.Context, params *RefundRFBSParams) (*RefundRFBSResponse, error)

The method confirms the refund of the full product cost. Use the method if you agree to refund the customer:

Immediately without receiving the product. After you received and checked the product. If the product is defective or damaged, you also refund its return shipment cost.

func (Returns) RejectRFBSReturn added in v1.8.0

func (c Returns) RejectRFBSReturn(ctx context.Context, params *RejectRFBSReturnParams) (*RejectRFBSReturnResponse, error)

The method rejects an rFBS return request. Explain your decision in the `comment` parameter

func (Returns) ResetGiveoutBarcode added in v1.8.0

func (c Returns) ResetGiveoutBarcode(ctx context.Context) (*GetGiveoutResponse, error)

Use this method if an unauthorized person has gained access to your barcode.

The method returns a PNG file with the new barcode. Once the method is used, you won't be able to get a return shipment using the old barcodes. To get a new barcode in PDF format, use the /v1/return/giveout/get-pdf method

type ReviewDetails added in v1.18.0

type ReviewDetails struct {
	// Number of comments on the review
	CommentsAmount int32 `json:"comments_amount"`

	// Review identifier
	Id string `json:"id"`

	// true, if the review affects the rating calculation
	IsRatingParticipant bool `json:"is_rating_participant"`

	// Status of the order for which the customer left a review
	OrderStatus string `json:"order_status"`

	// Number of images in the review
	PhotosAmount int32 `json:"photos_amount"`

	// Review publication date
	PublishedAt time.Time `json:"published_at"`

	// Review rating
	Rating int32 `json:"rating"`

	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`

	// Review status
	Status string `json:"status"`

	// Review text
	Text string `json:"text"`

	// Number of videos for the review
	VideosAmount int32 `json:"videos_amount"`
}

type ReviewPhoto added in v1.18.0

type ReviewPhoto struct {
	// Height
	Height int32 `json:"height"`

	// Link to image
	URL string `json:"url"`

	// Width
	Width int32 `json:"width"`
}

type ReviewVideo added in v1.18.0

type ReviewVideo struct {
	// Height
	Height int64 `json:"height"`

	// Link to video preview
	PreviewURL string `json:"preview_url"`

	// Link to short video
	ShortVideoPreviewURL string `json:"short_video_preview_url"`

	// Video link
	URL string `json:"url"`

	// Width
	Width int64 `json:"width"`
}

type Reviews added in v1.18.0

type Reviews struct {
	// contains filtered or unexported fields
}

func (Reviews) ChangeStatus added in v1.18.0

func (c Reviews) ChangeStatus(ctx context.Context, params *ChangeStatusParams) (*ChangeStatusResponse, error)

Only available to sellers with the Premium Plus subscription

func (Reviews) Count added in v1.18.0

Only available to sellers with the Premium Plus subscription

func (Reviews) DeleteComment added in v1.18.0

func (c Reviews) DeleteComment(ctx context.Context, params *DeleteCommentParams) (*DeleteCommentResponse, error)

Only available to sellers with the Premium Plus subscription

func (Reviews) Get added in v1.18.0

Only available to sellers with the Premium Plus subscription

func (Reviews) LeaveComment added in v1.18.0

func (c Reviews) LeaveComment(ctx context.Context, params *LeaveCommentParams) (*LeaveCommentResponse, error)

Only available to sellers with the Premium Plus subscription

func (Reviews) List added in v1.18.0

Only available to sellers with the Premium Plus subscription

func (Reviews) ListComments added in v1.18.0

func (c Reviews) ListComments(ctx context.Context, params *ListCommentsParams) (*ListCommentsResponse, error)

Only available to sellers with the Premium Plus subscription

Method returns information about comments on reviews that have passed moderation

type SKUAvailability added in v1.7.0

type SKUAvailability string

type SearchAttributeDictionaryParams added in v1.15.0

type SearchAttributeDictionaryParams struct {
	// Characteristics identifier
	AttributeId int64 `json:"attribute_id"`

	// Category identifier
	DescriptionCategoryId int64 `json:"description_category_id"`

	// The value to be searched for
	//  - minimum—2 characters
	Value string `json:"value"`

	// Number of values in the response:
	//
	// 	- maximum—100,
	// 	- minimum—1.
	Limit int64 `json:"limit,omitempty"`

	// Product type identifier
	TypeId int64 `json:"type_id"`
}

type SearchAttributeDictionaryResponse added in v1.15.0

type SearchAttributeDictionaryResponse struct {
	core.CommonResponse

	// Characteristic values
	Result []SearchAttributeDictionaryResult `json:"result"`
}

type SearchAttributeDictionaryResult added in v1.15.0

type SearchAttributeDictionaryResult struct {
	// Characteristic value identifier
	Id int64 `json:"id"`

	// Additional description
	Info string `json:"info"`

	// Image link
	Picture string `json:"picture"`

	// Product characteristic value
	Value string `json:"value"`
}

type SendFileParams

type SendFileParams struct {
	// File as a base64 string
	Base64Content string `json:"base64_content"`

	// Chat identifier
	ChatId string `json:"chat_id"`

	// File name with extension
	Name string `json:"name"`
}

type SendFileResponse

type SendFileResponse struct {
	core.CommonResponse

	// Method result
	Result string `json:"result"`
}

type SendMessageParams

type SendMessageParams struct {
	// Chat identifier
	ChatId string `json:"chat_id"`

	// Message text in the plain text format
	Text string `json:"text"`
}

type SendMessageResponse

type SendMessageResponse struct {
	core.CommonResponse

	// Method result
	Result string `json:"result"`
}

type SetDiscountOnMarkdownProductParams

type SetDiscountOnMarkdownProductParams struct {
	// Discount amount: from 3 to 99 percents
	Discount int32 `json:"discount"`

	// Product identifier
	ProductId int64 `json:"product_id"`
}

type SetDiscountOnMarkdownProductResponse

type SetDiscountOnMarkdownProductResponse struct {
	core.CommonResponse

	// Method result. true if the query was executed without errors
	Result bool `json:"result"`
}

type SetManufacturingCountryParams

type SetManufacturingCountryParams struct {
	// Shipment identifier
	PostingNumber string `json:"posting_number"`

	// Product identifier
	ProductId int64 `json:"product_id"`

	// Country ISO code from the `/v2/posting/fbs/product/country/list` method response
	CountryISOCode string `json:"country_iso_code"`
}

type SetManufacturingCountryResponse

type SetManufacturingCountryResponse struct {
	core.CommonResponse

	// Product identifier
	ProductId int64 `json:"product_id"`

	// Indication that you need to pass the сustoms cargo declaration (CCD) number for the product and shipment
	IsGTDNeeded bool `json:"is_gtd_needed"`
}

type SetShippingDateParams added in v1.16.0

type SetShippingDateParams struct {
	// New shipping date
	NewCutoffDate time.Time `json:"new_cutoff_date"`

	// Shipment number
	PostingNumber string `json:"posting_number"`
}

type SetShippingDateResponse added in v1.16.0

type SetShippingDateResponse struct {
	core.CommonResponse

	// true if the new date is set
	Result bool `json:"result"`
}

type ShipQuantParams added in v1.17.0

type ShipQuantParams struct {
	// MOQ inventory identifier
	QuantId int64 `json:"quant_id"`
}

type ShipQuantResponse added in v1.17.0

type ShipQuantResponse struct {
	core.CommonResponse
}

type ShipmentCancellationReasonsParams

type ShipmentCancellationReasonsParams struct {
	// Shipment numbers
	RelatedPostingNumbers []string `json:"related_posting_numbers"`
}

type ShipmentCancellationReasonsResponse

type ShipmentCancellationReasonsResponse struct {
	core.CommonResponse

	// Request result
	Result []ShipmentCancellationReasonsResult `json:"result"`
}

type ShipmentCancellationReasonsResult

type ShipmentCancellationReasonsResult struct {
	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Information about cancellation reasons
	Reasons []ShipmentCancellationReasonsResultReason `json:"reasons"`
}

type ShipmentCancellationReasonsResultReason

type ShipmentCancellationReasonsResultReason struct {
	// Cancellation reasons
	Id int64 `json:"id"`

	// Reason description
	Title string `json:"title"`

	// Shipment cancellation initiator
	TypeId string `json:"type_id"`
}

type ShipmentCertificateFilterStatus

type ShipmentCertificateFilterStatus string
const (
	// new
	ShitmentCertificateFilterNew ShipmentCertificateFilterStatus = "new"

	// retry creation
	ShitmentCertificateFilterAwaitingRetry ShipmentCertificateFilterStatus = "awaiting-retry"

	// is being packaged
	ShitmentCertificateFilterInProcess ShipmentCertificateFilterStatus = "in_process"

	// created
	ShitmentCertificateFilterSuccess ShipmentCertificateFilterStatus = "success"

	// creation error
	ShitmentCertificateFilterError ShipmentCertificateFilterStatus = "error"

	// sent
	ShitmentCertificateFilterSend ShipmentCertificateFilterStatus = "sent"

	// received
	ShitmentCertificateFilterReceived ShipmentCertificateFilterStatus = "received"

	// packaged
	ShitmentCertificateFilterFormed ShipmentCertificateFilterStatus = "formed"

	// canceled
	ShitmentCertificateFilterCancelled ShipmentCertificateFilterStatus = "cancelled"

	// in the queue for packaging
	ShitmentCertificateFilterPending ShipmentCertificateFilterStatus = "pending"

	// in the queue for completion
	ShitmentCertificateFilterCompletionEnqueued ShipmentCertificateFilterStatus = "completion_enqueued"

	// in the process of completion
	ShitmentCertificateFilterCompletionProcessing ShipmentCertificateFilterStatus = "completion_processing"

	// completion error
	ShitmentCertificateFilterCompletionFailed ShipmentCertificateFilterStatus = "completion_failed"

	// in the queue for cancellation
	ShitmentCertificateFilterCancelationEnqueued ShipmentCertificateFilterStatus = "cancelation_enqueued"

	// in the process of cancellation
	ShitmentCertificateFilterCancelationProcessing ShipmentCertificateFilterStatus = "cancelation_processing"

	// cancellation error
	ShitmentCertificateFilterCancelationFailed ShipmentCertificateFilterStatus = "cancelation_failed"

	// completed
	ShitmentCertificateFilterCompleted ShipmentCertificateFilterStatus = "completed"

	// closed
	ShitmentCertificateFilterClosed ShipmentCertificateFilterStatus = "closed"
)

type ShipmentProduct

type ShipmentProduct struct {
	PostingProduct

	// Product dimensions
	Dimensions ProductDimension `json:"dimensions"`
}

type ShipmentStatus

type ShipmentStatus string
const (
	// acceptance is in progress
	AcceptanceInProgress ShipmentStatus = "acceptance_in_progress"

	// arbitration
	Arbitration ShipmentStatus = "arbitration"

	// awaiting confirmation
	AwaitingApprove ShipmentStatus = "awaiting_approve"

	// awaiting shipping
	AwaitingDeliver ShipmentStatus = "awaiting_deliver"

	// awaiting packaging
	AwaitingPackaging ShipmentStatus = "awaiting_packaging"

	// created
	AwaitingVerification ShipmentStatus = "awaiting_verification"

	// cancelled
	CancelledSubstatus ShipmentStatus = "cancelled"

	// delivered
	Delivered ShipmentStatus = "delivered"

	// delivery is in progress
	Delivering ShipmentStatus = "delivering"

	// picked up by driver
	DriverPickup ShipmentStatus = "driver_pickup"

	// not accepted at the sorting center
	NotAccepted ShipmentStatus = "not_accepted"

	// sent by the seller
	SentBySeller ShipmentStatus = "sent_by_seller"
)
const (
	// acceptance in progress
	PostingAcceptanceInProgress ShipmentStatus = "posting_acceptance_in_progress"

	// arbitrage
	PostingInArbitration ShipmentStatus = "posting_in_arbitration"

	// created
	PostingCreated ShipmentStatus = "posting_created"

	// in the freight
	PostingInCarriage ShipmentStatus = "posting_in_carriage"

	// not added to the freight
	PostingNotInCarriage ShipmentStatus = "posting_not_in_carriage"

	// registered
	PostingRegistered ShipmentStatus = "posting_registered"

	// is handed over to the delivery service
	PostingTransferringToDelivery ShipmentStatus = "posting_transferring_to_delivery"

	// waiting for passport data
	PostingAwaitingPassportData ShipmentStatus = "posting_awaiting_passport_data"

	// created
	PostingCreatedSubstatus ShipmentStatus = "posting_created"

	// awaiting registration
	PostingAwaitingRegistration ShipmentStatus = "posting_awaiting_registration"

	// registration error
	PostingRegistrationError ShipmentStatus = "posting_registration_error"

	// created
	PostingSplitPending ShipmentStatus = "posting_split_pending"

	// canceled
	PostingCancelled ShipmentStatus = "posting_canceled"

	// customer delivery arbitrage
	PostingInClientArbitration ShipmentStatus = "posting_in_client_arbitration"

	// delivered
	PostingDelivered ShipmentStatus = "posting_delivered"

	// recieved
	PostingReceived ShipmentStatus = "posting_received"

	// presumably delivered
	PostingConditionallyDelivered ShipmentStatus = "posting_conditionally_delivered"

	// courier on the way
	PostingInCourierService ShipmentStatus = "posting_in_courier_service"

	// at the pick-up point
	PostingInPickupPoint ShipmentStatus = "posting_in_pickup_point"

	// on the way to the city
	PostingOnWayToCity ShipmentStatus = "posting_on_way_to_city"

	// on the way to the pick-up point
	PostingOnWayToPickupPoint ShipmentStatus = "posting_on_way_to_pickup_point"

	// returned to the warehouse
	PostingReturnedToWarehouse ShipmentStatus = "posting_returned_to_warehouse"

	// is handed over to the courier
	PostingTransferredToCourierService ShipmentStatus = "posting_transferred_to_courier_service"

	// handed over to the driver
	PostingDriverPickup ShipmentStatus = "posting_driver_pick_up"

	// not accepted at the sorting center
	PostingNotInSortCenter ShipmentStatus = "posting_not_in_sort_center"

	// sent by the seller
	SentBySellerSubstatus ShipmentStatus = "sent_by_seller"
)

type ShipmentSubstatus

type ShipmentSubstatus string

type ShipmentsCancellatinoReasonsResult

type ShipmentsCancellatinoReasonsResult struct {
	// Cancellation reason
	Id int64 `json:"id"`

	// Shipment cancellation result. true if the request is available for cancellation
	IsAvailableForCancellation bool `json:"is_available_for_cancellation"`

	// Category name
	Title string `json:"title"`

	// Shipment cancellation initiator:
	//   - buyer
	//   - seller
	TypeId string `json:"type_id"`
}

type ShipmentsCancellationReasonsResponse

type ShipmentsCancellationReasonsResponse struct {
	core.CommonResponse

	// Method result
	Result []ShipmentsCancellatinoReasonsResult `json:"result"`
}

type SpecifyNumberOfBoxesParams

type SpecifyNumberOfBoxesParams struct {
	// Multi-box shipment identifier
	PostingNumber string `json:"posting_number"`

	// Number of boxes in which the product is packed
	MultiBoxQuantity int64 `json:"multi_box_qty"`
}

type SpecifyNumberOfBoxesResponse

type SpecifyNumberOfBoxesResponse struct {
	core.CommonResponse

	// Result of transferring the boxes number
	Result SpecifyNumberOfBoxesResult `json:"result"`
}

type SpecifyNumberOfBoxesResult

type SpecifyNumberOfBoxesResult struct {
	// Possible values:
	//   - true — the number is successfully passed.
	//   - false — an error occurred while passing the number. Please try again
	Result bool `json:"result"`
}

type SplitOrderParamPosting added in v1.16.0

type SplitOrderParamPosting struct {
	Products []SplitOrderPostingProduct `json:"products"`
}

type SplitOrderParams added in v1.16.0

type SplitOrderParams struct {
	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Shipments list the order will be split into. You can split one order per one request
	Postings []SplitOrderParamPosting `json:"postings"`
}

type SplitOrderPosting added in v1.16.0

type SplitOrderPosting struct {
	// Shipment number
	PostingNumber string `json:"posting_number"`

	// List of products in the shipment
	Products []SplitOrderPostingProduct `json:"products"`
}

type SplitOrderPostingProduct added in v1.16.0

type SplitOrderPostingProduct struct {
	// FBS product identifier in the Ozon system, SKU
	ProductId int64 `json:"product_id"`

	// Product quantity
	Quantity int64 `json:"quantity"`
}

type SplitOrderResponse added in v1.16.0

type SplitOrderResponse struct {
	core.CommonResponse

	// Original shipment details
	ParentPosting SplitOrderPosting `json:"parent_posting"`

	// List of shipments the order was split into
	Postings []SplitOrderPosting `json:"postings"`
}

type StatusCancelledSupplyOrderParams added in v1.18.0

type StatusCancelledSupplyOrderParams struct {
	// Operation identifier for canceling the supply request
	OperationId string `json:"operation_id"`
}

type StatusCancelledSupplyOrderResponse added in v1.18.0

type StatusCancelledSupplyOrderResponse struct {
	core.CommonResponse

	// Reason why the supply request can't be canceled
	ErrorReasons []string `json:"error_reasons"`

	// Details on supply request cancellation
	Result StatusCancelledSupplyOrderResult `json:"result"`

	// Cancellation status of the supply request
	Status string `json:"status"`
}

type StatusCancelledSupplyOrderResult added in v1.18.0

type StatusCancelledSupplyOrderResult struct {
	// true, if supply request is canceled
	IsOrderCancelled bool `json:"is_order_cancelled"`

	// List of canceled supplies
	Supplies []StatusCancelledSupplyOrderSupply `json:"supplies"`
}

type StatusCancelledSupplyOrderSupply added in v1.18.0

type StatusCancelledSupplyOrderSupply struct {
	// Reason why supplies can't be canceled
	ErrorReasons []string `json:"error_reasons"`

	// true, if supply is canceled
	IsSupplyCancelled bool `json:"is_supply_cancelled"`

	// Supply identifier
	SupplyId int64 `json:"supply_id"`
}

type StatusOfActParams

type StatusOfActParams struct {
	// Document generation task number (freight identifier) received from the POST `/v2/posting/fbs/act/create` method
	Id int64 `json:"id"`
}

type StatusOfActResponse

type StatusOfActResponse struct {
	core.CommonResponse

	// Method result
	Result StatusOfActResponseResult `json:"result"`
}

type StatusOfActResponseResult

type StatusOfActResponseResult struct {
	// Acceptance and transfer certificate and a waybill type.
	//
	// If the value is ozon_digital,
	// use the `/v2/posting/fbs/digital/act/check-status` and `/v2/posting/fbs/digital/act/get-pdf` methods for getting digital acceptance
	// and transfer certificate and waybill
	ActType string `json:"act_type"`

	// List with numbers of shipments that are included in the acceptance and transfer certificate.
	// You should hand these shipments over today
	AddedToAct []string `json:"added_to_act"`

	// List with numbers of shipments that are not included in the acceptance and transfer certificate.
	// You should hand these shipments over in the next shipping
	RemovedFromAct []string `json:"removed_from_act"`

	// Request status:
	//
	//   - in_process — documents generation in process, please wait.
	//   - ready — documents are ready for downloading.
	//   - error — error occured during document geneartion process. Send a request again.
	//   - cancelled — documents generation was canceled. Send a request again.
	//   - The next postings are not ready — error occured, shipmants are not included in the shipping. Wait and check request results again. If you see the error again, contact our support team
	Status string `json:"status"`

	// Indication of a partial freight. true if the freigth is partial.
	//
	// Partial freigt means that the shipment was splitted into several parts and
	// for each of them you need to generate separate acceptance and transfer certificates
	IsPartial bool `json:"is_partial"`

	// Indication that there are shipments subject to shipping that are not in the current freight. true if there are such shipments.
	//
	// If there are such shipments, create a new acceptance and transfer certificate
	// using the `/v2/posting/fbs/act/create` method and check the creation status. Create acts until this field returns false
	HasPostingsForNextCarriage bool `json:"has_postings_for_next_carriage"`

	// Serial number of the partial freight
	PartialSum int64 `json:"partial_sum"`
}

type StatusOfUploadingActivationCodesParams

type StatusOfUploadingActivationCodesParams struct {
	// Uploading activation codes task identifier that was received from the `/v1/product/upload_digital_codes` method
	TaskId int64 `json:"task_id"`
}

type StatusOfUploadingActivationCodesResponse

type StatusOfUploadingActivationCodesResponse struct {
	core.CommonResponse

	// Method result
	Result StatusOfUploadingActivationCodesResult `json:"result"`
}

type StatusOfUploadingActivationCodesResult

type StatusOfUploadingActivationCodesResult struct {
	// Upload status:
	//   - pending — products in queue for processing.
	//   - imported — the product has been successfully uploaded.
	//   - failed — the product was uploaded with errors
	Status string `json:"status"`
}

type StatusPriceRelevanceTimerParams added in v1.18.0

type StatusPriceRelevanceTimerParams struct {
	// List of product identifiers
	ProductIds []string `json:"product_ids"`
}

type StatusPriceRelevanceTimerResponse added in v1.18.0

type StatusPriceRelevanceTimerResponse struct {
	core.CommonResponse

	Statuses []PriceRelevanceTimerStatus `json:"statuses"`
}

type StatusQuantParams added in v1.17.0

type StatusQuantParams struct {
	// MOQ inventory identifier
	QuantId int64 `json:"inv_quant_id"`
}

type StatusQuantResponse added in v1.17.0

type StatusQuantResponse struct {
	core.CommonResponse

	// MOQ statuses
	Status string `json:"status"`
}

type StockItem added in v1.17.0

type StockItem struct {
	// Stock of defective products, pcs
	DefectCount int64 `json:"defect_stock_count"`

	// Stock of near-expired products, pcs
	ExpiringCount int64 `json:"expiring_stock_count"`

	// Product name
	ProductName string `json:"name"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`

	// Stock of valid products
	ValidCount int64 `json:"valid_stock_count"`

	// Stock of products that waiting for documents
	WaitingDocsCount int64 `json:"waitingdocs_stock_count"`

	// Warehouse name
	WarehouseName string `json:"warehouse_name"`
}

type StocksInSellersWarehouseParams

type StocksInSellersWarehouseParams struct {
	// Product SKU
	SKU []string `json:"sku"`
}

type StocksInSellersWarehouseResponse

type StocksInSellersWarehouseResponse struct {
	core.CommonResponse

	// Method result
	Result []StocksInSellersWarehouseResult `json:"result"`
}

type StocksInSellersWarehouseResult

type StocksInSellersWarehouseResult struct {
	// SKU of the product that is sold from the seller's warehouse (FBS and RFBS schemes)
	SKU int64 `json:"sku"`

	// Total number of items in the warehouse
	Present int64 `json:"present"`

	// The product identifier in the seller's system
	ProductId int64 `json:"product_id"`

	// The number of reserved products in the warehouse
	Reserved int64 `json:"reserved"`

	// Warehouse identifier
	WarehouseId int64 `json:"warehouse_id"`

	// Warehouse name
	WarehouseName string `json:"warehouse_name"`
}

type Strategies

type Strategies struct {
	// contains filtered or unexported fields
}

func (Strategies) AddProducts

func (Strategies) ChangeStatus

func (Strategies) Create

func (Strategies) GetCompetitorPrice

func (c Strategies) GetCompetitorPrice(ctx context.Context, params *GetCompetitorPriceParams) (*GetCompetitorPriceResponse, error)

If you add a product to your pricing strategy, the method returns you the price and a link to the competitor's product

func (Strategies) Info

func (Strategies) List

func (Strategies) ListCompetitors

func (c Strategies) ListCompetitors(ctx context.Context, params *ListCompetitorsParams) (*ListCompetitorsResponse, error)

Method for getting a list of competitors—sellers with similar products in other online stores and marketplaces

func (Strategies) Remove

func (Strategies) Update

type StrategyType

type StrategyType string
const (
	MinExtPrice StrategyType = "MIN_EXT_PRICE"
	CompPrice   StrategyType = "COMP_PRICE"
)

type StrategyUpdateType

type StrategyUpdateType string
const (
	StrategyEnabled          StrategyUpdateType = "strategyEnabled"
	StrategyDisabled         StrategyUpdateType = "strategyDisabled"
	StrategyChanged          StrategyUpdateType = "strategyChanged"
	StrategyCreated          StrategyUpdateType = "strategyCreated"
	StrategyItemsListChanged StrategyUpdateType = "strategyItemsListChanged"
)

type Supply added in v1.17.0

type Supply struct {
	// Supply contents identifier. Used in the /v1/supply-order/bundle method
	BundleId string `json:"bundle_id"`

	// Filter by supply status
	SupplyState string `json:"supply_state"`

	// Storage warehouse identifier
	StorageWarehouseId int64 `json:"storage_warehouse_id"`

	// Product tags in the supply request
	SupplyTags []SupplyTag `json:"supply_tags"`

	// Supply identifier
	Id int64 `json:"supply_id"`
}

type SupplyContentItem added in v1.17.0

type SupplyContentItem struct {
	// Link to product image
	IconPath string `json:"icon_path"`

	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`

	// Product name
	Name string `json:"name"`

	// Product items quantity
	Quantity int32 `json:"quantity"`

	// Barcode
	Barcode string `json:"barcode"`

	// Product identifier
	ProductId int64 `json:"product_id"`

	// Quantity of products in one package
	Quant int32 `json:"quant"`

	// true if the quantity of products in one package can be edited
	IsQuantEditable bool `json:"is_quant_editable"`

	// Volume of products in liters
	VolumeInLiters float64 `json:"volume_in_litres"`

	// Volume of all products in liters
	TotalVolumeInLiters float64 `json:"total_volume_in_litres"`

	// Product article code
	ContractorItemCode string `json:"contractor_item_code"`

	// Super product label
	SFBOAttribute string `json:"sfbo_attribute"`

	// Type of wrapper
	ShipmentType string `json:"shipment_type"`
}

type SupplyDraftCluster added in v1.17.0

type SupplyDraftCluster struct {
	// Cluster identifier
	Id int64 `json:"cluster_id"`

	// Cluster name
	Name string `json:"cluster_name"`

	// Warehouses
	Warehouses []SupplyDraftWarehouse `json:"warehouses"`
}

type SupplyDraftWarehouse added in v1.17.0

type SupplyDraftWarehouse struct {
	// Warehouse address
	Address string `json:"address"`

	// Product list bundle
	BundleIds []SupplyDraftWarehouseBundle `json:"bundle_ids"`

	// Warehouse name
	Name string `json:"name"`

	// Bundle of products that don't come in a shipment. Use the parameter in the /v1/supply-order/bundle method to get details.
	RestrictedBundleId string `json:"restricted_bundle_id"`

	// Warehouse availability
	Status SupplyDraftWarehouseStatus `json:"status"`

	// Supply warehouses
	SupplyWarehouse SupplyWarehouse `json:"supply_warehouse"`

	// Warehouse rank in the cluster
	TotalRank int32 `json:"total_rank"`

	// Warehouse rating
	TotalScore float64 `json:"total_score"`

	// Estimated delivery time
	//
	// Nullable
	TravelTimeDays *int64 `json:"travel_time_days"`

	// Warehouse identifier
	Id int64 `json:"warehouse_id"`
}

type SupplyDraftWarehouseBundle added in v1.17.0

type SupplyDraftWarehouseBundle struct {
	// Bundle identifier. Use the parameter in the /v1/supply-order/bundle method to get details
	Id string `json:"bundle_id"`

	// Indicates that the UTD is to be passed
	IsDocless bool `json:"is_docless"`
}

type SupplyDraftWarehouseStatus added in v1.17.0

type SupplyDraftWarehouseStatus struct {
	// Reason why the warehouse isn't available
	InvalidReason string `json:"invalid_reason"`

	// Warehouse availability
	IsAvailable bool `json:"is_available"`

	// Warehouse status
	State string `json:"state"`
}

type SupplyOrder added in v1.17.0

type SupplyOrder struct {
	// true if the supply request can be canceled
	CanCancel bool `json:"can_cancel"`

	// Date of supply request creation
	CreationDate string `json:"creation_date"`

	// Request source
	CreationFlow string `json:"creation_flow"`

	// Time remaining in seconds to fill in the supply details. Only for requests from the vDC
	DataFillingDeadline time.Time `json:"data_filling_deadline_utc"`

	// Supply warehouse identifier
	DropoffWarehouseId int64 `json:"dropoff_warehouse_id"`

	// true if the supply request contains Super Economy products
	IsEconom bool `json:"is_econom"`

	// true if the seller has Super supplies enabled
	IsSuperFBO bool `json:"is_super_fbo"`

	// true if the supply request is virtual
	IsVirtual bool `json:"is_virtual"`

	// true if the supply request contains Super products
	ProductSuperFBO bool `json:"product_super_fbo"`

	// Filter by supply status
	State string `json:"state"`

	// Supply request contents
	Supplies []Supply `json:"supplies"`

	// Supply request identifier
	Id int64 `json:"supply_order_id"`

	// Request number
	OrderNumber string `json:"supply_order_number"`

	// Supply time slot
	Timeslot []SupplyTimeslot `json:"timeslot"`

	// Driver and vehicle details
	Vehicle []SupplyVehicle `json:"vehicle"`
}

type SupplyOrdersByStatus added in v1.17.0

type SupplyOrdersByStatus struct {
	// Number of supply requests in this status
	Count int32 `json:"count"`

	// Supply status
	OrderState string `json:"order_state"`
}

type SupplyRequestState

type SupplyRequestState string
const (
	// filling in the data
	DATA_FILLING SupplyRequestState = "DATA_FILLING"

	// ready for shipment
	ReadyToSupply SupplyRequestState = "READY_TO_SUPPLY"

	// accepted at the shipping point
	AcceptedAtSupplyWarehouse SupplyRequestState = "ACCEPTED_AT_SUPPLY_WAREHOUSE"

	// on the way
	InTransit SupplyRequestState = "IN_TRANSIT"

	// acceptance at the warehouse
	AcceptanceAtStorageWarehouse SupplyRequestState = "ACCEPTANCE_AT_STORAGE_WAREHOUSE"

	// acts being approved
	ReportsConfirmationAwaiting SupplyRequestState = "REPORTS_CONFIRMATION_AWAITING"

	// dispute
	ReportRejected SupplyRequestState = "REPORT_REJECTED"

	// completed
	Completed SupplyRequestState = "COMPLETED"

	// refused acceptance
	RejectedAtSupplyWarehouse SupplyRequestState = "REJECTED_AT_SUPPLY_WAREHOUSE"

	// cancelled
	Cancelled SupplyRequestState = "CANCELLED"

	// overdue
	Overdue SupplyRequestState = "OVERDUE"
)

type SupplyTag added in v1.18.0

type SupplyTag struct {
	// true if the supply request contains products certified in the Mercury system
	IsEVSDRequired bool `json:"is_evsd_required"`

	// true if the supply request contains jewelry
	IsJewelry bool `json:"is_jewelry"`

	// true if the supply request contains products for which labeling is possible
	IsMarkingPossible bool `json:"is_marking_possible"`

	// true if the supply request contains products for which labeling is mandatory
	IsMarkingRequired bool `json:"is_marking_required"`
}

type SupplyTimeslot added in v1.17.0

type SupplyTimeslot struct {
	// Reason why you can't select the supply time slot
	Reasons []string `json:"can_not_set_reasons"`

	// true, if you can select or edit the supply time slot
	CanSet bool `json:"can_set"`

	// true, if the characteristic is required
	IsRequired bool `json:"is_required"`

	Value SupplyTimeslotValue `json:"value"`
}

type SupplyTimeslotValue added in v1.17.0

type SupplyTimeslotValue struct {
	// Supply time slot in local time
	Timeslot []SupplyTimeslotValueTimeslot `json:"timeslot"`

	// Time zone
	Timezone []SupplyTimeslotValueTimezone `json:"timezone_info"`
}

type SupplyTimeslotValueTimeslot added in v1.17.0

type SupplyTimeslotValueTimeslot struct {
	// Supply time slot start
	From time.Time `json:"from"`

	// Supply time slot end
	To time.Time `json:"to"`
}

type SupplyTimeslotValueTimezone added in v1.17.0

type SupplyTimeslotValueTimezone struct {
	// Time zone name
	Name string `json:"iana_name"`

	// Time zone offset from UTC-0 in seconds
	Offset string `json:"offset"`
}

type SupplyVehicle added in v1.17.0

type SupplyVehicle struct {
	// Reason why you can't select the supply time slot
	Reasons []string `json:"can_not_set_reasons"`

	// true, if you can select or edit the supply time slot
	CanSet bool `json:"can_set"`

	// true, if the characteristic is required
	IsRequired bool `json:"is_required"`

	Value []GetSupplyRequestInfoVehicle `json:"value"`
}

type SupplyWarehouse added in v1.17.0

type SupplyWarehouse struct {
	// Warehouse address
	Address string `json:"address"`

	// Warehouse name
	Name string `json:"name"`

	// Warehouse identifier
	Id int64 `json:"warehouse_id"`
}

type TPLIntegrationType

type TPLIntegrationType string
const (
	// delivery by the Ozon logistics
	OzonTPLType TPLIntegrationType = "ozon"

	// delivery by a third-party service, Ozon registers the order
	AggregatorTPLType TPLIntegrationType = "aggregator"

	// delivery by a third-party service, the seller registers the order
	TrackingTPLType TPLIntegrationType = "3pl_tracking"

	// delivery by the seller
	NonIntegratedTPLType TPLIntegrationType = "non_integrated"

	// Russian Post delivery scheme
	HybrydTPLType TPLIntegrationType = "hybryd"
)

type TransactionOperationService added in v1.13.0

type TransactionOperationService string
const (
	// return of unclaimed products from the customer to the warehouse
	TransactionNotDelivered TransactionOperationService = "MarketplaceNotDeliveredCostItem"

	// return from the customer to the warehouse after delivery
	TransactionReturnAfterDelivery TransactionOperationService = "TransactionOperationServiceNotDelivered"

	// product delivery to the customer
	TransactionDelivery TransactionOperationService = "MarketplaceDeliveryCostItem"

	// purchasing reviews on the platform
	TransactionSaleReviews TransactionOperationService = "MarketplaceSaleReviewsItem"

	// products delivery to the Ozon warehouse (cross docking)
	TransactionItemAdForSupplierLogistic TransactionOperationService = "ItemAdvertisementForSupplierLogistic"

	// product placement service
	TransactionServiceStorageItem TransactionOperationService = "OperationMarketplaceServiceStorage"

	// products promotion
	TransactionMarketingActionCost TransactionOperationService = "MarketplaceMarketingActionCostItem"

	// promotion and selling on an instalment plan
	TransactionServiceItemInstallment TransactionOperationService = "MarketplaceServiceItemInstallment"

	// mandatory products labeling
	TransactionServiceMarkingItems TransactionOperationService = "MarketplaceServiceItemMarkingItems"

	// flexible payment schedule
	TransactionServiceFlexiblePaymentSchedule TransactionOperationService = "MarketplaceServiceItemFlexiblePaymentSchedule"

	// picking up products for removal by the seller
	TransactionServiceReturnFromStock TransactionOperationService = "MarketplaceServiceItemReturnFromStock"

	TransactionServiceStarsMembership TransactionOperationService = "ItemAgentServiceStarsMembership"

	// forwarding trade
	TransactionItemAdForSupplierLogisticSeller TransactionOperationService = "ItemAdvertisementForSupplierLogisticSeller"

	// last mile
	TransactionServiceDeliveryToCustomer TransactionOperationService = "MarketplaceServiceItemDelivToCustomer"

	// pipeline
	TransactionServiceDirectFlowTrans TransactionOperationService = "MarketplaceServiceItemDirectFlowTrans"

	// shipment processing
	TransactionServiceDropoffFF TransactionOperationService = "MarketplaceServiceItemDropoffFF"

	// shipment processing
	TransactionServiceDropoffPVZ TransactionOperationService = "MarketplaceServiceItemDropoffPVZ"

	// shipment processing
	TransactionServiceDropoffSC TransactionOperationService = "MarketplaceServiceItemDropoffSC"

	// order packaging
	TransactionServiceFulfillment TransactionOperationService = "MarketplaceServiceItemFulfillment"

	// picking products up by car from the seller's address (Pick-up)
	TransactionServicePickup TransactionOperationService = "MarketplaceServiceItemPickup"

	// return processing
	TransactionServiceReturnAfterDelivToCustomer TransactionOperationService = "MarketplaceServiceItemReturnAfterDelivToCustomer"

	// reverse pipeline
	TransactionServiceReturnFlowTrans TransactionOperationService = "MarketplaceServiceItemReturnFlowTrans"

	// cancellation processing
	TransactionServiceReturnNotDelivToCustomer TransactionOperationService = "MarketplaceServiceItemReturnNotDelivToCustomer"

	// unredeemed order processing
	TransactionServiceReturnPartGoodsCustomer TransactionOperationService = "MarketplaceServiceItemReturnPartGoodsCustomer"

	// acquiring payment
	TransactionRedistributionOfAcquiringOperation TransactionOperationService = "MarketplaceRedistributionOfAcquiringOperation"

	// FBS return short-term placement
	TransactionServiceAtPickupPointFBS TransactionOperationService = "MarketplaceReturnStorageServiceAtThePickupPointFbsItem"

	// FBS return long-term placement
	TransactionServiceInWarehouseFBS TransactionOperationService = "MarketplaceReturnStorageServiceInTheWarehouseFbsItem"

	// bulky products delivery
	TransactionServiceDeliveryKGT TransactionOperationService = "MarketplaceServiceItemDeliveryKGT"

	// logistics
	TransactionServiceDirectFlowLogistic TransactionOperationService = "MarketplaceServiceItemDirectFlowLogistic"

	// reverse logistics
	TransactionServiceReturnFlowLogistic TransactionOperationService = "MarketplaceServiceItemReturnFlowLogistic"

	// "Seller's Bonus" promotion service
	TransactionServicePremiumCashbackIndPoints TransactionOperationService = "MarketplaceServicePremiumCashbackIndividualPoints"

	// Premium promotion service, fixed commission
	TransactionServicePremiumPromotion TransactionOperationService = "MarketplaceServicePremiumPromotion"

	// withholding for product shortage
	TransactionServiceWithHoldingForUndeliverableGoods TransactionOperationService = "OperationMarketplaceWithHoldingForUndeliverableGoods"

	// drop-off service at the pick-up point
	TransactionServiceDropoffPPZ TransactionOperationService = "MarketplaceServiceItemDropoffPPZ"

	// reissue of returns at the pick-up point
	TransactionServiceRedistributionReturnsPVZ TransactionOperationService = "MarketplaceServiceItemRedistributionReturnsPVZ"

	// Agregator 3PL Globalagency service tariffication
	TransactionServiceAgencyFeeAggregator3PLGlobal TransactionOperationService = "OperationMarketplaceAgencyFeeAggregator3PLGlobal"
)

type UnlinkFromProductParams

type UnlinkFromProductParams struct {
	// Certificate identifier
	CertificateId int32 `json:"certificate_id"`

	// List of product identifiers that you want to unbind from a certificate
	ProductId []int64 `json:"product_id"`
}

type UnlinkFromProductResponse

type UnlinkFromProductResponse struct {
	core.CommonResponse

	// Method result
	Result []UnlinkFromProductResult `json:"result"`
}

type UnlinkFromProductResult

type UnlinkFromProductResult struct {
	// Error message when unbinding a product
	Error string `json:"error"`

	// Product identifier
	ProductId int64 `json:"product_id"`

	// Indication that the product was unbound from a certificate:
	//   - true — it was unbound,
	//   - false — it is still bound
	Updated bool `json:"updated"`
}

type UnpaidProduct added in v1.17.0

type UnpaidProduct struct {
	// Product identifier
	ProductId int64 `json:"product_id"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Product quantity, pcs
	Quantity int32 `json:"quantity"`

	// Product name
	Name string `json:"name"`

	// Link to product image
	ImageURL string `json:"image_url"`
}

type UpdateCarriageArrivalPass added in v1.12.0

type UpdateCarriageArrivalPass struct {
	CarriageArrivalPass

	Id int64 `json:"id"`
}

type UpdateCarriageParams added in v1.12.0

type UpdateCarriageParams struct {
	ArrivalPasses []UpdateCarriageArrivalPass `json:"arrival_passes"`

	CarriageId int64 `json:"carriage_id"`
}

type UpdateCarriageResponse added in v1.12.0

type UpdateCarriageResponse struct {
	core.CommonResponse
}

type UpdateCharacteristicsItem

type UpdateCharacteristicsItem struct {
	// Product characteristics
	Attributes []UpdateCharacteristicsItemAttribute `json:"attributes"`

	// Product ID
	OfferId string `json:"offer_id"`
}

type UpdateCharacteristicsItemAttribute

type UpdateCharacteristicsItemAttribute struct {
	// Identifier of the characteristic that supports nested properties.
	// Each of the nested characteristics can have multiple value variants
	ComplexId int64 `json:"complex_id"`

	// Characteristic identifier
	Id int64 `json:"id"`

	// Array of nested characteristic values
	Values []UpdateCharacteristicsItemValue `json:"values"`
}

type UpdateCharacteristicsItemValue

type UpdateCharacteristicsItemValue struct {
	// Characteristic identifier in the dictionary
	DictionaryValueId int64 `json:"dictionary_value_id"`

	// Product characteristic value
	Value string `json:"value"`
}

type UpdateCharacteristicsParams

type UpdateCharacteristicsParams struct {
	// Products and characteristics to be updated
	Items []UpdateCharacteristicsItem `json:"items"`
}

type UpdateCharacteristicsResponse

type UpdateCharacteristicsResponse struct {
	core.CommonResponse

	// Products update task code.
	//
	// To check the update status, pass the received value to the `/v1/product/import/info` method
	TaskId int64 `json:"task_id"`
}

type UpdateChatParams

type UpdateChatParams struct {
	// Chat identifier
	ChatId string `json:"chat_id"`

	// Message identifier
	FromMessageId uint64 `json:"from_message_id"`

	// Number of messages in the response
	Limit int64 `json:"limit,omitempty"`
}

type UpdateChatResponse

type UpdateChatResponse struct {
	core.CommonResponse

	// Method result
	Result []UpdateChatResult `json:"result"`
}

type UpdateChatResult

type UpdateChatResult struct {
	// An order or a product user wrote about in the chat
	Context UpdateChatResultContext `json:"context"`

	// Creation date and time
	CreatedAt time.Time `json:"created_at"`

	// Information about the file in the chat. Displayed only for `type = file`
	File UpdateChatResultFile `json:"file"`

	// File identifier
	Id uint64 `json:"id"`

	// Message. Displayed only for `type = text`
	Text string `json:"text"`

	// Message type:
	//   - text
	//   - file
	Type string `json:"type"`

	// Chat participant information
	User UpdateChatResultUser `json:"user"`
}

type UpdateChatResultContext

type UpdateChatResultContext struct {
	// Product inforamtion
	Item UpdateChatResultContextItem `json:"item"`

	// Order information
	Order UpdateChatResultContextOrder `json:"order"`
}

type UpdateChatResultContextItem

type UpdateChatResultContextItem struct {
	// Product identifier in the Ozon system, SKU
	SKU int64 `json:"sku"`
}

type UpdateChatResultContextOrder

type UpdateChatResultContextOrder struct {
	// Order number
	OrderNumber string `json:"order_number"`

	// Shipment information
	Postings []UpdateChatResultContextOrderPosting `json:"postings"`
}

type UpdateChatResultContextOrderPosting

type UpdateChatResultContextOrderPosting struct {
	// Delivery scheme:
	//   - FBO
	//   - FBS
	//   - RFBS
	//   - Crossborder
	DeliverySchema string `json:"delivery_schema"`

	// Shipment number
	PostingNumber string `json:"posting_number"`

	// List of product identifiers in the shipment
	SKUList []int64 `json:"sku_list"`
}

type UpdateChatResultFile

type UpdateChatResultFile struct {
	// File type
	Mime string `json:"mime"`

	// File name
	Name string `json:"name"`

	// File size in bytes
	Size int64 `json:"size"`

	// File URL
	URL string `json:"url"`
}

type UpdateChatResultUser

type UpdateChatResultUser struct {
	// Chat participant identifier
	Id string `json:"id"`

	// Chat participant chat:
	//   - customer
	//   - seller
	//   - crm—system messages
	//   - courier
	Type string `json:"type"`
}

type UpdatePriceRelevanceTimerParams added in v1.18.0

type UpdatePriceRelevanceTimerParams struct {
	// List of product identifiers
	ProductIds []string `json:"product_ids"`
}

type UpdatePriceRelevanceTimerResponse added in v1.18.0

type UpdatePriceRelevanceTimerResponse struct {
	core.CommonResponse
}

type UpdatePricesParams

type UpdatePricesParams struct {
	// Product prices details
	Prices []UpdatePricesPrice `json:"prices"`
}

type UpdatePricesPrice

type UpdatePricesPrice struct {
	// Attribute for enabling and disabling promos auto-application
	AutoActionEnabled string `json:"auto_action_enabled"`

	// Currency of your prices. The passed value must be the same as the one set in the personal account settings.
	// By default, the passed value is RUB, Russian ruble
	CurrencyCode string `json:"currency_code"`

	// true, if Ozon takes into account
	// the minimum price when creating promotions.
	// If you don't pass anything,
	// the status of the price accounting remains the same
	MinPriceForAutoActionsEnabled bool `json:"min_price_for_auto_actions_enabled"`

	// Minimum product price with all promotions applied
	MinPrice string `json:"min_price"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Price before discounts. Displayed strikethrough on the product description page.
	// Specified in rubles.
	// The fractional part is separated by decimal point,
	// up to two digits after the decimal point.
	//
	// If there are no discounts on the product, pass 0 to this field and specify the correct price in the price field
	OldPrice string `json:"old_price"`

	// Product price including discounts. This value is displayed on the product description page.
	//
	// If the old_price parameter value is greater than 0,
	// there should be a certain difference between price and old_price.
	// It depends on the price value
	//
	// < 400 - min diff. 20 rubles
	//
	// 400-10,000 - min diff. 5%
	//
	// > 10,000 - min diff. 500 rubles
	Price string `json:"price"`

	// Attribute for enabling and disabling pricing strategies auto-application
	//
	// If you've previously enabled automatic application of pricing strategies and don't want to disable it, pass UNKNOWN in the next requests.
	//
	// If you pass `ENABLED` in this parameter, pass `strategy_id` in the `/v1/pricing-strategy/products/add` method request.
	//
	// If you pass `DISABLED` in this parameter, the product is removed from the strategy
	PriceStrategyEnabled PriceStrategy `json:"price_strategy_enabled"`

	// Product identifier
	ProductId int64 `json:"product_id"`

	// Use parameter if the regular and economy products have the same article code—offer_id = quant_id. To update price of the:
	//
	// 	- regular product, pass the 1 value;
	// 	- economy product, pass the size of its MOQ.
	//
	// If the regular and economy products have different article codes, don't specify the parameter.
	QuantSize int64 `json:"quant_size"`

	// VAT rate for the product
	VAT VAT `json:"vat"`
}

Product price details

type UpdatePricesResponse

type UpdatePricesResponse struct {
	core.CommonResponse

	Result []UpdatePricesResult `json:"result"`
}

type UpdatePricesResult

type UpdatePricesResult struct {
	// An array of errors that occurred while processing the request
	Errors []UpdatePricesResultError `json:"errors"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Product ID
	ProductId int64 `json:"product_id"`

	// If the product details have been successfully updated — true
	Updated bool `json:"updated"`
}

type UpdatePricesResultError

type UpdatePricesResultError struct {
	Code    string `json:"code"`
	Message string `json:"message"`
}

type UpdateProductImagesParams

type UpdateProductImagesParams struct {
	// Marketing color
	ColorImage string `json:"color_image"`

	// Array of links to images. The images in the array are arranged in the order of their arrangement on the site.
	// The first image in the list is the main one for the product.
	//
	// Pass links to images in the public cloud storage. The image format is JPG
	Images []string `json:"images"`

	// Array of 360 images—up to 70 files
	Images360 []string `json:"images360"`

	// Product identfier
	ProductId int64 `json:"product_id"`
}

type UpdateQuantityStockProductsParams

type UpdateQuantityStockProductsParams struct {
	// Information about the products at the warehouses
	Stocks []UpdateQuantityStockProductsStock `json:"stocks"`
}

type UpdateQuantityStockProductsResponse

type UpdateQuantityStockProductsResponse struct {
	core.CommonResponse

	// Method result
	Result []UpdateQuantityStockProductsResult `json:"result"`
}

type UpdateQuantityStockProductsResult

type UpdateQuantityStockProductsResult struct {
	// An array of errors that occurred while processing the request
	Errors []UpdateQuantityStockProductsResultError `json:"errors"`

	// Product identifier in the seller's system
	Offerid string `json:"offer_id"`

	// Product identifier
	ProductId int64 `json:"product_id"`

	// Shows the quantity of which product type you are updating:
	//
	// 	- 1, if you are updating the stock of a regular product
	// 	- MOQ size, if you are updating the stock of economy product
	QuantSize int64 `json:"quant_size"`

	// If the request was completed successfully and the stocks are updated — true
	Updated bool `json:"updated"`

	// Warehouse identifier derived from the /v1/warehouse/list method
	WarehouseId int64 `json:"warehouse_id"`
}

type UpdateQuantityStockProductsResultError

type UpdateQuantityStockProductsResultError struct {
	// Error code
	Code string `json:"code"`

	// Error reason
	Message string `json:"message"`
}

type UpdateQuantityStockProductsStock

type UpdateQuantityStockProductsStock struct {
	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Product identifier
	ProductId int64 `json:"product_id"`

	// Use parameter if the regular and economy products have the same article code—offer_id = quant_id. To update quantity of the:
	//
	// 	- regular product, pass the 1 value;
	// 	- economy product, pass the size of its MOQ.
	//
	// If the regular and economy products have different article codes, don't specify the parameter.
	QuantSize int64 `json:"quant_size"`

	// Quantity
	Stock int64 `json:"stock"`

	// Warehouse identifier derived from the /v1/warehouse/list method
	WarehouseId int64 `json:"warehouse_id"`
}

type UpdateReturnParams added in v1.12.0

type UpdateReturnParams struct {
	ArrivalPasses []ReturnArrivalPass `json:"arrival_passes"`
}

type UpdateReturnResponse added in v1.12.0

type UpdateReturnResponse struct {
	core.CommonResponse

	// Pass identifiers
	ArrivalPassIds []string `json:"arrival_pass_ids"`
}

type UpdateStocksParams

type UpdateStocksParams struct {
	// Stock details
	Stocks []UpdateStocksStock `json:"stocks"`
}

type UpdateStocksResponse

type UpdateStocksResponse struct {
	core.CommonResponse

	// Request results
	Result []UpdateStocksResult `json:"result"`
}

type UpdateStocksResult

type UpdateStocksResult struct {
	// An array of errors that occurred while processing the request
	Errors []UpdateStocksResultError `json:"errors"`

	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Product identifier
	ProductId int64 `json:"product_id"`

	// If the product details have been successfully updated — true
	Updated bool `json:"updated"`
}

type UpdateStocksResultError

type UpdateStocksResultError struct {
	// Error code
	Code string `json:"code"`

	// Error reason
	Message string `json:"message"`
}

type UpdateStocksStock

type UpdateStocksStock struct {
	// Product identifier in the seller's system
	OfferId string `json:"offer_id"`

	// Product identifier
	ProductId int64 `json:"product_id"`

	// Quantity of products in stock
	Stock int64 `json:"stocks"`
}

Stock detail

type UpdateStrategyParams

type UpdateStrategyParams struct {
	// List of competitors
	Competitors []CreateStrategyCompetitor `json:"competitors"`

	// Product identifier
	StrategyId string `json:"strategy_id"`

	// Strategy name
	StrategyName string `json:"strategy_name"`
}

type UpdateStrategyResponse

type UpdateStrategyResponse struct {
	core.CommonResponse
}

type UpdateSupplyTimeslotParams added in v1.17.0

type UpdateSupplyTimeslotParams struct {
	// Supply request identifier
	SupplyOrderId int64 `json:"supply_order_id"`

	// Supply time slot details
	Timeslot SupplyTimeslotValueTimeslot `json:"timeslot"`
}

type UpdateSupplyTimeslotResponse added in v1.17.0

type UpdateSupplyTimeslotResponse struct {
	core.CommonResponse

	// Possible errors
	Errors []string `json:"errors"`

	// Operation identifier
	OperationId string `json:"operation_id"`
}

type UploadActivationCodesParams

type UploadActivationCodesParams struct {
	// Digital activation codes
	DigitalCodes []string `json:"digital_codes"`

	// Product identifier
	ProductId int64 `json:"product_id"`
}

type UploadActivationCodesResponse

type UploadActivationCodesResponse struct {
	core.CommonResponse

	// Method result
	Result UploadActivationCodesResult `json:"result"`
}

type UploadActivationCodesResult

type UploadActivationCodesResult struct {
	// Uploading digital code task identifier
	TaskId int64 `json:"task_id"`
}

type UploadInvoiceParams added in v1.14.0

type UploadInvoiceParams struct {
	// Base64 encoded invoice
	Content string `json:"base64_content"`

	// Shipment number
	PostingNumber string `json:"posting_number"`
}

type UploadInvoiceResponse added in v1.14.0

type UploadInvoiceResponse struct {
	core.CommonResponse

	// Link to invoice
	URL string `json:"url"`
}

type VAT added in v1.18.0

type VAT string
const (
	VAT0   VAT = "0"
	VAT005 VAT = "0.05"
	VAT007 VAT = "0.07"
	VAT01  VAT = "0.1"
	VAT02  VAT = "0.2"
)

type ValidateLabelingCodesExemplar

type ValidateLabelingCodesExemplar struct {
	// Сustoms cargo declaration (CCD) number
	GTD string `json:"gtd"`

	// Mandatory “Chestny ZNAK” labeling
	MandatoryMark string `json:"mandatory_mark"`

	// Product batch registration number
	RNPT string `json:"rnpt"`
}

type ValidateLabelingCodesParams

type ValidateLabelingCodesParams struct {
	// Shipment number
	PostingNumber string `json:"posting_number"`

	// Products list
	Products []ValidateLabelingCodesProduct `json:"products"`
}

type ValidateLabelingCodesProduct

type ValidateLabelingCodesProduct struct {
	// Product items data
	Exemplars []ValidateLabelingCodesExemplar `json:"exemplars"`

	// Product identifier
	ProductId int64 `json:"product_id"`
}

type ValidateLabelingCodesResponse

type ValidateLabelingCodesResponse struct {
	core.CommonResponse

	// Method result
	Result ValidateLabelingCodesResult `json:"result"`
}

type ValidateLabelingCodesResult

type ValidateLabelingCodesResult struct {
	// Products list
	Products []ValidateLabelingCodesResultProduct `json:"products"`
}

type ValidateLabelingCodesResultProduct

type ValidateLabelingCodesResultProduct struct {
	// Error code
	Error string `json:"error"`

	// Product items data
	Exemplars []FBSProductExemplar `json:"exemplars"`

	// Product identifier
	ProductId int64 `json:"product_id"`

	// Check result. true if the labeling codes of all product items meet the requirements
	Valid bool `json:"valid"`
}

type VerifyCourierCodeParams added in v1.18.0

type VerifyCourierCodeParams struct {
	// Courier code
	PickupCode string `json:"pickup_code"`

	// Shipment number
	PostingNumber string `json:"posting_number"`
}

type VerifyCourierCodeResponse added in v1.18.0

type VerifyCourierCodeResponse struct {
	core.CommonResponse

	// true, if the code is correct
	Valid bool `json:"valid"`
}

type VisualStatus added in v1.16.0

type VisualStatus string
const (
	// dispute with the customer has been opened
	VisualStatusDisputeOpened VisualStatus = "DisputeOpened"

	// pending with the seller
	VisualStatusOnSellerApproval VisualStatus = "OnSellerApproval"

	// at the pick-up point
	VisualStatusArrivedAtReturnPlace VisualStatus = "ArrivedAtReturnPlace"

	// pending clarification by the seller
	VisualStatusOnSellerClarification VisualStatus = "OnSellerClarification"

	// pending clarification by the seller after partial compensation
	VisualStatusOnSellerClarificationPartial VisualStatus = "OnSellerClarificationAfterPartialCompensation"

	// partial compensation offered
	VisualStatusOfferedPartial VisualStatus = "OfferedPartialCompensation"

	// refund approved
	VisualStatusReturnMoneyApproved VisualStatus = "ReturnMoneyApproved"

	// partial compensation provided
	VisualStatusPartialReturned VisualStatus = "PartialCompensationReturned"

	// refund rejected, dispute isn't opened
	VisualStatusCancelledDisputeNotOpen VisualStatus = "CancelledDisputeNotOpen"

	// request rejected
	VisualStatusRejected VisualStatus = "Rejected"

	// request rejected by Ozon
	VisualStatusCrmRejected VisualStatus = "CrmRejected"

	// request canceled
	VisualStatusCancelled VisualStatus = "Cancelled"

	// request approved by the seller
	VisualStatusApproved VisualStatus = "Approved"

	// request approved by Ozon
	VisualStatusApprovedByOzon VisualStatus = "ApprovedByOzon"

	// seller received the return
	VisualStatusReceivedBySeller VisualStatus = "ReceivedBySeller"

	// return is on its way to the seller
	VisualStatusMovingToSeller VisualStatus = "MovingToSeller"

	// seller received the refund
	VisualStatusReturnCompensated VisualStatus = "ReturnCompensated"

	// courier is taking the return to the seller
	VisualStatusReturningByCourier VisualStatus = "ReturningByCourier"

	// on disposal
	VisualStatusUtilizing VisualStatus = "Utilizing"

	// disposed of
	VisualStatusUtilized VisualStatus = "Utilized"

	// customer received full refund
	VisualStatusMoneyReturned VisualStatus = "MoneyReturned"

	// partial refund has been approved
	VisualStatusPartialInProcess VisualStatus = "PartialCompensationInProcess"

	// seller opened a dispute
	VisualStatusDisputeYouOpened VisualStatus = "DisputeYouOpened"

	// compensation rejected
	VisualStatusCompensationRejected VisualStatus = "CompensationRejected"

	// support request sent
	VisualStatusDisputeOpening VisualStatus = "DisputeOpening"

	// awaiting your decision on compensation
	VisualStatusCompensationOffered VisualStatus = "CompensationOffered"

	// awaiting compensation
	VisualStatusWaitingCompensation VisualStatus = "WaitingCompensation"

	// an error occurred when sending the support request
	VisualStatusSendingError VisualStatus = "SendingError"

	// decision period has expired
	VisualStatusCompensationRejectedBySla VisualStatus = "CompensationRejectedBySla"

	// seller has refused compensation
	VisualStatusCompensationRejectedBySeller VisualStatus = "CompensationRejectedBySeller"

	// on the way to the Ozon warehouse
	VisualStatusMovingToOzon VisualStatus = "MovingToOzon"

	// arrived at the Ozon warehouse
	VisualStatusReturnedToOzon VisualStatus = "ReturnedToOzon"

	// quick refund
	VisualStatusMoneyReturnedBySystem VisualStatus = "MoneyReturnedBySystem"

	// awaiting shipping
	VisualStatusWaitingShipment VisualStatus = "WaitingShipment"
)

type WarehouseType

type WarehouseType string
const (
	// Ozon warehouses with Fresh delivery
	ExpressDarkStore WarehouseType = "EXPRESS_DARK_STORE"

	// Ozon warehouses without Fresh delivery
	NotExressDarkStore WarehouseType = "NOT_EXPRESS_DARK_STORE"

	// All Ozon warehouses
	ALLWarehouseType WarehouseType = "ALL"
)

type Warehouses

type Warehouses struct {
	// contains filtered or unexported fields
}

func (Warehouses) GetListOfDeliveryMethods

This methods allows you to get list of all delivery methods that can be applied for this warehouse

func (Warehouses) GetListOfWarehouses

func (c Warehouses) GetListOfWarehouses(ctx context.Context) (*GetListOfWarehousesResponse, error)

You do not need to specify any parameters in the request. Your company will be identified by the Warehouses ID

func (Warehouses) ListForShipping added in v1.17.0

func (c Warehouses) ListForShipping(ctx context.Context, params *ListForShippingParams) (*ListForShippingResponse, error)

Use the method to find sorting centres, pick-up points, and drop-off points available for cross-docking and direct supplies.

You can view the addresses of all points on the map and in a table in the Knowledge Base.

type WorkingDay

type WorkingDay int
const (
	Mon WorkingDay = 1
	Tue WorkingDay = 2
	Wed WorkingDay = 3
	Thu WorkingDay = 4
	Fri WorkingDay = 5
	Sat WorkingDay = 6
	Sun WorkingDay = 7
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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