产品特价不显示在 Magento
Posted
技术标签:
【中文标题】产品特价不显示在 Magento【英文标题】:Product Special Price does not display in Magento 【发布时间】:2014-06-30 21:09:12 【问题描述】:我遇到了这个问题。虽然我得到了解决方案,但我仍然想知道它为什么会抓住它。 我有一个桌面版和移动版的 Magento 网站。 在类别页面上,它显示了您所知道的产品列表。现在,有一个问题
我得到每个产品的结构如下:
Product Name
Image
Regular Price
Special Price
手机版可以,但桌面版没有特价。 我曾经编码
"$product->getSpecialPrice()"
得到它但不工作。 这些版本只是前端的不同,后端的所有功能都是一样的。没错,商品数据是由同一个函数检索的
getLoadedProductCollection()
Magento Core 的产品列表块。所以,我真的不明白为什么我可以在移动版中通过拨打$product->getSpecialPrice()
获得特价的价值,而在桌面版中却不行。
请帮帮我,谢谢。
【问题讨论】:
这个问题似乎是题外话,因为它属于Magento 这真的属于 Magento 吗?如果它导致 2 个不同的产品之间是可以的,但这里是唯一一个产品的 2 个不同视图之间。请告诉我更多,迈克。非常感谢。我真的很想知道。 函数$product->getSpecialPrice()
独立于移动/桌面版本。
@Slimshadddyyy:是的,我想是的,但我不知道它在哪里。我追踪了代码,但无论是移动设备还是桌面设备,它们都是相同的。
【参考方案1】:
<?php
include_once 'app/Mage.php';
Mage::app();
Mage::getSingleton('core/session', array('name' => 'frontend'));
$_productCollection = Mage::getResourceModel('catalogsearch/advanced_collection')
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
->addMinimalPrice()
->addStoreFilter();
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($_productCollection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($_productCollection);
$todayDate = date('m/d/y');
$tomorrow = mktime(0, 0, 0, date('m'), date('d')+1, date('y'));
$tomorrowDate = date('m/d/y', $tomorrow);
$_productCollection->addAttributeToFilter('special_from_date', array('date' => true, 'to' => $todayDate))
->addAttributeToFilter('special_to_date', array('or'=> array(
0 => array('date' => true, 'from' => $tomorrowDate),
1 => array('is' => new Zend_Db_Expr('null')))
), 'left');
foreach($_productCollection as $_product)
if($_product->getData('special_price')!=null)
echo '<img src="'.$this->helper('catalog/image')->init($_product, 'thumbnail')->resize(75).'" /><br />';
echo $_product->getName().'<br />';
$specialPrice = $_product->getData('special_price');
$orignalPrice = $_product->getData('price');
echo number_format($specialPrice, 2)."<br/>";
echo number_format($orignalPrice, 2)."<br/>";
echo '<a href="http://www.yourwebsite.com/magento/checkout/cart/add?product='.$_product->getId().'&qty;=1">Add To Cart</a><br />';
?>
【讨论】:
嗨,savan,感谢您的编码,但我想知道移动版和桌面版不同的原因?它不会覆盖任何后端代码。所以这里不需要调用另一个函数来获取特价产品的集合。【参考方案2】:只需使用 getFinalPrice 而不是 getSpecialPrice。 :D
【讨论】:
以上是关于产品特价不显示在 Magento的主要内容,如果未能解决你的问题,请参考以下文章
magento后台设置好产品分类及添加产品后前台没有显示出来,请教是怎么回事