Magento产品全局特价的HTTP请求:端点及数据格式咨询
问题
我希望通过HTTP POST或PUT请求更新Magento中产品的全局特价。

我在官方文档中看到了/V1/products/special-price端点,但它是针对单店铺而非全局的。
我应该发送请求到哪个端点,需要携带什么数据?
使用场景:
- 创建全新产品时,初始设置特价
- 为现有产品更新新的特价
- 移除产品的特价
解决方案
针对全局特价的操作,你需要使用产品通用的REST端点,通过在请求体中指定special_price、special_from_date、special_to_date这些属性来实现,以下是分场景的具体操作:
1. 创建全新产品时设置全局特价
使用POST /V1/products端点,请求体中包含产品基础信息的同时,加入特价相关属性:
{ "product": { "sku": "your-product-sku", "name": "产品名称", "price": 100.00, "special_price": 80.00, "special_from_date": "2024-01-01 00:00:00", "special_to_date": "2024-12-31 23:59:59", "attribute_set_id": 4, // 根据你的属性集ID调整 "status": 1, "visibility": 4, "type_id": "simple", "weight": 1.0 } }
注:
special_from_date和special_to_date可选,如果不设置则特价长期有效。
2. 更新现有产品的全局特价
使用PUT /V1/products/{sku}端点,仅传入需要更新的特价属性即可:
{ "product": { "special_price": 75.00, "special_from_date": "2024-06-01 00:00:00", "special_to_date": "2024-06-30 23:59:59" } }
路径参数
{sku}替换为目标产品的SKU。
3. 移除产品的全局特价
同样使用PUT /V1/products/{sku}端点,将special_price设为null,同时清空日期属性:
{ "product": { "special_price": null, "special_from_date": null, "special_to_date": null } }
这样会彻底清除产品的全局特价设置,恢复原价展示。
注意事项
- 全局特价会覆盖所有店铺视图的特价设置(除非店铺视图单独配置了专属特价)
- 请求需要携带有效的Magento API授权令牌(在请求头中加入
Authorization: Bearer <your-token>) - 确保传入的日期格式符合Magento要求(
YYYY-MM-DD HH:MM:SS)
内容的提问来源于stack exchange,提问作者Luke
相关产品推荐
相关产品推荐

