WooCommerce REST API - 检索订单属性(尺寸/颜色)

Posted

技术标签:

【中文标题】WooCommerce REST API - 检索订单属性(尺寸/颜色)【英文标题】:WooCommerce REST API - Retrieve Order Attributes (Size / Color) 【发布时间】:2014-11-28 04:33:01 【问题描述】:

使用WooCommerce REST Client Library,我可以轻松拉取正在处理的订单,如下所示:

$response = $wc_api->get_orders( array( 'status' => 'processing' ) );

但结果不包括属性(颜色、尺寸等),即使购买的产品设置了与产品变体相关的尺寸/颜色属性。那部分一切正常。客户可以选择产品的尺寸和颜色,但 get_orders 查询不会显示该信息。

以下是显示的内容:

<line_items>
     <XML_Serializer_Tag>
         <id>18</id>
         <subtotal>19.99</subtotal>
         <total>19.99</total>
         <total_tax>0.00</total_tax>
         <price>19.99</price>
         <quantity>1</quantity>
         <tax_class />
         <name>Cool T-Shirt You Just Bought!</name>
         <product_id>351</product_id>
         <sku>194953</sku>
     </XML_Serializer_Tag>
 </line_items>

如您所见,即使客户为变体选择了“大号/黑色”,它也不会显示在 get_orders 数据中。

我可以使用相同的库为 product 提取可用属性,但我需要为 order 提取客户选择的属性。

【问题讨论】:

我说的是 Magento 经验,同样可能适用于 woocommerce:您需要获取订单的产品,并从该集合/数组中获取产品的详细信息,例如 weightsize 可以从 REST API 访问产品详细信息;例如,我可以让它为我提供特定产品的可用color 选项。但这并不能告诉我color 客户在下订单时选择了什么。 REST API 似乎没有提供该数据,也没有提供选定的 size 或任何其他“变量”数据字段。 【参考方案1】:

我讨厌回答自己的问题,但事实证明答案很简单:

WooCommerce REST Client Library 尚未针对 API 的 V2 进行更新,尽管 WooCommerce 将其链接为 V2 资源。解决方法非常简单:

导航到 ~/class-wc-api-client.php 并将第 17 行更改为:

const API_ENDPOINT = 'wc-api/v2/';

当我执行 get_orders() 查询时,API 立即返回了正确的数据。

【讨论】:

【参考方案2】:

我又是在 magento 的背景下说话 who would like to get that bounty :P 我认为您必须从上面生成的订单列表中分别处理每个订单

引用此link

您可以通过以下方式获取订单的订单商品

$order = new WC_Order( $order_id );
$items = $order->get_items();

那么如果你遍历它们,你可以得到所有相关的数据:

foreach ( $items as $item ) 
    $product_name = $item['name'];
    $product_id = $item['product_id'];
    //// you had the product id now you can load the product and get all information  you might need 

【讨论】:

是的,如果您是在 Wordpress / WooCommerce 框架内执行此操作,这将是执行此操作的方法——也许作为一个插件。但是 REST API 不提供对 WC_Order 的直接访问,而我正在尝试使用它。

以上是关于WooCommerce REST API - 检索订单属性(尺寸/颜色)的主要内容,如果未能解决你的问题,请参考以下文章

WooCommerce REST API产品图像相对URL问题

WooCommerce REST API致命错误连接问题

WooCommerce REST API 无效的 JSON

WooCommerce REST API - 按修改日期过滤订单

woocommerce通过rest api验证用户名和密码

php facetwp woocommerce rest api check