cancel
Showing results for 
Search instead for 
Did you mean: 

Правильно изменить базовую функциональность

Правильно изменить базовую функциональность

Попробую объяснить на примере что я хочу научится делать...

В Magento 1 можно добавить разные цены в зависимости от количества. В карточке товара увидим надпись "купи 10шт и получи скидку 10%" или что-то подобное... Мне нужно вместо 10% показать сумму которую сэкономит покупатель.

Иду в

app/code/core/Mage/Catalog/Block/Product/

Копирую файл Price.php в

app/code/local/Mage/Catalog/Block/Product/

Редактирую код с

$price['savePercent'] = ceil(100 - ((100 / $productPrice) * $price['price']));

на

$price['savePercent'] = ceil(($productPrice - $price['price']) * $price['price_qty']);

Получаю то что мне нужно, от "общей цены" отнимается "цена со скидкой" и умножается на "количество для скидки"

 

Я прекрасно понимаю что так делать не правильно, не знаю с чего начать написание модуля который изменить базовую функциональность. Есть небольшой опыт в написание пользовательских модулей, все прекрасно работает, но они все "расширяют" функциональность, а не "замещают". Прошу помочь, самостоятельно найти какого либо мануала/инструкции/статьи как делать правельно не удалось. Так же хотелось бы посмотреть нечто подобное в готовых модулях

 

2 REPLIES 2

Re: Правильно изменить базовую функциональность

Так есть же правила использования механизма override когда вы прописываете в файле config.xml правила подмены файла ядра своим с наследованием вашего файла от заменяемого. Вот я переделывал для одного проекта штатные алгоритмы ProductAlert

		<blocks>
			<productalert>
				<rewrite>
					<product_view>Smartceo_ProductAlert_Block_Product_View</product_view>
				</rewrite>
			</productalert>
			<productalert_admin>
				<class>Smartceo_ProductAlert_Block</class>
			</productalert_admin>
		</blocks>

Re: Правильно изменить базовую функциональность