Multi-tracking avec Shoppingfeed et PrestaShop

Multi-tracking avec Shoppingfeed et PrestaShop

Cette fonctionnalité est disponible à partir la version 2.1.0.

Malheureusement, PrestaShop ne dispose pas de solution pour gérer le multitracking pour une même commande. Or il est fréquent que les marchands pour des raisons de colisage réalise plusieurs envois pour une même commande. C'est pourquoi le module prévoit deux hooks possible pour gérer une personnalisation du flux de données envoyées aux marketplaces concernant l'expédition des commandes.

1. hook actionShoppingfeedTracking

Limite du hook actionShoppingfeedTracking : il ne permet pas de scinder une commande en deux mais permet de restreindre l'envoi à une partie de la commande par exemple.

Ce hook est situé au moment de la préparation des données de la commande à expédier, il dispose comme paramètre :
  1. order : qui est l'objet commande de PrestaShop
  2. Un tableau $taskOrderPayload qui contient
    1. carrier_name
    2. tracking_number
    3. tracking_url
    4. items >>> tableau de produit contient lui même une collection de  [ "id" => 0, "quantity" => 0 ]
    5. return_info >>> il s'agit des données de retour (tracking retour)
    6. warehouse_id


Pour indiquer à Shoppingfeed qu'une partie de la commande seulement a été expédiée, vous devez remplir le tableau d'item et éventuellement changer d'autres éléments en utilisant le hook.

Exemple de code à inclure dans un module permettant de personnaliser Shoppingfeed :
  1. <?php
  2. class MySfcustom extends Module
  3. {
  4.     // add your __construct
  5.     public function install()
  6.     {
  7.         return parent::install() && $this->registerHook('actionShoppingfeedTracking');
  8.     }
  9.     public function uninstall()
  10.     {
  11.         return $this->unregisterHook('actionShoppingfeedTracking') && parent::uninstall();
  12.     }
  13.     public function hookActionShoppingfeedTracking($params)
  14.     {
  15.          $order = $params['order'];
  16.          // définissez ici votre processus pour récupérer la liste des produits envoyé dans ce colis
  17.          $params['taskOrderPayload']['items'][] = ['id' => '25_125', 'quantity' => 1];
  18.          return null;
  19.     }
  20. }


2. hook actionShoppingfeedOrderOperation

Attention, ce hook dispose de l'ensemble des opérations à envoyer à Shoppingfeed et pas seulement l'expédition !
Ce hook est situé juste avant l'envoi des données de la commande à expédié, livré, annulé, remboursé, upload de facture il dispose comme paramètre unique paramètre $taskOrders qui contient :
  1. id_internal_shoppingfeed
  2. reference_marketplace
  3. marketplace
  4. taskOrder >>> il s'agit de l'objet ShoppingfeedTaskOrder
  5. operation >>> Pour l'expédition d'un colis il faudra filtrer par Shoppingfeed::ORDER_OPERATION_SHIP
  6. payload >>> voir taskOrderPayload ci-dessus

Exemple de code à inclure dans un module permettant de personnaliser Shoppingfeed :
  1. <?php
  2. class MySfcustom extends Module
  3. {
  4.     // add your __construct
  5.     public function install()
  6.     {
  7.         return parent::install() && $this->registerHook('actionShoppingfeedOrderOperation');
  8.     }
  9.     public function uninstall()
  10.     {
  11.         return $this->unregisterHook('actionShoppingfeedOrderOperation') && parent::uninstall();
  12.     }
  13.     public function hookActionShoppingfeedOrderOperation($params)
  14.     {
  15.          $taskOrders = $params['taskOrders'];
  16.          $newTasks = [];
  17.          foreach ($taskOrders as $taskOrder) {
                   switch ($taskOrder['operation']) {
                        case Shoppingfeed::ORDER_OPERATION_SHIP:
  18.                         $order_id = $taskOrder['taskOrder']->order_id;
  19.                         // Ajouter ici votre code pour récupérer le colisage de cette commande
  20.                         // on duplique la tache pour créer le colis 2
  21.                         $colis2 = $taskOrder;
  22.                         // Colis 1 on modifie la tache en cours
  23.                         $taskOrder['payload']['items'][] = ['id' => '25_125', 'quantity' => 1];
  24.                         $colis2['payload']['tracking_number'] = 'ABCDEF';
  25.                         $colis2['payload']['tracking_url'] = 'https://xxx';
  26.                         $colis2['payload']['items'][] = ['id' => '98_12365', 'quantity' => 3];
  27.                         $newTasks[] = $colis2;
  28.                     continue 2;
  29.                 }
                }
  30.          $taskOrder = array_merge($taskOrder, $newTasks);
  31.          return null;
  32.     }
  33. }





    • Related Articles

    • Utilisation des informations PrestaShop dans une Macro Zendesk

      Dans cet article, nous allons vous expliquer comment utiliser les informations PrestaShop disponibles sous forme de balises (placeholder) pour une utilisation dans les modèles réponses, appelée Macro dans Zendesk. Cet article s'adresse aux personnes ...
    • Comment trouver la version de PrestaShop ?

      Notre équipe support peut être amenée à vous demander la version de PrestaShop utilisé pour votre boutique. Voici comment la déterminer : PrestaShop 1.6 et 1.7 La version comprend 5 chiffres et est affichée sur la page de connexion à l'admin et dans ...
    • Associations des produits entre eBay et PrestaShop

      Associer les catégories de produits PrestaShop aux catégories eBay et une étape fondamentale pour le fonctionnement du module. Pour commencer l’association, aller dans l’onglet “Annonces” puis “Liste des Catégories” et cliquer sur “Ajouter une ...
    • Différence entre les frais de livraison entre eBay et PrestaShop

      Sur eBay, chaque objet a ses frais de livraison : les couts de port de chaque produit du panier se cumulent. Par exemple : Produit A, frais de port unitaire > 5 € Produit B, frais de port unitaire > 3 € Total des frais d'expédition > 8 € De ...
    • Comment supprimer un token présent dans la configuration de Shoppingfeed ?

      Vous avez besoin de supprimer l'un des token présent sur votre configuration du module Shoppingfeed. Chaque token est en lien avec les commandes qui ont été importé sur ces tokens, c'est pourquoi il convient de prendre des précaution et que cette ...