Вопрос

Для продукта у меня есть правило цены каталога и цена уровня.

Когда я добавляю товар в корзину Magento всегда требует наименьшей цены. Есть ли способ настроить его, чтобы всегда принимать цену в соответствии с правилом цены каталога?

Я искал, но не получил решения для этого. Есть ли настройки администратора для этого?

Это было полезно?

Решение

Код, который управляет ценой, можно найти в mage_catalog_model_product_type_price

public function getFinalPrice($qty=null, $product)
{
    if (is_null($qty) && !is_null($product->getCalculatedFinalPrice())) {
        return $product->getCalculatedFinalPrice();
    }

    $finalPrice = $product->getPrice();
    $finalPrice = $this->_applyTierPrice($product, $qty, $finalPrice);
    $finalPrice = $this->_applySpecialPrice($product, $finalPrice);
    $product->setFinalPrice($finalPrice);

    Mage::dispatchEvent('catalog_product_get_final_price', array('product'=>$product, 'qty' => $qty));

    $finalPrice = $product->getData('final_price');
    $finalPrice = $this->_applyOptionsPrice($product, $qty, $finalPrice);

    return max(0, $finalPrice);
}

В _applytierprice

$finalPrice = min($finalPrice, $tierPrice);

и через _applyspecialprice

$finalPrice     = min($finalPrice, $specialPrice);

Там нет вариантов, и это вернет минимальную цену.

По моему мнению, это также соответствует ожиданию клиента!

Если вы хотите изменить это поведение, вы можете наблюдать за Catalog_product_get_final_price и использовать $ product-> setData ('final_price', x.yz); до желаемой стоимости.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top