public function __construct($data = [], $connection = null) { $this->connection = $connection; foreach (['id', 'order_reference', 'shop_system', 'customer_number', 'service_point_reference', 'weight_in_g'] as $prop) { if (isset($data[$prop])) { $this->{$prop} = $data[$prop]; } } foreach (['recipient', 'billing_contact'] as $prop) { $this->{$prop} = isset($data[$prop]) ? new Address($data[$prop]) : null; } foreach (['subtotal', 'shipping_cost', 'tax_value'] as $prop) { $this->{$prop} = isset($data[$prop]) ? Money::import($data[$prop]) : null; } $this->product = isset($data['product']) ? new Product($data['product'], $this->connection) : null; if (isset($data['items'])) { $this->items = []; foreach ($data['items'] as $item_data) { $this->items[] = new Item($item_data); } } if (isset($data['shipments'])) { $this->shipments = []; foreach ($data['shipments'] as $url) { $this->shipments[] = Shipment::import($url, $this->connection); } } }
public function save($shipment) { if ($shipment->id) { $path = "shipments/" . $shipment->id; } else { $path = "shipments"; } $response = $this->client()->post($path, ['json' => $shipment->toHash()]); if ($response->getStatusCode() == 200) { return Shipment::import(json_decode($response->getBody(), true), $this->connection); } else { $this->raiseError($response); } }