วิธีตรวจสอบว่าสินค้าถูกลดราคาหรือไม่


13

ฉันจะทราบได้อย่างไรว่าผลิตภัณฑ์กำลังมีส่วนลดหรือไม่

ฉันใช้รหัสนี้

if($product->getFinalPrice() < $product->getPrice()){
   //had a discount
}

แต่มันไม่ทำงาน


ฉันคิดว่าคุณต้องการราคาพิเศษ?
Keyul Shah

คำตอบ:


13

รหัสที่คุณพูดถึงใช้งานได้สำหรับฉันเสมอ $productฉันคิดว่ามันขึ้นอยู่กับว่าคุณจะได้รับ
ถ้าคุณทำสิ่งนี้มันควรจะทำงาน

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

หากคุณได้รับผลิตภัณฑ์จากคอลเล็กชันให้รับคอลเล็กชันดังต่อไปนี้:

$collection = Mage::getModel('catalog/product')->getCollection()
            ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
            ->addMinimalPrice()
            ->addFinalPrice()
            ->addTaxPercents() //additional filters go here;

ตอนนี้คุณสามารถวนรอบคอลเลกชันและทำการตรวจสอบของคุณ

foreach ($collection as $product){
    if($product->getFinalPrice() < $product->getPrice()){
       //had a discount
    }
}

วิธีนี้ใช้ในการพิจารณาส่วนลดจากราคาพิเศษและกฎราคาแคตตาล็อก

ข้อมูลเพิ่มเติม. หัวข้อสั้น ๆ แต่มีประโยชน์:นี่คือวิธีที่คุณจะได้รับรายชื่อผลิตภัณฑ์ที่มีส่วนลด

$collection = Mage::getModel('catalog/product')->getCollection()
            ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
            ->addMinimalPrice()
            ->addFinalPrice()
            ->addTaxPercents()
            ->addUrlRewrite();

Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);

$collection->getSelect()->where("`price_index`.price !=price_index.min_price");

5

ผมเชื่อว่าคุณกำลังมองหาและ$product->getPrice()$product->getSpecialPrice()


2
อย่างไรก็ตามสิ่งนี้จะไม่ตรวจพบว่าผลิตภัณฑ์มีส่วนลดผ่านกฎราคาแคตตาล็อก
ProxiBlue
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.