La manière habituelle de l'extension des produits pour avoir des attributs spécifiques à la catégorie en ATG est d'étendre le descripteur de l'élément de référentiel product
.
Généralement, vous créez un nouveau sous-type de produit pour un produit spécifique à une catégorie et ajoutez des propriétés pour chaque attribut spécifique à une catégorie.
Par exemple, vous pouvez définir un sous-type de produit « TV produit » où il a un attribut Taille de l'écran
Par défaut, il n'y a qu'un seul type de product
. Ce fait est représenté par la propriété type
n'ayant aucune option.
<property name="type" data-type="enumerated" column-name="product_type" writable="false" hidden="true"> </property>
Vous pouvez étendre cela pour représenter plusieurs types et sous-types.
<property name="type" data-type="enumerated" column-name="product_type" writable="false" hidden="true">
<option value="tv"/>
<option value="option2"/>
</property>
Ensuite, vous pouvez définir votre descripteur de l'élément de sous-type
<item-descriptor name="tvProduct" super-type="product" sub-type-value="tv">
<!-- properties -->
</item-descriptor>
Et vous pouvez ajouter property
et table
éléments dans votre sous-type pour représenter les propriétés spécifiques de catégorie tels que screenSize
.
De là, vous pouvez traiter un tvProduct
comme n'importe quel autre type de produit. Ils apparaîtront dans toutes les requêtes etc. pour les éléments de type product
- mais lorsque vous avez une instance d'un tvProduct
, il aura une propriété supplémentaire screenSize
.