diff --git a/classes/Carrier/SendCloud/Data/ParcelCreation.php b/classes/Carrier/SendCloud/Data/ParcelCreation.php index 174361b6..e78d8347 100644 --- a/classes/Carrier/SendCloud/Data/ParcelCreation.php +++ b/classes/Carrier/SendCloud/Data/ParcelCreation.php @@ -12,28 +12,33 @@ class ParcelCreation extends ParcelBase { public ?int $SenderAddressId = null; +// const DEFAUlT_LENGTH = 150; + public function toApiRequest(): array { + + define("DEFAULT_LENGTH", 150); + $data = [ - 'name' => $this->Name, - 'company_name' => $this->CompanyName, - 'address' => $this->Address, - 'address_2' => $this->Address2, - 'house_number' => $this->HouseNumber, - 'city' => $this->City, - 'postal_code' => $this->PostalCode, - 'telephone' => $this->Telephone, + 'name' => substr($this->Name, 0, 75), + 'company_name' => substr($this->CompanyName, 0, 50), + 'address' => substr($this->Address, 0, 75), + 'address_2' => substr($this->Address2, 0, 75), + 'house_number' => substr($this->HouseNumber, 0, 20), + 'city' => substr($this->City, 0, 30), + 'postal_code' => substr($this->PostalCode, 0, 12), + 'telephone' => substr($this->Telephone, 0, 20), 'request_label' => $this->RequestLabel, - 'email' => $this->EMail, - 'country' => $this->Country, + 'email' => substr($this->EMail, 0, DEFAULT_LENGTH), + 'country' => substr($this->Country, 0, DEFAULT_LENGTH), 'shipment' => ['id' => $this->ShippingMethodId], 'weight' => number_format($this->Weight / 1000, 3, '.', null), - 'order_number' => $this->OrderNumber, + 'order_number' => substr($this->OrderNumber, 0, 50), 'total_order_value_currency' => $this->TotalOrderValueCurrency, 'total_order_value' => number_format($this->TotalOrderValue, 2, '.', null), - 'country_state' => $this->CountryState, - 'sender_address' => $this->SenderAddressId, - 'external_reference' => $this->ExternalReference, + 'country_state' => substr($this->CountryState, 0, DEFAULT_LENGTH), + 'sender_address' => substr($this->SenderAddressId, 0, DEFAULT_LENGTH), + 'external_reference' => substr($this->ExternalReference, 0, DEFAULT_LENGTH), 'total_insured_value' => $this->TotalInsuredValue ?? 0, 'parcel_items' => array_map(fn(ParcelItem $item) => $item->toApiRequest(), $this->ParcelItems), 'is_return' => $this->IsReturn, @@ -41,11 +46,13 @@ class ParcelCreation extends ParcelBase 'width' => $this->Width, 'height' => $this->Height, ]; - if ($this->CustomsInvoiceNr !== null) - $data['customs_invoice_nr'] = $this->CustomsInvoiceNr; - if ($this->CustomsShipmentType !== null) - $data['customs_shipment_type'] = $this->CustomsShipmentType; - + if ($this->CustomsInvoiceNr !== null) { + $data['customs_invoice_nr'] = substr($this->CustomsInvoiceNr, 0, 40); + } + if ($this->CustomsShipmentType !== null) { + $data['customs_shipment_type'] = substr($this->CustomsShipmentType, 0, DEFAULT_LENGTH); + } + return $data; } -} \ No newline at end of file +}