Bigcommerce API跟踪号创建PHP

Bigcommerce API跟踪号创建PHP,api,bigcommerce,Api,Bigcommerce,我正在尝试使用API更新Bigcommerce中订单的跟踪号。这是我正在使用的代码: //update BC of order status $filter = array('status_id' => 2); $order_status_update = BigCommerce::updateResource('/orders/' . 105, $filter); $order = Bigcommerce::getOrder(105); foreach($order->produ

我正在尝试使用API更新Bigcommerce中订单的跟踪号。这是我正在使用的代码:

//update BC of order status
$filter = array('status_id' => 2);
$order_status_update = BigCommerce::updateResource('/orders/' . 105, $filter);

$order = Bigcommerce::getOrder(105);
foreach($order->products as $shipment) 
{
    $filter = array(
        'order_address_id' => $shipment->order_address_id,
        'items'=> array(
            'order_product_id' => $shipment->product_id,
            'quantity' => $shipment->quantity
            ),
        'tracking_number' => 'tracking number'
        );
    $add_tracking = BigCommerce::createResource('/orders/105/shipments', $filter);
    var_dump($add_tracking);
}
我已按照此处的说明进行操作:

但我似乎无法让它发挥作用。有人能帮忙吗

提前,谢谢你的帮助


Akshay

创建装运的有效负载无效,因为items字段需要格式化为对象数组,并且使用的是产品id,而不是订单中的产品id

提供的代码试图为订单中的每个产品创建一次装运,是否有意?理想情况下,您将在一次装运中装运所有项目,这就是为什么项目字段是产品对象数组的原因

此外,通过为订单创建装运,订单状态将自动更改为“已装运”,因此不需要第一次提交请求

如果您试图为每个订单创建一个装运,并且假设没有订单具有多个地址,那么此代码应该可以工作

$order = Bigcommerce::getOrder(105);

$filter = array(
    'order_address_id' => $order->shipping_addresses[0]->id,
    'tracking_number' => '123456'
);

foreach($order->products as $product) {
    $items[] = array(
        'order_product_id' => $product->id,
        'quantity' => $product->quantity
    );
}

$filter['items'] => $items;

$add_tracking = BigCommerce::createResource('/orders/105/shipments', $filter);
var_dump($add_tracking);

非常感谢你。我要试试这个!编辑以说明shipping_addresses资源返回了一个对象数组。我刚刚签出了代码,它工作了!多谢各位。我已经坚持了一个多月了,你让我很开心,哈哈@adambil您知道为什么我在使用此代码时会收到一个
致命错误:未捕获的异常“BigCommerce\Api\NetworkError”,并显示消息“畸形”