Référence du format de fichier

Les fichiers d'import sont définis par des colonnes spécifiques, en fonction de leur type de fichier (sauf si un Mapping est appliqué).

Lors de l'import, les fichiers sont interprétés comme :

  • lignes - les objets à importer (documents, médias, etc.) et
  • colonnes - les caractéristiques des objets (code_document, nom_document, etc.).

👍

Vous pouvez télécharger un modèle de fichier d'import généré automatiquement à partir d'un profil d'import.

Délimiteurs et Séparateurs

  • Délimiteurs - Les attributs de texte doivent être placés entre guillemets. Si un attribut contient lui-même des guillemets, ils doivent être doublés afin qu'ils ne soient pas considérés comme le début ou la fin de l'attribut.

    Exemple : "Type de chaussures : ""Sneakers"""

  • Séparateurs - Un seul caractère qui indique une séparation entre les valeurs (vos colonnes). Si un une valeur colonne contient un délimiteur, il doit être placé entre guillemets. Les délimiteurs typiques sont :

    • lignes- Utilisées pour indiquer des lignes individuelles. Valeurs possibles : le caractère de saut de ligne (/n) effectué par la touche Entrée.
    • colonnes - Utilisées pour indiquer des colonnes individuelles. Valeurs possibles : virgule, point-virgule, tabulation. Note : si un attribut a plusieurs valeurs, vous devez utiliser le caractère barre verticale ( | ) entre les valeurs (au lieu d'une virgule).
    .

Fichiers d'import

Les sections suivantes décrivent les colonnes standard des fichiers d'import de Quable PIM.

Classifications

🚧

  • Les classifications doivent être importées par ordre hiérarchique, de haut en bas.
  • Une ligne doit toujours avoir un code_parent qui a déjà été créé dans le fichier ou qui existait déjà avant l'import.

Les modèles générés à partir d'un profil d'import avec le type de données = Classifications auront toujours les colonnes suivantes :

Nom de la colonneDescriptionObligatoire
classification_codeLe code unique de la classification.

Si un fichier d'import contient des doublons (2 lignes avec le même classification_code), une seule sera prise en compte.

Afin d'éviter des erreurs et des résultats inattendus, assurez-vous que votre fichier d'import ne contient pas de doublons.
Oui
classification_parent_codeLe code de la classification parente.

Pour créer une classification du niveau supérieur, le code parent doit être "root".
Oui
activeLe statut de la classification.

Valeurs possibles :

  • 0 - la classification est inactive et n'est pas disponible/visible dans les recherches, mais est présente dans le PIM.
  • 1 - la classification est active.
.
Non

Si la colonne est :

  • absente, il n'y aura aucun changement.
  • présente et que la cellule est vide, la valeur sera ignorée ou remplacée par 0 (selon les paramètres du profil d'import.
<attributs>Les attributs individuels et leurs valeurs.Non

Si la colonne est absente, il n'y aura pas de changement.

Exemple

Voici un exemple d'import avec trois classifications :

782
  • folder_6 - Une classification active de premier niveau
  • folder_7 - Une classification de premier niveau, inactive
  • folder_8 - Une classification active de second niveau dans la classification folder_products.

Documents

🚧

Les en-têtes de colonne pour les attributs de texte doivent spécifier la locale entre parenthèses à côté du code. Si la locale n'est pas présente pour une colonne qui l'exige, le fichier d'import sera rejeté.

Exemples

  • Locale unique - "toto (fr_FR)"
  • Locaux multiples - "toto (fr_FR)" ; "toto (en_GB)"

Les modèles générés à partir d'un profil d'import avec le type de données = Documents auront toujours les colonnes suivantes :

Nom de la colonneDescriptionObligatoire
document_codeLe code unique du document.

Si un fichier d'import contient des doublons (2 lignes avec le même document_code), une seule sera prise en compte.

Afin d'éviter des erreurs et des résultats inattendus, assurez-vous que votre fichier d'import ne contient pas de doublons.
Oui
classification_codeLe code du niveau dans la classification cible où le document sera situé.Non

Nouveaux documents
Si la colonne est :

  • absente - le document est créé orphelin.
  • présente et la cellule est vide - le document est créé orphelin.

Mise à jour des documents existants.
Si la colonne est :
  • absent - il n'y aura pas de changement.
  • présent et la cellule est vide - la valeur sera ignorée ou remplacée par 0 (selon les paramètres du profil d'import).
  • présent avec une valeur différente - la valeur est mise à jour.
activeLe statut du document.

Valeurs possibles :

  • 0 - le document est archivé et non disponible/visible à partir des recherches et des classifications, mais présent dans le PIM.
  • 1 - le document est actif.
Non

Si la colonne est :

  • absente - il n'y aura aucun changement.
  • présente et la cellule est vide - la valeur sera ignorée ou remplacée par 0 (selon les paramètres du profil d'import).
  • présent avec une valeur différente - la valeur est mise à jour.
attribut_set_codeLe code du jeu d'attributs à appliquer au document.Non

Si la colonne est :

  • absente - il n'y aura aucun changement.
  • présente et la cellule est vide - la valeur sera ignorée ou remplacée par 0 (selon les paramètres du profil d'import).
  • présent avec une valeur différente - la valeur est mise à jour.
<attributs>Les attributs individuels et leurs valeurs.Non

Si la colonne est absente, il n'y aura pas de changement.

Exemple

Voici un exemple d'import de deux documents avec une option de cellule vide = Remplacer.

916
  • ref_12345 - Un document actif, orphelin, sans jeu d'attributs.
  • ref_12346 - Un document actif avec le jeu d'attributs product_food dans la classification folder_products.

Variants

Les modèles générés à partir d'un profil d'import avec le type de données = Variant auront toujours les colonnes suivantes :

Nom de la colonneDescriptionObligatoire
sku_codeLe code unique du document.

Si un fichier d'import contient des doublons (2 lignes avec le même sku_code), une seule sera prise en compte.

Afin d'éviter des erreurs et des résultats inattendus, assurez-vous que votre fichier d'import ne contient pas de doublons.
Oui
document_codeCode du document auquel le variant est associée (un variant ne peut pas être rendu orphelin par un import).Oui
activeLe statut du variant.

Valeurs possibles :

  • 0 - le variant est archivé et non disponible/visible depuis les recherches et les classifications, mais présent dans le PIM.
  • 1 - le variant est actif.
Non

Si la colonne est :

  • absente - il n'y aura aucun changement.
  • présente et la cellule est vide - la valeur sera ignorée ou remplacée par 0 (selon les paramètres du profil d'import.
  • présent avec une valeur différente - la valeur est mise à jour.
<attributs>Les attributs individuels et leurs valeurs.Non

Si la colonne est absente, il n'y aura pas de changement.

Exemple

Voici un exemple d'import avec deux variants liés au document ref_12345.

782
  • sku_123 - Un variant actif.
  • sku_124 - Un variant inactif.

Médias

🚧

Quable PIM n'a pas de limite pour les formats de médias, mais nous vous recommandons de ne pas utiliser de grands formats. Si vous le faites, leur poids ne doit pas dépasser 200 Mo.

Les modèles générés à partir d'un profil d'import avec le type de données = Médias auront toujours les colonnes suivantes :

Nom de la colonneDescriptionObligatoire
media_classification_codeLe code de la classification du support dans lequel votre média sera situé.

Si aucune valeur n'est présente, le média sera classé dans la classification DAM, niveau 0. Note : les médias classés au niveau 0 ne sont pas visibles.
Non

Si la colonne est :

  • absente - le média est créé comme actif (nouveau média) et il n'y a pas de changement (variant existant).
  • présente et la cellule est vide - la valeur sera ignorée ou remplacée par DAM (selon les paramètres du profil d'import.
  • présent avec une valeur différente - la valeur est mise à jour.
media_codeLe code du média.

Si un fichier d'import contient des doublons (2 lignes avec le même media_code), une seule sera prise en compte.

Afin d'éviter des erreurs et des résultats inattendus, assurez-vous que votre fichier d'import ne contient pas de doublons.
Oui
urlL'URL du média.

Une fois qu'un média a été téléchargé, il n'est plus obligatoire de spécifier l'URL dans le fichier d'import.
  • Oui (nouveaux médias)
  • Non (médias existants)
externalIndique si le média est stocké en dehors du DAM Quable PIM (le PIM ne fait alors qu'y accéder en consultation).

Valeurs possibles :

- 0 (non)
- 1 (oui)
Non
<attributs>Les attributs individuels et leurs valeurs.Non

Si la colonne est absente, il n'y aura pas de changement.

Exemple

Voici un exemple d'import avec trois médias.

1206
  • media_12345 - Un média à télécharger vers le PIM dans la classification folder_assets.
  • media_12346 - Un média dans la classification folder_assets (pas de téléchargement).
  • media_12347 - Un média existant avec l'option cellule vide = Ignorer. L'URL et la classification ne seront pas modifiées.

Processus téléchargement des medias

Le processus de téléchargement des médias repose sur un ensemble de règles et de mécanismes permettant de garantir à la fois l’efficacité et la conformité aux bonnes pratiques. Voici les détails du fonctionnement.

Import et validation des URLs

Lors de l'import de medias, chaque URL fait l’objet d’une vérification préliminaire pour en valider l’existence. Cette validation est réalisée grâce à une requête HTTP HEAD sur chaque URL. Cette requête permet de confirmer que le fichier existe sur le serveur distant sans télécharger son contenu.

Cette requête HEAD doit retourner une réponse avec un code HTTP 200 dans un délai maximum de 5 secondes afin d'être considérée comme valide.

Les URLs non valides (délai dépassé, réponse HTTP d’erreur, etc.) sont identifiées et exclues du processus de téléchargement. Le rapport généré à la fin de l'import indique le statut de chaque URL (valide ou non valide).

Téléchargement Asynchrone des Médias

Les URLs validées sont ensuite mises en file d’attente pour téléchargement. Ce processus est géré de manière entièrement asynchrone. Les téléchargements sont effectués via des requêtes HTTP GET et respectent les principes suivants :

  • Les serveurs distants doivent être capables de répondre en moins de 5 secondes pour éviter les interruptions
  • Un nombre limité de connexions simultanées est maintenu pour préserver les ressources système et éviter toute surcharge
  • Chaque fichier téléchargé est stocké dans le système et passe immédiatement par un processus de génération de miniatures (thumbnails). Ce traitement est également asynchrone
  • Les volumétries doivent respecter les limites indiquées dans la section Fair use

Thumbnails médias hebergés sur des serveurs externes

Quable PIM ne génère les thumbnails que pour les medias qui sont hébergés sur les serveurs de Quable. Pour le cas ou les medias seraient hebergés sur des serveurs externes (sur un cdn par exemple), ils est alors nécessaire de fournir l'url des thumbnails.
Pour cela, le document type Asset doit avoir un attribut type text avec le code thumbnail_external_url
Il existe ensuite deux possibilités de créer les assets et de leur assigner un thumbnail :

  • via l'import
  • via l'api v4:
--location '<http://quable.docker/api_1.php/assets'>  
--data '{  
    "code": "media_code",  
    "name": "media name",  
    "active": true,  
    "classification_code": "classification_code",  
    "media_url": "url_media",  
    "external": true,  
    "thumbnail_external_url": "url_thumbnail"  
}'

Liaisons

🚧

Nous recommandons de créer des profils d'imports individuels pour chaque type de liaison et d'utiliser un fichier d'import pour chaque type.

Les modèles générés à partir d'un profil d'import avec le type de données = Liaisons auront toujours les colonnes suivantes :

Nom de la colonneDescriptionObligatoire
source_codeLe code de l'objet parent.Oui
target_codeLe code de l'objet enfant.Oui
<attributs>Les attributs individuels et leurs valeurs.Non

Si la colonne est absente, il n'y aura pas de changement.

Exemple

Voici un exemple d'import avec deux liaisons utilisant un profil d'import de liaison media-document.

  • media_12345 - Un média à lier au document ref_12345.
  • media_12346 - Un média à lier au document ref_12346.

Liste des valeurs

🚧

Pour importer des valeurs pour les attributs Liste de sélection à choix unique ou Liste de sélection à choix multiple, vous devez faire référence au code de l'attribut, au code de la valeur et aux traductions des valeurs à importer.

🚧

Les codes des valeurs prédéfinies ne doivent pas excéder 150 caractères.

Les modèles générés à partir d'un profil d'import avec le type de données = Liste de valeurs n'auront toujours que les colonnes suivantes :

Nom de la colonneDescriptionObligatoire
attribute_codeLe code de l'attribut (type liste uniquement) auquel sera associé le value_code.Oui
value_codeLe code unique de la valeur.Oui
value_label (xx_XX)Le label d'interface du value_code importé. Cette valeur peut être importée dans toutes vos langues de données.Non (mais fortement recommandé)

Exemple

Voici un exemple d'import d'une liste avec deux valeurs prédéfinies (et traductions), et une valeur supplémentaire pour une liste existante.

1092

Retrouver la vidéo tutorielle Quick Look :

  • season_summer - Une entrée dans la liste season avec des traductions en français et en anglais pour été.
  • season_winter - Une entrée dans la liste season avec des traductions en français et en anglais pour hiver.
  • size_m - Une entrée supplémentaire dans la liste existante size.

Colonnes d'attributs

Vous pouvez importer des valeurs pour les attributs de vos classifications, documents, variants, médias et liaisons,

Les modèles générés à partir d'un profil d'import comprennent également une colonne par attribut, désignée par leur code. Ces colonnes ne sont pas obligatoires pour l'import d'objets.

Chaque type d'attribut doit respecter les règles suivantes :

Type d'attributDescriptionExemple
Texte
  • Texte simple
  • Texte multiligne
  • Texte HTML
Les attributs de texte peuvent être importés avec des traductions par colonnes individuelles par langue de données et en spécifiant le code ISO pour la langue.

Note
Les types d'attributs suivants ne doivent pas inclure un code ISO car ils ne sont pas traduisibles:

  • Texte simple non traduisible
  • Raw
250
Nombres
  • Integer
  • Decimal
Les attributs des nombres doivent utiliser le format utilisé pour les nombres dans le fichier d'import.

Formats possibles :
  • 00.00 (par défaut)
  • 00,00
100
DateLes attributs de date doivent être dans le format utilisé pour les dates dans le fichier d'import.

Formats possibles :
  • aaaa/mm/jj
  • jj/mm/aaaa (par défaut)
100
HeureLes attributs de l'heure doivent être dans le format utilisé pour l'heure dans le fichier d'import.

Formats possibles :
  • hh:mm:ss
100
Oui / NonLes attributs qui nécessitent une seule valeur parmi deux options doivent être au format booléen.

Formats possibles :
  • vrai / faux
  • oui / non
100
Liste de valeurs
  • Liste de valeurs prédéfinie unique
  • Liste de valeurs prédéfinie multiple
Les attributs des listes de valeurs doivent avoir le format suivant :

  • En-tête de colonne - le code de l'attribut
  • colonne - les codes des valeurs prédéfinies à appliquer

Vous pouvez avoir plusieurs codes de valeur, séparés par un caractère pipe ( | ).
100

🚧

Gestion de l'année 1900 avec Excel

L'année 1900 est très mal gérée par Excel, aussi nous vous conseillons d'utiliser 1970 si vous avez besoin d'initialiser des dates dans le passé.