> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qwoty.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Importer les relations entre objets

> Importez les relations entre produits, masters, prix, catalogues et grilles tarifaires via CSV.

## Vue d'ensemble

Qwoty prend en charge l'importation de relations entre objets lors de l'import CSV. Cela vous permet de lier des enregistrements (par exemple, associer des produits à un master, ou associer des prix à une grille tarifaire) dans le cadre de votre migration de données.

**Relations prises en charge pour l'import :**

* **Produit → Produit master** (parent/enfant)
* **Produit → Catalogue** (un produit associé à un ou plusieurs catalogues)
* **Produit → Catégorie** (un produit associé à une ou plusieurs catégories)
* **Prix → Produit** (chaque prix cible un produit)
* **Prix → Grille tarifaire** (chaque prix appartient à une grille tarifaire)

## Fonctionnement des relations dans Qwoty

### Relations un-à-plusieurs

Le modèle de catalogue de Qwoty utilise des relations standard un-à-plusieurs :

* **Un produit master → Plusieurs produits (variantes)** — un master regroupe plusieurs variantes
* **Une grille tarifaire → Plusieurs prix** — une grille tarifaire est le conteneur des prix pour l'ensemble des produits
* **Un catalogue → Plusieurs produits** — un catalogue définit les produits commercialisables sur un marché ou un segment

### Relations plusieurs-à-plusieurs

Certaines relations sont plusieurs-à-plusieurs — elles utilisent des listes séparées par des virgules dans une seule cellule CSV, la cellule étant entourée de guillemets doubles :

| Relation             | Colonne CSV          | Exemple                    |
| -------------------- | -------------------- | -------------------------- |
| Produit ↔ Catalogues | `catalog_api_names`  | `"france,partner_pricing"` |
| Produit ↔ Catégories | `category_api_names` | `"hardware,accessories"`   |

## Lier des enregistrements lors de l'import

### Étape 1 : Identifier les côtés "un" et "plusieurs"

Pour chaque relation, déterminez quel côté est le parent ("un") et lequel est l'enfant ("plusieurs") :

| Relation                | Côté "un"        | Côté "plusieurs"   |
| ----------------------- | ---------------- | ------------------ |
| Master / Variante       | Produit master   | Produit (variante) |
| Grille tarifaire / Prix | Grille tarifaire | Prix               |
| Catalogue / Produit     | Catalogue        | Produit            |
| Produit / Prix          | Produit          | Prix               |

### Étape 2 : S'assurer que les enregistrements du côté "un" existent

Avant d'importer le côté "plusieurs", les enregistrements du côté "un" doivent déjà exister dans Qwoty.

* Créez vos **Catalogues**, **Catégories** et **Grilles tarifaires** via l'interface en premier
* Importez les **Produits masters** avant d'importer leurs variantes
* Importez les **Produits** avant d'importer leurs prix

L'import échouera si une ligne fait référence à un enregistrement qui n'existe pas.

### Étape 3 : Préparer votre fichier CSV

Ajoutez une colonne dans votre fichier CSV du côté "plusieurs" qui référence le côté "un" à l'aide d'un identifiant unique :

| Liaison                 | Colonne à renseigner                                          | Format accepté                                                     |
| ----------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------ |
| Produit → Master        | `parent_product_api_name` (recommandé) ou `product_parent_id` | Nom d'API (texte) ou UUID                                          |
| Produit → Catalogue(s)  | `catalog_api_names`                                           | Noms d'API séparés par des virgules, entre guillemets si plusieurs |
| Produit → Catégorie(s)  | `category_api_names`                                          | Noms d'API séparés par des virgules, entre guillemets si plusieurs |
| Prix → Produit          | `product_id`                                                  | UUID                                                               |
| Prix → Grille tarifaire | `pricebook_id`                                                | UUID ou nom de la grille tarifaire                                 |

<Warning>
  La valeur de référence doit **correspondre exactement** au champ unique de l'enregistrement parent. Pour les noms d'API, cela signifie la même casse, sans espaces supplémentaires, sans caractères en trop. Vérifiez le nom d'API du parent dans **Paramètres → Données → Modèle de données** ou dans la vue liste de l'objet parent.
</Warning>

### Étape 4 : Vérifier que le champ de relation est correctement renseigné

Avant de télécharger votre fichier, vérifiez que :

* Les enregistrements parents ont les noms d'API ou les UUIDs que vous référencez
* Les colonnes `*_api_names` utilisent des virgules (et non des points-virgules) à l'intérieur de la cellule, avec des guillemets doubles autour des cellules à valeurs multiples
* La colonne `parent_product_api_name` correspond exactement, octet par octet, au nom d'API de votre master

### Étape 5 : Télécharger et mapper la relation

1. Téléchargez votre fichier CSV via l'interface d'import
2. À l'étape **Mapping**, repérez votre colonne de relation (par exemple, `catalog_api_names`)
3. Mappez-la au champ Qwoty correspondant (par exemple, **Catalog API Names**)
4. Qwoty lie automatiquement chaque enregistrement au parent correspondant à l'étape **Confirmer**

## Champs uniques disponibles pour les relations

| Objet                                                  | Champs uniques disponibles pour les références                         |
| ------------------------------------------------------ | ---------------------------------------------------------------------- |
| **Produits masters**                                   | `product_id` (UUID), `product_api_name`                                |
| **Produits**                                           | `product_id` (UUID), `product_api_name`                                |
| **Catalogues**                                         | Nom d'API (défini lors de la création du catalogue)                    |
| **Catégories**                                         | Nom d'API                                                              |
| **Grilles tarifaires**                                 | UUID ou nom de la grille tarifaire                                     |
| **Clients** (lors de la migration des données clients) | `id`, champs uniques personnalisés que vous avez marqués comme uniques |

Nous recommandons d'utiliser les noms d'API (`parent_product_api_name`, `catalog_api_names`, `category_api_names`) dans la mesure du possible — ils sont lisibles par un humain, faciles à maintenir dans des tableurs, et restent valides d'un environnement à l'autre.

## Règle d'ordre d'import

<Warning>
  **Importez toujours le côté "un" en premier.**

  1. **Catalogues, Catégories, Grilles tarifaires** — doivent exister dans votre espace de travail avant tout import (créez-les via l'interface).
  2. **Produits masters** — importez-les en premier. Ce sont les parents référencés par les variantes.
  3. **Produits** — importez-les en deuxième, en référençant leurs masters.
  4. **Prix** — importez-les en dernier, en référençant à la fois les produits et les grilles tarifaires.

  L'enregistrement parent doit exister avant que vous puissiez le référencer. L'import échoue pour les lignes pointant vers des enregistrements qui n'existent pas encore.
</Warning>

## Voir aussi

<CardGroup cols={2}>
  <Card title="Contraintes d'unicité" icon="fingerprint" href="/user-guide/data-migration/reference/uniqueness-constraints">
    Quels champs sont uniques et ce que cela implique pour les relations.
  </Card>

  <Card title="Mapping des champs" icon="arrow-right-arrow-left" href="/user-guide/data-migration/reference/field-mapping">
    Exigences de format pour les colonnes de relation.
  </Card>

  <Card title="Importer les produits masters" icon="layer-group" href="/user-guide/data-migration/how-tos/import-master-products">
    Commencez toujours votre migration par ici.
  </Card>

  <Card title="Importer les prix" icon="tag" href="/user-guide/data-migration/how-tos/import-prices">
    Dernière étape — référence les produits et les grilles tarifaires.
  </Card>
</CardGroup>
