2013-07-15 37 views
1

目前有一种方法可以将追踪编号上传到BigCommerce的订单上吗?我可以在BigCommerce的API文档中看到有一个参数指定PUT命令的特定追踪编号。 我还看到Shipment.php文件中有一个更新函数。但是,我不确定如何调用允许我这样做的函数,或者如果甚至可以上传跟踪编号。BigCommerce上传追踪号码

下面是shipment.php片段

namespace Bigcommerce\Api\Resources; 

use Bigcommerce\Api\Resource; 
use Bigcommerce\Api\Client; 

class Shipment extends Resource 
{ 
    ... 

    public function create() 
    { 
     return Client::createResource('/orders/' . $this->order_id . '/shipments', $this->getCreateFields()); 
    } 

    public function update() 
    { 
     return Client::createResource('/orders/' . $this->order_id . '/shipments' . $this->id, $this->getCreateFields()); 
    } 
} 

这里也是该链接为把API文档。
https://developer.bigcommerce.com/api/stores/v2/orders/shipments#update-a-shipment

+1

展函数或代码...任何... – Callombert

+0

使用更新函数的片段和PUT命令的链接编辑原始文章。 –

回答

2

只要您通过必填字段(如doc页面上所示),您就可以直接使用货件对象创建新货件。

<?php 

$shipment = new Bigcommerce\Api\Resources\Shipment(); 
$shipment->order_address_id = $id; // destination address id 
$shipment->items = $items; // a list of order items to send with the shipment 
$shipment->tracking_number = $track; // the string of the tracking id 
$shipment->create(); 

您也可以直接通过在信息与数组的createResource功能:

<?php 

$shipment = array(
    'order_address_id' => $id, 
    'items' => $items, 
    'tracking_number' => $track 
); 

Bigcommerce\Api\Client::createResource("/orders/1/shipments", $shipment); 

做一个PUT是相似的。您可以从订单对象遍历它:

<?php 

$order = Bigcommerce\Api\Client::getOrder($orderId); 

foreach($order->shipments as $shipment) { 
    if ($shipment->id == $idToUpdate) { 
     $shipment->tracking_number = $track; 
     $shipment->update(); 
     break; 
    } 
} 

或者直接拉回来,作为一个对象,并再次将其保存:

<?php 

$shipment = Bigcommerce\Api\Client::getResource("/orders/1/shipments/1", "Shipment"); 
$shipment->tracking_number = $track; 
$shipment->update(); 

或者直接更新:

<?php 

$shipment = array(
    'tracking_number' => $track 
); 

Bigcommerce\Api\Client::updateResource("/orders/1/shipments/1", $shipment); 
+0

谢谢!这正是我所期待的。 –