Structure du JSON
Les champs de l’export JSON, produit par produit.
L’export JSON contient un seul objet, avec la liste des produits dans products. Chaque produit porte ses catégories, images, attributs et variations, ainsi que la réponse d’origine de la boutique. Un champ que la boutique ne publie pas est absent de l’objet.
{
"products": [
{
"sourceId": "412",
"slug": "t-shirt-coton",
"name": "T-shirt coton",
"productType": "variable",
"sku": "TSHIRT",
"permalink": "https://boutique.example/produit/t-shirt-coton/",
"price": 19.9,
"regularPrice": 25,
"currency": "EUR",
"inStock": true,
"shipping": { "weight": 0.2 },
"categories": [
{ "sourceId": "15", "name": "Hauts", "slug": "hauts" }
],
"tags": ["coton"],
"images": [
{ "sourceUrl": "https://boutique.example/wp-content/uploads/tshirt.jpg", "alt": "T-shirt coton", "position": 1 }
],
"attributes": [
{
"name": "Taille",
"global": true,
"visible": true,
"variation": true,
"values": [{ "name": "S", "slug": "s" }, { "name": "M", "slug": "m" }]
}
],
"variants": [
{
"sourceId": "413",
"sku": "TSHIRT-S",
"price": 19.9,
"regularPrice": 25,
"inStock": true,
"stockQuantity": 12,
"attributes": { "Taille": "S" },
"raw": { "…": "…" }
}
],
"raw": { "…": "…" }
}
]
}Produit
| Champ | Type | Contenu |
|---|---|---|
sourceId | texte | Identifiant du produit dans la boutique source |
slug | texte | Identifiant d’URL du produit |
name | texte | Nom du produit |
description | texte | Description complète, en HTML nettoyé |
shortDescription | texte | Description courte, en HTML nettoyé |
productType | texte | Type WooCommerce : simple, variable, grouped… |
sku | texte | Référence publiée par la boutique |
permalink | texte | Lien public de la fiche produit |
price | nombre | Prix courant |
regularPrice | nombre | Prix normal, avant promotion |
currency | texte | Code de devise, par exemple EUR |
inStock | booléen | En stock ou épuisé |
stockQuantity | nombre | Quantité publiée |
shipping | objet | weight, length, width, height, dans les unités de la boutique source |
categories | liste | Catégories du produit |
tags | liste | Étiquettes, sous forme de texte |
images | liste | Images de la galerie, dans leur ordre |
attributes | liste | Attributs et leurs valeurs |
variants | liste | Variations du produit |
raw | objet | Réponse d’origine de la boutique pour ce produit |
Les prix sont des nombres décimaux dans la devise de la boutique, déjà convertis depuis les centimes : 19.9 correspond à 19,90 €.
Catégorie
| Champ | Contenu |
|---|---|
sourceId | Identifiant de la catégorie |
parentSourceId | Identifiant de la catégorie parente, lorsque la boutique le publie |
name | Nom de la catégorie |
slug | Identifiant d’URL |
productCount | Nombre de produits annoncé par la boutique |
permalink | Lien public de la catégorie |
Image
| Champ | Contenu |
|---|---|
sourceUrl | URL publique du fichier |
alt | Texte alternatif |
position | Position dans la galerie, à partir de 1 |
width, height | Dimensions déclarées, en pixels |
provenance | Page source et identifiant du média, lorsque disponibles |
Attribut
| Champ | Contenu |
|---|---|
name | Nom de l’attribut, par exemple Taille |
global | true pour un attribut partagé par toute la boutique source |
visible | Affiché sur la fiche produit |
variation | Utilisé pour définir les variations |
values | Valeurs possibles, chacune avec name et slug |
Variation
| Champ | Contenu |
|---|---|
sourceId | Identifiant de la variation |
sku | Référence de la variation |
title | Nom de la variation |
price, regularPrice, currency | Prix courant, prix normal et devise |
inStock, stockQuantity | Disponibilité et quantité publiée |
shipping | Poids et dimensions propres à la variation |
attributes | Combinaison de la variation, par exemple { "Taille": "S" } |
image | Image propre à la variation, au même format qu’une image produit |
raw | Réponse d’origine de la boutique pour cette variation |
Lorsqu’une variation ne déclare pas son poids ou ses dimensions, reprenez ceux du produit, comme le fait WooCommerce.
Le champ raw
raw contient la réponse de la boutique telle qu’elle a été reçue. Il garde des champs que les autres formats n’utilisent pas, utiles pour une intégration sur mesure. C’est aussi ce qui rend le JSON plus volumineux que les CSV.
Lire un gros fichier
Pour un catalogue de plusieurs milliers de produits, lisez le fichier avec un parseur JSON en flux plutôt que de le charger d’un bloc dans un éditeur.