WooCommerce API:在订单项上创建包含元数据的订单
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WooCommerce API:在订单项上创建包含元数据的订单相关的知识,希望对你有一定的参考价值。
我正在使用此API在WooCommerce中创建订单:https://github.com/kloon/WooCommerce-REST-API-Client-Library
当我添加订单时:
$orderData = array(
"order" => array(
"line_items" => array(
array(
"product_id" => 1,
"quantity" => 1
)
)
)
);
$client->orders->create($orderData);
一切正常,订单是在WooCommerce中创建的。
但是,当我想添加有关变体的元数据的产品变体时,我该怎么做?
我尝试了几件事,包括:
$orderData = array(
"order" => array(
"line_items" => array(
array(
"product_id" => 1,
"quantity" => 1,
"variation_id" => 2,
"variations" => array(
"color" => "black"
)
)
)
)
);
$client->orders->create($orderData);
我想要实现的是,在获得订单时:
$client->orders->get( $order_id );
颜色信息已添加到订单项的元数据中(因此,在发送电子邮件时,订单详细信息中会显示颜色说明):
line_items: [
{
id: ...,
subtotal: "...",
subtotal_tax: "...",
total: "...",
total_tax: "...",
price: "...",
quantity: 1,
tax_class: null,
name: "Product name",
product_id: 1,
sku: "",
meta: [
{
key: "color",
label: "Color",
value: "black"
}
]
}
]
希望问题很清楚,有人可以指出我正确的解决方案:)
感谢您耐心阅读本文。
答案
您在下订单时无法指定产品变体数据,产品变体应该已经存在,并且应使用变体ID进行参考。
例如,如果您要下一个“黑色”变体的订单(比如它有变体ID 12):
"line_items": [
{
"product_id": 1,
"variation_id": 12,
"quantity": 1
}
]
无法使用orders
端点向产品变体添加元数据,请使用products
端点更新产品。
以上是关于WooCommerce API:在订单项上创建包含元数据的订单的主要内容,如果未能解决你的问题,请参考以下文章
使 Woocommerce (3.8.0) 管理员电子邮件包含结帐页面中的自定义字段数据
如何从 Woocommerce 中的订单项中获取产品 sku [重复]
在 Woocommerce 3+ 中使用订单项以编程方式创建订单