ceske-sluzby icon indicating copy to clipboard operation
ceske-sluzby copied to clipboard

WooCommerce Sledovanie zásielok SK + CZ

Open lukasprelovsky opened this issue 9 years ago • 14 comments

SK : Slovenská pošta,DHL, DPD,TEN EXPRES / GEIS, GLS, DHL ,FEDEX, IN TIME, REMAX, TNT EXPRES, UPS

CZ : Česká pošta, DHL, DPD, PPL

lukasprelovsky avatar Oct 12 '15 07:10 lukasprelovsky

Zatím jsem to moc nezkoumal, ale jak by to mělo konkrétně fungovat? Tam asi nebude možné žádné automatické napojení na dopravce?

K objednávce přidáme políčko pro zadání dopravce a ID balíku - to se asi bude muset zadávat ručně?

Zákazníkovi automaticky odejde notifikační email s adresou, kde to může zkontrolovat?

A potom to budeme přes jejich API kontrolovat a případně označovat objednávku, že je dořešená?

pavelevap avatar Oct 19 '15 19:10 pavelevap

Klasické česko-slovenské pluginy pro sledování zásilek na woocommerce fungují čistě na bázi: Manuální vložení čísla balíku do políčka v objednávce ---> klik na tlačítko aktualizace objednávky ---> odeslání automatického emailu zákazníkovi že zásilka byla odeslána (v emailu url odkaz na dopravce a id balíku v target_blank) ----> zákazník si klikne a vidí kde se jeho balík nachází (na stránce dopravce) ---> většinou to funguje tak že admin e shopu se označí objednávku za dokončenou + zadá tracking číslo balíku. Odeslat se dva emaily o dokončení zásilky + o sledování zásilky ..

lukasprelovsky avatar Oct 19 '15 20:10 lukasprelovsky

Díky, tak to nevypadá nějak moc složitě, myslel jsem, že se to má ještě automaticky kontrolovat a až podle toho objednávku uzavírat :-) Takže jednou se pouze vloží číslo a dostane to nějaký status "Odesláno" a potom je třeba ještě označit objednávku za dokončenou? Nebo se to spojuje v jeden krok? A co když si pak někdo třeba nepřevezme dobírku?

Kdyby měl někdo čas tak uvítám, pokud by shromáždil URL adresy pro kontroly čísel balíků u jednotlivých služeb...

pavelevap avatar Oct 20 '15 07:10 pavelevap

Nebylo by špatný udelat to tak jak píšeš... Neuzatvírat objednávku, jenom odeslat email s trackingem po tom co admin eshopu zadá číslo balíku a dá aktualizovat objednávku. Pokud bude chtít objednávku uzavrít (napr platil mu nekdo predem na ucet nebo uz mu zaplatil za dobirku) sam si manualne objednavku uvede do stavu : dokonceno / objednavka vybavena ...

lukasprelovsky avatar Oct 20 '15 08:10 lukasprelovsky

'INTIME' => 'http://trace.intime.cz/index.php?orderNumber=%1$s', 'PPL' => 'http://www.ppl.cz/main2.aspx?cls=Package&idSearch=%1$s', 'Česká pošta' => 'http://www.ceskaposta.cz/cz/nastroje/sledovani-zasilky.php?barcode=%1$s&locale=CZ&send.x=52&send.y=8&go=ok', 'DHL' => 'http://www.dhl.cz/content/cz/cs/express/sledovani_zasilek.shtml?brand=DHL&AWB=%1$s', 'DPD' => 'https://tracking.dpd.de/cgi-bin/delistrack?pknr=%1$s&typ=32&lang=cz',

novetrendy avatar Oct 20 '15 12:10 novetrendy

Slovenská pošta http://tandt.posta.sk/zasielky/ZA094922160SK (pričem ZA094922160SK je číslo zásilky)

Vse slovensky dopravci

A tady jsou ostatny (Kopirovano s jineho pluginu pouze za ucelem ziskani URL dopravcu)

if ($trackurl[0] == 'SLOVAKIAPOST'){
    $urltrack = 'http://tandt.posta.sk/zasielky/'.$trackno[0];   
}
else if ($trackurl[0] == 'FEDEX'){
    $urltrack = 'https://www.fedex.com/fedextrack/?action=track&ascend_header=1&clienttype=dotcom&mi=n&track=y&action=track&cntry_code=sk&language=english&action=1&tracknumbers='.$trackno[0];  
}
else if ($trackurl[0] == 'DPD'){
    $urltrack = 'https://tracking.dpd.de/cgi-bin/delistrack?pknr='.$trackno[0].'&typ=32&lang=sk';
}
else if ($trackurl[0] == 'DHL'){
    $urltrack = 'http://www.dhl.sk/content/sk/sk/express/sledovanie_zasielky.shtml?brand=DHL&AWB='.$trackno[0];  
}
else if ($trackurl[0] == 'REMAX'){
    $urltrack = 'http://www.remax.sk/Sledovaniez%C3%A1sielok/tabid/70/Default.aspx';     
}
else if ($trackurl[0] == 'GLS'){
    $urltrack = 'http://online.gls-hungary.com/search_stat.php';     
}
else if ($trackurl[0] == 'TNT'){
    $urltrack = 'http://www.tnt.com/express/sk_sk/site/home.html';   
}
else if ($trackurl[0] == 'UPS'){
    $urltrack = 'http://www.sps-sro.sk/sk/Vnutrostatna-preprava/Pohyb-vnutrostatnej-zasielky.html';  
}
else if ($trackurl[0] == 'GEIS'){
    $urltrack = 'http://www.geis-group.sk/sk';   
}
else if ($trackurl[0] == 'INTIME'){
    $urltrack = 'http://www.intime.sk/sk/eCom/Sledujte-pohyb-zasielky.html';     
}

lukasprelovsky avatar Oct 20 '15 20:10 lukasprelovsky

_Geis Parcel CZ:_ http://tt.geis.cz/TrackAndTrace/ZasilkaDetail.aspx?id=%1$s _GLS CZ:_ https://gls-group.eu/CZ/cs/sledovani-zasilek?match=%1$s _Zásilkovna.cz:_ http://www.zasilkovna.cz/vyhledavani/%1$s _Zásielkovňa.sk:_ http://www.zasielkovna.sk/vyhledavani/?det=%1$s

ghost avatar Oct 28 '15 09:10 ghost

Díky za odkazy, ale dává tato služba dnes ještě smysl?

O víkendu jsem tuto novou funkci připravoval, ale pak mi zrovna jeden eshop doručoval balíček a zjistil jsem, že mnoho dopravců to už řeší přímo na své straně. Např. PPL, kdy mi přišla informace emailem, že je zboží odesláno dodavatelem a potom ještě další informace, že je připraveno k rozvozu a bude zítra doručováno. Emaily chodily přímo od PPL, takže to je patrně nějaká jejich integrovaná služba. A když si tak vzpomenu, tak to samé má Zásilkovna či Česká pošta (např. Balík do ruky), kdy chodí automatické emaily a dokonce i SMS.

Ale nevím, jak jsou na tom ostatní dopravci. Nějaké nápady?

pavelevap avatar Nov 03 '15 10:11 pavelevap

Určite to smysl má, protože i když nekdo napr u pošty pri klasickem doručení nevyplní email a mobil , tracking z eshopu prijede pres tuhle funkcii

lukasprelovsky avatar Nov 03 '15 12:11 lukasprelovsky

Zájemci mohou začít testovat: https://github.com/pavelevap/ceske-sluzby/commit/fcc713a45e386d237bedbb3cf428a46ee8e4c48d

Funkci je třeba nejdříve povolit v nastavení pluginu České služby, pak se zobrazí nový metabox u každé objednávky. Po uložení dat se na stejném místě objeví kontrolní odkaz. Zatím se odkaz nikde jinde nezobrazuje ani nikam neodesílá. Nápady vítány!

Co ještě zbývá dodělat (či promyslet)?

  • [ ] Doplnit všechny uvedené dopravce (+ umožnit doplnění vlastního).
  • [x] Často se liší CZ a SK verze pouze o parametr v URL, asi by se to mělo odvíjet podle země zákazníka?
  • [ ] Kde a kdy budeme odkaz zobrazovat? Asi by to chtělo v přehledu objednávek na účtě zákazníka + v nějaké emailové notifikaci? Umožnit nastavit formát a místo zobrazení (jako pro dodací dobu).
  • [ ] Nešlo by nějak propojit zvolenou metodu doručení a možnost volby dopravce pro sledování zásilek? Možná přidat checkbox k nastavení dopravní metody, zda pro ni bude sledování používáno a zda bude defaultní?
  • [ ] Automatická validace zadaných hodnot (zejména ID zásilek)?
  • [x] Ukládat informace jako uživatelské pole nebo term meta pro term item (shipping)?
  • [ ] Přidat odeslání notifikačního emailu do akcí objednávky a uložit o tom informaci do poznámek.
  • [ ] Skrýt používané meta informace u shippingu v objednávce.
  • [ ] Pořebujeme tam funkce ob_start() a ob_get_clean()?
  • [ ] Zobrazovat informace na přehledu objednávek (podrobnosti nebo ikona, že bylo odesláno upozornění)?
  • [ ] Poznámka o notifikaci by mohla obsahovat i odkaz (pro kontrolu historie).
  • [ ] Pokud bude nějaký dopravce do budoucna odebrán, tak to tam musíme doplnit (nechat data v databázi, ale nezobrazovat ho v nové nabídce).

pavelevap avatar Nov 07 '15 11:11 pavelevap

Sledování zásilek trochu přepracováno, snad už to bude konečná verze. Zbývá pár drobností a nápady na budoucí vylepšení :-)

pavelevap avatar Sep 05 '16 12:09 pavelevap

Doplněni další dopravci, mělo by to být zcela funkční, další případná vylepšení podle zájmu v další verzi.

pavelevap avatar Sep 05 '16 15:09 pavelevap

Doplněni další dopravci, mělo by to být zcela funkční, další případná vylepšení podle zájmu v další verzi. @pavelevap

Tímto kódem do souboru includes/class-ceske-sluzby-sledovani-zasilek.php jsem přidal možnost z Woocommerce zasílání sledování zásilek pro Zásilkovnu


    'GLS' => array(
      'nazev' => 'GLS',
      'lang' => array(
                  'CZ' => 'https://gls-group.eu/CZ/cs/sledovani-zasilek?match=%ID%',
                  'SK' => 'https://gls-group.eu/SK/sk/sledovanie-zasielok?match=%ID%'
                )
      ),
    'Zasilkovna' => array(
      'nazev' => 'Zásilkovna',
      'lang' => array(
                  'CZ' => 'https://www.zasilkovna.cz/vyhledavani/?det=%ID%',
                  'SK' => 'https://www.zasielkovna.sk/vyhladavanie/?det=%ID%'
                )
    )  
);
  foreach ( $dopravci as $key => $dopravce ) {

vvvamik avatar Sep 16 '19 18:09 vvvamik

@vvvamik: Díky, před chvílí doplněno.

pavelevap avatar Oct 29 '19 10:10 pavelevap