Exporter les commandes pour une gestion comptable

  • De le 28 octobre 2009
  • Difficulté : 2/4

Exporter les commandes pour une gestion comptable Par défaut sous Magento il n'est pas possible d'exporter les informations détaillées relatives aux commandes. Ce module va nous permettre d'exporter un maximum de données au format CSV afin de les exploiter pour une gestion comptable.

Les rapports de ventes disponibles sous Magento permettent de récolter un certain nombre d'informations sur une période donnée, par jour, mois ou année. Ils ne fournissent cependant pas de données détaillées sur les commandes passées. Les tableaux générés restent assez synthétiques (Nombre de commandes, total facturé, total réglé...).

L'idée est donc de développer un module (OrdersExport) capable de générer un fichier CSV et de récolter, ligne par ligne, l'ensemble des informations disponibles pour une commande, afin de les exploiter par la suite sur un ERP par exemple.

Le fichier CSV pourra contenir :

  • Numéro de commande
  • Date de commande
  • Numéro de facture
  • Date de facture
  • Numéro de livraison
  • Date de livraison
  • Numéro de remboursement
  • Date de remboursement
  • Numéro du client
  • Nom et prénom du client
  • Nombre de produits commandés
  • Nombre de produits livrés
  • Sous-total de la commande
  • Montant des taxes
  • Montant des frais de port
  • Montant des remises
  • Total de la commande
  • Montant remboursé
  • Méthode de paiement
  • Statut de la commande

Le fichier est généré manuellement depuis la page du listing des commandes. Il est ainsi possible de filtrer les commandes que l'on souhaite récupérer (période, statut, numéros de commande...).

Export CSV des commandes

Le module de base utilisé pour le développement de cette extension est Manual order export, anciennement disponible sur Magento Connect.

L'extension est compatible avec les versions 1.3.X de Magento.

Export CSV Excel

Architecture du module

  • app/code/local/Magentix/OrdersExport/Block/
  • SalesOrderGrid.php
  • app/code/local/Magentix/OrdersExport/controllers/
  • SalesOrderController.php
  • app/code/local/Magentix/OrdersExport/etc/
  • config.xml
  • app/code/local/Magentix/OrdersExport/Helper/
  • Data.php
  • app/code/local/Magentix/OrdersExport/Model/
  • SalesOrder.php
  • app/locale/fr_FR/
  • Magentix_OrdersExport.csv
  • app/etc/modules/
  • Magentix_OrdersExport.xml

Détails du module

Pour plus de souplesse, la mise en forme du CSV se configure depuis le fichier de configuration config.xml :

app/code/local/Magentix/OrdersExport/etc/config.xml

<!-- ... -->
<default>
    <ordersexport>
        <csv>
            <delimiter>;</delimiter>
            <enclose>"</enclose>
            <mapping>
                <order_increment_id>Order number</order_increment_id>
                <order_created_at>Order created at</order_created_at>
                <invoice_increment_id>Invoice number</invoice_increment_id>
                <invoice_created_at>Invoice created at</invoice_created_at>
                <shipment_increment_id>Shipment number</shipment_increment_id>
                <shipment_created_at>Shipment created at</shipment_created_at>
                <creditmemo_increment_id>Credit memo number</creditmemo_increment_id>
                <creditmemo_created_at>Credit memo created at</creditmemo_created_at>
                <customer_name>Customer name</customer_name>
                <customer_increment_id>Customer number</customer_increment_id>
                <products_ordered>Products ordered</products_ordered>
                <products_delivered>Products delivered</products_delivered>
                <order_subtotal>Subtotal</order_subtotal>
                <order_tax_amount>Tax</order_tax_amount>
                <order_shipping_amount>Shipping</order_shipping_amount>
                <order_discount_amount>Discount</order_discount_amount>
                <order_grand_total>Total</order_grand_total>
                <order_total_refunded>Refunded</order_total_refunded>
                <order_payment_method>Payment method</order_payment_method>
                <order_status>Status</order_status>
            </mapping>
        </csv>
    </ordersexport>
</default>
<!-- ... -->

On définit ici les séparateurs de champs et de texte souhaités, les informations à récupérer et l'ordre des colonnes.

L'intitulé des colonnes peut être modifié depuis le fichier de langue Magentix_OrdersExport.csv :

app/locale/fr_FR/Magentix_OrdersExport.csv

"Order number","Commande"
"Order created at","Date commande"
"Invoice number","Facture"
"Invoice created at","Date facture"
"Shipment number","Expedition"
"Shipment created at","Date expedition"
"Credit memo number","Remboursement"
"Credit memo created at","Date remboursement"
"Customer name","Client"
"Customer number","Numero client"
"Products ordered","Produits commandes"
"Products delivered","Produits livres"
"Subtotal","Sous total HT"
"Tax","Taxe"
"Shipping","Frais de port"
"Discount","Remise"
"Refunded","Rembourse"
"Total","Total TTC"
"Payment method","Reglement"
"Status","Statut"

Le module surcharge le bloc Mage_Adminhtml_Block_Sales_Order_Grid. Il peut donc entraîner un conflit avec un autre module installé (ex : Fia-Net).

Les fichiers CSV générés sont stockés dans le dossier /var/export. Un lien de téléchargement est affiché suite à l'export :

Export CSV fichier
commentaires

Commentez cet article : Exporter les commandes pour une gestion comptable