Грубо говоря, вы должны создать собственный тип продукта, чтобы вы могли предоставить этот пользовательский расчет, не меняя «простой» тип продукта, который все еще может использоваться для других продуктов в магазине.Реальная работа будет выполнена в его ценовой модели.
Определение нового типа легко:
<config>
<global>
<catalog>
<product>
<type>
<CUSTOM>
<label>CUSTOM PRODUCT TYPE</label>
<model>catalog/product_type_abstract</model>
<priceModel>YOURMODULE/product_type_CUSTOM<priceModel>
</CUSTOM>
</type>
</product>
</catalog>
</global>
</config>
Для модуля требуется скрипт установки , который назначает различные ценысвязанные атрибуты с пользовательским типом, в противном случае они не будут отображаться на странице редактирования продукта.
Теперь ожидается класс YOURMODULE_Model_Product_Type_CUSTOM_Price
, который должен идти от Mage_Catalog_Model_Product_Type_Price
.Новый класс должен переопределить следующий метод:
protected function _applyOptionsPrice($product, $qty, $finalPrice)
Посмотрите, как работает родительский метод, а затем заставьте его работать так, как вы хотите.
Я полагаю, что вы, вероятно, просматриваете все варианты продукта и сохраняете две суммы, одну из фиксированных цен и одну из процентов.Добавьте фиксированное значение к базовой цене, затем умножьте на значение в процентах.
Тогда все, что остается, - это добавить новые продукты в админку, используя ваш новый тип.