Skip to content

Commit

Permalink
Update December 4, 2024 (#125)
Browse files Browse the repository at this point in the history
  • Loading branch information
diPhantxm authored Jan 10, 2025
1 parent 3c17a36 commit 14986eb
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 44 deletions.
2 changes: 1 addition & 1 deletion ozon/finance.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ type ReturnCommission struct {
//
// Report is returned no later than the 5th day of the next month
func (c Finance) ReportOnSoldProducts(ctx context.Context, params *ReportOnSoldProductsParams) (*ReportOnSoldProductsResponse, error) {
url := "/v1/finance/realization"
url := "/v2/finance/realization"

resp := &ReportOnSoldProductsResponse{}

Expand Down
40 changes: 24 additions & 16 deletions ozon/products.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,11 @@ type Products struct {
}

type GetStocksInfoParams struct {
// 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"`
// Cursor for the next data sample
Cursor string `json:"cursor"`

// Number of values per page. Minimum is 1, maximum is 1000
Limit int64 `json:"limit"`
// 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"`
Expand All @@ -34,20 +32,24 @@ type GetStocksInfoFilter struct {

// Filter by product visibility
Visibility string `json:"visibility,omitempty"`

// Products at the “Economy” tariff
WithQuant GetStocksInfoFilterWithQuant `json:"with_quant"`
}

type GetStocksInfoResponse struct {
core.CommonResponse
type GetStocksInfoFilterWithQuant struct {
// Active economy products
Created bool `json:"created"`

// Method Result
Result GetStocksInfoResult `json:"result"`
// Economy products in all statuses
Exists bool `json:"exists"`
}

type GetStocksInfoResult struct {
// 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"`
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"`
Expand Down Expand Up @@ -76,6 +78,12 @@ type GetStocksInfoResultItemStock struct {

// 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"`
}

// Returns information about the quantity of products in stock:
Expand All @@ -84,7 +92,7 @@ type GetStocksInfoResultItemStock struct {
//
// * how many are reserved by customers.
func (c Products) GetStocksInfo(ctx context.Context, params *GetStocksInfoParams) (*GetStocksInfoResponse, error) {
url := "/v3/product/info/stocks"
url := "/v4/product/info/stocks"

resp := &GetStocksInfoResponse{}

Expand Down
49 changes: 22 additions & 27 deletions ozon/products_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,36 +24,31 @@ func TestGetStocksInfo(t *testing.T) {
map[string]string{"Client-Id": "my-client-id", "Api-Key": "my-api-key"},
&GetStocksInfoParams{
Limit: 100,
LastId: "",
Cursor: "",
Filter: GetStocksInfoFilter{
OfferId: []string{"136834"},
ProductId: []int64{214887921},
Visibility: "ALL",
},
},
`{
"result": {
"items": [
{
"product_id": 214887921,
"offer_id": "136834",
"stocks": [
{
"type": "fbs",
"present": 170,
"reserved": 0
},
{
"type": "fbo",
"present": 0,
"reserved": 0
}
]
}
],
"total": 1,
"last_id": "anVsbA=="
}
"cursor": "string",
"items": [
{
"offer_id": "string",
"product_id": 123,
"stocks": [
{
"present": 0,
"reserved": 0,
"shipment_type": "SHIPMENT_TYPE_GENERAL",
"sku": 0,
"type": "string"
}
]
}
],
"total": 0
}`,
},
// Test No Client-Id or Api-Key
Expand Down Expand Up @@ -85,14 +80,14 @@ func TestGetStocksInfo(t *testing.T) {
}

if resp.StatusCode == http.StatusOK {
if len(resp.Result.Items) > int(test.params.Limit) {
if len(resp.Items) > int(test.params.Limit) {
t.Errorf("Amount of items in response cannot be bigger than limit")
}
if len(resp.Result.Items) > 0 {
if resp.Result.Items[0].ProductId == 0 {
if len(resp.Items) > 0 {
if resp.Items[0].ProductId == 0 {
t.Errorf("Product id cannot be 0")
}
if resp.Result.Items[0].OfferId == "" {
if resp.Items[0].OfferId == "" {
t.Errorf("Offer id cannot be empty")
}
}
Expand Down

0 comments on commit 14986eb

Please sign in to comment.