Cdiscount Taxonomy
Summary of Changes: (The purpose of this table is to keep traceability and Product team to highlight the things that were changed into the scope, based on comments or discussions)
Date | Version | Name | Applied changes |
---|---|---|---|
21.11.2022 | 1.0 | Bogomil Pavlov | Initial Version |
Get some categories
Try it
This route allows you to retrieve all the categories with a paginated result.
Default PageSize
: 25
API Call: GET https://api.octopia-io.net/seller/v2/categories[?pageIndex][&pageSize][&sort][&desc][&fields]
API Docs:https://developer.octopia-io.net/api-details#api=api-rest-seller-v2&operation=get-categories
Request parameters
Name | Required | Type | Description |
---|---|---|---|
pageIndex |
false | integer |
The index of the page (Minimum: 1) |
pageSize |
false | number |
The pageSize parameter is a positive integer that allows you to limit the number of items per page. |
sort |
false | string |
The sort parameter allows you to sort the response by the given field(s) which can be multiple and separacted by commas. |
desc |
false | string |
The desc parameter allows you to precise which fields have to be sort in descending order among the ones given in the sort parameter. |
Allowed fields :
• reference
• label
• level
• isActive
• parentReference. |
| fields
| false | string
| The fields parameter allows you to precise which category fields should be return in the result. By default, only the category reference is returned.
Allowed fields :
• reference
• label
• level
• isActive
• parentReference. |
Sample Request:
API Call: GET https://api.octopia-io.net/seller/v2/categories?pageIndex=50&pageSize=50&fields=reference,parentReference,isActive,label,level
Sample Response:
{
"pageIndex": 50,
"pageSize": 50,
"data": [
{
"reference": "0H0D0G",
"label": "POIGNEE DE PORTE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0H",
"label": "FERME-PORTE - GROOM",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0I",
"label": "POIGNEE DE FENETRE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0J",
"label": "SEUIL DE PORTE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0K",
"label": "BUTEE DE PORTE - BUTOIR - ARRET - CALE-PORTE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0F",
"label": "CLOTURE ELECTRIQUE - ACCESSOIRE CLOTURE ELECTRIQUE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0B",
"label": "CLOTURE - GRILLAGE - PANNEAU",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0C",
"label": "PIQUET - POTEAU - ACCESSOIRES CLOTURE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0D",
"label": "PORTAIL - PORTILLON",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D01",
"label": "RAMPE - MAIN COURANTE - BALUSTRADE - GARDE CORPS - SOCLE - ACCESSOIRES D'ESCALIER - BARRE D'APPUI DE FENETRE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D02",
"label": "ESCALIER COMPLET - ESCALIER ESCAMOTABLE - ECHELLE ESCAMOTABLE - TRAPPE POUR ECHELLE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D03",
"label": "FENETRE - PORTE-FENETRE - BAIE VITREE - FENETRE DE TOIT - FENETRE ABATTANT",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D05",
"label": "MARQUISE - AUVENT POUR PORTE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D06",
"label": "PORTE DE GARAGE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D07",
"label": "PORTE D'ENTREE - PORTE DE SERVICE - PORTE PALIERE - PORTE D'ENTREE A GALANDAGE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D08",
"label": "PORTE BATTANTE D'INTERIEUR - PORTE RANCH - HABILLAGE POUR PORTE - HUBLOT POUR PORTE INTERIEURE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D09",
"label": "VERANDA",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0A",
"label": "VOLET ROULANT",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0X",
"label": "VOLET BATTANT",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0Y",
"label": "VOLET DECOR - VOLET FICTIF",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0Z",
"label": "PANNEAU DE BOIS (STRATIFIE - COMPACT - CONTRECOLLE - MELAMINE)",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0U",
"label": "CHANT",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0V",
"label": "PORTE COULISSANTE D'INTERIEUR - SYSTÈME COULISSANT - RAIL - SYSTÈME A GALANDAGE - CACHE RAIL - ENSEMBLE PORTE A GALANDAGE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0W",
"label": "VERRIERE D'INTERIEUR - VERRIERE D'ATELIER",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D04",
"label": "MOTORISATION POUR VOLET",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0L",
"label": "ACCESSOIRE DE VOLET",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0M",
"label": "ACCESSOIRE POUR MOTORISATION DE VOLET",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0N",
"label": "MOTORISATION POUR FENETRE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0O",
"label": "ACCESSOIRE DE FENETRE - RACCORD FENETRE DE TOIT - BLOC ISOLANT POUR FENETRE - MANIVELLE DE FENETRE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0P",
"label": "MOTORISATION POUR PORTAIL - KIT MOTORISATION PORTAIL",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0Q",
"label": "ACCESSOIRE POUR MOTORISATION DE PORTAIL",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0R",
"label": "MOTORISATION POUR PORTE DE GARAGE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0S",
"label": "ACCESSOIRE POUR PORTE DE GARAGE - HUBLOT POUR PORTE DE GARAGE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0D0T",
"label": "ACCESSOIRE POUR MOTORISATION DE PORTE DE GARAGE",
"level": 3,
"isActive": true,
"parentReference": "0H0D"
},
{
"reference": "0H0B01",
"label": "GROS ŒUVRE (ARMATURE - FERRAILLAGE)",
"level": 3,
"isActive": true,
"parentReference": "0H0B"
},
{
"reference": "0H0B02",
"label": "GROS ŒUVRE (BRIQUE - PARPAING - BETON CELLULAIRE)",
"level": 3,
"isActive": true,
"parentReference": "0H0B"
},
{
"reference": "0H0B04",
"label": "GROS ŒUVRE (ENDUIT DE FACADE)",
"level": 3,
"isActive": true,
"parentReference": "0H0B"
},
{
"reference": "0H0B05",
"label": "GROS ŒUVRE (MURET - PILIER BETON)",
"level": 3,
"isActive": true,
"parentReference": "0H0B"
},
{
"reference": "0H0B06",
"label": "GROS ŒUVRE (POUDRES RAGREAGE - CIMENT - BETON - MORTIER - PLATRE)",
"level": 3,
"isActive": true,
"parentReference": "0H0B"
},
{
"reference": "0H0B07",
"label": "GROS ŒUVRE (SABLE - GRAVIER)",
"level": 3,
"isActive": true,
"parentReference": "0H0B"
},
{
"reference": "0H0B08",
"label": "CLOISON (CARREAU DE PLATRE - CARREAU DE BETON CELLULAIRE)",
"level": 3,
"isActive": true,
"parentReference": "0H0B"
},
{
"reference": "0H0B09",
"label": "CLOISON (CLOISON AMOVIBLE)",
"level": 3,
"isActive": true,
"parentReference": "0H0B"
},
{
"reference": "0H0B0A",
"label": "CLOISON (OSSATURE POUR CLOISON - POUR PLAQUE)",
"level": 3,
"isActive": true,
"parentReference": "0H0B"
},
{
"reference": "0H0B0B",
"label": "CLOISON (PANNEAU D'AGENCEMENT - BOIS ALVEOLAIRE)",
"level": 3,
"isActive": true,
"parentReference": "0H0B"
},
{
"reference": "0H0B0C",
"label": "CLOISON (PLAQUE DE PLATRE)",
"level": 3,
"isActive": true,
"parentReference": "0H0B"
},
{
"reference": "0H0B0D",
"label": "COUVERTURE (ACCESSOIRES COUVERTURE - TOITURE)",
"level": 3,
"isActive": true,
"parentReference": "0H0B"
},
{
"reference": "0H0B0E",
"label": "COUVERTURE (BARDAGE - CLIN)",
"level": 3,
"isActive": true,
"parentReference": "0H0B"
},
{
"reference": "0H0B0F",
"label": "COUVERTURE (BOIS DE CHARPENTE - MADRIER)",
"level": 3,
"isActive": true,
"parentReference": "0H0B"
},
{
"reference": "0H0B0G",
"label": "COUVERTURE (GOUTTIERE - ACCESSOIRES)",
"level": 3,
"isActive": true,
"parentReference": "0H0B"
},
{
"reference": "0H0B0H",
"label": "COUVERTURE (PLAQUE - BARDEAU - AUTRE COUVERTURE)",
"level": 3,
"isActive": true,
"parentReference": "0H0B"
}
],
"title": "OK",
"description": "The request has been processed successfully.",
"statusCode": 200,
"traceId": "6f589b61-81bf-4fe6-a1e7-c88304c3ebb5"
}
We will be using the category reference in Product Account > Primary Category ID which we will match against the taxonomy and if missing we should return an error other wise we continue with the product creation.
Get the properties of a category
Try it
This route allows you to retrieve the properties of a category by its the reference.
API Call: GET https://api.octopia-io.net/seller/v2/categories/{categoryReference}/properties
Request parameters:
Name | Required | Type | Description |
---|---|---|---|
categoryReference |
true | string |
The category reference is a string value and must have : |
• 2 alphanumeric characters for a level-one category • 4 alphanumeric characters for a level-two category • 6 alphanumeric characters for a level-three category Letters must be capital letters. |
Sample Response:
{
"data": [
{
"index": 1,
"reference": "3487",
"necessity": "Optional",
"label": "Modèles",
"isRanged": false,
"isNumeric": false,
"isMultiple": true,
"isVariation": false,
"isExternal": false,
"language": "fr-FR",
"isTranslated": true
},
{
"index": 2,
"reference": "24151",
"necessity": "Optional",
"label": "Traitement de protection",
"isRanged": true,
"isNumeric": false,
"isMultiple": true,
"isVariation": false,
"isExternal": false,
"choices": [
"Anti-acarien",
"Anti-bactérien",
"Anti-choc",
"Anti-corrosion",
"Anti-crevaison",
"Anti-dérapant",
"Anti-moisissure",
"Anti-oxydation",
"Anti-poussière",
"Anti-punaises de lit",
"Anti-rayure",
"Anti-reflet",
"Anti-tâche",
"Anti-transpiration",
"Autoclave classe I",
"Autoclave classe II",
"Autoclave classe III",
"Autoclave classe IV",
"Autoclave classe V",
"Fixation des couleurs",
"Hypoallergénique",
"Ignifugé",
"Imperméable",
"Protection anti-UV",
"Résistant à la chaleur",
"Résistant au gel"
],
"language": "fr-FR",
"isTranslated": true
},
{
"index": 3,
"reference": "3264",
"necessity": "Optional",
"label": "Couleur principale",
"isRanged": true,
"isNumeric": false,
"isMultiple": false,
"isVariation": false,
"isExternal": false,
"choices": [
"Noir",
"Orange",
"Beige",
"Blanc",
"Bleu",
"Gris",
"Jaune",
"Marron",
"Rose",
"Rouge",
"Vert",
"Violet"
],
"language": "fr-FR",
"isTranslated": true
},
{
"index": 4,
"reference": "3263",
"necessity": "Optional",
"label": "Couleur(s)",
"isRanged": false,
"isNumeric": false,
"isMultiple": false,
"isVariation": false,
"isExternal": false,
"language": "fr-FR",
"isTranslated": true
},
{
"index": 5,
"reference": "999999",
"necessity": "Optional",
"label": "Dimension maximum",
"unit": "cm",
"isRanged": false,
"isNumeric": true,
"isMultiple": false,
"isVariation": false,
"isExternal": false,
"isLogistic": true,
"language": "fr-FR",
"isTranslated": true
},
{
"index": 6,
"reference": "999998",
"necessity": "Optional",
"label": "Dimension medium",
"unit": "cm",
"isRanged": false,
"isNumeric": true,
"isMultiple": false,
"isVariation": false,
"isExternal": false,
"isLogistic": true,
"language": "fr-FR",
"isTranslated": true
},
{
"index": 7,
"reference": "999997",
"necessity": "Optional",
"label": "Dimension minimum",
"unit": "cm",
"isRanged": false,
"isNumeric": true,
"isMultiple": false,
"isVariation": false,
"isExternal": false,
"isLogistic": true,
"language": "fr-FR",
"isTranslated": true
},
{
"index": 8,
"reference": "999996",
"necessity": "Optional",
"label": "Poids emballé",
"unit": "kg",
"isRanged": false,
"isNumeric": true,
"isMultiple": false,
"isVariation": false,
"isExternal": false,
"isLogistic": true,
"language": "fr-FR",
"isTranslated": true
},
{
"index": 9,
"reference": "999995",
"necessity": "Optional",
"label": "Catégorie UN (transport)",
"isRanged": false,
"isNumeric": false,
"isMultiple": false,
"isVariation": false,
"isExternal": false,
"isLogistic": true,
"language": "fr-FR",
"isTranslated": true
},
{
"index": 10,
"reference": "999994",
"necessity": "Optional",
"label": "DLC",
"isRanged": true,
"isNumeric": false,
"isMultiple": false,
"isVariation": false,
"isExternal": false,
"isLogistic": true,
"choices": [
"OUI",
"NON"
],
"language": "fr-FR",
"isTranslated": true
},
{
"index": 11,
"reference": "999993",
"necessity": "Optional",
"label": "Traçabilité",
"isRanged": true,
"isNumeric": false,
"isMultiple": false,
"isVariation": false,
"isExternal": false,
"isLogistic": true,
"choices": [
"None",
"IMEI",
"SerialNumber",
"RegistrationNumber"
],
"language": "fr-FR",
"isTranslated": true
},
{
"index": 12,
"reference": "999992",
"necessity": "Optional",
"label": "Données douanières",
"isRanged": false,
"isNumeric": false,
"isMultiple": false,
"isVariation": false,
"isExternal": false,
"isLogistic": true,
"language": "fr-FR",
"isTranslated": true
},
{
"index": 13,
"reference": "999991",
"necessity": "Optional",
"label": "Valeur de l'article",
"isRanged": false,
"isNumeric": true,
"isMultiple": false,
"isVariation": false,
"isExternal": false,
"isLogistic": true,
"language": "fr-FR",
"isTranslated": true
},
{
"index": 14,
"reference": "999989",
"necessity": "Optional",
"label": "Catégorie dangereuse (ONU)",
"isRanged": false,
"isNumeric": false,
"isMultiple": false,
"isVariation": false,
"isExternal": false,
"isLogistic": true,
"language": "fr-FR",
"isTranslated": true
}
],
"title": "OK",
"description": "The request has been processed successfully.",
"statusCode": 200,
"traceId": "dac20a99-c289-4a0b-bc43-feb7993b87f5"
}
We will be using the label from the taxonomy to match it against our Product Account > Item Specific or Product Account > Variation Specific
Get some brands
Try it
This route allows you to retrieve all the brands with a paginated result
API Call: GET https://api.octopia-io.net/seller/v2/brands[?pageIndex][&pageSize][&fields]
API Docs:https://developer.octopia-io.net/api-details#api=api-rest-seller-v2&operation=getBrands
ample Request:
API Call: GET https://api.octopia-io.net/seller/v2/categories/0H0B0H/properties
Request parameters
Name | Required | Type | Description |
---|---|---|---|
pageIndex |
false | integer |
The index of the page (Minimum: 1) |
pageSize |
false | number |
The pageSize parameter is a positive integer that allows you to limit the number of items per page. |
fields |
false | string |
The fields parameter allows you to precise which category fields should be return in the result. By default, only the brand reference is returned. |
Allowed fields : name |
Sample Request:
API Call: GET https://api.octopia-io.net/seller/v2/brands?pageIndex=1&pageSize=50&fields=name
Sample Response:
{
"itemsPerPage": 50,
"items": [
{
"brandReference": "1",
"name": "BANDRIDGE"
},
{
"brandReference": "2",
"name": "FUJIFILM"
},
{
"brandReference": "3",
"name": "VITEK"
},
{
"brandReference": "4",
"name": "JELT"
},
{
"brandReference": "5",
"name": "ZANUSSI2"
},
{
"brandReference": "6",
"name": "LEXAR"
},
{
"brandReference": "7",
"name": "ESSELTE"
},
{
"brandReference": "8",
"name": "ELENBERG"
},
{
"brandReference": "9",
"name": "TERETBANTINE"
},
{
"brandReference": "10",
"name": "PROLINK"
},
{
"brandReference": "11",
"name": "ASTRELL"
},
{
"brandReference": "12",
"name": "ITT"
},
{
"brandReference": "13",
"name": "DENON"
},
{
"brandReference": "14",
"name": "DELL"
},
{
"brandReference": "15",
"name": "ADDON"
},
{
"brandReference": "16",
"name": "SONY"
},
{
"brandReference": "17",
"name": "COVERTEC"
},
{
"brandReference": "18",
"name": "ADVANCE"
},
{
"brandReference": "19",
"name": "IISONIC"
},
{
"brandReference": "20",
"name": "PAPST"
},
{
"brandReference": "21",
"name": "HAMA"
},
{
"brandReference": "22",
"name": "NEC"
},
{
"brandReference": "23",
"name": "DATAVIZ"
},
{
"brandReference": "24",
"name": "FUJITSU"
},
{
"brandReference": "25",
"name": "GIANFRANCO FERRE"
},
{
"brandReference": "26",
"name": "TAURUS"
},
{
"brandReference": "27",
"name": "MINOLTA"
},
{
"brandReference": "28",
"name": "BODY GLOVE"
},
{
"brandReference": "29",
"name": "UNIVERSAL"
},
{
"brandReference": "30",
"name": "MONRAY"
},
{
"brandReference": "31",
"name": "REEBOK"
},
{
"brandReference": "32",
"name": "PACKARD BELL"
},
{
"brandReference": "33",
"name": "IIYAMA"
},
{
"brandReference": "34",
"name": "DAEWOO ELECTRONICS"
},
{
"brandReference": "35",
"name": "SE"
},
{
"brandReference": "36",
"name": "DOMOCLIP"
},
{
"brandReference": "37",
"name": "OCZ"
},
{
"brandReference": "38",
"name": "SIARE"
},
{
"brandReference": "39",
"name": "DAZZLE"
},
{
"brandReference": "40",
"name": "MAOHI"
},
{
"brandReference": "41",
"name": "IRIVER"
},
{
"brandReference": "42",
"name": "VIETA"
},
{
"brandReference": "43",
"name": "APC"
},
{
"brandReference": "44",
"name": "SHUTTLE"
},
{
"brandReference": "45",
"name": "MGE"
},
{
"brandReference": "46",
"name": "CASIO"
},
{
"brandReference": "47",
"name": "MARANTZ"
},
{
"brandReference": "48",
"name": "HARMAN-KARDON"
},
{
"brandReference": "49",
"name": "MUSTEK"
},
{
"brandReference": "50",
"name": "HECO"
}
]
}
The brands also should be available for download also we should validate them against Product > Brand or Product Account > Item Specifics
Taxonomy and Brand Export
In order to generate the taxonomy file we will need to create a new record in Taxonomy export with: Marketplace = Cdiscount Status = pending Category for Export = “all” (or we can specify which exact categories) or we can specify “brands” Email = email to which the file will be send
Please find example file structure how it should look like after exported. We store for each category separate file.
Mapping Categories:
File Field | Taxonomy Field | Comment |
---|---|---|
PrimaryCatID | category>reference |
|
PrimaryCatName | category>label |
|
Category Path | Based on the ParentReference we should be able to track the category path with structure | |
label>label>label | ||
Is Leaf | category>level |
Level 3 is leaf category |
Item Specifics | properties>label |
|
Required | properties>necessity |
|
Enumeration | If there are choices we mark it as Yes |
|
Values | properties>choices |
|
Is Variation | properties>isVariation |
Indication if we can use it for Variation Specific |
File Structure:
Column | Column | Column | Column | Column | Column | Column | Column | Column | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
PrimaryCatID | PrimaryCatName | Category Path | Is Leaf | Item Specifics | Required | Enumeration | Values | Is Variation | ||||
123 | Shoes | Yes | Color | Yes | No | |||||||
123 | Shoes | Yes | Size | Yes | No | |||||||
123 | Shoes | Yes | Material | No | Yes | Red | White | Black | ||||
123 | Shoes | Yes | Type | No | Yes | 40 | 41 | 42 | 43 | 44 | ||
1234 | Gloves | Yes | Color | Yes | No | |||||||
1234 | Gloves | Yes | Size | Yes | No |
Mapping Brands:
File Field | Taxonomy Field | Comment |
---|---|---|
Brand | name |
File Structure:
Brand
BANDRIDGE
FUJIFILM
JELT