2015-08-27 165 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);