Правила цен по каталогу, как заставить их применяться к уровневым ценам?


Итак, скажем, у меня есть товары с разными ценами на уровне в зависимости от приобретенного количества, можно ли каким-либо образом создать правило цены каталога, которое, например, снимает 10% со всех уровней цен, а не только со стоимости продукта?

Спасибо.

Author: Hayden Thring, 2013-07-10

2 answers

Нет, вы не можете сделать это с помощью собственного экземпляра Magento.
Для этого вам придется использовать правила цены корзины покупок, которые применяются к самой низкой цене, групповой цене, цене уровня и специальной цене.

 2
Author: Vinai, 2013-07-10 14:34:18

Хотя я думал, что старая тема поможет другим, которые, возможно, ищут ответ на основе кода.

Обычно это невозможно в magento, так как правила цен каталога очень тесно интегрированы в структуру событий для изменения окончательной цены, но этот расчет выполняется до многоуровневого расчета цены. Поэтому, если конечная цена не меньше цены уровня, цена уровня всегда будет по умолчанию.

Для этого вам нужно будет написать модуль и перепишите Mage_Catalog_Model_Product_Type_Price и посмотрите на

protected function _applyTierPrice($product, $qty, $finalPrice)
{
    if (is_null($qty)) {
        return $finalPrice;
    }

    $tierPrice  = $product->getTierPrice($qty);
    if (is_numeric($tierPrice)) {
        $finalPrice = min($finalPrice, $tierPrice);
    }
    return $finalPrice;
}

Здесь вы можете использовать свой собственный метод обработки правила. Пожалуйста, обратитесь к Mage_CatalogRule_Model_Rule, вы найдете метод, который вам нужно запустить.

Я намеренно не даю вам точного ответа, потому что как вы учитесь, не заглядывая в глубины magento.

 1
Author: TTech IT Solutions, 2016-01-20 09:55:32