Moje DPD API pro automatizovaný import zásilek – PHP skript

Vytvořeno na základě: Příručka programátora - Webové služby Moje DPD a DPD Geo API

Knihovna umožňuje:

  • Vytváření zásilek
  • Vytvoření přepravních štítků
  • Vytváření svozu
  • Zjištění ceny zásilky
  • Zjištění stavu balíku
  • ... a další dle oficiální specifikace

Jedná se konkrétně o dvě PHP knihovny využívající DPD GeoAPI, služba MojeDPD má velmi podobné schéma, pošlu také skript, ale nemám k tomu vytvořený příklad.

DPD knihovny (PHP skript)
Objednávka
(pro vlastní použití; zákaz dále šířit nebo prodávat; aktualizace dle dohody)

Fakturu zasílám obratem a skript po uhrazení, GDPR a obchodní podmínky zde.

Děkuji za podporu a jistě budete spokojeni.

Bezpečný nákup

Recenze je možno psát na firmy.cz a v případě dotazů mě kontaktujte.

<?php
require
'class_DpdGeoApi.php';
require
'class_DpdStatus.php';

/**
* DPD Geo API
*/
$dpd = new DpdGeoApi("uzivatel", "heslo");

// Použití:
// $dpd->jakakoliv_funkce_podle_dokumentace


//------------------------------------NOVÁ ZÁSILKA
// typ NewShipmentVO
$shipment = array(
   
'_ShipmentDetailVO' => array(
       
'ID_Customer' => 1, // ID_Customer int M - ID zákazníka
       
'ID_Customer_Address' => 0,    // ID_Customer_Address int M - ID svozové adresy
       
       
'REF1' => 'XXXXX', // REF1 string M 35 Reference zásilky --- Povinné
       // REF2 string O 35 Reference zásilky
       // REF3 string O 35 Reference zásilky
       // REF4 string O 35 Reference zásilky
       
       // odesílatel - jen pokud jde o sběrné zásilky
       /*
       'Sender' => $dpd->formatSender(
           $fullname, $street, $zip, $city, $country, $contact_person, $phone, $email
       ),*/
       
       // příjemce
       
'Receiver' => $dpd->formatReceiver(
           $fullname, $street, $zip, $city, $country, $contact_person, $phone, $email
       ),
       
       
// počet kusů v zásilce
       
'ParcelCount' => 1,
       
       
// Seznam informací o jednotlivých kusech zásilky
       
'Parcel_References_and_insurace' => array(
           
// PARCELNUMBER string O 14 Číslo zásilky z vlastní číselné řady
           // PARCELNUMBERBACK string O 14 Číslo zásilky z vlastní číselné řady pro výměnnou zásilku
           // REF1 string M 35 Reference zásilky <--- POVINNÉ
           
'REF1' => 'XXXXX', // reference zásilky
           // REF2 string O 35 Reference zásilky
           // REF3 string O 35 Reference zásilky
           // REF4 string O 35 Reference zásilky
           // HINSAMOUNT string O 10 Částka doplňkového pojištění
           // HISCUR string C 3 Měna doplňkového pojištění
       
),
       
       
'Service_Combination' =>  array(
           
// Notification bool O 1 Private zásilky s notifikacemi a 1HP
           // AirExpress bool O 1 Letecká přeprava
           // DPDPack bool O 1 Zásilka s obálkou od DPD
           // DPDBox bool O 1 Zásilka s krabicí od DPD
           // DPD10 bool O 1 Doručení do 10:00
           // DPD12 bool O 1 Doručení do 12:00
           // DPD18 bool O 1 Garantované doručení druhý den do 18:00
           // DPDGuarantee bool O 1 Garantované doručení druhý den do zahraničí
           // Swap bool O 1 Výměnná zásilka
           // DPDEvening bool O 1 Doručení ve večerních hodinách
           // DPDPneu bool O 1 Produkt pro zasílání pneumatik
           // ID_PS int O - ID výdejního místo pro doručení
       
),

       
'Additional_Services' => array(
           
// COD string O 10 Částka dobírky
           // CURRENCY string C 3 Měna dobírky
           // PAYMENT string C 1 Typ platby, 0 = hotově ; 1 = kartou i hotově
           // PURPOSE string O 14 Variabilní symbol
           // BANKCODE string C 25 Kód banky
           // BANKNAME string C 27 Jméno banku
           // ACCOUNTNUMBER string C 25 Číslo účtu
           // ACCOUNTNAME string C 30 Jméno účtu pro odplacení dobírky
           // IBAN string O 50 IBAN účtu
           // BIC string C 50 BIC banky
           // PERSDELIVERY string O 1 1 = doručeni na odděleni bez osobni identifikace
           // 2 = osobni doručeni s osobni identifikaci typu IDCheck
           // 3 = osobni doručeni bez osobni identifikace
       
),
       
   )
);

// vytvoříme novou zásilku
// $res = $dpd->NewShipment($shipment);

// vrátí číslo zásilky atp. ke sledování potom

// print_R($res);



//--------------- ŠTÍTKY
/*
$res = $dpd->GetLabel(array(
   'type' => 'PDF',
   'parcelno' => array(
       // seznam zásilek k tisku
   )
));
print_r($res);
*/


//--------------- SVOZ
$res = $dpd->NewPickup(array(
   
'orderList' => array(
       
'parcelno' => array(
           
// seznam zásilek ke svozu
       
),
       
'date' => '20180202', // string M 8 Datum svozu ve formátu „yyyyMMdd“
       // note string O 200 Poznámka ke svozu - nepovinné
   
)
));
print_r($res);



//--------------- ZJIŠTĚNÍ STAVU ZÁSILKY SE PROVÁDÍ PŘES DRUHOU KNIHOVNU
/**
* DPD Status
*/
$dstatus = new DpdStatus("uzivatel", "heslo");

$res = $dstatus->GetParcelStatus(array(
   
'parcels' => array(
       
// seznam zásilek pro zjištění stavu
   
)
));

print_r($res); 
// vrátí stav, zda bylo převzato atp.