Webhook Ver. 1.2

Webhook permette di creare una pagina sul tuo sito che viene richiamata da Qapla' ad ogni aggiornamento della tua spedizione.

Nella configurazione del canale, all'interno dell'apposito menu Webhook, è possibile indicare la propria URL con il quale il servizio comunicherà.

Esempio

Il servizio invierà una richiesta di tipo POST all'url www.miosito.it/webhook.php, contenente il seguente JSON:
{  
   "apiKey":"[API_KEY]",
   "trackingNumber":"01234567890",
   "return": 0,
   "hasChildren": 0,
   "isChild": 0,
   "courier":"UPS",
   "reference":"2000787",
   "date":"2014-10-25 21:21:02",
   "courierStatus":"LA SPEDIZIONE E' IN TRANSITO",
   "place":"TARANTO",
   "qaplaStatusID":"3",
   "qaplaStatus":"IN TRANSIT",
   "statusDetails": [],
   "custom1":"[il tuo valore caricato in custom1]"
   "custom2":"[il tuo valore caricato in custom2]"
   "custom3":"[il tuo valore caricato in custom3]"
}
La descrizione dei campi è la seguente
JSONDescrizione
apiKeyIl valore assegnato al canale che puoi trovare sul Control Panel in "Impostazioni/Nome canale"
trackingNumberIl campo tracking number della spedizione
returnSegnala una spedizione in rientro
hasChildrenSegnala se la spedizione ha dei "figli" (es: spedizioni multicollo o in rientro)
isChildSegnala se la spedizione è un "figlio"
courierCodice corriere
referenceRiferimento ordine
dateData aggiornamento stato
courierStatusLo stato spedizione segnalato dal corriere
placeLuogo dove si trova la spedizione
qaplaStatusIDID dello stato Qapla'
qaplaStatusStato di Qapla'
statusDetailsNel caso dello stato EXCPETION specifica meglio il problema:
"statusDetails": [{
  "id": 1,
  "detail": "ON HOLD"
}]
Il campo può assumere i seguenti valori:
ValoriDescrizione
id: 0, "detail": nullEXCEPTION "semplice"
id: 1, "detail": "ON HOLD"Giacenza
id: 2, "detail": "RETURN"Spedizione in rientro / rifiutata
id: 3, "detail": "DAMAGE"Danneggiamento
id: 4, "detail": "LOST"Smarrimento
In caso di non valorizzazione il campo è un array vuoto
"statusDetails": []
custom1,2,3I campi custom caricati su Qapla'

La risposta dell'URL chiamato in caso di errore dovrà essere:
{"result": "KO"}
Mentre in caso positivo sarà.
{"result": "OK"}

Esempio di webhook.php

Il seguente esempio di pagina "in ascolto" prende il contenuto JSON e lo elabora.
<?php
header("Content-type: application/json; charset=utf-8");

$data = file_get_contents('php://input');
if(is_null($data))die('{"result": "KO"}');
$json = json_decode($data);
if(is_null($json))die('{"result": "KO"}');

//Verifico che l'API KEY postata corrisponda, controllo di sicurezza.
if($json->apiKey != '[API_KEY]')die('{"result": "KO"}');

$sql = "UPDATE orders-shipments SET status = ".$json->qaplaStatusID." WHERE id = ".$json->reference; 
mysqli_query($db,$sql) or die(mysqli_error($db));

echo '{"result": "OK"}';
?>

I valori per il campo "qaplaStatusID" e per "qaplaStatus" sono i seguenti:
0WAITING TO COMPUTE
1PENDING
2INFO RECEIVED
3IN TRANSIT
4OUT FOR DELIVERY
5FAILED ATTEMPT
6EXCEPTION
8DELAY
10PICKUP POINT
20DEPARTED
50PROCESSING
95RETURNED
99DELIVERED

HTTP Post Request:

Manually fire HTTP Post Request:

API Key * required

URL * required

Tracking Number

Courier

Reference

Courier Status

Place

Qapla' Status