当前位置: 首页 > 知识库问答 >
问题:

WooCommerce API:使用行项目上的元数据创建订单

淳于煌
2023-03-14

我正在使用此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);

一切正常,秩序是在商业中建立的。

但是,当我想添加一个产品变体,其中包含关于变体的元数据时,我应该如何做呢?

我尝试了几件事,包括:

$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"
            }
        ]
    }
]

希望这个问题足够清楚,有人能给我指出正确的解决方案:)

感谢您的耐心阅读。

共有1个答案

楚承天
2023-03-14

下单时不能指定产品变更数据,产品变更应该已经存在,并应使用变更ID引用。

例如,如果您要对“黑色”变体下订单(假设其变体ID为12):

"line_items": [
  {
    "product_id": 1,
    "variation_id": 12,
    "quantity": 1
  }
]

无法使用订单endpoint向产品变体添加元数据,请使用产品endpoint更新产品。

 类似资料:
  • 1.6. 使用grunt创建项目 grunt是基于任务的构建工具,和make,rake,ant,cake,maven,gradle等是一样的 1.6.1. 前置条件 前置条件需要有nodejs和npm,请确保已安装成功: npm install -g grunt npm install -g grunt-init git clone https://github.com/gruntjs/grunt

  • 我试图在wp_woocommerce_order_itemmeta表中创建自定义元数据。但是要创建我想存储为元数据的数据,我需要知道在WooCommerce钩子woocommerce_checkout_create_order_line_item上创建的订单项的product_id。 我已经成功地用会话变量的值创建了一个元记录,但是当我试图获取订单项目的产品id时,我的代码失败了。我非常希望能找到

  • 我有一个WooCommerce订单的自定义元数据,现在我想在结账后在感谢页面上显示它,但是,数据不可用。数据保存在管理员中,我似乎无法访问它。 但是当我转储时,我的元数据不存在。 我正在使用; 保存数据,但转储

  • 我正在为我的WooCommerce商店出售的产品使用一些自定义项目元。我正在寻找一种方法来隐藏项目元显示在管理订单页面上的订单项目部分下。 我使用下划线的元名称,但元仍然显示。 你可以在附件中看到我的意思。。。 想法?

  • 关于WooCommerce。我有我要添加到购物车的自定义数据。在functions.php文件中,我有以下功能。 这是可行的,自定义数据显示在购物车中。但是,定制数据不会显示在订单和订单电子邮件上。我在Stackoverflow上看到了一些解决这个问题的答案,但我无法让它们适用于我的情况。我提到的解决方案是。 在Woocommerce中保存和显示订单项自定义元数据 显示和保存添加的自定义购物车项目

  • 在woocommerce单页产品上,我创建了一个自定义字段。我希望它的值在订单生效时存储在订单元中。经过几个小时的研究,我还没有找到任何解决办法来结束!但我相信我已经很接近了。。。 这是我的实际代码: 以下是我目前掌握的情况: 这就是我想要的: 如何将此自定义字段数据保存为订单元数据,以便在“自定义字段”元框中显示值。 任何帮助都很感激。