2014-05-13 49 views
0

我遇到了這個問題。儘管我得到了解決方案,但我仍然想知道它爲什麼會這樣。 我有一個桌面版和移動版的Magento網站。 在類別頁面上,它顯示您已知的產品清單。而現在,有一個問題產品特別價格不顯示在Magento

我得到的每個產品的結構是這樣的:

Product Name 
Image 
Regular Price 
Special Price 

在移動版是確定的,但是桌面版本沒有特別價格。 我曾經是代碼

"$product->getSpecialPrice()" 

得到它但不工作。 這些版本與前端不同,後端的所有功能都是一樣的。具體來說,產品數據是通過相同的功能檢索

getLoadedProductCollection() 

Magento Core產品列表塊。所以,我真的不明白爲什麼我可以通過在手機版中調用$product->getSpecialPrice()而不是在桌面上獲得特殊價格的價值。

請幫助我,謝謝。

+0

這個問題似乎是離題,因爲它屬於[magento.se] –

+0

這是真的屬於Magento?如果它導致2種不同的產品之間是可以的,但是這裏是唯一一種產品的2種不同視圖之間。請告訴我更多,邁克。非常感謝。我真的很想知道。 – JoeNguyen

+0

函數'$ product-> getSpecialPrice()'獨立於Mobile/Desktop版本。 – Slimshadddyyy

回答

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 />'; 
    } 
} 
?> 
+0

嗨savan,感謝您的編碼,但我想知道它之所以在移動版和桌面版之間存在差異的原因?它不會覆蓋任何後端代碼。因此,無需再調用另一個函數來獲得具有特殊價格的產品的集合。 – JoeNguyen

0

只需使用getFinalPrice而不是getSpecialPrice。 :D