BigCommerce загружает номера отслеживания

Есть ли в настоящее время способ загрузить номер отслеживания обратно в заказ на BigCommerce в php? Я вижу в документе BigCommerce API Doc for Shipments, что есть параметр для указания номера отслеживания для команды PUT. Я также вижу, что в файле Shipment.php есть функция обновления. Однако я не уверен, как вызвать функцию, которая позволила бы мне это сделать, и возможно ли вообще загрузить номер для отслеживания.

Ниже приведен фрагмент файла shipping.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 для PUT.
https://developer.bigcommerce.com/api/stores/v2/orders/shipments#update-a-shipment


person Mason G    schedule 15.07.2013    source источник
comment
Покажите функцию или какой-нибудь код... Что угодно...   -  person Callombert    schedule 16.07.2013
comment
Отредактировал исходный пост с фрагментом функции обновления и ссылкой на команду PUT.   -  person Mason G    schedule 16.07.2013


Ответы (1)


Вы можете использовать объект отправления напрямую для создания нового отправления, если вы заполните обязательные поля (как показано на странице документа).

<?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);
person maetl    schedule 17.07.2013
comment
Благодарю вас! Это то, что я искал. - person Mason G; 17.07.2013