我遇到了这个问题。虽然我得到了解决方案,但我仍然想知道为什么它会抓住它。 我有一个桌面版和移动版的Magento网站。 在类别页面上,它会显示您已知的产品列表。现在,有一个问题
我得到了每个产品的结构:
Product Name
Image
Regular Price
Special Price
在移动版中可以,但桌面版没有特价。 我以前编码
"$product->getSpecialPrice()"
得到它但不起作用。 这些版本的不同之处仅在于前端,后端的所有功能都是相同的。确切地说,产品数据由相同的函数检索
getLoadedProductCollection()
Magento Core产品列表块的。所以,我真的不明白为什么我可以通过在移动版本中调用$product->getSpecialPrice()
而不是在桌面版本中获得特价的价值。
请帮帮我,谢谢。
答案 0 :(得分:0)
<?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).'" alt="'.$_product->getName().'" /><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 />';
}
}
?>
答案 1 :(得分:0)
只需使用getFinalPrice而不是getSpecialPrice。 :d