Prestashop moduł drukowania/generowania etykiet UPS i Poczty Polskiej

Dzisiaj odpaliłem produkcyjnie w sklepie fabrykawafelkow.pl opartym na silniku Prestashop moduł obsługujący drukowanie etykiet dla Poczty Polskiej oraz UPS. Prosty moduł który korzysta z API www.druczki-pocztowe.pl oraz API UPS opartym na przerobionym/dokończonym skrypcie ups-php. Trochę mi się spieszyło więc sporo rzeczy jest zaprogramowanych na sztywno, ponieważ w sklepie potrzebuję obsługiwać tylko paczki pocztowe oraz przesyłki kurierskie UPS standard z przedpłatą lub za pobraniem, oraz obsługę powiadomień klienta oraz sklepu. Jeszcze w piątek dostałem z UPS produkcyjne API i dzisiaj śmiga. Jestem pewien, że ten skrypt oszczędza dziennie ok 1-2 godzin pracy osoby przygotowującej zamówienia do wysyłki.

Skrypt działa dość prosto, w konfiguracji definiuje się:

PSL_POCZTA_API_KEY //klucz api w systemie druczki-pocztowe.pl
PSL_POCZTA_API_EMAIL //email do api
PSL_POCZTA_L_POLECONY_C_ID1 //id sposobu dostawy listu poleconego zdefiniowanego w prestashop
PSL_POCZTA_L_POLECONY_C_ID2 //dodatkowe id sposobu dostawy listu poleconego
PSL_POCZTA_PACZKA_C_ID1 //id sposobu dostawy paczka
PSL_POCZTA_PACZKA_C_ID2 //dodatkowe id sposobu dostawy paczka
PSL_POCZTA_SENDER_NAME //nazwa nadawcy poczta
PSL_POCZTA_SENDER_ADDRESS //adres nadawcy
PSL_POCZTA_SENDER_ZIP //kod pocztowy nadawcy
PSL_POCZTA_SENDER_CITY //miasto nadawcy
PSL_POCZTA_SENDER_PHONE //telefon nadawcy
PSL_POCZTA_SENDER_BANK_NR //numer konta nadawcy
PSL_POCZTA_SENDER_DESC //opis, np numer umowy z poczta
PSL_UPS_API_NUMBER //numer api ups
PSL_UPS_API_USERNAME //nazwa uzytkownika ups api
PSL_UPS_API_PASSWORD //haslo do api usp
PSL_UPS_KURIER_PL_ID1 //id sposobu dostawy kuriera
PSL_UPS_KURIER_PL_ID2 //dodatkowe id sposobu dostawy kuriera
PSL_UPS_KURIER_PL_COD_ID1 //nazwa modulu obslugujace platnosc przy dostawie u mnie to jest 'cashondeliverywithfee'
PSL_UPS_SHIPPER_NAME //nazwa nadawcy
PSL_UPS_SHIPPER_ATTENTION_NAME //nazwa nadawcy
PSL_UPS_SHIPPER_ADDRESS //adres nadawcy
PSL_UPS_SHIPPER_ZIP //kod nadawcy
PSL_UPS_SHIPPER_CITY //miasto nadawcy
PSL_UPS_SHIPPER_PHONE //telefon nadawcy
PSL_UPS_SHIPPER_NUMBER //numer klienta pod ktorego ups ma naliczac platnosci.
PSL_UPS_SHIPPER_COUNTRY //kod panstwa nadawcy
PSL_UPS_NOTIFY_EMAIL //adres powiadomien dla sklepu
PSL_UPS_NOTIFY_FROM_EMAIL //adres powiadamiajacego
PSL_UPS_NOTIFY_FROM_NAME //nazwa powiadamiajacego
PSL_UPS_NOTIFY_SUBJECT //temat powiadomienia
PSL_UPS_NOTIFY_MEMO //notatka powiadomienia

PSL – nie oznacza partii 😉 a jest skrótem od nazwy modułu „PrintShippingLabel”. Jeżeli zamówienie zawiera zdefiniowany sposób dostawy wyświetlają się opcje pozwalające na wygenerowanie etykiety. Jeżeli została już wygenerowana etykieta można ją pobrać. Etykiety dla poczty generowane są w postaci PDF’a, dla UPS w postaci GIF’a (jak będzie czas przerobię na PDF’a). Każda wygenerowana etykieta jest zapisywana do bazy. Numer nadawczy UPS jest dodawany i zapisywany automatycznie do zamówienia, dodatkowo w etykiecie UPS dodawany jest numer zamówienia w sklepie, aby można było łatwiej zweryfikować je na fakturze z UPS. Niestety fabrykawafelkow.pl stoi jeszcze na starej wersji presta, moduł przerobię jak zmienię oprogramowanie na nowsze.

Ekran przed generowaniem etykiety:

Ekran po wygenerowaniu etykiety:

Następnym modułem w planie jest integracja PrestaShop z WF-MAG. Miałem już popisane kilka procedur, ale niedawno całkowicie zmieniłem założenia. Zamiast odpalać integrację/synchronizację po stronie Windowsa, planuję zrobić moduł w PHP który wywołuje procedury z MSSQL’a i działa po stronie sklepu jako strona internetowa. Zakładam synchronizację/aktualizację produktów z PrestaShop do WF-MAG, import zamówień z PrestaShop do WF-MAG.