ruby - 通过 API 和 ruby 创建优惠券返回错误:woocommerce_api_missing_coupon_data
问题描述
我正在尝试使用此页面上文档中的示例代码通过我的 rails 4 应用程序中的其余 api 创建优惠券:https ://woocommerce.github.io/woocommerce-rest-api-docs/?ruby#create-优惠券
这是我正在使用的代码:
data = {
code: "10off",
discount_type: "percent",
amount: "10",
individual_use: true,
exclude_sale_items: true,
minimum_amount: "100.00"
}
woocommerce.post("coupons", data).parsed_response
我希望它从 API 返回一个成功的响应,而不是我得到{"errors"=>[{"code"=>"woocommerce_api_missing_coupon_data", "message"=>"No coupon data specified to create coupon"}]}
解决方案
下面的段落显示了它是如何工作的,至少在 API V2 和 V3 中是这样。
params / data 哈希包含一个优惠券属性,请参阅v3 文档:
data = {
coupon: {
code: "new-coupon"
...
}
}
经过一番研究,我仍然不确定 API 描述中的示例是否正确,如您在此处看到的。
以下代码适用于 V2 和 V3,没有其他代码可用,V3 已于 13 天前更新。当“优惠券”在数据中不可用时引发错误:
if ( ! isset( $data['coupon'] ) ) {
throw new WC_API_Exception( 'woocommerce_api_missing_coupon_data', sprintf( __( 'No %1$s data specified to create %1$s', 'woocommerce' ), 'coupon' ), 400 );
}
我建议尝试使用此代码:
data = {
coupon: {
code: "10off",
discount_type: "percent",
amount: "10",
individual_use: true,
exclude_sale_items: true,
minimum_amount: "100.00"
}
}
woocommerce.post("coupons", data).parsed_response
如果这可行,我会暂时坚持使用V3 文档或提出问题,例如通过使用 Woocommerce 创建票证。也许他们的文档团队比开发工作得更快 :)
推荐阅读
- java - 我可以使用@MockBean 在我的测试类的一种方法中模拟一个bean吗?
- dexie - DexieJS 如何将结果分配给变量?
- javascript - JQuery .change(function) 在 DataTables 第 2 页及之后不起作用
- api - 有没有办法使用 AWS CLI 按名称而不是 ID 从 AWS API Gateway 获取 API?
- php - 如何从随机整数中创建一个没有双精度值的数组
- matlab - 将索引值分配给结构字段
- vbscript - 动态文件名
- react-native - React Native:状态更新没有触发重新渲染
- llvm - LLDB 中是否有数据结构或类来存储从命令行键入的命令?
- python - 自定义激活层问题