Aller au contenu

Export CSV pour les commandes

Ce plugin permet l'export flexible des commandes Shopware 6 en fichier CSV – complètement ou filtré par période, statut, méthode de paiement et bien d'autres critères. Grâce à des profils individuels, vous pouvez définir les champs librement et adapter les exports à vos besoins spécifiques.

Points forts

  • Exporter les commandes en CSV – flexible, filtrable, automatisable
  • 🔁 Export entièrement automatique via un calendrier (Scheduled Task / Cronjob)
  • ✉️ Envoi par e-mail ou Upload par FTP
  • 🧩 Champs d'export librement définissables avec tri et filtres
  • 🛠️ Format CSV entièrement configurable (séparateur, date, encodage etc.)
  • 🗂️ Autres formats d'export: XLSX, JSON, XML en plus du CSV (In-App Purchase)
  • 🏢 Modèles ERP pour DATEV, JTL-Wawi, Billbee, Xentral & Lexware (In-App Purchase)
  • 🔄 Export Delta/Incrémentiel – uniquement les commandes nouvelles ou modifiées (In-App Purchase)

❓ FAQ

Puis-je automatiser l'export?

Oui, le plugin prend en charge l'export automatique via les tâches planifiées Shopware (Cronjobs). Le fichier CSV peut être créé automatiquement et envoyé par e-mail ou FTP.

Puis-je créer mes propres profils d'export?

Oui, vous pouvez créer des profils d'export individuels et déterminer quels champs doivent être exportés et dans quel ordre.

Les champs supplémentaires (Custom Fields) sont-ils pris en charge?

Oui, le plugin prend en charge les champs supplémentaires pour les commandes, clients, produits et lignes de commande.

Combien de commandes puis-je exporter simultanément?

Le nombre maximum de commandes peut être configuré dans la configuration du plugin. De très grandes quantités de données peuvent également être exportées via CLI.

Dans quels formats puis-je exporter?

Par défaut en CSV. Avec l'In-App Purchase « Formats Pro & Modèles ERP » également en Excel (XLSX), JSON ou XML – configurable par profil.

Les systèmes ERP/Gestion des stocks sont-ils pris en charge?

Oui. Avec l'In-App Purchase « Formats Pro & Modèles ERP », des modèles en un clic sont disponibles pour DATEV, JTL-Wawi, Billbee, Xentral et Lexware, qui pré-remplissent la sélection des champs et les paramètres de format automatiquement.

Puis-je exporter uniquement les commandes nouvelles ou modifiées?

Oui, avec l'In-App Purchase « Export Delta ». Seules les commandes créées ou modifiées depuis la dernière exécution réussie sont exportées – idéal pour la synchronisation avec un système de gestion des stocks sans doublons.

Pourquoi mes exports automatiques ne s'exécutent-ils que lorsque l'administration est ouverte?

Les exports planifiés nécessitent un worker en arrière-plan actif (Shopware Message Queue / tâches planifiées) – comme toute autre tâche planifiée dans Shopware. Pour Shopware Cloud et la plupart des Managed Hostings, ce worker est déjà actif. Sinon, veuillez demander à votre prestataire d'hébergement d'activer le worker – ou appelez la tâche via Cron avec la commande Shopware standard bin/console scheduled-task:run-single cnk_order_csv_export.task (voir Envoi automatique). Les exports manuels fonctionnent aussi sans worker.

order-2.png

🔧 Installation

  • Prérequis (Plugin CNK Foundation)
  • Installation via Store ou ZIP
  • Activation & Visibilité dans le Backend install.png activate.png

🕒 Envoi automatique (Calendrier)

L'export basé sur le temps (Automation) est exécuté via le Worker en arrière-plan de Shopware – exactement comme toutes les autres tâches planifiées dans Shopware. Sur un shop correctement exploité, l'export s'exécute donc entièrement automatiquement, sans intervention manuelle.

Prérequis: Worker en arrière-plan actif

Les tâches planifiées et la Message Queue doivent fonctionner en arrière-plan. Il y a deux variantes courantes:

  • Admin-Worker (Standard): ne fonctionne que tant qu'une page d'administration est ouverte dans le navigateur – non adapté à l'exploitation sans surveillance.
  • CLI-Worker (productif, recommandé): processus permanents, par ex. via Supervisor/systemd ou Cron:
    bin/console scheduled-task:run
    bin/console messenger:consume async
    

Pour Shopware Cloud et la plupart des Managed Hostings, le worker est déjà actif. Sinon, activez-le ou demandez à votre fournisseur d'hébergement de le faire.

Sans worker permanent: cronjob direct

Si votre hébergement ne peut pas exploiter un worker permanent, appelez la tâche planifiée via Cron avec la commande Shopware standard directement (synchrone, sans Message Queue):

*/5 * * * * /usr/bin/php /chemin/vers/shop/bin/console scheduled-task:run-single cnk_order_csv_export.task
L'export s'exécute alors directement dans le run Cron (création CSV + envoi par e-mail/FTP); le statut est visible dans le journal d'export.

🧩 Gérer les profils

Les profils d'export définissent quelles données se trouvent dans le fichier CSV et dans quel ordre elles apparaissent. Les profils se trouvent dans la zone d'administration Shopware sous Commandes > Export CSV > Profils.

settings-1.png profile-1.png

Dans un profil, vous pouvez déterminer précisément quels champs doivent être inclus dans le fichier CSV exporté. Via le bouton « Ajouter un champ », vous pouvez sélectionner et organiser individuellement les champs de commande, de client, de produit et d'adresse. L'ordre des champs dans le profil correspond à l'ordre des colonnes dans le fichier CSV.

profile-2.png

🗂️ Formats d'export & Modèles ERP

In-App Purchase « Formats Pro & Modèles ERP »

Ces fonctions peuvent être activées via un In-App Purchase directement dans la zone d'administration Shopware.

En plus du format standard CSV, vous pouvez également exporter vos profils d'export en Excel (XLSX), JSON ou XML.

Le format d'export est défini par profil dans l'onglet Configuration via le champ « Format de fichier » et est appliqué côté serveur à tous les chemins d'export (manuel, export rapide, calendrier, Flow Builder et CLI). Si l'In-App Purchase n'est pas actif, l'export revient automatiquement à CSV.

Activer un format Pro

  1. Ouvrez un profil sous Commandes > Export CSV > Profils et allez à l'onglet Configuration.
  2. Sélectionnez un format Pro (XLSX, JSON ou XML) sous Format de fichier. Si l'achat n'est pas encore actif, un message s'affiche avec le bouton « Activer ».
  3. Après l'achat, le format est immédiatement disponible et est pris en compte lors de l'enregistrement.

Appliquer des modèles ERP

Les modèles ERP pré-remplissent en un clic la sélection des champs appropriés ainsi que les paramètres de séparateur, de nombre, de date et d'encodage pour le système cible:

Modèle Système cible
DATEV DATEV / Comptabilité
JTL-Wawi JTL Gestion des stocks
Billbee Billbee
Xentral Xentral ERP
Lexware Lexware

Pour appliquer un modèle:

  1. Assurez-vous que l'In-App Purchase « Formats Pro & Modèles ERP » est actif.
  2. Sélectionnez le système souhaité sous Modèle ERP dans le profil et cliquez sur « Appliquer le modèle ».
  3. La sélection des champs et les paramètres de format sont pris en charge. Le Format de fichier choisi est conservé – vous pouvez donc, par exemple, exporter une sélection de champs DATEV également en XLSX.

💡 L'application d'un modèle remplace la sélection des champs actuelle du profil. Adaptez les champs ensuite si nécessaire et enregistrez le profil.

🔄 Export incrémentiel / Delta

In-App Purchase « Export Delta »

Cette fonction peut être activée via un In-App Purchase séparé directement dans la zone d'administration Shopware.

Avec l'export delta, à chaque exécution uniquement les commandes créées ou modifiées depuis le dernier export réussi sont exportées. Cela maintient une gestion des stocks ou une comptabilité synchronisée sans doublons et – particulièrement pour de grandes quantités de commandes – économise du temps et du volume de données.

  • Activable par profil via le commutateur « Export Delta/Incrémentiel » dans l'onglet Configuration.
  • Considère les commandes sur la base de la date de création ou de modification (createdAt/updatedAt), de sorte que même les commandes modifiées ultérieurement sont réexportées.
  • Le Delta-Stand (Wasserzeichen) n'est mis à jour que après un export réussi – si une exécution échoue, aucune commande n'est perdue.
  • Fonctionne via tous les chemins d'export: Calendrier, Flow Builder et CLI (Profil Config).

Configurer l'export Delta

  1. Ouvrez un profil et allez à l'onglet Configuration.
  2. Activez le commutateur « Export Delta/Incrémentiel ». Si l'achat n'est pas encore actif, un message s'affiche avec le bouton « Activer ».
  3. Enregistrez le profil. À partir de l'exécution suivante, seules les commandes nouvelles ou modifiées seront exportées.

Réinitialiser le Delta-Stand

Si vous souhaitez réexporter toutes les commandes (par ex. pour un abonnement initial complet), réinitialisez le Wasserzeichen:

  1. Ouvrez le profil dans l'onglet Configuration.
  2. Cliquez sur « Réinitialiser » dans le message Delta et enregistrez le profil.
  3. L'exécution suivante exporte à nouveau toutes les commandes correspondantes et définit ensuite un nouveau Wasserzeichen.

💡 L'export Delta utilise l'heure de début de l'export comme Wasserzeichen. De cette façon, au pire, quelques commandes sont exportées deux fois plutôt que d'être ignorées – idéal pour les importations idempotentes (Upserts) dans la gestion des stocks.

Variables

💡 Les noms de champs doivent être acceptés exactement comme indiqué dans la colonne de gauche.

L'aperçu suivant montre toutes les variables disponibles qui peuvent être utilisées dans un profil d'export. Celles-ci déterminent quelles données apparaissent dans le fichier CSV – par exemple les données de commande générales, les informations client, les champs d'adresse ou les détails des produits. Les noms de champs dans la colonne de gauche sont configurés dans le profil, la colonne de droite décrit le contenu.

🧾 Données générales de commande

Nom du champ Description
id ID de commande
order_number Numéro de commande
order_date Date de commande
order_date_time Date et heure de commande
sales_channel Canal de vente
payment_method Méthode de paiement
shipping_method Méthode d'expédition
amount_total Montant total
amount_net Montant net
position_price Prix brut de la position
currency_name Devise
currency_short_name Devise (abrégé)
shipping_total Frais d'expédition
affiliate_code Code d'affiliation
customer_comment Commentaire du client
internal_comment Commentaire interne
transactions_state_machine_state Statut de paiement
deliveries_state_machine_state Statut d'expédition
order_state Statut de commande
tags Étiquettes
currency_factor Facteur de change
tax_status Statut fiscal
tax_calculation_type Type de calcul fiscal
deep_link_code Code de lien profond
auto_increment Numéro séquentiel
campaign_code Code de campagne
source Source
created_at Créé le
updated_at Modifié le
order_language Langue de commande
sales_channel_id ID de canal de vente
currency_id ID de devise
language_id ID de langue
state_id ID de statut
billing_address_id ID d'adresse de facturation

📦 Lignes de commande

Nom du champ Description
line_items_id ID de position
line_items_order_number Numéro de commande (Position)
line_items_label Nom
line_items_description Description
line_items_quantity Quantité
line_items_unit_price Prix unitaire
line_items_total_price Prix total

👤 Données client

Nom du champ Description
company Entreprise
salutation Titre
first_name Prénom
last_name Nom
email Adresse e-mail
birthday Date de naissance
order_count Nombre de commandes
customer_number Numéro de client
customer_id ID client
customer_group Groupe de clients
customer_language Langue du client
customer_register_date Date d'enregistrement
customer_remote_address Adresse IP
vat_ids Numéros d'ID TVA
customer_first_login Première connexion
customer_last_login Dernière connexion
customer_last_order_date Date de la dernière commande
customer_order_total_amount Valeur totale de la commande
customer_review_count Nombre d'évaluations
customer_tags Étiquettes client
customer_account_type Type de compte
customer_last_payment_method Dernière méthode de paiement
order_customer_number Numéro de client de commande
customer_company Entreprise (Client)
customer_title Titre
customer_active Actif
customer_guest Compte invité

🚚 Adresse d'expédition

Nom du champ Description
shipping_address_company Entreprise
shipping_address_department Département
shipping_address_salutation Titre
shipping_address_title Titre
shipping_address_first_name Prénom
shipping_address_last_name Nom
shipping_address_street Rue
shipping_address_street_name Nom de la rue
shipping_address_street_number Numéro de maison
shipping_address_zipcode Code postal
shipping_address_city Ville
shipping_address_phone_number Numéro de téléphone
shipping_address_additional_address_line1 Ligne d'adresse supplémentaire 1
shipping_address_additional_address_line2 Ligne d'adresse supplémentaire 2
shipping_address_country_name Pays
shipping_address_country_iso Pays (ISO)
shipping_address_country_iso3 Pays (ISO3)

🧾 Adresse de facturation

Nom du champ Description
billing_address_company Entreprise
billing_address_department Département
billing_address_salutation Titre
billing_address_title Titre
billing_address_first_name Prénom
billing_address_last_name Nom
billing_address_street Rue
billing_address_street_name Nom de la rue
billing_address_street_number Numéro de maison
billing_address_zipcode Code postal
billing_address_city Ville
billing_address_additional_address_line1 Ligne d'adresse supplémentaire 1
billing_address_additional_address_line2 Ligne d'adresse supplémentaire 2
billing_address_country_name Pays
billing_address_country_iso Pays (ISO)
billing_address_country_iso3 Pays (ISO3)

🛒 Données produit

Nom du champ Description
line_items_product_id ID produit
line_items_product_number Numéro de produit
line_items_product_name Nom du produit
line_items_product_description Description
line_items_product_manufacturer_number Numéro de fabricant
line_items_product_ean EAN
line_items_product_stock Inventaire
line_items_product_available_stock Inventaire disponible
line_items_product_max_purchase Quantité max.
line_items_product_min_purchase Quantité min.
line_items_product_purchase_prices Prix d'achat
line_items_product_shipping_free Livraison gratuite
line_items_product_weight Poids
line_items_product_width Largeur
line_items_product_height Hauteur
line_items_product_length Longueur
line_items_product_category_ids IDs de catégorie
line_items_product_category_names Noms de catégorie
line_items_product_release_date Date de publication
line_items_product_manufacturer_name Nom du fabricant
line_items_product_tags_names Étiquettes produit
line_items_product_tax_name Nom du taux fiscal
line_items_product_tax_rate Taux fiscal (%)
line_items_product_properties Propriétés

🧬 Détails de position (Payload)

Données de snapshot stockées au moment de l'achat sur la ligne de commande.

Nom du champ Description
line_items_payload_mark_as_topseller Marqué comme meilleure vente
line_items_payload_product_type Type de produit
line_items_payload_product_number Numéro de produit (Payload)
line_items_payload_manufacturer_name Nom du fabricant
line_items_payload_category_names Noms de catégorie
line_items_payload_is_new Marqué comme nouveau

📄 Documents

Champs issus de documents générés (Facture, Bon de livraison et – si le plugin Pickware est installé – Liste de sélection Pickware / Reçu PDV). Les valeurs ne sont remplies qu'une fois le document respectif créé pour la commande.

Facture

Nom du champ Description
documents_invoice_date Date
documents_invoice_datetime Date & Heure
documents_invoice_document_number Numéro de pièce
documents_invoice_company_name Nom de l'entreprise
documents_invoice_company_street Rue de l'entreprise
documents_invoice_company_zipcode Code postal de l'entreprise
documents_invoice_company_city Ville de l'entreprise
documents_invoice_company_country Pays de l'entreprise
documents_invoice_company_email E-mail de l'entreprise
documents_invoice_company_phone Téléphone de l'entreprise
documents_invoice_company_url URL de l'entreprise
documents_invoice_payment_due_date Date d'échéance du paiement
documents_invoice_tax_number Numéro fiscal
documents_invoice_vat_id Numéro d'ID TVA
documents_invoice_bank_name Nom de la banque
documents_invoice_bank_iban IBAN
documents_invoice_bank_bic BIC
documents_invoice_place_of_jurisdiction Compétence territoriale
documents_invoice_place_of_fulfillment Lieu de livraison
documents_invoice_executive_director Directeur exécutif
documents_invoice_company_address Adresse de l'entreprise
documents_invoice_document_comment Commentaire de la pièce

Bon de livraison

Nom du champ Description
documents_delivery_note_date Date
documents_delivery_note_datetime Date & Heure
documents_delivery_note_document_number Numéro de pièce
documents_delivery_note_company_name Nom de l'entreprise
documents_delivery_note_company_street Rue de l'entreprise
documents_delivery_note_company_zipcode Code postal de l'entreprise
documents_delivery_note_company_city Ville de l'entreprise
documents_delivery_note_company_country Pays de l'entreprise
documents_delivery_note_company_email E-mail de l'entreprise
documents_delivery_note_company_phone Téléphone de l'entreprise
documents_delivery_note_company_url URL de l'entreprise
documents_delivery_note_payment_due_date Date d'échéance du paiement
documents_delivery_note_tax_number Numéro fiscal
documents_delivery_note_vat_id Numéro d'ID TVA
documents_delivery_note_bank_name Nom de la banque
documents_delivery_note_bank_iban IBAN
documents_delivery_note_bank_bic BIC
documents_delivery_note_place_of_jurisdiction Compétence territoriale
documents_delivery_note_place_of_fulfillment Lieu de livraison
documents_delivery_note_executive_director Directeur exécutif
documents_delivery_note_company_address Adresse de l'entreprise
documents_delivery_note_document_comment Commentaire de la pièce

Pickware ERP-Picklist

Nom du champ Description
documents_pickware_erp_picklist_document_date Date du document
documents_pickware_erp_picklist_document_datetime Date du document & Heure
documents_pickware_erp_picklist_document_number Numéro de pièce
documents_pickware_erp_picklist_company_name Nom de l'entreprise
documents_pickware_erp_picklist_company_street Rue de l'entreprise
documents_pickware_erp_picklist_company_zipcode Code postal de l'entreprise
documents_pickware_erp_picklist_company_city Ville de l'entreprise
documents_pickware_erp_picklist_company_country Pays de l'entreprise
documents_pickware_erp_picklist_company_email E-mail de l'entreprise
documents_pickware_erp_picklist_company_phone Téléphone de l'entreprise
documents_pickware_erp_picklist_company_url URL de l'entreprise
documents_pickware_erp_picklist_payment_due_date Date d'échéance du paiement
documents_pickware_erp_picklist_tax_number Numéro fiscal
documents_pickware_erp_picklist_vat_id Numéro d'ID TVA
documents_pickware_erp_picklist_bank_name Nom de la banque
documents_pickware_erp_picklist_bank_iban IBAN
documents_pickware_erp_picklist_bank_bic BIC
documents_pickware_erp_picklist_place_of_jurisdiction Compétence territoriale
documents_pickware_erp_picklist_place_of_fulfillment Lieu de livraison
documents_pickware_erp_picklist_executive_director Directeur exécutif
documents_pickware_erp_picklist_company_address Adresse de l'entreprise
documents_pickware_erp_picklist_document_comment Commentaire de la pièce

Pickware Reçu PDV

Nom du champ Description
documents_pickware_pos_receipt_document_number Numéro de pièce
documents_pickware_pos_receipt_document_date Date du document
documents_pickware_pos_receipt_invoice_number Numéro de facture

Champs supplémentaires (Custom Fields)

En plus des champs listés ci-dessus, la boîte de dialogue de sélection de champs affiche automatiquement les champs supplémentaires définis dans votre shop pour les commandes, clients, produits et lignes de commande.

⚡ Export rapide via l'aperçu des commandes

  • Export direct des commandes sélectionnées
  • Export direct des commandes filtrées

order-1.png

  • Sélection d'un profil dans la liste déroulante order-2.png

🔁 Tâches (Automatisation)

  • Explication: Scheduled Task / Cronjob
  • Options configurables:
    • Intervalle de temps ou jours de la semaine fixes + heure
    • Destination FTP / E-mail
    • Choix du profil (y compris format, modèle ERP et export delta du profil choisi)

Prérequis: Worker en arrière-plan actif

Les exports planifiés sont exécutés via le Worker en arrière-plan de votre shop (Shopware Message Queue & tâches planifiées). Pour Shopware Cloud et la plupart des Managed Hostings, celui-ci est actif par défaut – vous n'avez rien de plus à configurer.

Si les exports ne s'exécutent que lors de l'ouverture de l'administration, aucun worker en arrière-plan n'est disponible dans votre shop. Dans ce cas, demandez à votre fournisseur d'hébergement d'activer le worker (techniquement: désactiver le « Admin-Worker » et exploiter bin/console messenger:consume ainsi que bin/console scheduled-task:run en tant que service ou Cron – voir Shopware Message Queue). Les exports manuels fonctionnent aussi sans worker.

job-1.png job-2.png job-3.png job-4.png job-5.png

📊 Activité & Protocollisation

  • Historique d'export & Statut (Succès/Erreur)
  • Fichier CSV-Log: Destinataire, Chemin FTP, Timestamp
  • Les journaux se trouvent sous Commandes > Export CSV > Activité activity-1.png

  • Le résultat ressemble à ceci activity-2.png

🖥️ Export via ligne de commande (CLI)

Export rapide des activités en cours

L'export de grandes quantités de données – même plus de 10 000 commandes – est possible. Une barre de progression intégrée affiche la progression de l'export.

Pour ne pas attendre la queue, vous pouvez déclencher l'export manuellement – par ex. pour un téléchargement CSV immédiat après la création d'un export:

#[AsCommand(
    name: 'cnk:csv-order-log:consume',
    description: 'Export all the activities in progress',
)]

L'export peut ensuite être démarré directement via la console:

bin/console cnk:csv-order-log:consume

Cette commande démarre tous les exports en cours directement via la console.

Export avec profil Shopware

bin/console cnk:csv-orders:export --fromDate 2023-05-15 --toDate 2025-02-01 --exportType sw_profile --mode order --profileName "Default orders" --limit 500

Export avec profil personnalisé

bin/console cnk:csv-orders:export --fromDate 2023-05-15 --toDate 2025-02-01 --exportType config --mode line_items --profileName "WAWI" --limit 500
  • fromDate: Commandes à partir de, format Y-m-d
  • toDate: Commandes jusqu'à, format Y-m-d
  • exportType: Choix entre sw_profile et config
  • mode: Choix entre order et line_items
  • profileName: Profil standard ou profil créé par l'utilisateur
  • limit: Limite des commandes à exporter (Valeur standard: 100)

📬 Support

Pour toute question, suggestion d'amélioration ou personnalisation, veuillez nous contacter par e-mail à support@cnk-plugins.de.