URL Push : Order

Votre ERP peut être notifié par PMS des changements d'état des commande en temps réel. Ce qui vous permet de mettre à jour vos commandes ou de construire des scenarios automatisés dans votre ERP ou même d'autres applications tierce. Exemples d'usage:

  • Passer automatiquement les commandes en statut "expédié" et envoyer un mail au client.
  • Récupérer les informations de colisage (numéro de tracking, transporteur, poids, nombre de colis...).
  • Déclencher le paiement à la fin du picking si et seulement si tous les articles sont trouvés physiquement.
  • Créer et imprimer l'étiquette transporteur dans votre ERP ou une application tierce si cette tâche n'est pas confiée à PMS.

Configuration

Vous devez configurer dans PMS les notifications que vous souhaitez recevoir.

  • Allez dans Outils > Tables > Statuts de commande
  • Cochez les statuts de commandes pour lesquels vous souhaitez être notifié.
  • Enregistrez.

Fonctionnement

  • Les messages sont envoyés par une requête HTTP POST.
  • Le contenu des messages et de la réponse est structuré en XML, encodage UTF8.
  • La chaîne XML est placée dans la variable POST nommée xml_feed.
  • Vous devez créer un script dont l'URL réceptionnera la requête et traitera les données.
  • Renseignez cette URL dans PMS dans Réglages, paramètre URL destinataire des avis de changement de statut des commandes.

Exemple en PHP

Lire le message XML avec la classe SimpleXMLElement:


$xml = new SimpleXMLElement($_POST['xml_feed']); 

if ($xml->getName() == "order_update")
{
	foreach ($xml->order as $xml_order) 
	{
    	if ($xml_order->status == 90)
  	    {
          /* action à effectuer */ 
        }
    }
}

Exemple de message


<order_update>
    <order>
        <OrderId>486454</OrderId>
        <CustomerOrderId></CustomerOrderId>
        <CustomerId>64154</CustomerId>
        <DeliveryNoteId></DeliveryNoteId>
        <InvoiceId></InvoiceId>
        <ShopId>1</ShopId>
        <UserData1></UserData1>
        <UserData2></UserData2>
        <UserData3></UserData3>
        <UserData4></UserData4>
        <status>90</status>
        <EmployeeId>19</EmployeeId>
        <shipping_date>2017-09-05 15:11:18</shipping_date>
        <ship_weight>267</ship_weight>
        <parcels>
            <parcel>
                <parcel_rank>1</parcel_rank>
                <DeliveryMethodId>54</DeliveryMethodId>
                <ship_number>9V154515540151</ship_number>
                <ship_weight>267</ship_weight>
                <label_url>http://www.transporteur.com/label_9V154515540151.pdf</label_url>
                <customs_url>http://www.transporteur.com/cn23_9V154515540151.pdf</customs_url>
                <tracking_url>http://www.transporteur.com/?9V154515540151</tracking_url>
                <cost>5.67</cost>
            </parcel>
        </parcels>
        <products>
            <product>
                <parcel_rank>1</parcel_rank>
                <sku>3600551053738</sku>
                <quantity>2</quantity>
                <lot_ref>1</lot_ref>
                <serial_number>1</serial_number>
            </product>
        </products>
    </order>
</order_update>

Champs

Les champs en majuscules/minuscules sont vos données. Nous ne les explicitons pas ci-dessous. Les champs en minuscules sont les données PMS :

Champ Description
pms_order_id Id PMS de l'instance de la commande. Attention cet id change à chaque fois que la commande est retransmise.
status Statut de la commande dans PMS (voir dictionnaire)
EmployeeId Id de l'employé à l'origine du changement de statut, sous réserve d'avoir renseigné les id employés dans les profils utilisateurs de PMS
shipping_date Date de fin de préparation
ship_weight Poids de la commande (somme des poids colis) en grammes

Champs <parcel>

Champ Description
parcel_rank N° de séquence du colis (1 à N)
DeliveryMethodId Votre id de service de transport
ship_number Numéro de suivi du colis
ship_weight Poids en grammes
label_url URL de l'étiquette transporteur au format PDF (si disponible)
customs_url URL des documents de douane au format PDF (si disponible)
tracking_url URL des documents de douane au format PDF (si disponible)
cost Coût du transport HT (si disponible)

Réponse

Voici les réponses possibles à retourner :


<response>ok</response>
<response>error: message d'erreur</response>
<response>disabled</response>
<response>ignored</response>
Réponse Description
ok Succès
error: texte Votre message d'erreur pour affichage à l'utilisateur dans PMS.
disabled L'application ne traite plus les changements de statut pour ce statut.
ignored Notification prise en compte mais n'ayant entrainé aucune action ou modification.