【发布时间】:2014-07-15 12:18:13
【问题描述】:
我使用 Magento 市场细分插件,我试图不仅对订单状态为“已完成”而且“已完成”和“处理中”的用户进行细分。
根据客户进行细分的原始代码部分如下:
if ($this->getAttribute() == 'ordered') {
$customersOrders = Mage::helper('marketsuite/customer')->getOrderCollectionByCustomerIds($_customerIds);
$customersOrders->addFieldToFilter('state', Mage_Sales_Model_Order::STATE_COMPLETE);
$_arrayOrderIdCustomerId = $customersOrders->getConnection()->fetchPairs($customersOrders->getSelect());
$_arrayOrderIdTotal = $this->_getValidatedTotalOrderedCount(array_keys($_arrayOrderIdCustomerId));
$_validatedArrayOrderIdCustomerId = array_intersect_key($_arrayOrderIdCustomerId, $_arrayOrderIdTotal);
根据订单进行细分的另一部分:
public function validateOrderCollection(Zend_Db_Select $select)
{
if ($this->getAttribute() == 'ordered') {
$select
->where('state = ?', Mage_Sales_Model_Order::STATE_COMPLETE)
;
$_orderIds = Mage::helper('marketsuite/order')->getAllIds($select);
$orderTotals = $this->_getValidatedTotalOrderedCount($_orderIds);
$validatedOrders = array();
foreach ($orderTotals as $orderId => $totalOrderedCount) {
if ($this->validateAttribute($totalOrderedCount)) {
array_push($validatedOrders, $orderId);
}
}
return $validatedOrders;
}
return array();
}
问题:如何在这两种情况下同时包含“已完成”和“处理中”订单。我知道这与$customersOrders->addFieldToFilter('state', Mage_Sales_Model_Order::STATE_COMPLETE); 这部分有关,但我不确定如何实现。
非常感谢您的帮助。
【问题讨论】: