1

如何从 sales/order_item 集合中获取客户组 ID?我意识到我可能需要遍历销售树,但不知道该怎么做?

提前致谢!

编辑

我意识到我对这个问题很模糊。我需要做的是获得产品的总销售额,但仅限于由某个 customer_group_id 购买的地方。我需要将订单表加入到 order_items 表中以检查 customer_group_id,但这对我不起作用。这就是我所拥有的:

$collection = Mage::getModel('sales/order_item')->getCollection()
    ->addExpressionFieldToSelect('ordered','SUM({{qty_ordered}})', array('qty_ordered'=>'qty_ordered'))
    ->addAttributeToFilter('product_id', '123')
    ->addAttributeToFilter('created_at', array(
                       'from' => reverse_date($_REQUEST['startdate']),
                       'to' => reverse_date($_REQUEST['enddate']),
                     ))
    ->join(
        array('orders_table' => $collection->getTable('sales/order')),
        'orders_table.entity_id = main_table.order_id
         AND orders_table.customer_group_id = 1',
        array('customer_group_id'=>'value')
     );

我得到的错误是:

'Can't retrieve entity config: sales/sales_flat_order'
4

3 回答 3

2

如果您拥有的集合是类型,Mage_Sales_Model_Resource_Order_Item_Collection那么您可以执行以下操作。假设您的收藏是$orderItems.

$order = $orderItems->getSalesOrder();
$customerGroupId = $order->getCustomerGroupId();
于 2013-11-10T20:07:25.220 回答
0

而不是使用,$collection->getTable('sales/order')

使用,'sales_flat_order'.

所以你的路线是,

array('orders_table' => 'sales_flat_order'),

于 2013-11-11T12:47:48.177 回答
0

我已经让它工作了。我在查询的初始“构建”之后添加连接,如下所示:

$collection = Mage::getModel('sales/order_item')->getCollection()
    ->addExpressionFieldToSelect('ordered','SUM({{qty_ordered}})' , array('qty_ordered'=>'qty_ordered'))
    ->addAttributeToFilter('main_table.product_id', $product->getId())
    ->addAttributeToFilter('main_table.created_at', array(
                       'from' => reverse_date($_REQUEST['startdate']),
                       'to' => reverse_date($_REQUEST['enddate']),
                     ));


  $collection->getSelect()->join(
        array('orders_table' => $tableName),
        'orders_table.entity_id = main_table.order_id
         AND (orders_table.customer_group_id = 1 OR orders_table.customer_group_id = 0)'
     );

我不确定为什么它以这种方式而不是另一种方式工作,但是嘿嗬!

于 2013-11-11T12:04:25.187 回答