Как получить цену товара после применения скидки


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

Код, который я использую для этого:

//load product by id
   $product = Mage::getModel('catalog/product')->load($product->getId());

    //get promo_price
    $promo_price = Mage::getModel('catalogrule/rule')->calcProductPriceRule($product,$product->getPrice());

И это:

$promo_price = $product->getPrice() - $product->getDiscountAmount();

Но этот код возвращает мне значение NULL.

Кто-нибудь знает, как я могу это сделать?

Author: Alin Lupoiu, 2017-06-29

4 answers

Мы используем это, чтобы получить обновленную цену продукта

<?php
$_product->getPrice();

$_product->getFinalPrice();

//Here you can get the catalog rule applied price like:
$store_id = Mage::app()->getStore()->getId();
$discounted_price = Mage::getResourceModel('catalogrule/rule')->getRulePrice(
    Mage::app()->getLocale()->storeTimeStamp($store_id),
    Mage::app()->getStore($store_id)->getWebsiteId(),
    Mage::getSingleton('customer/session')->getCustomerGroupId(),
    $_product->getId()
);


if ($discountedPrice === false) { // if no rule applied for the product
    $discountedPrice = $_product->getFinalPrice();
} else {
    $discountedPrice = number_format($discountedPrice,2);
}
 3
Author: Sumil sanghavi, 2019-08-23 21:02:46
$regularPrice = number_format($product->getPrice(), 2);

$discountedPrice = number_format($product->getFinalPrice(), 2);

$specialPrice = number_format($product->getSpecialPrice(), 2);
 1
Author: PЯINCƏ, 2017-06-29 08:35:43

Использовать тип int

$promo_price = (int)$product->getPrice() - (int)$product->getDiscountAmount();
 0
Author: Vijay Khirade, 2017-06-29 09:11:07

Я решаю свою проблему следующим образом:

$customerId = $coreSession['visitor_data']['customer_id'];
            //Load customer to take the customer group id
            $customer = Mage::getModel('customer/customer')->load($customerId);
            $group= $customer->getGroupId();

        //Get price after a discount per customer 
                $discounted_price = Mage::getModel('catalogrule/rule')->calcProductPriceRule($product
                ->setStoreId(1)
                ->setCustomerGroupId($grup),
                $product->getPrice()
                );
 0
Author: Alin Lupoiu, 2017-07-28 13:04:09