Ce qu'il faut savoir sur Magento et la gestion de commande
Comment Magento s'occupe des commandes des clients ?
Dans Magento, les commandes sont organisées tel un groupe structuré de données partagées sur plusieurs instances.
La principale instance est la table Order qui contient le résumé de chaque commande effectuée (date, montant total, taxe, client,...).
Rattachées à cette instance, on trouve 3 sous-instances qui concernent le détail de la commande :
- Product : Produit
- Billing address : Adresse de facturation
- Shipping address : Adresse d'expedition
Ces instances décrivent les produits qui ont été commandés et donnent des détails sur l'adresse du client.
En plus de ça, 4 sous-instances aident à stocker les différentes étapes dans le processus de commande :
- Payments : Paiement
- Invoice : Facture
- Shipment : Expedition
- Credit memo : Avoir
Les instances ci-dessus peuvent être résumées simplement :
Bien sûr, il y a bien de données que vous pouvez extraire de votre base de données Magento et c'est là que Mass Order Export peut vous être utile.
Comment Mass Order Export exporte les données Magento ?
Mass Order Export vous permet d'exporter toutes les données des commandes dans des fichiers Xml ou Txt/Csv.
Ces fichiers peuvent ensuite être transférés dans votre logiciel CRM/ERP ou peuvent être utilisés à des fins de production de rapports.
La façon dont cette extension traite les données des commandes est très simple. Lorsque vous configurez votre profil export, vous devez completer un template dans lequel vous pouvez utiliser des valeurs statiques et dynamiques.
Valeurs Statiques et Dynamiques
Les valeurs statiques sont des données qui ne changent pas d'une commande à une autre et qui sont ajoutées dans le fichier de sortie dans le but de la rendre lisible.
Les valeurs dynamiques sont des données différentes pour chaque commande (prix, adresse, produit commandé...).
Imaginons que vous souhaitez exporter toutes les commandes éffectuées depuis votre boutique Magento et que vous voulez obtenir un simple fichier txt comprennant le numéro de la commande et le montant total de chaque commande. Ce que vous devez obtenir devrait ressembler à ceci :
#123456789 $150.00
#234567891 $275.00
#345678912 $450.00
Votre template sera donc très simple :
#{increment_id} ${total_paid}
Les signes # et $ sont des valeurs statiques alors que {increment_id} et {total_paid} sont des valeurs dynamiques qui changent pour chaque commande.
Les instances
{increment_id} et {total_paid} font référence à l'instance Order et pourraient également être écrit {increment_id order} et {total_paid order}.
Vous pourriez avoir besoin de compléter votre fichier export avec la méthode utilisée par vos clients pour payer leurs commandes. Vous pouvez trouver ces données dans l'instance Payment. Et vous devriez utiliser {method payment}. Cette syntaxe signifie que vous souhaitez connaître la valeur de la méthode de paiement pour chaque commande.
Comment utiliser Mass Order Export en 4 étapes ?
Mass Order Export est très simple à étre utilisée. Vous aurez besoin de suivre 4 étapes pour configurer votre extension. Une fois ces étapes terminées, votre extension sera prête à l'emploi.
ETAPE 1 : Configurez Mass Order Export d'une manière générale
Afin de configurer votre extension, allez dans :
SystemConfigurationWyomindMass Order Export
Ici, vous trouverez deux sous-onglets.
Cron job reporting
Mass Order Export vous permet d'activer les rapports de génération des tâches cron.
Vous avez la possibilité d'envoyer ces rapports à des adresses email qui doivent être séparées par une virgule.
Vous pouvez également modifier le titre du rapport et décider d'activer ou non le mode de debuggage.
Core setting
- Orders grid to display
Vous pouvez modifier la grille de commande à afficher.
La valeur par défaut est "Mage_Adminhtml_Block_Sales_Order_Grid" - Profile IDs to execute while placing an order
Vous pourrez aussi exécuter certains profils lorsqu'une commande est passée en indiquant leurs ids que vous trouverez dans :
SALESMass Order ExportExport Profiles
ETAPE 2 : Exportez vos profils
Durant cette étape seront décrits les différents onglets que l'on peut trouver dans un profil. Pour commencer, la configuration du profil sera présentée puis suivront les différents templates que vous pouvez exportez, les filtres que vous pouvez créer afin d'ajuster votre configuration, la configuration FTP et enfin les tâches planifiées pour la génération du profil.
Vous pouvez éditer ou créer un nouveau profil dans :
SalesMass Order ExportExport Profiles
A partir de là, vous avez la possibilité de supprimer ou de générer plusieurs profils en même temps.
La boîte à outils ou "Black Box"
Lorsque vous créez un profil, vous devriez voir une blackbox sur la droite de l'écran. L'extension Mass Order Export comprend cet outil qui vous aide dans la création de votre profil.
La blackbox est sans aucun doute un outil très utile pour vous aider à configurer votre profil plus rapidement.
La blackbox propose différentes options :
Check Syntax
Ce bouton vous permet de vérifier que votre syntax est correcte. Il vous aide à voir si vous avez oublié une parenthèse, une virgule en surlignant en jaune la bout de texte qui contient l'erreur.
Library
Vous voudriez peut-être savoir comment connaître la syntaxe à utiliser ? Ne vous en faites pas, Mass Order Export comprend une bibliothèque ou vous trouverez toutes les données disponibles pour chaque instance : commande, produits, paiement, facture, expédition, avoir...
Check Data
En cliquant sur ce bouton, vous obtiendrez un aperçu de votre profil. Cet outil est très utile pour voir si les valeurs sont correctement récupérées ou si les filtres fonctionnent comme vous le souhaitez.
Configuration
Pendant la création ou la modification d'un profil export dans Mass Order Export, vous devez prêter attention à quelques réglages de base.
File configuration
Afin de configurer votre fichier, remplissez les champs suivants :
- File name
C'est le nom de base des fichiers exportés (ex : myOrders). Nul besoin d'ajouter une extension de fichier (xml, csv, txt), l'extension le fait automatiquement pour vous. - Encoding type
Choisissez le type d'encodage. - File type
Il s'agit du réglage principal qui définit si vous souhaitez un fichier de type XML ou de type CSV/TXT. Selon ce règlage, le template sera différent. - File name format
Le nom de votre fichier peut être complété avec la date du jour de l'export. Différents formats sont disponibles. - Create one file for each order
Choisissez d'exporter une commande par fichier ou non. - Add a counter as the 1st column
Définissez ou non la première colonne comme un compteur.
Product filters
Orders filters
Cette partie vous donne la possibilité de définir quel groupe de commandes doit être exporté.
- Export from Store view
Vous permet de choisir une ou plusieurs vues de magasin depuis votre ou vos magasin(s) en ligne lors du processus d'export. - Start with order #
Vous permet de définir un numéro de commande depuis lequel le processus d'export commencera. - Register the last exported #
Vous permet dans l'input 'Start with order #' d'enregistrer automatiquement la dernière commande exportée. - Flag each exported order
Vous permet de signaler chaque commande exportée comme 'exporté' dans :
SalesOrders - Export only unmarked orders
Vous permet de définir que seulement les commandes qui n'ont pas encore été signalées doivent être exportées. - Update the order status
Vous permet de mettre à jour le statut de la commande.
Template
Dans cet onglet, vous pouvez configurer votre template selon vos besoins. Mass Order Export vous permet de créer différents types de fichiers :
- profil XML
- profil CSV / TXT
Notez que vous avez également la possibilité d'insérer du code php directement dans votre template
XML file template
Un template XML est composé de 3 parties :
- Enclose xml tag content inside CDATA (recommandé)
Choisissez d'encadrer le contenu de vos balises XML avec CDATA. - Header pattern
Il comprend le haut du fichier.<orders>
- Order pattern
Il est itéré pour chaque commande y compris dans le fichier.<order> <customer> {customer_lastname,[strtoupper]} {customer_firstname,[strtolower],[ucfirst]} </customer> <billing> {firstname billing} {lastname billing} {postcode billing} {street billing,[implode]} {city billing} {country_id billing} </billing> <shipping> {firstname shipping} {lastname shipping} {postcode shipping} {street shipping,[implode]} {city shipping} {country_id shipping} </shipping> <items> {product::start} <item id="{item_id product}">{name product}</item> <weight>{weight product}</weight> {product::end} </items> <order>
- Footer pattern
Il comprend le bas du fichier :</orders>
La structure XML permet d'utiliser une syntaxe itérative dans différentes parties du template, comme ci-dessous :
<items>
{product::start}
<item id="{item_id product}">{name product}</item>
<weight>{weight product}</weight>
{product::end}
</items>
Dans la plupart des cas, les commandes contiennent plus d'un produit, donc il peut être utile de créer une itération qui fait une boucle pour chaque produit commandé. Tout le contenu entre le signe d'ouverture et de fermeture va se répéter pour chaque produit et toutes les valeurs dynamiques seront remplacées.
{product::start}
...
{product::end}
Ces signes d'itération peuvent être utilisés pour toutes les instances de commande :
{payment::start}
...
{payment::end}
{invoice::start}
...
{invoice::end}
{shipment::start}
...
{shipment::end}
{creditmemo::start}
...
{creditmemo::end}
CSV / TXT file template
Pour créer un flux de données CSV/TXT, vous devez simplement choisir le type 'csv' ou 'txt' de votre Fichier, dans l'onglet Configuration. L'onglet Template sera mis à jour pour correspondre au type de fichier.
- Include header
Vous permet d'inclure ou non le nom des colonnes dans la première ligne de votre fichier CSV/TXT. - Columns name
C'est pour le nom de l'attribut qui peut être affiché en haut du fichier. - Pattern
Fonctionne de la même manière que dans les fichiers XML.
Comme dans les fichier XML, vous avez la possibilité d'utiliser du code PHP si vous voulez personnaliser le modèle.
Vous devez simplement écrire votre code PHP sur une seule ligne, et cela fonctionnera parfaitement.
Vous pouvez ajouter un champ en utilisant le bouton Add field. Les champs peuvent être facilement réorganisés en utilisant les flèches haut et bas. - Field delimiter
Vous laisse choisir quel type de séparateur vous souhaitez utiliser pour délimiter vos champs. - Fields enclosure
Vous permet de choisir quel type de caractère d'encadrement vous souhaitez pour vos données.
La principale différence avec le mode XML est que vous ne pouvez utiliser aucunes instructions d'itération. Par contre, Mass Order Export utilise un processus interne d'auto-consolidation à la place. Cela signifie que si vous essayez d'obtenir la valeur d'un attribut d'une instance (un produit par exemple) qui contient plusieurs articles, l'extension va automatiquement dupliquer la ligne txt/csv pour chaque article.
Avec la configuration suivante :
Logiquement, le module devrait exporter une ligne pour chaque commande, mais quelques commandes peuvent contenir plusieurs articles de produit. L'extension va créer plusieurs lignes pour la même commande, comme dans l'exemple suivant :
Order# Product Name Product Sku
#10000001 my product A AAA
#10000001 my product B BBB
#10000001 my product C CCC
#10000002 my product D DDD
#10000003 my product B BBB
#10000003 my product E EEE
...
Filters
Dans l'onglet Filters, vous pouvez définir les types de commandes et de clients que vous souhaitez inclure dans votre profil d'export. Vous avez aussi la possibilité de créer des filtres plus avancés afin d'affiner votre configuration.
Order status
Ici, vous pouvez définir le type de commande que vous souhaitez exporter. Vous devez sélectionner au moins un statut.
Customer Group
Dans cet onglet, choisissez les groupes de clients des commandes que vous souhaitez exporter. Au moins un groupe de client doit être sélectionné.
Advanced Filters
Dans cet onglet, vous pouvez configurer des filtres beaucoup plus précis. Par exemple, choisissez d'exporter seulement une commande bien spécifique :
order > increment_id | = | Id de votre commande
Vous pouvez également exporter les commandes effectuées par des clients dont le nom de famille se termine par 'son' :
order > customer_lastname | like | %son
Vous avez plusieurs options :
- =, >, <...
Egale à, supérieur à, inférieur à, supérieur ou égale à, inférieur ou égale à, différent de. - LIKE / NOT LIKE
like : commence par / se termine par / inclue la chaîne de caractère.
not like : ne commence pas / ne se termine pas / n'inclue pas la chaîne de caractère. - IS NULL / IS NOT NULL
is null : la valeur est nulle.
is not null : la valeur n'est pas nulle. - IN / NOT IN
in : se trouve dans (sélection de plusieurs options).
not in : ne se trouve pas dans (sélection de plusieurs options).
Output settings
Avec Mass Order Export, vous avez plusieurs possibilités pour exporter vos profils.
Storage settings
FTP settings
Vous pouvez également configurer des paramètres FTP. Par exemple :
- Upload by FTP
Sélectionnez Yes si vous souhaitez télécharger votre profil via FTP. - Host
Dans ce champ, indiquez le serveur.
wyomind.com - Login
Il s'agit de votre login pour vous connecter au serveur. - Password
Il s'agit de votre mot de passe pour accéder au serveur. - Destination director
C'est le chemin depuis le répertoire d'entrée lorsque vous vous connectez au FTP.
/var/export/ftp - Use SFTP
Sélectionnez Yes si vous utilisez un protocol SFTP. - Use passive mode
Si vous utilisez le protocol SFTP, vous n'avez pas à vous préoccuper du mode actif/passif.
Email settings
Enfin, vous pouvez choisir d'envoyer vos profils par email. N'oubliez pas de séparer les adresses email d'une virgule.
Scheduled tasks
ETAPE 3 : Exportez vos commandes
Maintenant que vos profils sont configurés, vous pouvez exporter vos commandes dans ces fichiers.
Vous pourrez voir dans quel profil chaque commande a été exportée dans :
SalesOrders
Pour chaque commande, des messages différents seront affichés dans la colonne Exported to :
- √ default (X)
La commande a été exportée dans le profil default (seulement si l'option Mark each exported order de la configuration du profil est sur YES). - No profile defined
Aucun profil n'est défini pour le ou les produits de cette commande. - => default
Le profil défini pour cette commande est default.
Vous avez plusieurs façons d'exporter vos commandes dans n'importe quel profil.
Générez le profil
En générant le profil, les commandes qui correspondent à la configuration du profil sont automatiquement exportées dans ce fichier.
Choisissez un profil et sélectionnez simplement l'option Generate depuis la colonne Action dans :
SalesMass Order ExportExport profiles
Un message est affiché et indique le nombre de commandes qui ont été exportées dans le fichier.
Exportez manuellement les commandes
Vous pouvez configurer les profils dans :SalesMass Order ExportExporTprofiles
Retournez dans :
SalesOrders
Dans la colonne Exported to, la commande affiche :=> default
Cela signifie que cette commande sera générée dans ce profil.
Désormais retournez dans la vue de la commande et cliquez surExport. La commande est alors exportée dans le ou les profils que vous avez tout juste défini seulement si celle-ci correspond à la configuration du profil.
Exportez seulement les commandes non marquées
2 options sont intéressantes dans l'onglet Configuration de votre profil dans :
SalesMass Order ExportExport profiles
- Mark each exported order
Marquer chaque commande exportée (dans :SalesOrders). - Export only unmarked orders
Exporter seulement les commandes non marquées.
Si vous ne souhaitez pas exporter les mêmes commandes plusieurs fois, vous pouvez simplement définir les deux options ci-dessus sur YES. Alors seulement les commandes non marquées seront exportées.
Si à n'importe quel moment vous souhaitez exporter une seconde fois une commande qui a déjà été exportée, vous avez la possibilité de démarquer celle-ci en cliquant sur la croix à côté du nom du profil dans :
SalesOrders
Dans ce cas, lorsque le profil sera généré, la commande pourra être une nouvelle fois exportée.
ETAPE 4 : Créez des attributs personnalisés
Dans certains cas, vous pourriez avoir besoin de récupérer la valeur d'un attribut qui n'est disponible dans aucune des instances par défaut (order, product, address, payment, invoice, shipment ou creditmemo). Vous pourriez également avoir besoin d'utiliser la valeur de votre attribut mais avec une sortie calculée.
Mass Order Export permet de créer vos propres attributs personnalisés directement depuis votre admin en utilisant du code php.
Règles
Dans le but de créer un attribut personnalisé valide, vous devez respecter ces règles :
- $value est utilisé pour stocker des données qui doivent être renvoyées. Vous pouvez aussi utiliser l'instruction return
- $item fait référence à l'article de l'instance en cours, ex :
{your_custom_attribute order} : $item fait référence à l'instance de la commande{your_custom_attribute product} : $item fait référence à l'instance du produit en cours... - $data est un tableau associatif qui contient toutes les données des instances de la commande en cours.
$data["products"] contient toutes les données du produit relatives à la commande en cours$data["payments"] contient toutes les données de paiement relatives à la commande en cours
Exemples
Voici 3 exemples d'attributs personnalisés assez courants :
- Obtenez la couleur de chaque produit de la commande
<? $product=Mage::getModel('catalog/product'); $product->load($item->getProductId()); $value=$product->getColor(); return $value; ?>
ou
<? return Mage::getModel('catalog/product')->load($item->getProductId())->getAttributeText('color'); ?>
- Obtenez une chaîne consolidée des skus de chaque produit de la commande
<? $skus = array(); foreach ($data['products'] as $product) { $skus[]= $product->getSku(); } return implode(',',$skus); ?>
- Obtenez le statut d'une commande et récupérez une valeur calculée
<? switch($item->getStatus()){ case 'canceled': $value= 'MerchantCanceled'; break; default : $value= 'BuyerCanceled'; } return $value; ?>