bestsource

WooCommerce API : 온라인상의 메타데이터로 주문생성

bestsource 2023. 9. 26. 22:26
반응형

WooCommerce API : 온라인상의 메타데이터로 주문생성

WooCommerce: https://github.com/kloon/WooCommerce-REST-API-Client-Library 에서 이 API를 사용하여 주문을 작성하고 있습니다.

주문을 추가할 때:

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

제품 변형에 메타데이터를 추가하는 작업은 다음을 사용하여 수행할 수 없습니다.ordersendpoint를 사용합니다.products제품 업데이트를 위한 엔드포인트.

언급URL : https://stackoverflow.com/questions/33887943/woocommerce-api-create-order-with-meta-data-on-line-item

반응형