Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
diPhantxm committed Dec 27, 2024
1 parent 7f71ed6 commit 3c17a36
Show file tree
Hide file tree
Showing 2 changed files with 111 additions and 97 deletions.
105 changes: 52 additions & 53 deletions ozon/finance.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,11 @@ type Finance struct {
}

type ReportOnSoldProductsParams struct {
// Time period in the `YYYY-MM` format
Date string `json:"date"`
// Month
Month int32 `json:"month"`

// Year
Year int32 `json:"year"`
}

type ReportOnSoldProductsResponse struct {
Expand All @@ -34,7 +37,7 @@ type ReportonSoldProductsResult struct {

type ReportOnSoldProductsResultHeader struct {
// Report ID
Id string `json:"num"`
Id string `json:"number"`

// Report generation date
DocDate string `json:"doc_date"`
Expand All @@ -43,10 +46,10 @@ type ReportOnSoldProductsResultHeader struct {
ContractDate string `json:"contract_date"`

// Offer agreement number
ContractNum string `json:"contract_num"`
ContractNum string `json:"contract_number"`

// Currency of your prices
CurrencyCode string `json:"currency_code"`
CurrencySysName string `json:"currency_sys_name"`

// Amount to accrue
DocAmount float64 `json:"doc_amount"`
Expand All @@ -64,13 +67,13 @@ type ReportOnSoldProductsResultHeader struct {
PayerName string `json:"payer_name"`

// Recipient's TIN
RecipientINN string `json:"rcv_inn"`
RecipientINN string `json:"receiver_inn"`

// Recipient's Tax Registration Reason Code (KPP)
RecipientKPP string `json:"rcv_kpp"`
RecipientKPP string `json:"receiver_kpp"`

// Recipient's name
RecipientName string `json:"rcv_name"`
RecipientName string `json:"receiver_name"`

// Period start in the report
StartDate string `json:"start_date"`
Expand All @@ -81,72 +84,68 @@ type ReportOnSoldProductsResultHeader struct {

type ReportOnSoldProductsResultRow struct {
// Row number
RowNumber int32 `json:"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"`

// Product ID
ProductId int64 `json:"product_id"`
// 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 ReturnOnSoldProduct struct {
// Product name
ProductName string `json:"product_name"`
ProductName string `json:"name"`

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

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

// Sales commission by category
CommissionPercent float64 `json:"commission_percent"`

// Seller's price with their discount
Price float64 `json:"price"`
SKU int64 `json:"sku"`
}

// Selling price: the price at which the customer purchased the product. For sold products
PriceSale float64 `json:"price_sale"`
type ReturnCommission struct {
// Amount
Amount float64 `json:"amount"`

// Sold for amount.
//
// Sold products cost considering the quantity and regional coefficients. Calculation is made by the sale_amount price
SaleAmount float64 `json:"sale_amount"`
// Points for discounts
Bonus float64 `json:"bonus"`

// Commission for sold products, including discounts and extra charges
SaleCommission float64 `json:"sale_commission"`
Commission float64 `json:"commission"`

// Extra charge at the expense of Ozon.
//
// Amount that Ozon will compensate the seller if the Ozon discount is greater than or equal to the sales commission
SaleDiscount float64 `json:"sale_discount"`
// Additional payment at the expense of Ozon
Compensation float64 `json:"compensation"`

// Total accrual for the products sold.
//
// Amount after deduction of sales commission, application of discounts and extra charges
SalePriceSeller float64 `json:"sale_price_seller"`
// Price per item
PricePerInstance float64 `json:"price_per_instance"`

// Quantity of products sold at the price_sale price
SaleQuantity int32 `json:"sale_qty"`
// Product quantity
Quantity int32 `json:"quantity"`

// Price at which the customer purchased the product. For returned products
ReturnSale float64 `json:"return_sale"`
// Ozon referral fee
StandardFee float64 `json:"standard_fee"`

// Cost of returned products, taking into account the quantity and regional coefficients.
// Calculation is carried out at the return_sale price
ReturnAmount float64 `json:"return_amount"`

// Commission including the quantity of products, discounts and extra charges.
// Ozon compensates it for the returned products
ReturnCommission float64 `json:"return_commission"`

// Extra charge at the expense of Ozon.
//
// Amount of the discount at the expense of Ozon on returned products.
// Ozon will compensate it to the seller if the Ozon discount is greater than or equal to the sales commission
ReturnDiscount float64 `json:"return_discount"`
// Payouts on partner loyalty mechanics: green prices
BankCoinvestment float64 `json:"bank_coinvestment"`

// Amount charged to the seller for returned products after deducing sales commissions, applying discounts and extra charges
ReturnPriceSeller float64 `json:"return_price_seller"`
// Payouts on partner loyalty mechanics: stars
Stars float64 `json:"stars"`

// Quantity of returned products
ReturnQuantity int32 `json:"return_qty"`
// Total accrual
Total float64 `json:"total"`
}

// Returns information on products sold and returned within a month. Canceled or non-purchased products are not included.
Expand Down
103 changes: 59 additions & 44 deletions ozon/finance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,52 +23,67 @@ func TestReportOnSoldProducts(t *testing.T) {
http.StatusOK,
map[string]string{"Client-Id": "my-client-id", "Api-Key": "my-api-key"},
&ReportOnSoldProductsParams{
Date: "2022-09",
Month: 9,
Year: 2022,
},
`{
"result": {
"header": {
"doc_date": "2022-09-22",
"num": "string",
"start_date": "2022-09-02",
"stop_date": "2022-09-22",
"contract_date": "2022-09-02",
"contract_num": "string",
"payer_name": "string",
"payer_inn": "string",
"payer_kpp": "string",
"rcv_name": "string",
"rcv_inn": "string",
"rcv_kpp": "string",
"doc_amount": 1,
"vat_amount": 1,
"currency_code": "string"
},
"rows": [
{
"row_number": 0,
"product_id": 0,
"product_name": "string",
"offer_id": "string",
"barcode": "string",
"price": 0,
"commission_percent": 0,
"price_sale": 0,
"sale_qty": 0,
"sale_amount": 0,
"sale_discount": 0,
"sale_commission": 0,
"sale_price_seller": 0,
"return_sale": 0,
"return_qty": 0,
"return_amount": 0,
"return_discount": 0,
"return_commission": 0,
"return_price_seller": 0
}
]
}
}`,
"result": {
"header": {
"contract_date": "string",
"contract_number": "string",
"currency_sys_name": "string",
"doc_amount": 0,
"doc_date": "string",
"number": "string",
"payer_inn": "string",
"payer_kpp": "string",
"payer_name": "string",
"receiver_inn": "string",
"receiver_kpp": "string",
"receiver_name": "string",
"start_date": "string",
"stop_date": "string",
"vat_amount": 0
},
"rows": [
{
"commission_ratio": 0,
"delivery_commission": {
"amount": 0,
"bonus": 0,
"commission": 0,
"compensation": 0,
"price_per_instance": 0,
"quantity": 0,
"standard_fee": 0,
"bank_coinvestment": 0,
"stars": 0,
"total": 0
},
"item": {
"barcode": "string",
"name": "string",
"offer_id": "string",
"sku": 0
},
"return_commission": {
"amount": 0,
"bonus": 0,
"commission": 0,
"compensation": 0,
"price_per_instance": 0,
"quantity": 0,
"standard_fee": 0,
"bank_coinvestment": 0,
"stars": 0,
"total": 0
},
"rowNumber": 0,
"seller_price_per_instance": 0
}
]
}
}`,
"",
},
// Test No Client-Id or Api-Key
Expand Down

0 comments on commit 3c17a36

Please sign in to comment.