获得指定customer 购买的产品数据

本文介绍了一种使用Magento框架从数据库中检索指定客户的已完成订单产品信息的方法。特别关注于如何通过SQL查询来获取这些数据,包括产品名称及其ID,并且特别处理了可配置产品的名称获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获得指定customer 购买的产品信息,如果是configurable的,则取configurable的名字。


$orderedProductsForCustomerData = array();

$orderTable =Mage::getSingleton('core/resource')->getTableName('sales/order');
$orderItemTable = Mage::getSingleton('core/resource')->getTableName('sales/order_item');

$orderedProductsForCustomers = Mage::getModel('sales/order_item')->getCollection();
$orderedProductsForCustomers->getSelect()->reset('columns');
$orderedProductsForCustomers->getSelect()->columns('name');
$orderedProductsForCustomers->getSelect()->columns('item_id');
$orderedProductsForCustomers->getSelect()->columns('parent_item_id');

$orderedProductsForCustomers->getSelect()->joinInner(
array('orders'=>$orderTable),
'main_table.order_id = orders.entity_id',
array('product_id'=>'main_table.product_id')
);

$orderedProductsForCustomers->getSelect()->joinLeft(
array('self_table'=>$orderItemTable),
'main_table.parent_item_id = self_table.item_id',
array()
);

$orderedProductsForCustomers->getSelect()->where('orders.customer_id=?',$customerId);
$orderedProductsForCustomers->getSelect()->where('orders.state=?','complete');
$orderedProductsForCustomers->getSelect()->where('main_table.product_id not in (?)',$reviewedProductIds);
$orderedProductsForCustomers->getSelect()->where('main_table.parent_item_id is null');
$orderedProductsForCustomers->getSelect()->distinct();

Mage::log($orderedProductsForCustomers->getSelect().'');
try{
$orderedProductsForCustomerData = $conn->fetchAll($orderedProductsForCustomers->getSelect());
}
catch (Exception $e){
Mage::logException($e);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值