---
title: "Préparer les commandes d'une boutique en ligne pour un dashboard des ventes"
description: "Découvrez comment charger deux ans de commandes d'une boutique en ligne dans le Lakehouse, les concaténer et les nettoyer avec une action Custom"
url: https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/tutorials-ecommerce-sales
lang: fr
lastUpdated: 2026-10-05
---
> For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt.

# Préparer les commandes d'une boutique en ligne pour un dashboard des ventes

## Objectif

Ce guide vous explique comment charger deux ans de commandes d'une boutique en ligne (environ 1 million de lignes de commande) dans le Lakehouse, les concaténer dans une seule table et les nettoyer avec une action Custom. Vous chargez les fichiers avec [Connectors](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/connectors-sources-upload-files.md), créez les tables dans le [Lakehouse Manager](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/lakehouse-manager-tables.md), puis concaténez et nettoyez les commandes avec le [Data Processing Engine](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/dpe-actions-load.md).

À la fin, vous disposerez de la table `online_retail_ii_clean`, prête à être interrogée depuis Apache Superset. La deuxième partie du guide, « [Construire un dashboard des ventes d'une boutique en ligne dans Superset](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/tutorials-ecommerce-sales-superset-dashboard.md) », la transforme en dashboard des ventes.

## Prérequis

Pour suivre ce guide, vous devez :

- Disposer d'un projet Data Platform. Ce guide utilise un projet nommé `ecommerce-sales`.
- Disposer des commandes de la boutique et du script de nettoyage de l'action Custom :

| Type                                        | Nom                                                                                                                                                       |
| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Commandes, de décembre 2009 à décembre 2011 | [Online Retail II](https://archive.ics.uci.edu/dataset/502/online+retail+ii), UCI Machine Learning Repository                                             |
| Script Python de nettoyage                  | <a href="/images/public-cloud/data-platform/getting-further/ecommerce-sales/resources/online_retail_cleaning.py" download>online\_retail\_cleaning.py</a> |

L'UCI publie les commandes dans un seul classeur Excel, `online_retail_II.xlsx`, avec une feuille par année. Avant l'étape 1, enregistrez chaque feuille dans son propre fichier :

| Feuille          | Fichier à créer                |
| ---------------- | ------------------------------ |
| `Year 2009-2010` | `online_retail_II_200910.xlsx` |
| `Year 2010-2011` | `online_retail_II_201011.xlsx` |

:::info
**À propos des données :** [Online Retail II](https://archive.ics.uci.edu/dataset/502/online+retail+ii), UCI Machine Learning Repository, est sous licence CC BY 4.0 (DOI 10.24432/C5CG6D).
:::

Avant de commencer, nous vous recommandons de suivre les [guides de démarrage](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/landing-page-getting-started.md). Ce guide suppose que vous êtes à l'aise avec les principaux composants de la Data Platform.

## Ce que vous allez construire

Les deux parties de ce guide aboutissent à ce dashboard dans Superset :

![Le dashboard Online store sales terminé dans Superset, avec la ligne des chiffres clés et l'onglet Customers ouvert](/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/superset-dashboard.png)
| Étape                     | Composant                                                                                                                                                                                                                                | Résultat                                                           |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| 1. Charger les fichiers   | [Source File Upload](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/connectors-sources-upload-files.md)                                                                                                                  | Une source qui contient les deux fichiers                          |
| 2. Analyser les fichiers  | [Analyzer](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/landing-page-connectors-analyzer.md)                                                                                                                           | Les attributs et les types détectés                                |
| 3. Créer les tables       | [Tables du Lakehouse Manager](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/lakehouse-manager-tables.md)                                                                                                                | Une table par année, une table pour toutes les commandes           |
| 4. Concaténer les années  | [Actions Load](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/dpe-actions-load.md) et un [workflow](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/dpe-workflows.md)                                     | 1 067 371 lignes de commande dans `online_retail_ii`               |
| 5. Nettoyer les commandes | [Action Custom](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/dpe-actions-custom.md)                                                                                                                                    | 1 021 128 lignes de commande propres dans `online_retail_ii_clean` |
| 6. Connecter Superset     | [Consumer Trino](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/connectors-consumers-trino.md) et [Apache Superset](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/tutorials-install-apache-superset.md) | Un dataset Superset sur la table propre                            |

## En pratique

### Étape 1 : charger les fichiers

1. Ouvrez **Connectors** > **Sources** et créez une nouvelle source de type _File Upload_.
2. Nommez-la `online_retail_ii`.
3. Déposez `online_retail_II_200910.xlsx` et `online_retail_II_201011.xlsx` dans la zone _Files_.
4. Cliquez sur **Create**.

![La source File Upload nommée online_retail_ii avec les deux fichiers Excel annuels ajoutés](/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/connectors-file-upload.png)
### Étape 2 : analyser les fichiers

1. Ouvrez **Connectors** > **Analyzer**.
2. Sélectionnez la source `online_retail_ii`, puis le fichier `online_retail_II_200910.xlsx`.
3. Cliquez sur **Extract metadata**.
4. Faites de même pour `online_retail_II_201011.xlsx`.

L'[Analyzer](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/connectors-analyzer-extract-metadata.md) détecte 8 attributs : `invoice`, `stockcode`, `description`, `quantity`, `invoicedate`, `price`, `customer_id` et `country`. Vérifiez que `invoice` et `stockcode` sont détectés comme **String** : les numéros de facture comme `C489449` et les codes produit comme `85123A` ne sont pas des nombres.

![L'Analyzer qui affiche les attributs détectés dans online_retail_II_200910.xlsx](/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/connectors-analyzer.png)
### Étape 3 : créer les tables

#### Créer une table par année

1. Ouvrez **Lakehouse Manager** > **Tables**.

2. Cliquez sur **New table** > **Create from a Connectors source**.

   <img className="thumbnail" alt="Le menu New table du Lakehouse Manager avec l'option Create from a Connectors source" src="/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/lakehouse-new-table.png" loading="lazy" />

3. Sélectionnez le fichier `online_retail_II_200910.xlsx` de la source `online_retail_ii`, puis cliquez sur **Next**.

   <img className="thumbnail" alt="La sélection du fichier online_retail_II_200910.xlsx de la source online_retail_ii" src="/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/lakehouse-create-table-from-connector.png" loading="lazy" />

4. Gardez les paramètres par défaut et cliquez sur **Create**. La table est nommée `online_retail_ii_200910`, dans le dataset `default_dataset`.

   <img className="thumbnail" alt="Les paramètres par défaut de la table, avec le nom online_retail_ii_200910 et les trois options automatiques activées" src="/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/lakehouse-create-table-settings.png" loading="lazy" />

5. Recommencez avec `online_retail_II_201011.xlsx`. La table est nommée `online_retail_ii_201011`.

Les deux tables apparaissent avec 8 attributs et environ 525 k et 542 k lignes.

![Les deux tables annuelles listées dans le Lakehouse Manager avec leur nombre de lignes](/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/lakehouse-yearly-tables.png)
#### Créer la table de toutes les commandes

1. [Dupliquez](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/lakehouse-manager-manage-tables.md#dupliquer) la table `online_retail_ii_200910`. Survolez sa ligne et cliquez sur l'icône **Duplicate**.

   <img className="thumbnail" alt="L'icône Duplicate sur la ligne de la table online_retail_ii_200910 dans le Lakehouse Manager" src="/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/lakehouse-duplicate-table.png" loading="lazy" />

2. Nommez la nouvelle table `online_retail_ii`, dans le dataset `default_dataset`, et cliquez sur **Create**.

3. [Construisez](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/lakehouse-manager-manage-tables.md#construire-la-table) la table.

La table a les mêmes 8 attributs, et aucune ligne pour l'instant.

![La boîte de dialogue Create new empty table avec le nom online_retail_ii et le dataset default_dataset](/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/lakehouse-empty-table.png)
### Étape 4 : concaténer les deux années

#### Créer les actions Load

1. Ouvrez **Data Processing Engine** > **Actions** et cliquez sur **New action**.

2. Recherchez `load`, sélectionnez l'action _Load_ et cliquez sur **Select**.

   <img className="thumbnail" alt="L'action Load sélectionnée dans la liste des types d'action" src="/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/dpe-load-action.png" loading="lazy" />

3. Renseignez l'action :

   | Paramètre    | Valeur                                                                 |
   | ------------ | ---------------------------------------------------------------------- |
   | Source table | `online_retail_II_200910.xlsx` de `online_retail_ii`                   |
   | Destination  | `online_retail_ii` de `default_dataset`                                |
   | Attributes   | chaque attribut source mappé sur l'attribut de destination du même nom |

4. Cliquez sur **Create**.

   <img className="thumbnail" alt="Les paramètres de l'action Load qui mappent online_retail_II_200910.xlsx sur la table online_retail_ii" src="/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/dpe-load-action-settings.png" loading="lazy" />

5. Créez une deuxième action _Load_, avec `online_retail_II_201011.xlsx` comme source et la même destination.

La liste des actions affiche vos deux actions _Load_, à côté des deux actions générées automatiquement à la création des tables annuelles.

![La liste des actions avec les deux nouvelles actions Load et les deux actions générées](/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/dpe-actions.png)
#### Exécuter les deux actions avec un workflow

1. Dans **Data Processing Engine** > **Workflows**, cliquez sur **New workflow**.
2. Nommez-le `Concat`.
3. Dans _Stage 1_, ajoutez vos deux actions _Load_.
4. Cliquez sur **Create**, puis exécutez le workflow.

![Le workflow Concat avec les deux actions Load dans Stage 1, après une exécution réussie](/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/dpe-workflow.png)
Le workflow prend quelques minutes. Quand son statut passe au vert, ouvrez **Lakehouse Manager** > **Tables** : `online_retail_ii` contient les lignes des deux tables annuelles, soit **1 067 371 lignes**.

:::warning
N'exécutez le workflow `Concat` qu'une seule fois. Une nouvelle exécution peut ajouter une seconde fois les mêmes lignes de commande. Après chaque exécution, vérifiez que `online_retail_ii` contient 1 067 371 lignes.

Pour relancer le workflow, vous pouvez créer une [action Delete](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/dpe-actions-delete.md) qui vide `online_retail_ii`, et l'exécuter avant le workflow.
:::

### Étape 5 : nettoyer les commandes

#### Créer la table propre

1. Dans **Lakehouse Manager** > **Tables**, dupliquez `online_retail_ii`.
2. Nommez la nouvelle table `online_retail_ii_clean` et construisez-la.

Vous avez maintenant 4 tables. `online_retail_ii_clean` a les mêmes 8 attributs et aucune ligne pour l'instant.

![Les quatre tables du guide listées dans le Lakehouse Manager](/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/lakehouse-all-tables.png)
#### Créer l'action de nettoyage

1. Dans **Data Processing Engine** > **Actions**, cliquez sur **New action**.

2. Recherchez `custom`, sélectionnez l'action _Custom_ et cliquez sur **Select**.

   <img className="thumbnail" alt="L'action Custom sélectionnée dans la liste des types d'action" src="/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/dpe-custom-action.png" loading="lazy" />

3. Renseignez l'action :

   | Paramètre            | Valeur                              |
   | -------------------- | ----------------------------------- |
   | Action name          | `online_retail_cleaning`            |
   | Function name        | `online_retail_cleaning`            |
   | Development language | `Python 3.11`                       |
   | Python requirements  | `pandas`                            |
   | File                 | chargez `online_retail_cleaning.py` |

4. Cliquez sur **Create**, puis exécutez l'action.

![L'action Custom online_retail_cleaning avec son nom de fonction, son langage, ses dépendances et le fichier chargé](/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/dpe-cleaning-action.png)
:::info
**Remarque :** le nom de fonction est le point d'entrée du script et doit être `online_retail_cleaning`. Les autres fonctions du fichier sont des fonctions utilitaires : en choisir une comme nom de fonction renvoie `'Event' object is not subscriptable`.
:::

L'action lit `online_retail_ii`, applique les règles de nettoyage et écrit le résultat dans `online_retail_ii_clean`. Ouvrez ses logs : chaque règle indique le nombre de lignes concernées, et la dernière ligne donne le nombre de lignes écrites dans `online_retail_ii_clean` : **1 021 128 lignes**.

Les règles apparaissent dans les logs sous leur nom anglais :

| Règle                     | Une ligne est supprimée quand                                      |
| ------------------------- | ------------------------------------------------------------------ |
| 1. Exact duplicates       | elle est identique à une autre ligne sur les 8 colonnes            |
| 2. Invalid invoice number | la facture ne compte pas 6 chiffres, précédés ou non d'un `C`      |
| 3. Invalid stock code     | le code produit ne compte pas 5 chiffres, suivis ou non de lettres |
| 4. Missing description    | la description est vide                                            |
| 5. Inconsistent quantity  | une vente n'est pas positive, ou une annulation n'est pas négative |
| 6. Zero or negative price | le prix n'est pas strictement positif                              |
| 7. Missing invoice date   | la date est vide                                                   |

Une dernière étape, **8. Harmonized descriptions**, attribue à chaque code produit sa description la plus fréquente, pour qu'un produit n'apparaisse jamais sous deux noms.

#### Créer une action pour vider la table propre

L'action de nettoyage ajoute des lignes à `online_retail_ii_clean`. Avant de la relancer, videz la table avec une [action Delete](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/dpe-actions-delete.md), comme pour `online_retail_ii` avant de relancer le workflow `Concat`.

1. Cliquez sur **New action**, recherchez `delete`, sélectionnez l'action _Delete_ et cliquez sur **Select**.
2. Dans _Table list_, déplacez `online_retail_ii_clean` vers _Table to empty_.
3. Cliquez sur **Create**.

![L'action Delete avec online_retail_ii_clean dans la liste Table to empty](/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/dpe-delete-action.png)
Pour nettoyer à nouveau les données, exécutez d'abord cette action _Delete_, puis `online_retail_cleaning`.

### Étape 6 : connecter Superset

Toutes les données sont maintenant prêtes dans le Lakehouse. Pour les analyser, créez une application Apache Superset :

1. Créez une connexion Trino en suivant le guide « [Générer une chaîne de connexion Trino pour des outils externes](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/connectors-consumers-trino.md) ».
2. Créez l'application et connectez-la à Trino en suivant les étapes 1 à 3 du guide « [Déployer Apache Superset sur la Data Platform OVHcloud](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/tutorials-install-apache-superset.md) ».

#### Créer le dataset dans Superset

1. Dans Superset, ouvrez **Datasets** et cliquez sur **+ Dataset**.
2. Sélectionnez la connexion de base de données que vous avez créée, nommée `Trino DP` dans ce guide, puis le schéma `default_dataset` et la table `online_retail_ii_clean`.
3. Vérifiez les colonnes, puis cliquez sur **Create and explore dataset**.

![Le formulaire de dataset Superset avec la base de données, le schéma default_dataset et la table online_retail_ii_clean sélectionnés](/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/superset-dataset-selection.png)
Chaque graphique du dashboard part ensuite de **Charts** > **+ Chart** : choisissez le dataset `online_retail_ii_clean`, puis le type de graphique.

![L'écran de création de graphique de Superset avec le dataset online_retail_ii_clean sélectionné](/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/superset-charts.png)
Continuez avec « [Construire un dashboard des ventes d'une boutique en ligne dans Superset](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/tutorials-ecommerce-sales-superset-dashboard.md) ».

## Bon à savoir

- **Vous pouvez connecter une vraie boutique.** Ce guide utilise un jeu de données public, chargé sous forme de fichiers. Pour analyser les commandes de votre propre boutique, créez une source [Shopify](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/connectors-sources-shopify.md) ou [Stripe](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/connectors-sources-stripe.md) à la place de la source File Upload : dans **Connectors** > **Sources**, les deux apparaissent dans la fenêtre _New source_. Les tables suivent alors les attributs de cette source, et le script de nettoyage doit être adapté à ces attributs.

![La fenêtre New source avec les connecteurs Stripe et Shopify](/images/public-cloud/data-platform/getting-further/ecommerce-sales/picts/connectors-new-source-shopify-stripe.png)
## Ce que vous avez construit

Vous disposez d'une table brute qui contient chaque ligne de commande de la boutique, d'une table propre qui respecte la description du jeu de données, et d'un dataset Superset construit dessus.

La partie suivante, « [Construire un dashboard des ventes d'une boutique en ligne dans Superset](https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/tutorials-ecommerce-sales-superset-dashboard.md) », transforme la table propre en dashboard : chiffres clés, chiffre d'affaires dans le temps, produits les plus vendus, ventes par pays et fidélité des clients.

## Aller plus loin

Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page [Professional Services](https://www.ovhcloud.com/fr/professional-services/) pour obtenir un devis et faire analyser votre projet par nos experts.

Posez vos questions, faites-nous part de vos commentaires et interagissez directement avec l’équipe qui développe la Data Platform sur le [canal Discord](https://discord.gg/ovhcloud) dédié.

Si vous avez besoin d'une assistance concernant vos services OVHcloud, créez une demande depuis notre [centre d'aide](https://help.ovhcloud.com/csm?id=csm_get_help).

Rejoignez notre [communauté d'utilisateurs](https://community.ovhcloud.com/).
