Consommer moins, consommer mieux.
Open Source - Guide d'édition des verticales
Ce comparateur est open source, la première intention est l'ouverture de nos catégories produits (appelées verticales dans le jargon de Nudger), et de l'eco score qui est défini dans ces mêmes fichiers de configuration. Ce sont des fichiers au format YAML qui définissent le fonctionnement et le comportement d'une catégorie de produit, par exemple dans les textes affichés ou générés par IA, dans le calcul de l'ecoscore, ou encore l'interpretation des attributs. Ces fichiers de configuration sont conséquents et ammenés à s'enrichir régulièrement
Un principe d'héritage
Mutualisation
Une partie du fonctionnement d'une verticale est généralisable à l'ensemble des univers produits. C'est pourquoi toutes les verticales héritent d'une verticale parente, nommée _default.yml.
Spécialisation
Toutes les verticales définissent ensuite leur comportement spécifique : attributs supplémentaires, définition de l'écoscore, textes..... On retrouve ces définitions dans le répertoire /verticals/src/main/resources/verticals
Un mapping Java
Ces fichiers de configuration correspondent aux classes Java Spring VerticalConfig, et sont utilisées par les différents services pour construire les verticales et calculer les ecoscores à partir des données dont nous disposons.
Verticale exemple : Les TV's
(tv.yml)
Si vous souhaitez créer une nouvelle verticale, ou modifier une verticale existante, une simple PR suffit (répertoire /verticals/src/main/resources/verticals ). Ici aussi, la documentation est faite au travers des commentaires. Si certains points ne vous semblent pas clairs, n'hésitez pas à nous adresser une demande via l'outil de feedback !
#####################################################################################################################################
# VERTICAL DEFAULT CONFUGURATION FILE
# Verticals definition works on an inheritance mode :
# > All verticals inherits properties from the "_default.yml" configuration file
# > All verticals can override settings by redefining them in the dedicated vertical configuration file
#####################################################################################################################################
# If true, products url will be regenerated on each batch. Should not move too much, but...
forceNameGeneration: true
# These datasources will be excluded from categories matching
excludedFromCategoriesMatching:
- "fnac.com"
- "rakuten.com-csv.yml"
excludingTokensFromCategoriesMatching:
- ACCESSOIRE
#####################################################################################################################################
# I18N CONFIGURATION
# Configure in a i18n way all the texts of a product, including the Url, the title, the description, the open graph metas, ....
# Use a micro templated language, that allows to introduce variables and "if condition", which allows to generate dynamic texts
######################################################################################################################################
i18n:
# Apply for the default site / language (english, on the .com website)
fr:
url:
prefix: ""
attrs:
- BRAND
- MODEL
h1Title:
prefix: ""
attrs:
- BRAND
- MODEL
productMetaTitle: "[(${p.brand()})] [(${p.model()})] : Eco-score, compensation écologique et meilleurs prix"
productMetaDescription: "[(${p.brand()})] [(${p.model()})] : Eco-score, compensation || écologique | environnementale || et meilleurs prix."
productMetaOpenGraphTitle: "[(${p.brand()})] - [(${p.model()})] : Ecoscore de [(${p.ecoscore()})]. Venez nudger ce téléviseur au meilleur prix, et reversez gratuitement [(${p.compensation()})]"
productMetaOpenGraphDescription: "productMetaOpenGraphDescription"
productMetaTwitterTitle: "productMetaTwitterTitle"
productMetaTwitterDescription: "productMetaTwitterDescription"
####################################################################################
# AI TEXTS CONFIGS
####################################################################################
# aiConfig:
# - key: "global-description"
# prompt: " écris un texte de maximum 100 mots, dans un style académique, une description avec des listes à puce en html, comprenant les principaux avantages et inconvénients de [(${p.brand()})] [(${p.model()})], sur la base des caracteriques suivantes : [(${p.caracteristics()})]"
# - key: "ecological-description"
# prompt: "écris un texte de maximum 100 mots, dans un style académique, une analyse de l'impact environnemental de [(${p.brand()})] [(${p.model()})], sur la base des caracteriques suivantes : [(${p.caracteristics()})]"
####################################################################################
# AI TEXTS CONFIGS
####################################################################################
aiConfigs:
override: false
pauseDurationMs: 1000
rootPrompt: |
Tu es un expert en [(${VERTICAL_TITLE})]. Fais une recherche d'information, une analyse technique, fonctionnelle et écologique pour le produit suivant :
Caractéristiques :
[(${p.caracteristics()})]
Génère un fichier JSON clé-valeur, textes en français uniquement, pour l'objet concerné répondant uniquement et strictement aux prompts suivants :
prompts:
- key: "global-description"
prompt: |
: en tant qu'expert technique, rédige une description de l'objet en mettant en avant ses principales caractéristiques techniques. Le texte doit comporter entre 180 et 200 mots et être composé de deux paragraphes distincts, séparés par un point-virgule. Veille à ce que chaque paragraphe soit équilibré en termes de longueur.
- key: "ecological-description"
prompt: |
: en tant qu'expert en impacts environnementaux, rédige une analyse de l'impact écologique de l'objet. Le texte doit comporter entre 180 et 200 mots et être composé de deux paragraphes distincts, séparés par un point-virgule. Veille à ce que chaque paragraphe soit équilibré en termes de longueur.
- key: "pros"
prompt: |
: en tant qu'expert technique, liste cinq avantages du produit dans une seule ligne, séparés par des points-virgules, dans un style formel.
- key: "cons"
prompt: |
: en tant qu'expert technique, liste cinq inconvénients techniques du produit dans une seule ligne, séparés par des points-virgules, dans un style formel.
# GenAiConfig for this vertical
genAiConfig:
# If false, will bypass the generativ ia texts generation
enabled: false
##############################################################################
# Eco score configuration
# Specify here the specific ecoscore for this vertical. Format :
# >> EXISTING_SCORE: WEIGHT
# Weight sum MUST BE equals to 1
##############################################################################
ecoscoreConfig:
CLASSE_ENERGY : 0.3
WEIGHT: 0.3
BRAND_SUSTAINABILITY: 0.3
DATA-QUALITY: 0.1
requiredAttributes:
# - WEIGHT
####################################################################################
# RESOURCES CONFIGURATION
####################################################################################
resourcesConfig:
# In case of images, the min number of pixels the img must have
minPixelsEvictionSize: 20000
overrideResources: false
md5Exclusions:
- 84fe74f622f163b924b962997adda0e1
- de819179308dcec8c172e72d06b9e757
- f4011cbc1e2082616017952f76c0e2d1
####################################################################################
# SITEMAP CONFIG
# Possible values are :
# > NONE : No products from this vertical included in the sitemap
# > ALL : All products from this vertical included in the sitemap
# > DATA_QUALITY : All products having a minimum data quality are included in the sitemap
# > TEXTIALIZED : Only products having texts generated are included in the sitemap
#
# TODO : To be implemented
#
####################################################################################
siteMapStrategy : NONE
####################################################################################
# BARCODE CONFIG
####################################################################################
barcodeConfig:
qrCodeSize: 300
gtinSize: 300
datamatrixSize: 600
####################################################################################
# EXTERNAL DESCRIPTIONS CONFIG
####################################################################################
descriptionsAggregationConfig:
descriptionsTruncationLength: 4000
descriptionsTruncationSuffix: "..."
####################################################################################
# GLOBALLY APPLIED FILTERS
####################################################################################
globalTechnicalFilters:
- "COLOR"
####################################################################################
# Brands configuration
####################################################################################
brandsExclusion:
- NON COMMUNIQUE
- GENERIQUE
#brandsMappings:
# RR : RR
##############################################################################
# We cannot always identify manually what comppany operates a brand, and there is often
# confilicts or multiple possibilities that need to be manually adressed. (eg. samsung a lot of activities / brand through different companies)
#
##############################################################################
brandsCompanyMapping:
SAMSUNG: "Samsung Electronics Co., Ltd."
TCL: "TCL Electronics Holdings Ltd."
LG: "LG Electronics, Inc."
PHILIPS: "Koninklijke Philips NV"
####################################################################################
# ATTRIBUTES CONFIGURATION
####################################################################################
attributesConfig:
# Those attributes will be removed from unmatchedAttributes if found
exclusions:
- "SOUSCATEGORIE"
- "DELIVERY_COST"
- "MERCHANT_CATEGORY"
- "DELIVERY_TIME"
- "MERCHANT_PRODUCT_THIRD_CATEGORY"
- "PRODUCT_MODEL"
- "ADVERT_RAKUPON_AMOUNT"
- "PRICE_WITH_RAKUPON"
- "FRAISDEPORT"
- "MERCHANT_PRODUCT_SECOND_CATEGORY"
- "ADVERT_RAKUPON_CONDITION"
- "CNET INLINE CONTENT"
- "ADVERT_RAKUPON_NAME"
- "AW_THUMB_URL"
- "PRODUCT_TYPE"
- "MERCHANT_PRODUCT_CATEGORY_PATH"
- "CRAWLER"
- "URLFICHEPRODUIT"
- "IDPRODUIT"
# - "EAN GGSHOPPING"
- "AW_IMAGE_URL"
- "SEARCH KEYWORDS"
- "ALTERNATE_IMAGE"
- "AVERAGE_RATING"
- "AW_DEEP_LINK"
- "LINK"
- "AW_PRODUCT_ID"
- "BRAND_ID"
# - "BRAND_NAME"
- "CATEGORY_ID"
- "CONDITION"
- "CURRENCY"
- "CUSTOM_1"
- "CUSTOM_2"
- "CUSTOM_3"
- "CUSTOM_4"
- "CUSTOM_5"
- "CUSTOM_6"
- "CUSTOM_7"
- "CUSTOM_8"
- "CUSTOM_9"
- "DATA_FEED_ID"
# - "DELIVERY_COST"
# - "DELIVERY_TIME"
- "DELIVERY_WEIGHT"
- "DESCRIPTION"
# - "EAN"
- "IN_STOCK"
- "IS_FOR_SALE"
- "MERCHANT_DEEP_LINK"
- "MERCHANT_ID"
- "MERCHANT_IMAGE_URL"
- "MERCHANT_NAME"
- "MERCHANT_PRODUCT_ID"
- "MPN"
- "PARENT_PRODUCT_ID"
- "PRE_ORDER"
# - "PRODUCT_GTIN"
- "PRODUCT_SHORT_DESCRIPTION"
- "RATING"
- "SEARCH_PRICE"
- "STOCK_QUANTITY"
- "STOCK_STATUS"
- "WEB_OFFER"
- "BASE_PRICE"
# - "CODEBARRE"
- "DATEEXPEDITION"
# - "ETAT"
# - "DISPONIBILITE"
- "PRIX"
# - "REFURBISHED"
- "REVIEWS"
- "SAVING"
- "SAVINGS_PERCENT"
- "SOLDES"
- "TOP100"
- "ADVERT_RAKUPON_DISCOUNT"
- "ADVERT_RAKUPON_END"
# Attributes having the following value will be classified as product features
featuredValues:
- YES
- OUI
- Y
####################################################################################
# ATTRIBUTES DEFINITIONS
# Those attributes will be availlable for all products if found
####################################################################################
configs:
## TODO : HAUTEUR, PROFONDEUR, LARGEUR, ...
##################################
# CLASSE ENERGETIQUE
##################################
- key: "CLASSE_ENERGY"
faIcon: "fa-bolt"
name:
default: "Energy class"
fr: "Classe énergétique"
filteringType: "TEXT"
asRating: true
attributeValuesOrdering: "MAPPED"
synonyms:
all:
- "CLASSE ÉNERGÉTIQUE"
- "CLASSE D'EFFICACITÉ ÉNERGÉTIQUE (HDR)"
- "CLASSE ECO"
- "CLASSE ENERGÉTIQUE"
- "CLASSE D'EFFICACITÉ ÉNERGÉTIQUE"
- "CLASSE D'EFFICACITÉ ÉNERGÉTIQUE (HDR)"
- "ENERGY EFFICIENCY CLASS"
- "CLASSE_ENERGY"
# - "CLASSE D'EFFICACITÉ ÉNERGÉTIQUE (HDR)"
# - "CLASSE D'EFFICACITÉ ÉNERGÉTIQUE (SDR)"
parser:
normalize: true
trim: true
lowerCase: false
upperCase: true
removeParenthesis: false
deleteTokens:
- "CLASSE"
- "(ÉCHELLE A++ À E)"
numericMapping:
A+++: 18.0
A++: 18.0
A+: 17.0
A: 16.0
B++: 15.0
B+: 14.0
B: 13.0
C++: 12.0
C+: 11.0
C: 10.0
D++: 9.0
D+: 8.0
D: 7.0
E++: 6.0
E+: 5.0
E: 4.0
F++: 3.0
F+: 2.0
F: 1.0
G: 0.0
##################################
# REPAIRABILITY INDEX
##################################
- key: "REPAIRABILITY_INDEX"
faIcon: "fa-screwdriver-wrench"
name:
default: "Repairability index"
fr: "Indice de réparabilité"
filteringType: "NUMERIC"
asRating: true
attributeValuesOrdering: "MAPPED"
synonyms:
all:
- "REPAIRABILITY INDEX"
- "INDICE DE RÉPARABILITÉ (NOTE SUR 10)"
- "INDICE DE RÉPARABILITÉ"
- "L’INDICE DE RÉPARABILITÉ"
parser:
normalize: true
trim: false
lowerCase: false
upperCase: true
removeParenthesis: false
deleteTokens:
- "/10"
##################################
# WARRANTY
##################################
- key: "WARRANTY"
faIcon: "fa-certificate"
name:
default: "Warranty"
fr: "Garantie"
filteringType: "NUMERIC"
asRating: true
attributeValuesOrdering: "MAPPED"
attributeValuesReverseOrder: false
synonyms:
all:
- "GARANTIE"
- "WARRANTY"
parser:
normalize: true
trim: false
lowerCase: false
upperCase: true
removeParenthesis: false
replaceTokens:
"12 MONTHS": "1"
deleteTokens:
- "ANS"
- "AN"
- "GARANTIE"
##################################
# ANNEE DE SORTIE
##################################
- key: "YEAR"
faIcon: "calendar-days"
name:
default: "Year"
fr: "Année de mise en service"
filteringType: "NUMERIC"
asRating: false
synonyms:
all:
- "ANNÉE DE LANCEMENT"
- "ANNÉE DE SORTIE"
- "ANNÉE DE MODÈLE"
parser:
normalize: true
trim: false
lowerCase: false
upperCase: true
removeParenthesis: false
# deleteTokens:
# - "ANS"
##################################
# PORTS HDMI
##################################
- key: "HDMI_PORTS_QUANTITY"
faIcon: "fa-sitemap"
icecatFeaturesIds:
- 3566
name:
default: "HDMI ports quantity"
fr: "Quantité de ports HDMI"
filteringType: "NUMERIC"
asRating: false
synonyms:
all:
- "QTE DE PORTS HDMI"
- "QUANTITE DE PORTS HDMI"
parser:
normalize: true
trim: false
lowerCase: false
upperCase: true
removeParenthesis: false
# deleteTokens:
# - "ANS"
##################################
# COULEUR
##################################
- key: "COLOR"
faIcon: "fa-droplet"
name:
default: "Color"
fr: "Couleur"
filteringType: "TEXT"
asRating: false
synonyms:
all:
- "COULEUR"
- "COULEUR DU PRODUIT"
- "CATÉGORIE DE COULEUR"
- "COULEUR GÉNÉRIQUE"
- "COLOUR"
parser:
normalize: true
trim: false
lowerCase: false
upperCase: true
removeParenthesis: false
# deleteTokens:
# - "ANS"
##################################
# POIDS
##################################
- key: "WEIGHT"
icecatFeaturesIds:
- 94
- 33015
faIcon: "fa-weight"
name:
default: "Weight"
fr: "Poids"
filteringType: "NUMERIC"
asRating: false
synonyms:
all:
- "POIDS"
parser:
normalize: true
trim: false
lowerCase: false
upperCase: true
removeParenthesis: false
# deleteTokens:
# - "ANS"
##################################
# ENERGY_CONSUMPTION_1000_HOURS
##################################
- key: "ENERGY_CONSUMPTION_1000_HOURS"
icecatFeaturesIds:
- 42859
faIcon: "fa-plug"
name:
default: "Energy consumption (/1000h)"
fr: "Consommation d'énergie (/1000h)"
filteringType: "NUMERIC"
asRating: false
synonyms:
all:
- "CONSOMMATION D'ENERGIE (HDR) POUR 1000 HEURES"
parser:
normalize: true
trim: false
lowerCase: false
upperCase: true
removeParenthesis: false
# deleteTokens:
# - "ANS"
#################################################
# UI Oriented attributes
#################################################
##################################
# FEATURES
# Note : not associated with any vals, features of parsed base on yes or no values
##################################
- key: "FEATURES"
faIcon: "fa-list"
attributePath: attributes.features
name:
default: "Features"
fr: "Fonctionnalités"
Verticale parente
(_default.yml)
La documentation est faite au travers des commentaires. Si certains points ne vous semblent pas clairs, n'hésitez pas à nous adresser une demande via l'outil de feedback !
#####################################################################################################################################
# VERTICAL DEFAULT CONFUGURATION FILE
# Verticals definition works on an inheritance mode :
# > All verticals inherits properties from the "_default.yml" configuration file
# > All verticals can override settings by redefining them in the dedicated vertical configuration file
#####################################################################################################################################
# If true, products url will be regenerated on each batch. Should not move too much, but...
forceNameGeneration: true
# These datasources will be excluded from categories matching
excludedFromCategoriesMatching:
- "fnac.com"
- "rakuten.com-csv.yml"
excludingTokensFromCategoriesMatching:
- ACCESSOIRE
#####################################################################################################################################
# I18N CONFIGURATION
# Configure in a i18n way all the texts of a product, including the Url, the title, the description, the open graph metas, ....
# Use a micro templated language, that allows to introduce variables and "if condition", which allows to generate dynamic texts
######################################################################################################################################
i18n:
# Apply for the default site / language (english, on the .com website)
fr:
url:
prefix: ""
attrs:
- BRAND
- MODEL
h1Title:
prefix: ""
attrs:
- BRAND
- MODEL
productMetaTitle: "[(${p.brand()})] [(${p.model()})] : Eco-score, compensation écologique et meilleurs prix"
productMetaDescription: "[(${p.brand()})] [(${p.model()})] : Eco-score, compensation || écologique | environnementale || et meilleurs prix."
productMetaOpenGraphTitle: "[(${p.brand()})] - [(${p.model()})] : Ecoscore de [(${p.ecoscore()})]. Venez nudger ce téléviseur au meilleur prix, et reversez gratuitement [(${p.compensation()})]"
productMetaOpenGraphDescription: "productMetaOpenGraphDescription"
productMetaTwitterTitle: "productMetaTwitterTitle"
productMetaTwitterDescription: "productMetaTwitterDescription"
####################################################################################
# AI TEXTS CONFIGS
####################################################################################
# aiConfig:
# - key: "global-description"
# prompt: " écris un texte de maximum 100 mots, dans un style académique, une description avec des listes à puce en html, comprenant les principaux avantages et inconvénients de [(${p.brand()})] [(${p.model()})], sur la base des caracteriques suivantes : [(${p.caracteristics()})]"
# - key: "ecological-description"
# prompt: "écris un texte de maximum 100 mots, dans un style académique, une analyse de l'impact environnemental de [(${p.brand()})] [(${p.model()})], sur la base des caracteriques suivantes : [(${p.caracteristics()})]"
####################################################################################
# AI TEXTS CONFIGS
####################################################################################
aiConfigs:
override: false
pauseDurationMs: 1000
rootPrompt: |
Tu es un expert en [(${VERTICAL_TITLE})]. Fais une recherche d'information, une analyse technique, fonctionnelle et écologique pour le produit suivant :
Caractéristiques :
[(${p.caracteristics()})]
Génère un fichier JSON clé-valeur, textes en français uniquement, pour l'objet concerné répondant uniquement et strictement aux prompts suivants :
prompts:
- key: "global-description"
prompt: |
: en tant qu'expert technique, rédige une description de l'objet en mettant en avant ses principales caractéristiques techniques. Le texte doit comporter entre 180 et 200 mots et être composé de deux paragraphes distincts, séparés par un point-virgule. Veille à ce que chaque paragraphe soit équilibré en termes de longueur.
- key: "ecological-description"
prompt: |
: en tant qu'expert en impacts environnementaux, rédige une analyse de l'impact écologique de l'objet. Le texte doit comporter entre 180 et 200 mots et être composé de deux paragraphes distincts, séparés par un point-virgule. Veille à ce que chaque paragraphe soit équilibré en termes de longueur.
- key: "pros"
prompt: |
: en tant qu'expert technique, liste cinq avantages du produit dans une seule ligne, séparés par des points-virgules, dans un style formel.
- key: "cons"
prompt: |
: en tant qu'expert technique, liste cinq inconvénients techniques du produit dans une seule ligne, séparés par des points-virgules, dans un style formel.
# GenAiConfig for this vertical
genAiConfig:
# If false, will bypass the generativ ia texts generation
enabled: false
##############################################################################
# Eco score configuration
# Specify here the specific ecoscore for this vertical. Format :
# >> EXISTING_SCORE: WEIGHT
# Weight sum MUST BE equals to 1
##############################################################################
ecoscoreConfig:
CLASSE_ENERGY : 0.3
WEIGHT: 0.3
BRAND_SUSTAINABILITY: 0.3
DATA-QUALITY: 0.1
requiredAttributes:
# - WEIGHT
####################################################################################
# RESOURCES CONFIGURATION
####################################################################################
resourcesConfig:
# In case of images, the min number of pixels the img must have
minPixelsEvictionSize: 20000
overrideResources: false
md5Exclusions:
- 84fe74f622f163b924b962997adda0e1
- de819179308dcec8c172e72d06b9e757
- f4011cbc1e2082616017952f76c0e2d1
####################################################################################
# SITEMAP CONFIG
# Possible values are :
# > NONE : No products from this vertical included in the sitemap
# > ALL : All products from this vertical included in the sitemap
# > DATA_QUALITY : All products having a minimum data quality are included in the sitemap
# > TEXTIALIZED : Only products having texts generated are included in the sitemap
#
# TODO : To be implemented
#
####################################################################################
siteMapStrategy : NONE
####################################################################################
# BARCODE CONFIG
####################################################################################
barcodeConfig:
qrCodeSize: 300
gtinSize: 300
datamatrixSize: 600
####################################################################################
# EXTERNAL DESCRIPTIONS CONFIG
####################################################################################
descriptionsAggregationConfig:
descriptionsTruncationLength: 4000
descriptionsTruncationSuffix: "..."
####################################################################################
# GLOBALLY APPLIED FILTERS
####################################################################################
globalTechnicalFilters:
- "COLOR"
####################################################################################
# Brands configuration
####################################################################################
brandsExclusion:
- NON COMMUNIQUE
- GENERIQUE
#brandsMappings:
# RR : RR
##############################################################################
# We cannot always identify manually what comppany operates a brand, and there is often
# confilicts or multiple possibilities that need to be manually adressed. (eg. samsung a lot of activities / brand through different companies)
#
##############################################################################
brandsCompanyMapping:
SAMSUNG: "Samsung Electronics Co., Ltd."
TCL: "TCL Electronics Holdings Ltd."
LG: "LG Electronics, Inc."
PHILIPS: "Koninklijke Philips NV"
####################################################################################
# ATTRIBUTES CONFIGURATION
####################################################################################
attributesConfig:
# Those attributes will be removed from unmatchedAttributes if found
exclusions:
- "SOUSCATEGORIE"
- "DELIVERY_COST"
- "MERCHANT_CATEGORY"
- "DELIVERY_TIME"
- "MERCHANT_PRODUCT_THIRD_CATEGORY"
- "PRODUCT_MODEL"
- "ADVERT_RAKUPON_AMOUNT"
- "PRICE_WITH_RAKUPON"
- "FRAISDEPORT"
- "MERCHANT_PRODUCT_SECOND_CATEGORY"
- "ADVERT_RAKUPON_CONDITION"
- "CNET INLINE CONTENT"
- "ADVERT_RAKUPON_NAME"
- "AW_THUMB_URL"
- "PRODUCT_TYPE"
- "MERCHANT_PRODUCT_CATEGORY_PATH"
- "CRAWLER"
- "URLFICHEPRODUIT"
- "IDPRODUIT"
# - "EAN GGSHOPPING"
- "AW_IMAGE_URL"
- "SEARCH KEYWORDS"
- "ALTERNATE_IMAGE"
- "AVERAGE_RATING"
- "AW_DEEP_LINK"
- "LINK"
- "AW_PRODUCT_ID"
- "BRAND_ID"
# - "BRAND_NAME"
- "CATEGORY_ID"
- "CONDITION"
- "CURRENCY"
- "CUSTOM_1"
- "CUSTOM_2"
- "CUSTOM_3"
- "CUSTOM_4"
- "CUSTOM_5"
- "CUSTOM_6"
- "CUSTOM_7"
- "CUSTOM_8"
- "CUSTOM_9"
- "DATA_FEED_ID"
# - "DELIVERY_COST"
# - "DELIVERY_TIME"
- "DELIVERY_WEIGHT"
- "DESCRIPTION"
# - "EAN"
- "IN_STOCK"
- "IS_FOR_SALE"
- "MERCHANT_DEEP_LINK"
- "MERCHANT_ID"
- "MERCHANT_IMAGE_URL"
- "MERCHANT_NAME"
- "MERCHANT_PRODUCT_ID"
- "MPN"
- "PARENT_PRODUCT_ID"
- "PRE_ORDER"
# - "PRODUCT_GTIN"
- "PRODUCT_SHORT_DESCRIPTION"
- "RATING"
- "SEARCH_PRICE"
- "STOCK_QUANTITY"
- "STOCK_STATUS"
- "WEB_OFFER"
- "BASE_PRICE"
# - "CODEBARRE"
- "DATEEXPEDITION"
# - "ETAT"
# - "DISPONIBILITE"
- "PRIX"
# - "REFURBISHED"
- "REVIEWS"
- "SAVING"
- "SAVINGS_PERCENT"
- "SOLDES"
- "TOP100"
- "ADVERT_RAKUPON_DISCOUNT"
- "ADVERT_RAKUPON_END"
# Attributes having the following value will be classified as product features
featuredValues:
- YES
- OUI
- Y
####################################################################################
# ATTRIBUTES DEFINITIONS
# Those attributes will be availlable for all products if found
####################################################################################
configs:
## TODO : HAUTEUR, PROFONDEUR, LARGEUR, ...
##################################
# CLASSE ENERGETIQUE
##################################
- key: "CLASSE_ENERGY"
faIcon: "fa-bolt"
name:
default: "Energy class"
fr: "Classe énergétique"
filteringType: "TEXT"
asRating: true
attributeValuesOrdering: "MAPPED"
synonyms:
all:
- "CLASSE ÉNERGÉTIQUE"
- "CLASSE D'EFFICACITÉ ÉNERGÉTIQUE (HDR)"
- "CLASSE ECO"
- "CLASSE ENERGÉTIQUE"
- "CLASSE D'EFFICACITÉ ÉNERGÉTIQUE"
- "CLASSE D'EFFICACITÉ ÉNERGÉTIQUE (HDR)"
- "ENERGY EFFICIENCY CLASS"
- "CLASSE_ENERGY"
# - "CLASSE D'EFFICACITÉ ÉNERGÉTIQUE (HDR)"
# - "CLASSE D'EFFICACITÉ ÉNERGÉTIQUE (SDR)"
parser:
normalize: true
trim: true
lowerCase: false
upperCase: true
removeParenthesis: false
deleteTokens:
- "CLASSE"
- "(ÉCHELLE A++ À E)"
numericMapping:
A+++: 18.0
A++: 18.0
A+: 17.0
A: 16.0
B++: 15.0
B+: 14.0
B: 13.0
C++: 12.0
C+: 11.0
C: 10.0
D++: 9.0
D+: 8.0
D: 7.0
E++: 6.0
E+: 5.0
E: 4.0
F++: 3.0
F+: 2.0
F: 1.0
G: 0.0
##################################
# REPAIRABILITY INDEX
##################################
- key: "REPAIRABILITY_INDEX"
faIcon: "fa-screwdriver-wrench"
name:
default: "Repairability index"
fr: "Indice de réparabilité"
filteringType: "NUMERIC"
asRating: true
attributeValuesOrdering: "MAPPED"
synonyms:
all:
- "REPAIRABILITY INDEX"
- "INDICE DE RÉPARABILITÉ (NOTE SUR 10)"
- "INDICE DE RÉPARABILITÉ"
- "L’INDICE DE RÉPARABILITÉ"
parser:
normalize: true
trim: false
lowerCase: false
upperCase: true
removeParenthesis: false
deleteTokens:
- "/10"
##################################
# WARRANTY
##################################
- key: "WARRANTY"
faIcon: "fa-certificate"
name:
default: "Warranty"
fr: "Garantie"
filteringType: "NUMERIC"
asRating: true
attributeValuesOrdering: "MAPPED"
attributeValuesReverseOrder: false
synonyms:
all:
- "GARANTIE"
- "WARRANTY"
parser:
normalize: true
trim: false
lowerCase: false
upperCase: true
removeParenthesis: false
replaceTokens:
"12 MONTHS": "1"
deleteTokens:
- "ANS"
- "AN"
- "GARANTIE"
##################################
# ANNEE DE SORTIE
##################################
- key: "YEAR"
faIcon: "calendar-days"
name:
default: "Year"
fr: "Année de mise en service"
filteringType: "NUMERIC"
asRating: false
synonyms:
all:
- "ANNÉE DE LANCEMENT"
- "ANNÉE DE SORTIE"
- "ANNÉE DE MODÈLE"
parser:
normalize: true
trim: false
lowerCase: false
upperCase: true
removeParenthesis: false
# deleteTokens:
# - "ANS"
##################################
# PORTS HDMI
##################################
- key: "HDMI_PORTS_QUANTITY"
faIcon: "fa-sitemap"
icecatFeaturesIds:
- 3566
name:
default: "HDMI ports quantity"
fr: "Quantité de ports HDMI"
filteringType: "NUMERIC"
asRating: false
synonyms:
all:
- "QTE DE PORTS HDMI"
- "QUANTITE DE PORTS HDMI"
parser:
normalize: true
trim: false
lowerCase: false
upperCase: true
removeParenthesis: false
# deleteTokens:
# - "ANS"
##################################
# COULEUR
##################################
- key: "COLOR"
faIcon: "fa-droplet"
name:
default: "Color"
fr: "Couleur"
filteringType: "TEXT"
asRating: false
synonyms:
all:
- "COULEUR"
- "COULEUR DU PRODUIT"
- "CATÉGORIE DE COULEUR"
- "COULEUR GÉNÉRIQUE"
- "COLOUR"
parser:
normalize: true
trim: false
lowerCase: false
upperCase: true
removeParenthesis: false
# deleteTokens:
# - "ANS"
##################################
# POIDS
##################################
- key: "WEIGHT"
icecatFeaturesIds:
- 94
- 33015
faIcon: "fa-weight"
name:
default: "Weight"
fr: "Poids"
filteringType: "NUMERIC"
asRating: false
synonyms:
all:
- "POIDS"
parser:
normalize: true
trim: false
lowerCase: false
upperCase: true
removeParenthesis: false
# deleteTokens:
# - "ANS"
##################################
# ENERGY_CONSUMPTION_1000_HOURS
##################################
- key: "ENERGY_CONSUMPTION_1000_HOURS"
icecatFeaturesIds:
- 42859
faIcon: "fa-plug"
name:
default: "Energy consumption (/1000h)"
fr: "Consommation d'énergie (/1000h)"
filteringType: "NUMERIC"
asRating: false
synonyms:
all:
- "CONSOMMATION D'ENERGIE (HDR) POUR 1000 HEURES"
parser:
normalize: true
trim: false
lowerCase: false
upperCase: true
removeParenthesis: false
# deleteTokens:
# - "ANS"
#################################################
# UI Oriented attributes
#################################################
##################################
# FEATURES
# Note : not associated with any vals, features of parsed base on yes or no values
##################################
- key: "FEATURES"
faIcon: "fa-list"
attributePath: attributes.features
name:
default: "Features"
fr: "Fonctionnalités"