PHP a JavaScript integrácia služby Neoship

Služba Neoship umožňuje prevádzkovateľom e-shopov doručovať balíky viacerými kuriérskymi spoločnosťami s podporou plnej automatizácie. Nie je teda potrebné zazmluvniť si viaceré kuriérske služby, ale stačí iba jeden systém. V súčasnej dobe sú partnerské kuriérske spoločnosti: SPS, GLS, PACKETA, 123Kuriér. Ako bolo spomenuté, podpisovanie zmluvy so žiadnou z nich nie je zo strany obchodníka potrebné a všetky kuriérske spoločnosti spravujete jednotne. Viac informácií nájdete na https://www.neoship.sk

Front-end integrácia

Na strane e-shopu v časti košíka, resp. v sekcii kde je potrebné zvoliť spôsob dopravy prebieha integrácia prostredníctvom JavaScriptu nasledovne:

1. je potrebné na server nahrať a načítať základnú knižnicu systému Neoship

2. môžeme si napísať jednoduchú funkciu openmap(), ktorú zavoláme po kliknutí na zvolený element. V e-shope by to mal byť element, kde vyberám dopravu. Po výbere sa automaticky otvorí mapový portál prostredníctvom ktorého zákazník vyhľadá a zvolí výdajné miesto, prípadne konkrétneho dopravcu / kuriéra.

3. po výbere získame identifikátor výdajného miesta spolu s jeho názvom. V príklade nižšie je to výstup v konzole, ale daný skript môžeme modifikovať a tieto údaje vložiť napríklad do skrytého elementu input a ďalej s nimi pracovať.

Ukážka kódu:

<!doctype html>
<html>
  <head>
    <script src="lib/script.js"></script>
  </head>
  
  <p onClick="openmap()">Otvorenie vyberu vydajnych miest</p>
  
  <script>
  function openmap() {
    ParcelshopIframe.Widget.open(onSelectParcelshop, {shipper_id:1});
    //kódovanie prepravcov (shipper_id): GLS - 1; SPS - 2; Packeta - 3; 123Kuriér - 4; DPD - 5
  }
  var onSelectParcelshop = (parcelshop) => {
    if (parcelshop) {
        //tu je zvoleny parcelshop z wingetu Otvorenie výberu výdajných miest
        console.log(parcelshop.name);
        console.log(parcelshop.id);               
    }
  };
  </script>
</html>

 

Výber výdajného miesta na mape

Výber výdajného miesta na mape

Výber výdajného miesta na mape

ID výdajného miesta v konzole po výbere na mape

ID výdajného miesta v konzole po výbere na mape

Back-end integrácia

Pri automatizovanom zasielaní údajov do rozhrania Neoship je potrebné postupovať v zmysle dokumentácie.

Získanie bearer tokenu

Prostredníctvom zaslania prihlasovacích údajov metódou POST na URl https://apiserver.neoship.sk/api/login_check získame bearer token, čo je prvá podmienka pre ďalšiu prácu.

{
"username": "username@login.com",
"password": "AC123456"
}

Informácie o výdajnom mieste

Po výbere výdajného miesta dostaneme jeho identifikátor. Je to len číselný údaj pomocou ktorého ďalej získame údaje o výdajnom mieste ako ulica, adresa, názov, PSČ. S týmito údajmi pracujeme pri vytváraní balíka, ale sú tiež dobré pre vlastnú evidenciu a pri posielaní potvrdenia zákazníkovi, ktorému číselný údaj nebude nič hovoriť. Nižšie je jednoduchý skript, pomocou ktorého všetky informácie o výdajnom mieste dostaneme do PHP premenných. V URL adrese je potrebné zmeniť {shipper_id} za číselný identifikátor výdajného miesta.

<?php

$url = 'https://apiserver.neoship.sk/api/all/parcelshop/{shipper_id}';
$response = file_get_contents($url);
$data = json_decode($response, true);

$parcelshopId = $data['parcelshop_id'];
$parcelshopIdname = $data['name'];
$parcelshopIdstreet = $data['street'];
$parcelshopIdcity = $data['city'];
$parcelshopIdzip = $data['zip'];
$parcelshopIdstate_code = $data['state_code'];

?>

Vytvorenie balíka

Bearer token je ďalej potrebný pre autorizácii počas odosielania údajov o výdajnom mieste a informáciách o zákazníkovi. Pre vytvorenie nového balíka sa posiela séria údajov metódou POST. Ukážka posielanej požiadavky na vytvorenie balíka je nižšie. Predpokladám, že podľa pomenovaní parametrov je všetko jasné.

{
  "reference_number": "AC123456", // (string non-empty / Reference number of package)
  "sender_name": "John Doe", // (string non-empty) Full name of the sender
  "sender_company": "John Doe", // (string) Company of the sender
  "sender_street": "Charles street", // (string non-empty) Street of the sender (house number can be INCLUDED depends on situation)
  "sender_house_number": "3852/9", // (string) House number of the sender
  "sender_city": "Bratislava", // (string non-empty) City of the sender
  "sender_zip": 81101, // (string non-empty) Postal code of the sender
  "sender_state_code": "SK", // (string non-empty) State code of the sender
  "sender_email": "test@neoship.sk", // (string non-empty) Email of the sender
  "sender_phone": "0900123456", // (string non-empty) Phone of the sender
  "receiver_name": "John Doe", // (string non-empty) Full name of the receiver
  "receiver_company": "John Doe", // (string) Company of the receiver
  "receiver_street": "Charles street", // (string non-empty) Street of the receiver (house number can be INCLUDED depends of situation)
  "receiver_house_number": "3852/9", // (string) House number of the receiver
  "receiver_city": "Bratislava", // (string non-empty) City of the receiver
  "receiver_zip": 81101, // (string non-empty) Postal code of the receiver
  "receiver_state_code": "SK", // (string non-empty) State code of the receiver
  "receiver_email": "test@neoship.sk", // (string non-empty) Email of the receiver
  "receiver_phone": "0900123456", // (string non-empty) Phone of the receiver
  "cod_price": 55.25, // (number) Amount of cash on delivery (In the currency of the destination country)
  "cod_currency_code": "EUR", // (string) Currency of cash on delivery
  "cod_reference": 984686, // (string) Reference of cash on delivery (REQUIRED in DPD if defined, possible define in GLS and 123Kuriér)
  "insurance": 230.2, // (number) Amount of insurance (EUR)
  "reverse": false, // (boolean non-empty) Reverse shipment
  "parcelshop": "PS-BBMK0269", // (string) ID of parcelshop (Required for parcelshop package)
  "count_of_packages": 2, // (number) The number of packages to be created.
  "weight": 1, // (number) Weight of package in kilograms (for Packeta only). Allowed range is 0 < weight <= 10.
  "carrier_type": 131 // (number) ID of carrier type for address delivery (for Packeta only).
}

Správa balíkov v aplikácii Neoship

Správa vytvorených balíkov je už celkom jednoduchá. Aplikácia podporuje množstvo automatizovaných funkcií. Dizajn aplikácie vyzerá ako na obrázku dole. Okrem balíkov, ktoré sa automaticky vytvárajú zasielaním požiadaviek prostredníctvom API je možné balík vytvoriť aj manuálne.

Správa balíkov v aplikácii Neoship

Správa balíkov v aplikácii Neoship


 

Ak by ste mali záujem o e-shop, alebo predaj s týmto spôsobom dopravy, môžete ma kontaktovať.

https://www.neoship.sk

Pridať komentár k článku