2016-03-02 5 views
0

Веб-сайты электронной коммерции показывают разные поля для продуктов разных категорий. Это означает, что они реализуют динамическую схему. Какие методы используются для такой динамической схемы?Динамическая схема в электронной коммерции

Я знаю, что Magento использует модель EAV. Есть ли другой вариант, который используется другими платформами, такими как ATG, Broadleaf, IBM Websphere и т. Д.?

Благодаря

ответ

1

Обычным способом распространения продукции, чтобы иметь атрибуты специфичной для данной категории в ATG является расширение product хранилища дескриптора элемента ,

Обычно вы создадите новый подтип продукта для продукта категории и добавляете свойства для каждого атрибута категории.

Например, вы можете определить «ТВ продукта» подтип продукта, где он имеет атрибут Размер экрана

По умолчанию есть только один тип product. Этот факт представлен собственностью type, не имеющей никаких параметров.

<property name="type" data-type="enumerated" column-name="product_type" writable="false" hidden="true"> </property> 

Вы можете расширить это представление для представления нескольких типов и подтипов.

<property name="type" data-type="enumerated" column-name="product_type" writable="false" hidden="true"> 
    <option value="tv"/> 
    <option value="option2"/> 
</property> 

Затем вы можете определить подтип дескриптора элемента, как

<item-descriptor name="tvProduct" super-type="product" sub-type-value="tv"> 
    <!-- properties --> 
</item-descriptor> 

И тогда вы можете добавить property и table элементы в вашем подтипа для представления свойств специфичных для данной категории, такие как screenSize.

После этого вы можете обрабатывать tvProduct, как и любой другой вид продукта. Они будут отображаться в любых запросах и т. Д. Для элементов типа product - но если у вас есть экземпляр tvProduct, он будет иметь дополнительную собственность screenSize.

0

В широколиственных, есть 2 способа добавить пользовательские свойства:

  1. Подкласс существующий ProductImpl Hibernate объект, который соответствует таблице BLC_PRODUCT, поставив все пользовательские свойства в новом MYCOMPANY_PRODUCT вместо этого. Существует довольно хороший учебник по этому вопросу: http://www.broadleafcommerce.com/docs/core/current/tutorials/core-tutorials/extending-entities-tutorial
  2. Большинство объектов Broadleaf (например, ProductImpl и SkuImpl) имеют прикрепленную к ним карту атрибутов карты, к которой вы можете добавить пользовательские свойства без создания новой таблицы или нового подкласса. С помощью модуля Broadleaf Пользовательских полей (коммерческий модуль) эти новые динамические поля могут отображаться автоматически администратор форм