Update March 11, 2025 (#154)
This commit is contained in:
@@ -297,196 +297,6 @@ func (c Promotions) RemoveProduct(ctx context.Context, params *RemoveProductFrom
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
type ListHotSalePromotionsResponse struct {
|
||||
core.CommonResponse
|
||||
|
||||
// Method result
|
||||
Result []ListHotSalePromotionsResult `json:"result"`
|
||||
}
|
||||
|
||||
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"`
|
||||
}
|
||||
|
||||
// List of available Hot Sale promotions
|
||||
func (c Promotions) ListHotSalePromotions(ctx context.Context) (*ListHotSalePromotionsResponse, error) {
|
||||
url := "/v1/actions/hotsales/list"
|
||||
|
||||
resp := &ListHotSalePromotionsResponse{}
|
||||
|
||||
response, err := c.client.Request(ctx, http.MethodPost, url, nil, resp, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
response.CopyCommonResponse(&resp.CommonResponse)
|
||||
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
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 struct {
|
||||
core.CommonResponse
|
||||
|
||||
// Method result
|
||||
Result ProductsAvailableForHotSalePromotionResult `json:"result"`
|
||||
}
|
||||
|
||||
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 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"`
|
||||
}
|
||||
|
||||
// Method for getting a list of products that can participate or are already participating in the Hot Sale promotion
|
||||
func (c Promotions) ProductsAvailableForHotSalePromotion(ctx context.Context, params *ProductsAvailableForHotSalePromotionParams) (*ProductsAvailableForHotSalePromotionResponse, error) {
|
||||
url := "/v1/actions/hotsales/products"
|
||||
|
||||
resp := &ProductsAvailableForHotSalePromotionResponse{}
|
||||
|
||||
response, err := c.client.Request(ctx, http.MethodPost, url, params, resp, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
response.CopyCommonResponse(&resp.CommonResponse)
|
||||
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
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 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 ProductsToHotSaleResponse struct {
|
||||
core.CommonResponse
|
||||
|
||||
// Method result
|
||||
Result ProductsToHotSaleResult `json:"result"`
|
||||
}
|
||||
|
||||
type ProductsToHotSaleResult struct {
|
||||
// List of products that haven't been added to the promotion
|
||||
Rejected []ProductsToHotSaleResultRejected `json:"rejected"`
|
||||
}
|
||||
|
||||
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"`
|
||||
}
|
||||
|
||||
func (c Promotions) AddProductsToHotSale(ctx context.Context, params *AddProductsToHotSaleParams) (*ProductsToHotSaleResponse, error) {
|
||||
url := "/v1/actions/hotsales/activate"
|
||||
|
||||
resp := &ProductsToHotSaleResponse{}
|
||||
|
||||
response, err := c.client.Request(ctx, http.MethodPost, url, params, resp, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
response.CopyCommonResponse(&resp.CommonResponse)
|
||||
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
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"`
|
||||
}
|
||||
|
||||
// Remove product from the Hot Sale promotion
|
||||
func (c Promotions) RemoveProductsToHotSale(ctx context.Context, params *RemoveProductsToHotSaleParams) (*ProductsToHotSaleResponse, error) {
|
||||
url := "/v1/actions/hotsales/activate"
|
||||
|
||||
resp := &ProductsToHotSaleResponse{}
|
||||
|
||||
response, err := c.client.Request(ctx, http.MethodPost, url, params, resp, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
response.CopyCommonResponse(&resp.CommonResponse)
|
||||
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
type ListDiscountRequestsParams struct {
|
||||
// Discount request status
|
||||
Status ListDiscountRequestsStatus `json:"status" default:"UNKNOWN"`
|
||||
|
||||
Reference in New Issue
Block a user