2015-08-27 170 views
1

我從themeforest購買了一個模板,並且我注意到熱銷標籤頁中的條目顯示在special_to_date屬性設置前一天(同時一般產品列表是正確的,並展示了包括活動的最後一天在內的銷售產品)。獲取magento 1.9.x的銷售產品

因此,如果我們從8月25日到27日設置了一項活動,熱銷標籤是空的(今天),但產品仍然在通用清單上出售(他們應該)。

所以,我看着模板代碼,並發現這一點:

$todayDate = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT); 
$collection = Mage::getResourceModel('catalog/product_collection') 
    ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes()) 
    ->addAttributeToFilter('special_from_date', array('or'=> array(
     0 => array('date' => true, 'to' => $todayDate), 
     1 => array('is' => new Zend_Db_Expr('null'))) 
    ), 'left') 
    ->addAttributeToFilter('special_to_date', array('or'=> array(
     0 => array('date' => true, 'from' => $todayDate), 
     1 => array('is' => new Zend_Db_Expr('null'))) 
    ), 'left') 
    ->addAttributeToFilter(
     array(
      array('attribute' => 'special_from_date', 'is'=>new Zend_Db_Expr('not null')), 
      array('attribute' => 'special_to_date', 'is'=>new Zend_Db_Expr('not null')) 
      ) 
    ) 
    ->addAttributeToSort('price', 'asc') 
    ->addTaxPercents() 
    ->addStoreFilter(); 

現在,我沒那麼好與Magento的程序員的..我真的不明白這些addAttributeToFilter但我最好的辦法是,這是獨特的(關於該活動結束日期):

->addAttributeToFilter('special_to_date', array('or'=> array(
    0 => array('date' => true, 'from' => $todayDate), 
    1 => array('is' => new Zend_Db_Expr('null'))) 
), 'left') 

所以,如果你可以在此提供一些線索,請做。我只是用我的小知識猜測這將是不收集產品last dayspecial_to_date的問題。

回答

1

試試這個。 替換此行

$todayDate = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT); 

$todayDate = Mage::app()->getLocale()->date()->toString(Varien_Date::DATE_INTERNAL_FORMAT);