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

DPD Logo

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

DPD používá v podstatě 2 knihovny:

  1. GeoApi (import balíků atp.) a DpdStatus (stav zásilky) - je nutno požádat o přístupové údaje!
    Tato knihovna je novější a o něco přehlednější k použití

  2. MojeDPD - tato knihovna je starší, ale nabízí všechny funkce. Přístupové údaje jsou shodné s webovými přístupy, takže ji lze rovnou použít.
    (UPDATE 5.2.2021: tato druhá knihovna je pro nové klienty už zablokována)

Knihovny umožňují:

  • Vytváření zásilek
  • Vytvoření přepravních štítků
  • Vytváření svozu
  • Zjištění stavu balíku
  • Seznam výdejních míst
  • Historie podaných zásilek přes API
  • ... a další dle oficiální specifikace
MojeDPD a DPD GeoApi (PHP knihovny)
Objednávka
(pro vlastní použití; zákaz samostatně 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.

Příklad použití:

Kompletní příklady budou dodány s knihovnami.

<?php
/**
* DPD Geo API
*/
require 'class_DpdGeoApi.php';
require
'class_DpdStatus.php'// pro zjištění stavu balíku

$dpd = new DpdGeoApi("uzivatel", "heslo"); // přístupy vyžádejte u DPD

// 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 DPDSTATUS
/**
* 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.

<?php
/**
* MojeDPD API
*/
require 'class_MojeDpd.php';

// přístupy stejné jako webové přístupy do aplikace Moje DPD
$dpd = new MojeDpd('XXXX_UZIVATEL', 'XXX_HESLO');


# CELKOVÝ SEZNAM FUNKCÍ:
# Calculate Price - Provádí výpočet cen v závislosti na nastaveném ceníku
# Create Shipment - Vytváří zásilku
# Print Label for Shipment - Vytváří přepravní štítek zásilky
# Get Shipment Status - Vrací stav zásilky v závislosti na provedených skenech – událostech v přepravním cyklu zásilky
# Search Shipment - Vrací seznam zásilek dle vstupních parametrů (datum, zákazník, příjemce…)
# Create Pickup Order - Vytváří objednávku svozu.
# Pickup Order Status - Vrací stav objednávky svozu
# Delete Pickup Order - Maže objednávku svozu
# Search Missing Pickup Order - Vrací množství zásilek, pro které není pořízena objednávka svozu
# Search Pickup Order - Vrací seznam objednávek svozu dle vstupních parametrů
# Close Manifest - Uzavírá soupisku (manifest). Volitelně se štítky
# Delete Shipment - Maže zásilku
# Parcel status - Vrací stav balíku v závislosti na provedených skenech – událostech v přepravním cyklu zásilky (rozvoz, doručeno atd.)
# Get Shipment - Vrací data o zásilce
# Reprint Label for parcel - Opětovný tisk přepravního štítku balíku
# Reprint Manifest - Opětovný tisk seznamu zásilek (manifestu). Volitelně se štítky
# Update Shipment - Aktualizace parametrů zásilky
   

Historie změn

05.02.2021 - GeoAPI drobné změny, verze v1.3.3
05.02.2021 - Doplněny informace k MojeDPD
13.01.2021 - Doplněny informace
22.07.2020 - Doplněny příklady k MojeDPD
31.10.2017 - Přidáno

Poslední zpětné linky