Допустим, ваш бизнес - услуги сотовой связи. У вас есть тарифная сетка, которая отличается большим количеством нюансов для разных районов страны. В некоторых регионах часть тарифов вообще неприменима. Ценообразование в данном случае - свойство продукта (цена далеко не всегда является свойством продукта, чаще - свойство канала продаж, но именно тут - свойство продукта). Ваш продукт - со сложным ценообразованием, при этом вам важно знать и контролировать все факторы изменения цены.
Другой пример: вы производите диваны. Обивку для них можно изготовить из тысячи материалов разных цветов и фактуры. Они различаются габаритами, механизмом раскладывания, материалом подлокотников. Эти отличия - не просто свойства товаров, они определённым образом зависят друг от друга: диваны некоторых ценовых категорий могут иметь обивку только из определённого вида тканей и только ограниченного количества цветов, а некоторые конструкции имеют разные опции.
03
Давайте рассмотрим, как Akeneo и Pimcore помогают работать с данными для таких сложносоставных продуктов. Akeneo поддерживает плоскую модель данных (с нюансами: в версии Enterprise могут быть составные атрибуты, т. е. атрибут может содержать свои атрибуты). Таким образом, подобного рода задачи сводятся к тому, что Akeneo расширяется специальным конфигуратором - разработчики пишут модуль для управления сложной иерархической структурой в плоской структуре Akeneo .
04
Составной атрибут в Akeneo Enterprise и Pimcore означает, что атрибут содержит свои атрибуты. Например, атрибут «Цвет» может содержать название, HEX- и CMYK-коды и картинку, а атрибут «Ткань» - название ткани и условия её стирки/мойки. В Pimcore эта задача решается коробочным интерфейсом: любой класс может быть расширен, и тот, в свою очередь, тоже может быть расширен. Атрибуты могут быть связью, в т. ч. многие ко многим, составными, вычисляемыми.
05
Наиболее интересные кейсы для понимания работы Akeneo и Pimcore могут быть такими: у бизнеса есть некая базовая продукция с базовой ценой (например базовая модель дивана с обивкой из определённой ткани), а при добавлении какой-либо конфигурации нужно автоматически изменить цену (диван с другой обивкой стоит дороже), причём сделать это по правилам (есть несколько категорий ткани, и цена для каждой следующей категории увеличивается на 100 рублей за погонный метр).
06
Интерфейс настройки атрибутов в Akeneo выглядит так: В Pimcore: