Esempio n. 1
0
 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);
     }
 }