dpd

Module de livraison DPD pour Magento et Adobe Commerce

Sommaire

Prérequis

Magento

  • Compatible Magento 2.4.0 à 2.4.9, OpenSource / Adobe Commerce / Mage-OS.

PHP

  • PHP >= 8.0

Configuration

L'activation du mode de livraison Dpd s'effectue depuis le menu :

Boutiques (Stores) > Configuration (Configuration) > Ventes (Sales) > Modes de livraison (Shipping Methods) > DPD

Général

  • Activé (Enabled) : activer les méthodes d'expédition Dpd
  • Titre (Title) : titre de la méthode
  • Tri (Sort Order) : position de la méthode dans le tunnel de commande
  • Afficher la méthode si elle n'est pas applicable (Show Method if Not Applicable) : afficher la méthode Dpd même si elle ne peut s'appliquer à l'adresse de livraison du client
  • Message d'erreur (Displayed Error Message) : Message affiché si la méthode ne peut s'appliquer à l'adresse de livraison du client
  • Calcul du poids (Weight Calculation) : Permet d'autoriser ou non les méthodes de livraison DPD pour un panier dont le poids dépasse le seuil autorisé
  • Ouvrir la fenêtre au clic sur la méthode de livraison (Open pop-in on shipping method selection) : Ouvrir directement ou non la pop-in au clic sur la méthode (Relais et Predic)
  • Activer l'assurance (Enable Insurance) : Activer l'assurance Ad Valorem à l'export des commandes
  • Activer le log (Enable Log) : journaliser les requêtes et réponses de l'API dans le fichier var/log/dpd.log

Méthodes de livraison

Activez les méthodes de livraison Dpd souhaitées :

  • Predict
  • Classic
  • Relais Pickup

Paramètres :

  • Activé (Enabled) : activer la méthode
  • Nom (Name) : nom de la méthode
  • N° de compte DPD (DPD account number) : numéro de compte communiqué par DPD (4 ou 5 chiffres). Un numéro de compte différent peut être défini pour chaque méthode, indispensable en cas de multi-boutique avec plusieurs comptes
  • Poids maximum (Maximum Weight) : poids maximum accepté pour affichage de la méthode
  • Pays (Ship to Specific Countries) : pays activés pour la méthode
  • Tri (Sort Order) : position de la méthode

Uniquement en relais Pickup :

  • Carrier (Carrier) : Identifiant d'accès à l'API
  • Filtre (Filter) : types de points de retrait proposés au client
    • Points relais uniquement (Pickup locations only)
    • Points relais et consignes (Pickup locations and lockers) : inclut les consignes automatiques (lockers) dans les résultats, voir Consigne (Locker)
  • Nombre maximum de points de retrait (Maximum number of pickup points) : nombre de points renvoyés par l'API (entre 1 et 25, 10 par défaut)
  • Masquer les points de retrait hors frontière (Hide Pickups outside the border) : ne pas proposer de points de retrait situés dans un pays différent de celui recherché
  • Type de carte (Map Type) : Google Maps (licence) ou OpenStreetMap (gratuit)
    • Google Map API Key (Google Map API Key) : clé d'API Google pour affichage de la carte. Générer une clé.
  • Adresse par défaut (Default address) : appliquer une adresse de recherche par défaut si le client n'a saisi aucune donnée
    • Ville par défaut (Default city)
    • Code postal par défaut (Default postcode)
    • Pays par défaut (Default country)

Consigne (Locker)

En complément des points relais classiques (boutiques partenaires), DPD propose des consignes automatiques (lockers) permettant au client de récupérer son colis en autonomie, 24h/24 et 7j/7.

Pour proposer les consignes en plus des points relais, réglez le champ Filtre (Filter) de la méthode Relais Pickup sur Points relais et consignes (Pickup locations and lockers), voir Méthodes de livraison.

Une fois l'option activée, les consignes apparaissent dans la même liste et sur la même carte que les points relais, avec le même mode de sélection dans le tunnel de commande.


Frais de livraison

Menu

La configuration des prix s'effectue depuis le menu Ventes (Sales) > Dpd > Prix (Prices)

Ajouter un tarif

  • Activer (Enable) : Activer ou non le tarif
  • Vue boutique (Store View) : Boutique sur laquelle le tarif sera appliqué. Pour appliquer sur l'ensemble des boutiques, sélectionnez "Toutes les boutiques"
  • Méthode (Method) : Méthode de livraison Dpd
  • Pays (Country) : Pays de livraison
  • Code postal (Postcode) : Code postal de livraison. Utilisez le symbole * à la fin pour une application générique (par exemple : 20*).
  • Poids de (Weight From) : Poids minimum du panier pour l'application du tarif, en kg ou lbs selon la configuration générale
  • Poids à (Weight To) : Poids maximum du panier pour l'application du tarif, en kg ou lbs selon la configuration générale
  • Prix (Price) : Prix de la livraison dans la devise du magasin
  • Livraison gratuite (Free Shipping) : Sous-total TTC du panier pour bénéficier de la livraison gratuite

Si un prix pour un code postal est défini, il sera appliqué prioritairement.

Exemples

Pour une tarification au forfait, la configuration du prix sera par exemple :

Prix Pays Poids (de) Poids (à)
5.90 France

Pour une tarification par poids, la configuration sera par exemple :

Prix Pays Poids (de) Poids (à)
5.38 France 0.25
5.98 France 0.25 0.50
6.70 France 0.50 0.75
7.26 France 0.75 1.00
8.06 France 1.00

Pour un prix spécifique en Corse :

Prix Pays Code postal Poids (de) Poids (à)
18.90 France 20*

Export des prix

Pour l'export CSV des tarifs, sélectionnez l'action Exporter

Import des prix

Pour l'import CSV des tarifs, sélectionnez l'action Importer

Le fichier CSV doit contenir, dans l'ordre indiqué, les colonnes suivantes :

method store_id country_id postcode weight_from weight_to price is_active
pickup 0 FR 0.25 5.46 1

Les codes des méthodes (colonne method) sont les suivants :

  • predict : DPD Predict
  • classic : DPD Classic
  • pickup : DPD Relais Pickup

Désactivation des relais et consignes

Le module permet de désactiver la livraison en point relais et/ou en consigne si au moins un des produits du panier n'est pas compatible.

A l'installation du module, deux attributs produit de type oui/non sont créés :

  • DPD Pickup is not allowed (dpd_pickup_not_allowed) : interdit la sélection d'un point relais
  • DPD Locker is not allowed (dpd_locker_not_allowed) : interdit la sélection d'une consigne
Désactivation du relais DPD pour un produit

Si la valeur d'un de ces attributs est égale à 1 (oui) pour un produit présent dans le panier :

  • Si seul dpd_pickup_not_allowed est actif, seules les consignes sont proposées au client
  • Si seul dpd_locker_not_allowed est actif, seuls les points relais sont proposés au client
  • Si les deux restrictions s'appliquent (produits différents du panier concernés chacun par un attribut), la méthode de livraison Relais Pickup n'est plus proposée

Export des commandes vers "myDPD for Business" ou Station.NET

Configuration

Il est nécessaire de renseigner l'adresse de l'expéditeur. Les données utilisées sont celles contenues dans la configuration native suivante :

Magasins (Stores) > Configuration (Configuration) > Ventes (Sales) > Paramètres de livraison (Shipping settings) > Origine (Origin)

D'autres champs (optionnels) peuvent être renseignés dans la configuration du module :

Boutiques (Stores) > Configuration (Configuration) > Ventes (Sales) > Modes de livraison (Shipping Methods) > DPD > Export (Station.NET)

  • Agence DPD (DPD Agency) : Identifiant de l'agence DPD, sur 3 chiffres (exemple : 013)
  • E-mail expéditeur (Shipper email) : E-mail de l'expéditeur
  • Téléphone fixe expéditeur (Shipper telephone number) : Numéro de téléphone fixe de l'expéditeur
  • Téléphone mobile expéditeur (Shipper mobile number) : Numéro de téléphone mobile de l'expéditeur
  • Méthodes d'expédition à exporter (Shipping Methods to Export) : Méthode à afficher dans la grille d'export des commandes DPD

Export

L'export des commandes s'effectue depuis le menu : Ventes (Sales) > DPD > Export, ou depuis la grille des commandes via l'action DPD Export (Export DPD).

Sélectionnez les commandes que vous souhaitez exporter puis l'action Exporter. Le fichier généré est un fichier plat au format dat à importer dans "myDPD for Business" ou Station.NET

Un flag Exporté (dpd_is_exported) passe à oui une fois l'action Exporter sélectionnée. Vous pouvez alors filtrer sur les commandes déjà exportées.

Export des commandes DPD

Les fichiers d'export sont conservés sur le serveur dans le dossier var/export/dpd.

API

List of REST Endpoints

Guest cart

GET    /V1/guest-carts/:cartId/dpd-pickup
PUT    /V1/guest-carts/:cartId/dpd-pickup/:pickupId/:telephone
DELETE /V1/guest-carts/:cartId/dpd-pickup

GET    /V1/guest-carts/:cartId/dpd-predict
PUT    /V1/guest-carts/:cartId/dpd-predict/:telephone
DELETE /V1/guest-carts/:cartId/dpd-predict

Customer cart

GET    /V1/carts/mine/dpd-pickup
PUT    /V1/carts/mine/dpd-pickup/:pickupId/:telephone
DELETE /V1/carts/mine/dpd-pickup

GET    /V1/carts/mine/dpd-predict
PUT    /V1/carts/mine/dpd-predict/:telephone
DELETE /V1/carts/mine/dpd-predict

Pickup Data

GET    /V1/dpdPickup/:pickupId
GET    /V1/dpdPickup
GET    /V1/dpdPickup/order/:orderId

Price Data

GET    /V1/dpdPrice/:priceId
GET    /V1/dpdPrice/search
POST   /V1/dpdPrice
DELETE /V1/dpdPrice/:priceId
DELETE /V1/dpdPrice

Export

GET    /V1/dpdExport/export
GET    /V1/dpdExport/export/file
GET    /V1/dpdExport/export/:orderId

L'identifiant du relais Pickup (dpd_pickup_id) est associé à l'adresse de livraison sur les endpoints natifs :

GET    /V1/orders/:id
GET    /V1/orders

Exemple :

"extension_attributes": {
  "shipping_assignments": [{
    "shipping": {
      "address": {
        "address_type": "shipping",
        "city": "LILLE",
        "company": "E.LECLERC DRIVE LILLE MOLINEL",
        "country_id": "FR",
        "email": "65548402568cb@example.com",
        "entity_id": 468,
        "firstname": "John",
        "lastname": "Doe",
        "parent_id": 235,
        "postcode": "59000",
        "region": "Nord",
        "region_code": "59",
        "region_id": 247,
        "street": ["Rue du Molinel"],
        "telephone": "0610203040",
        "extension_attributes": {
            "dpd_pickup_id": "FR61733"
        }
      }
    }
  }
}

Exemples

Récupérer une liste de point de retrait

GET https://www.domain.tld/index.php/rest/V1/dpdPickup?
    searchCriteria[filter_groups][0][filters][0][field]=street&
    searchCriteria[filter_groups][0][filters][0][value]=3%20Av%20Matignon&
    searchCriteria[filter_groups][1][filters][0][field]=city&
    searchCriteria[filter_groups][1][filters][0][value]=Paris&
    searchCriteria[filter_groups][2][filters][0][field]=postcode&
    searchCriteria[filter_groups][2][filters][0][value]=75008

Récupérer les données d'un point de retrait

GET https://www.domain.tld/index.php/rest/V1/dpdPickup/P84150

Récupérer l'identifiant du point de retrait d'une commande

GET https://www.domain.tld/index.php/rest/V1/dpdPickup/order/1

Récupérer le contenu du fichier à exporter vers "myDPD for Business" ou Station.NET

GET https://www.domain.tld/index.php/rest/V1/dpdExport/export/file?orderIds[]=1&orderIds[]=2&orderIds[]=3

Récupérer les lignes d'export vers "myDPD for Business" ou Station.NET

GET https://www.domain.tld/index.php/rest/V1/dpdExport/export?orderIds[]=1&orderIds[]=2&orderIds[]=3

Récupérer la ligne d'export d'une commande vers "myDPD for Business" ou Station.NET

GET https://www.domain.tld/index.php/rest/V1/dpdExport/export/1