christoph-schaeffer / dhl-business-shipping

An unofficial library for the DHL business shipping soap API (Version 3.3) and the dhl shipment tracking rest API written in PHP.
MIT License
29 stars 8 forks source link

International shipping #5

Closed wolfgangmauer closed 3 years ago

wolfgangmauer commented 3 years ago

First of all "Great job!!!"

With international shipping where i can put the "V53VV" ?

Hinweis für den internationalen Versand: Die Vorausverfügung ist ein Servicetyp (Produkt-Code V53VV), der bei internationalen Sendungen nun eine Pflichtangabe ist und verpflichtend mit angelegt werden muss.

wolfgangmauer commented 3 years ago

Need more help, shipping to switzerland ... grafik

$shipmentOrder1->Shipment->ExportDocument->exportType = ExportDocument::EXPORT_TYPE_OTHER;
$shipmentOrder1->Shipment->ExportDocument->exportTypeDescription = "Handelsware";
$shipmentOrder1->Shipment->ExportDocument->termsOfTrade = ExportDocument::TERMS_OF_TRADE_DELIVERY_DUTY_PAID;
$shipmentOrder1->Shipment->ExportDocument-> ?????????
christoph-schaeffer commented 3 years ago

Hello @wolfgangmauer,

thank you for using the library and your feedback! :-)

"V53VV" seems to be a product code, however i've never used that code. As far as i know International shipping should be "V54EPAK" for europe and "V53WPAK" for worldwide shipping. I'm not sure if you need worldwide shipping for switzerland though... Those products have different prices as well. If you want to use "V53VV" nonetheless you can set it here:

$shipmentOrder1->Shipment->ShipmentDetails->product = "V53VV"

for the other types (V54EPAK and V53WPAK) you could use the constants defined in ShipmentDetails $shipmentOrder1->Shipment->ShipmentDetails->product = ShipmentDetails::PRODUCT_INTERNATIONAL $shipmentOrder1->Shipment->ShipmentDetails->product = ShipmentDetails::PRODUCT_EUROPE

You could also contact DHL if you have a "Geschäftskunden-Portal" account. Usually you will have a designated contact person there. They should be able to tell you which product you actually should use, since like i've said these products have different pricing policy. There are multiple products for international shipping and even for national shipping.

"Vorausverfügung" seems to be the service "Endorsment". Services each have their own object in the library. here is an example how to add it:

$endorsement = new Service\Endorsement();
$endorsement->active = true;
$endorsement->type = Service\Endorsement::INTERNATIONAL_AFTER_DEADLINE;
$shipmentOrder1->Shipment->ShipmentDetails->Service->Endorsement = $endorsement;

Feel free to check the documentation for further information

EDIT: i had an error in my first answer regarding the endorsment. I've edited that part.

wolfgangmauer commented 3 years ago

If I understand correctly, V54EPAK is only for business customers, otherwise you have to use V53WPAK.

wolfgangmauer commented 3 years ago

For international the Endorsement->type must be Endorsement::INTERNATIONAL_RETURN_IMMEDIATELY