2016-03-02 3 views
0

Les sites Web de commerce électronique montrent différents champs pour les produits de différentes catégories. Cela implique qu'ils mettent en œuvre un schéma dynamique. Quelles techniques sont utilisées pour un tel schéma dynamique?Schéma dynamique dans le commerce électronique

Je connais Magento en utilisant le modèle EAV. Y at-il une autre option qui est utilisée par d'autres frameworks comme ATG, Broadleaf, IBM Websphere commerce, etc.?

Merci

Répondre

1

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.

0

En Feuillu, il y a 2 façons d'ajouter des propriétés personnalisées:

  1. Sous-classe existant ProductImpl entité Hibernate qui correspond à la table de BLC_PRODUCT, mettre tous vos propriétés personnalisées dans une nouvelle MYCOMPANY_PRODUCT table à la place. La plupart des entités Broadleaf (telles que ProductImpl et SkuImpl) possèdent un mappage d'attribut Map auquel vous pouvez ajouter des propriétés personnalisées sans créer de nouvelle table ou de nouvelle sous-classe. Avec le module champ personnalisé à feuilles larges (un module commercial), ces nouveaux champs dynamiques peuvent apparaître automatiquement des formulaires admin