Здравствуйте, коллеги. В этой небольшой статье хочу поделиться своей реализацией зависимости цены товара от свойств, не прибегая к SKU.
Также эта статья будет полезна тем, кто не может разобраться с CSaleBasket::Add и ajax добавлением товара в корзину.
Итак, передо мной стояла следующая задача:
У товара цена зависела от размеров (от длины и ширины) и еще нескольких свойств (эти свойства в данной статье опустим, но вы без проблем, дописав код, сможете реализовать ваши конкретные зависимости сами).
Мы имеем порядка десяти различных ширин и длин (для многих товаров разные). Итого получается около 100 вариантов цен для каждой единицы товара. Товаров самих тоже очень много. Расчет цены не подчиняется никакому закону, все цены вбиваются вручную. Также должна быть возможность задать процент скидки для всех цен товарной карточки.
Использование SKU для данной задачи нерационально, т.к. для каждого товара нужно добавлять десятки торговых предложений, что займет уйму времени.
Задача была реализована следующим образом: