tracking !== null; } /** * Does this shipment offer a track and trace code? * * @return bool */ public function hasTrackingUrl() { return $this->hasTracking() && !empty($this->tracking->url); } /** * Retrieve the track and trace url. Returns null if there is no url available. * * @return string|null */ public function getTrackingUrl() { if (!$this->hasTrackingUrl()) { return null; } return $this->tracking->url; } /** * Get the line value objects * * @return OrderLineCollection */ public function lines() { return ResourceFactory::createBaseResourceCollection($this->client, $this->lines, OrderLine::class); } /** * Get the Order object for this shipment * * @return Order * @throws \Mollie\Api\Exceptions\ApiException */ public function order() { return $this->client->orders->get($this->orderId); } /** * Save changes made to this shipment. * * @return BaseResource|Shipment * @throws \Mollie\Api\Exceptions\ApiException */ public function update() { if (!isset($this->_links->self->href)) { return $this; } $body = json_encode([ "tracking" => $this->tracking, ]); $result = $this->client->performHttpCallToFullUrl( MollieApiClient::HTTP_PATCH, $this->_links->self->href, $body ); return ResourceFactory::createFromApiResult($result, new Shipment($this->client)); } }