Documentation de l'extension Advanced Shipping 2.6.2 pour Magento 1.x par Owebia

Introduction

Advanced Shipping est une extension pour la solution de e-commerce Magento.

Grace à sa syntaxe au format JSON, cette extension permet une grande souplesse dans le paramétrage des frais de livraison.

Cette documentation explique comment créer une configuration pour l'un des modes de livraison proposé par l'extension.

Vous souhaitez faire plus avec Advanced Shipping ?

Venez découvrir nos plugins sur Owebia Store.

Plugin Unlimited Carriers

Créez des nouveaux transporteurs avec Advanced Shipping

Plugin Universal Setting

Cacher ou changer le prix des méthodes de tous les modules de livraison

Utilisez l'index pour vous retrouver plus facilement dans la documentation.

Exemples

Exemple simple : port offert

{ "__auto__":{"label":"Livraison gratuite","fees": 0} }

Frais relatifs à la destination

{ "__auto__":{"label":"France, Allemagne, Suisse, Espagne, Italie","shipto":"FR,DE,CH,ES,IT","fees":10}, "__auto__":{"label":"France sauf la Corse","shipto":"FR-(2A,2B)","fees":10}, "__auto__":{"label":"Corse","shipto":"FR(2A,2B)","fees":10}, "__auto__":{"label":"Monde entier sauf l'Allemagne et la Corse","shipto":"* - ( DE, FR(2A,2B) )","fees":10} }

Utiliser le caractère jocker * ou les expressions régulières

{ "__auto__":{"label":"Caractère jocker autorisant les codes postaux commençant par 25","shipto":"FR(25*)","fees":10}, "__auto__":{"label":"Expression régulière acceptant les codes postaux commençant par 'PO', 'po', 'Po' ou 'pO'","shipto":"GB(/^PO.*$/i)","fees":10} }

Bloquer la livraison vers la France mais avec un code postal DOM/TOM

Avec l'expression régulière suivante, vous bloquez les codes postaux commançant par 97 ou 98 (avec ou sans zéros et espaces intercalés).

{ "__auto__":{"label":"Expression régulière refusant les codes postaux commençant par 97 et 98","shipto":"FR-(/^[0\\s]*9\\s*[78].*/)","fees":10} }

Utilisation des raccourcis address_filter

{ "__auto__":{"label":"Europe sauf la France","shipto":"({address_filter.EU-27}) - (FR)","fees":10} }

Frais relatifs au groupe client

On peut utiliser le nom ou l'ID des groupes client.

{ "__auto__":{"label":"Groupes NOT LOGGED IN et General","customer_groups":"NOT LOGGED IN,General","fees":10}, "__auto__":{"label":"Groupes NOT LOGGED IN et General par leur ID","customer_groups":"0,1","fees":10}, "__auto__":{"label":"Groupe Retailer","customer_groups":"Retailer","fees":10} }

Utiliser les formules

Les formules peuvent être utilisées dans les propriétés conditions et fees.

{ "__auto__":{"label":"Livraison","fees":"0.1 * {cart.price-tax+discount} + 10.00"} }

Copier la propriété d'un autre élément

{ "standard":{"label":"Livraison standard","conditions":"{cart.price-tax+discount} < 1000.00","fees":10}, "express":{"label":"Livraison express","conditions":"( {standard.conditions} ) && ( {cart.weight} < 10 )","fees":12} }

Utiliser la fonction min()

{ "__auto__":{"label":"Livraison","fees":"min({cart.weight}, {cart.price+tax+discount}, {cart.qty})"} }

Utiliser la fonction range()

{ "__auto__":{"label":"Livraison","conditions":"range({cart.weight}, 1.0, 3.0)","fees":10} }

Utiliser la fonction substr()

Une variable de type chaîne de caractères doit être entourée par des guillemets simples sauf si on utilise l'auto-échappement avec les caractères {{ et }}.

{ "__auto__":{"label":"Sans utiliser l'auto-échappement","conditions":"substr('{cart.coupon_code}', 0, 5)=='free_'","fees":10}, "__auto__":{"label":"En utilisant l'auto-échappement","conditions":"substr({{cart.coupon_code}}, 0, 5)=='free_'","fees":10} }

Utiliser les fonctions spéciales

Utilisation de la fonction spéciale {table … in …}

{ "__auto__":{"label":"Livraison","fees":"{table {cart.weight} in 0.5:5.30, 1.0:6.50, 2.0:7.40, 3.0:8.30, 5.0:10.10}"} }

Dans une table, on peut inclure ou exclure une valeur limite avec les caractères [ et ] :

{ "__auto__":{"label":"Limite supérieure incluse","fees":"{table {cart.weight} in 1.0]:5.00}"}, "__auto__":{"label":"Limite supérieure exclue","fees":"{table {cart.weight} in 1.0[:5.00}"} }

Dans une table, on doit spécifier la valeur de référence. Pour cela, on peut utiliser une des variables disponibles.
On peut aussi utiliser une formule afin de définir une autre variable de référence.

{ "__auto__":{"label":"Table avec poids du panier","fees":"{table {cart.weight} in 0.5:5.30, 1.0:6.50}"}, "__auto__":{"label":"Table avec quantité d'articles","fees":"{table {cart.qty} in 10:5.30, 20:6.50}"}, "__auto__":{"label":"Table avec prix TTC","fees":"{table {cart.price+tax+discount} in 15.00:5.30, 30.00:6.50, *:10.00}"}, "__auto__":{"label":"Table avec prix HT","fees":"{table {cart.price-tax+discount} in 15.00:5.30, 30.00:6.50, *:10.00}"}, "__auto__":{"label":"Table avec valeur personnalisée","fees":"{table ceil({cart.weight}/10) in 1:5.30, 2:6.50}"} }

Utilisation de la fonction spéciale {switch … in …} (table de correspondance)

Dans un switch, on doit spécifier la valeur de référence. Pour cela, on peut utiliser une des variables disponibles.
On peut aussi utiliser une formule afin de définir une autre variable de référence.

{ "__auto__":{"label":"Switch avec code promo","fees":"{switch {{cart.coupon_code}} in 'coupon1':5.30, 'coupon2':6.50, null:10.00, *:7.50}"}, "__auto__":{"label":"Switch avec pays de livraison","fees":"{switch {{shipto.country_id}} in 'FR':5.30, 'BE':6.50, 'DE':10.00, *:7.50}"} }

Utiliser la fonction spéciale {count …}

{ "__auto__":{"label":"Si au moins un produit possède l'attribut 'color' égal à 'Bleu'","conditions":"{count items where product.attribute.color=='Bleu'} > 0","fees":10}, "__auto__":{"label":"Si tous les produits possèdent l'option 'size' supérieure ou égal à '1'","conditions":"{count items where item.option.size>='1'} == {cart.qty}","fees":10} }

Si la propriété est de type Oui/Non, vous devez utiliser les valeurs true/false ou 1/0 sans les guillemets.

{ "__auto__":{"label":"Exemple propriété de type Oui/Non : 1","conditions":"{count items where product.attribute.colissimo_allowed==1}","fees":10}, "__auto__":{"label":"Exemple propriété de type Oui/Non : true","conditions":"{count items where product.attribute.colissimo_allowed==true}","fees":10} }

Utiliser la fonction spéciale {count distinct …}

{ "__auto__":{"label":"Nombre de SKU différents","conditions":"{count distinct product.attribute.sku}","fees":10} }

Utiliser la fonction spéciale {sum …}

{ "__auto__":{"label":"Somme de toutes les options 'size' est supérieure à 30","conditions":"{sum item.option.size} > 30","fees":10} }

Utiliser la fonction spéciale {min …}

{ "__auto__":{"label":"Prix HT sans remise minimum des articles dans le panier est supérieur à 10","conditions":"{min item.price-tax-discount} > 10","fees":10} }

Utiliser la fonction spéciale {max …}

{ "__auto__":{"label":"Valeur maximum de l'option 'size' des articles dans le panier est inférieure à 50","conditions":"{max item.option.size} < 50","fees":10} }

Utiliser les boucles {foreach …}

{ "__auto__":{"label":"Regroupement des produits par origine puis traitement des groupes séparémment","fees":"{foreach product.attribute.code_origin}{table {selection.weight} in 0.0:0.00, 1.0:11.00, 3.0:12.00, 5.0:13.00}{/foreach}"}, "__auto__":{"label":"Calcul des frais de port par produit","fees":"{foreach product.attribute.sku}{product.attribute.shipping}*{item.qty}{/foreach}"} }

Manipuler les tableaux

Utilisation de la fonction in_array()

{ "__auto__":{"label":"Livraison","conditions":"in_array({cart.qty}, array(10, 20, 30))","fees":10} }

Utilisation de la fonction in_array() avec des chaînes de caractères *

{ "__auto__":{"label":"Livraison","conditions":"in_array({{cart.coupon_code}}, array('free1', 'free2'))","fees":10} }

Utilisation de la fonction array_match_any()

{ "__auto__":{"label":"Livraison","about":"5 x poids des produits qui se trouvent dans la catégorie 2 ou 3","fees":"{sum product.weight where array_match_any(product.categories.id, array(2, 3))} * 5.0"} }

Utilisation de la fonction array_match_all()

{ "__auto__":{"label":"Livraison","about":"5 x poids des produits qui se trouvent à la fois dans la catégorie 2 et dans la catégorie 3","fees":"{sum product.weight where array_match_all(product.categories.id, array(2, 3))} * 5.0"} }

Autres exemples

Utiliser la catégorie des produits

Attention, il est à noter que dans Magento, un produit peut être dans plusieurs catégories. Faites donc particulièrement attention à la façon dont vous utilisez cette propriété.

{ "__auto__":{"label":"Boucle foreach dont l'itération se fait sur la catégorie","fees":"{foreach product.categories}{selection.weight}{/foreach}"}, "__auto__":{"label":"Utilisation de la catégorie à l'intérieur d'une boucle foreach","fees":"{foreach product.sku}({{product.category}}=='Test' ? 2.00 : 1.00)*{item.qty}{/foreach}"}, "__auto__":{"label":"Utilisation de l'id de la catégorie à l'intérieur d'une boucle foreach","fees":"{foreach product.sku}({product.category.id}==12 ? 2.00 : 1.00)*{item.qty}{/foreach}"}, "__auto__":{"about":"La fonction in_array() est utilisée car product.categories retourne un tableau","label":"Somme des attributs weight des produits de la catégorie 'Test'","fees":"{sum product.weight where in_array('Test', product.categories)}"}, "__auto__":{"about":"La fonction in_array() est utilisée car product.categories.id retourne un tableau","label":"Somme des attributs weight des produits de la catégorie dont l'id est 12","fees":"{sum product.weight where in_array(12, product.categories.id)}"}, "__auto__":{"about":"La fonction array_match_any() est utilisée car product.categories.id retourne un tableau","label":"Somme des attributs weight des produits qui se trouvent dans une des catégories #11 et #12","fees":"{sum product.weight where array_match_any(product.categories.id, array(11, 12))}"}, "__auto__":{"label":"Somme des poids des produits dont la première catégorie est 'Test'","fees":"{sum product.weight where product.category=='Test'}"}, "__auto__":{"label":"Somme des poids des produits dont l'id de la première catégorie est 12","fees":"{sum product.weight where product.category.id==12}"} }

Ajout et utilisation d'un élément data

Un élément de type data permet de spécifier des données utilisables dans les méthodes de livraison.

{ "mydata":{"type":"data","var1":"12"}, "__auto__":{"label":"Livraison","shipto":"FR","fees": "{mydata.var1}"}, "__auto__":{"label":"Livraison","shipto":"DE","fees": "{mydata.var1}*1.5"} }

Ajout d'un élément meta

Un élément de type meta permet d'ajouter des données informatives (auteur, date…).

{ "about":{"type":"meta","author":"Owebia","date":"15/07/2013","about":"Tarifs 2013"} }

Définitions

La configuration d'un mode de livraison est un objet JSON contenant plusieurs propriétés.
Comme imposé par JSON, chaque propriété a un nom unique, qui servira d'identifiant unique.
Chaque propriété constitue un élément de configuration (qui est également un objet JSON).

Les éléments

Il existe trois différents types d'élément de configuration :

  • method : méthode de livraison (par défaut si non spécifié)
  • data : données pouvant être utilisées dans une ou plusieurs méthodes de livraison (exemples)
  • meta : données informatives (exemples)

Les propriétés

Chaque élément possède plusieurs propriétés :

  • about : commentaire sur l'élément
  • type : type de l'élément (method, meta ou data)

Propriétés spécifiques à un élément de type method :

  • label : nom de la méthode de livraison
  • description : description (visible seulement si le template l'affiche)
  • enabled : méthode de livraison activée ou non
  • fees : frais de port
  • conditions : conditions d'activation
  • shipto : pays (régions, codes postaux) autorisés à la livraison
  • billto : pays (régions, codes postaux) autorisés à la facturation
  • origin : pays (régions, codes postaux) autorisés en origine
  • customer_groups : groupes de client autorisés
  • tracking_url : URL de suivi (plus d'informations)

Voir les exemples

Utiliser les propriétés de type adresse (shipto, billto et origin)

Les codes pays utilisés sont ceux de Magento (à priori ils sont les mêmes que les codes ISO 3166-1 alpha-2).
Il est possible de spécifier les codes régions (uniquement avec shipto) ou les codes postaux que l'on veut filtrer ou exclure.

Vous pouvez utiliser le caractère jocker * ou les expressions régulières pour les codes postaux.
Une expression régulière doit commencer et se terminer par le caractère /. Si vous souhaitez utiliser les caractères (, ) ou ., vous devez les échapper avec le caractère \ (ex: "FR(/^25\([0-9]{3}\)$/)").
Vous pouvez utiliser l'option d'insensibilité à la casse (ex: "GB(/^PO.*$/i)").

Voir les exemples

Astuce
Pour raccourcir la saisie des pays, vous pouvez utiliser les variables suivantes :

  • {address_filter.AF} : pays d'Afrique
  • {address_filter.AS} : pays d'Asie
  • {address_filter.EU} : pays d'Europe
  • {address_filter.NA} : pays d'Amérique du Nord
  • {address_filter.SA} : pays d'Amérique du Sud
  • {address_filter.OC} : pays d'Océanie
  • {address_filter.AN} : pays d'Antartique
  • {address_filter.EU-27} : pays de l'Union Européenne
  • {address_filter.DOM} : codes pays des département d'Outre-Mer Français
  • {address_filter.COM} : codes pays des Collectivités d'Outre-Mer Françaises

Voir les exemples

L'identifiant unique

Chaque élément de configuration possède un identifiant unique. Cet identifiant permet ensuite de faire référence à l'élément.

Exemple :

{ "europe":{"label":"Livraison Europe","fees":10}, "us":{"label":"Livraison US","fees":"{europe.fees}+20"} }

Attention : pour éviter les conflicts, n'utiliser que les caractères a-z, A-Z, 0-9, - et _ pour former l'identifiant unique.
Vous devez également éviter les identifiants qui correspondent déjà à des noms de variable (cart, product, item…).

Les formules

Les propriétés fees et conditions sont spécifiées sous la forme de formules.

Une formule utilise des variables, des fonctions, des fonctions spéciales et des opérateurs mathématiques.

Opérateurs mathématiques disponibles :

  • opérateurs : *, /, + et -
  • modulo : %
  • parenthèses : ( et )
  • les opérateurs booléens &&, and, ||, or, ==, <, >, <=, >=
  • les opérateurs binaires & et |
  • le groupe d'opérateur C ? X : Y (ex: "{cart.price_exluding_tax}>100 ? 15*{cart.weight} : 20*{cart.weight}")

Vous avez la possibilité de mettre des espaces et des retours à la ligne dans les formules (pour aérer).

Possibilité d'utiliser les fonctionnalités avancées suivantes : casting en entier (int) ou en nombre flottant (float), comparaison avec la valeur null ou les valeurs booléennes true et false.

Les variables

Lorsque vous utilisez des variables qui ne sont pas numériques ou booléennes, vous devez les échapper avec des guillemets simples ou utiliser la syntaxe d'auto-échappement {{ }}.

Les variables suivantes peuvent être utilisées dans les formules.

  • Le panier :
    • {cart.weight} : poids des marchandises
    • {cart.qty} : la quantité d'articles
    • {cart.price-tax+discount} : prix HT avec remise
    • {cart.price+tax+discount} : prix TTC avec remise
    • {cart.price-tax-discount} : prix HT sans remise
    • {cart.price+tax-discount} : prix TTC sans remise
    • {cart.coupon_code} : coupon de réduction
    • {cart.free_shipping} : frais de port offert (par une règle dans Magento) [true/false]
    • {cart.weight_unit} : l'unité de poids
    • {cart.weight_for_charge} : poids des marchandises dont la livraison n'est pas offerte (par les règles de prix panier de Magento)
  • Le bon de commande :
    • {quote.subtotal}: sous-total HT
    • {quote.subtotal_with_discount}: sous-total HT avec remise
    • {quote.grand_total}: total TTC avec remise
    • {quote.base_subtotal}: sous-total HT dans la devise de base
    • {quote.base_subtotal_with_discount}: sous-total HT avec remise dans la devise de base
    • {quote.base_grand_total}: total TTC avec remise dans la devise de base
  • Le group client :
    • {customer_group.id} : id du groupe client
    • {customer_group.code} : nom du groupe client
    • {customer_group.*} : propriété du groupe client (ex: {customer_group.tax_class_id})
  • Le client :
    • {customer.id} : id du client
    • {customer.attribute.*} : attribut du client (ex: lastname, firstname, group_id…)
    • {customer.attribute.*.value} : dans le cas des attributs de type liste de sélection, {customer.attribute.*} retourne l'id, pour obtenir la valeur il faut utiliser {customer.attribute.*.value}
    • {customer.*} : identique à {customer.attribute.*}, sauf si la variable est déjà définie (ex: {customer.id} est déjà définie)
  • Les variables personnalisées ou `Custom Variables` (depuis la version 1.4.0.1 de Magento) :
    • {customvar.*} : variable personnalisée de Magento (ex: {customvar.my_var})
  • L'adresse de livraison :
    • {shipto.country_name} : le nom du pays
    • {shipto.country_id} : le code du pays
    • {shipto.region_id} : l'id de la région
    • {shipto.region_code} : le code de la région
    • {shipto.street} : la rue
    • {shipto.city} : la ville
    • {shipto.postcode} : le code postal
  • L'adresse de facturation :
    • {billto.country_name} : le nom du pays
    • {billto.country_id} : le code du pays
    • {billto.postcode} : le code postal
    • {billto.*} : propriété de l'adresse de facturation (ex: {billto.city})
  • L'adresse d'envoi :
    • {origin.country_name} : le nom du pays
    • {origin.country_id} : le code du pays
    • {origin.region_id} : l'id de la région
    • {origin.city} : la ville
    • {origin.postcode} : le code postal
  • Le magasin :
    • {store.id} {store.code} {store.name} {store.address} {store.phone} : id, code, nom, adresse et téléphone du magasin
  • La date courante :
    • {date.timestamp} : timestamp UNIX de la date actuelle
    • {date.year} {date.month} {date.day} {date.hour} {date.minute} {date.second} : année, mois, jour, heure, minute et seconde de la date actuelle
    • {date.weekday} : jour de la semaine de la date actuelle de 0 (dimanche) à 6 (samedi)
  • L'objet request :
    • {request.*} : propriété de l'objet request (Mage_Shipping_Model_Rate_Request) passé en paramètre par Magento (ex: {request.package_qty}). Utiliser l'option "Déboguage" pour obtenir plus de détail sur les propriétés disponibles.

Variables utilisables dans les fonctions spéciales

Les variables suivantes peuvent être utilisées dans les fonctions spéciales.

Contrairement à ailleurs, les variables suivantes ne doivent pas être entourées par les caractères { et }.

Un item est une déclinaison d'un product auquel on a ajouté d'éventuelles options. Chaque item a une quantité.

  • L'article (ou item) :
    • item.qty : quantité dans le panier
    • item.price-tax+discount : le prix HT avec remise
    • item.price-tax-discount : le prix HT sans remise
    • item.price+tax+discount : le prix TTC avec remise
    • item.price+tax-discount : le prix TTC sans remise
    • item.option.* : option (la liste des options disponibles dépendra des produits)
  • Le produit (ou product) :
    • product.attribute.* : attribut
      Attributs intéressants :
      • sku : la référence
      • name : le nom
      • weight : le poids
      • price : le prix (tel qu'il a été saisi sur la fiche du produit)
      • special_price : le prix promotionnel (tel qu'il a été saisi sur la fiche du produit)
    • product.attribute.*.value : valeur de l'attribut
      Dans le cas des attributs de type liste de sélection, product.attribute.* retourne l'id. Pour obtenir la valeur, il faut utiliser product.attribute.*.value
    • product.* : identique à product.attribute.* sauf si la variable est définie (ex: product.category)
    • Première catégorie du produit :
      • product.category : nom de la catégorie
      • product.category.id : id de la catégorie
      • product.category.* : attribut de la catégorie (ex: product.category.is_active)
        Attributs intéressants :
        • is_active : catégorie activée ou non
        • name : nom
    • Toutes les catégories du produit (retourne un tableau, exemples) :
      • product.categories : tableau du nom des catégories
      • product.categories.id : tableau de l'id des catégories
    • Le jeu d'attributs du produit :
      • product.attribute_set : nom du jeu d'attributs
      • product.attribute_set.id : id du jeu d'attributs
      • product.attribute_set.* : attribut du jeu d'attributs (ex: product.attribute_set.attribute_set_name)
    • product.stock.* : attribut du stock du produit
      Attributs intéressants :
      • is_in_stock : disponibilité du produit
      • qty : stock du produit

Variables utilisables dans les boucles foreach

Les variables suivantes peuvent être utilisées dans les boucles foreach.

  • {selection.weight} : poids de la sélection
  • {selection.qty} : nombre d'articles dans la sélection

Lorsque la sélection se fait sur le sku, chaque sélection est composée d'un seul article. On peut donc utiliser les variables article et produit.

  • {item.*} : propriété de l'article
  • {product.*} : propriété du produit

Les variables article et produit sont identiques aux variables utilisables dans les fonctions spéciales à la seule différence qu'elles doivent être entourées par les caractères { et }.

Les fonctions

Les fonctions numériques

  • abs(x) : valeur absolue
  • ceil(x) : arrondi supérieur
  • exp(x) : exponentiel
  • floor(x) : arrondi inférieur
  • log(x) : logarithme népérien
  • log(x, base) : logarithme
  • max(x, y, …) : maximum, valeurs nulles ignorées
  • min(x, y, …) : minimum, valeurs nulles ignorées
  • pi() : nombre PI
  • pow(x, puissance) : puissance
  • rand(min, max) : entier aléatoire
  • round(x) : arrondi
  • sqrt(x) : racine carrée

Les fonctions pour manipuler des chaînes de caractères

  • substr(string, start, length) : retourne un segment de chaîne de caractères.

Les fonctions pour manipuler des tableaux

  • in_array(value, array(value1, value2, …)) : retourne vrai si la valeur se trouve dans le tableau.
  • array_match_any(array(value1, value2, …), array(value1, value2, …)) : retourne vrai si au moins une valeur est présente dans les deux tableaux.
  • array_match_all(array(value1, value2, …), array(value1, value2, …)) : retourne vrai si le contenu des tableaux est identique.

Fonctions diverses

  • range(value, min, max, include_min, include_max) : retourne vrai si value est comprise entre min et max. Par défaut, include_min et include_max sont égales à true.

Les fonctions spéciales

  • {table … in …} : définit des valeurs en fonction de seuils (exemples)
  • {switch … in …} : définit une table de correspondance (exemples)

Le premier paramètre des fonctions table et switch est la valeur de référence, il peut s'agir soit d'une variable, soit d'une formule.

  • {count items[ where …]} : compte les articles remplissant les conditions (exemples)
  • {count distinct …[ where …]} : compte les différentes valeurs d'une propriété pour les articles remplissant les conditions (exemples)
  • {sum …[ where …]} : calcule la somme des valeurs d'une propriété pour les articles remplissant les conditions (exemples)
  • {min …[ where …]} : retourne la valeur minimum d'une propriété pour les articles remplissant les conditions (exemples)
  • {max …[ where …]} : retourne la valeur maximum d'une propriété pour les articles remplissant les conditions (exemples)

Le premier paramètre des fonctions count distinct, sum, min et max doit être une propriété (ex: product.attribute.weight).

La condition where est facultative. Si elle est spécifiée, elle le sera sous la forme d'une formule.

Utilisation des boucles foreach

Les boucles foreach permettent d'effectuer un calcul sur des groupes de produits plutôt que de tenir compte de tous les produits du panier.
Le résultat global d'une boucle foreach est la somme des résultats de chaque passage dans la boucle.

A l'intérieur d'une boucle foreach, il est possible d'utiliser de nouvelles variables.

Exemples

Divers

L'URL de suivi tracking_url

L'utilisation de la propriété tracking_url est réservée aux utilisateurs expérimentés. Si vous ne comprenez pas les indications ci-dessous, il est préférable que vous évitiez d'utiliser cette fonctionnalité.

La propriété tracking_url permet de surcharger le champ "URL de suivi" d'un mode de livraison Advanced Shipping et ainsi de spécifier une URL de suivi par méthode de livraison plutôt qu'une pour tout le mode de livraison.

Pour insérer automatiquement le numéro de colis dans l'URL de suivi, vous devez utiliser {tracking_number}.

{ "__auto__":{"label":"Exemple avec URL de suivi pour le transporteur Colissimo","fees":10,"tracking_url":"http://www.coliposte.net/particulier/suivi_particulier.jsp?colispart={tracking_number}"} }

Magento ne gère pas les liens de tracking mais un statut de tracking. L'extension Advanced Shipping fournit un lien HTML à la place du statut, lien qui permet d'aller sur le site du transporteur et de suivre l'avancement de la livraison du colis.

Lorsque l'URL de suivi est construite par l'extension, la seule information disponible est le numéro de colis et on n'a nul part accès à la méthode de livraison sélectionnée. Afin de pouvoir retrouver l'url de suivi dans la configuration, il faut spécifier la méthode de livraison dans le numéro de tracking, par exemple : colissimo:8Lxxxxxxxxxxxcolissimo est le code de la méthode de livraison sélectionnée.
Si aucun code n'est spécifié (si vous saisissez uniquement le numéro de tracking), l'url utilisée sera celle globale au mode de livraison.

Pour répondre à une question récurrente, Magento affiche le statut de livraison depuis le back office ou le front office. Si vous souhaitez insérer l'URL de suivi dans les mails d'expédition, vous devrez développer vous même la récupération de l'URL de suivi et son insertion dans le mail, en effet, l'extension Advanced Shipping se contente de fournir des modes de livraison paramétrables sans apporter de grande modification au coeur de Magento afin de réduire les problèmes d'incompatibilité et de mise à jour.

Si vous obtenez un popup vide lorsque vous cliquez sur le lien de suivi, votre problème est très certainement lié au fait que vous n'avez pas spécifié le code de la méthode de livraison dans le numéro de suivi (voir indications plus haut) et que votre champ global "URL de suivi" est vide.

Il n'est actuellement pas prévu de modifier les fonctionnalitées de l'extension liées à l'URL de suivi.

Index

A

  • about : propriété
  • activation : voir enabled
  • adresse d'envoi : voir origin
  • adresse de facturation : voir billto
  • adresse de livraison : voir shipto
  • address_filter : raccourci, exemples
  • attribut produit : voir product.attribute.*

B

C

D

E

F

G

  • gratuit : voir "port offert"
  • groupes client : voir customer_groups

I

L

M

O

P

Q

R

S

T

U

  • URL de suivi : voir tracking_url

V