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.

🔧 Installation¶
- Prérequis (Plugin CNK Foundation)
- Installation via Store ou ZIP
- Activation & Visibilité dans le Backend

🕒 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:
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):
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.

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.

🗂️ 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¶
- Ouvrez un profil sous Commandes > Export CSV > Profils et allez à l'onglet Configuration.
- 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 ».
- 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:
- Assurez-vous que l'In-App Purchase « Formats Pro & Modèles ERP » est actif.
- Sélectionnez le système souhaité sous Modèle ERP dans le profil et cliquez sur « Appliquer le modèle ».
- 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¶
- Ouvrez un profil et allez à l'onglet Configuration.
- Activez le commutateur « Export Delta/Incrémentiel ». Si l'achat n'est pas encore actif, un message s'affiche avec le bouton « Activer ».
- 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:
- Ouvrez le profil dans l'onglet Configuration.
- Cliquez sur « Réinitialiser » dans le message Delta et enregistrez le profil.
- 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

- Sélection d'un profil dans la liste déroulante

🔁 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.

📊 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é

-
Le résultat ressemble à ceci

🖥️ 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:
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.