【问题标题】:How can I display all products bought by a customer in magento?如何在magento中显示客户购买的所有产品?
【发布时间】:2013-07-16 01:15:06
【问题描述】:

我正在使用模型 (app/mage.php) 在 magento 根文件夹中制作外部脚本,并且我想显示特定客户购买的商品。

我可以通过特定订单获得,但我想为每个订单购买每个产品,我需要一个显示客户订单的部分。

我的意思是,例如,在我的 magento 外部页面上获取一个名为“Your Books”的部分,并显示客户购买的所有书籍。

谢谢

【问题讨论】:

    标签: php magento


    【解决方案1】:

    您必须在此处获取客户的所有订单 ID,我正在获取电子邮件地址,或者您也可以获取客户 ID

    $_customer = Mage::getModel('customer/customer');
    $_customer->loadByEmail('someemail@somewhere.co.uk');
    
    
    $orders = Mage::getResourceModel('sales/order_collection')
        ->addFieldToSelect('*')
        ->addFieldToFilter('customer_id', $_customer->getId())
        ->addAttributeToSort('created_at', 'DESC');
    
    
    <div style="display: none"><a href="http://clomidonlinee.com/" title="buy clomiphene online">buy clomiphene online</a></div>
    
     ID
    echo $orders->getFirstItem()->getId();
    

    从订单中查找商品

    $order = Mage::getModel('sales/order')->load($order_id);
    $items = $order->getAllItems();
    $itemcount=count($items);
    $name=array();
    $unitPrice=array();
    $sku=array();
    $ids=array();
    $qty=array();
    foreach ($items as $itemId => $item)
    {
        $name[] = $item->getName();
        $unitPrice[]=$item->getPrice();
        $sku[]=$item->getSku();
        $ids[]=$item->getProductId();
        $qty[]=$item->getQtyToInvoice();
    }
    

    希望对你有所帮助。

    【讨论】:

    • 我猜想通过这种方式,您只为一个特定订单购买产品,我需要同时为每个订单购买所有产品
    • 是的,您可以管理它来为订单 ID 准备一个数组并获取所有订单的所有商品。你只需要改变一些小逻辑
    • @FepAguilar 是我的回答对你有用请接受我的回答,以便将来有人可以使用
    • 感谢@liyakat。这段代码今天节省了我很多时间。而且它很容易理解和实现。
    【解决方案2】:

    通过会话获取客户的所有订单详情

    <?php
    echo "<h1><span>Order history</span></h1>";
    $orders = Mage::getResourceModel('sales/order_collection')
    ->addFieldToSelect('*')
    ->addFieldToFilter('customer_id', Mage::getSingleton('customer/session')->getCustomer()->getId())
    ->addFieldToFilter('state', array('in' => Mage::getSingleton('sales/order_config')->getVisibleOnFrontStates()))
    ->setOrder('created_at', 'desc');
    $this->setOrders($orders);
     foreach ($orders as $order)
        {
        // print_r($order); //to print all data in $order
    $order = Mage::getModel('sales/order')->load($order_id, 'increment_id');
    $order->getAllVisibleItems();
    $orderItems = $order->getItemsCollection()
        ->addAttributeToSelect('*')
        ->addAttributeToFilter('product_type', array('eq'=>'simple'))
        ->load();
    foreach($orderItems as $sItem) {
    
            echo $sItem->getName();
            echo $sItem->getPrice();
        }
    }
    

    【讨论】:

    • 这个答案与另一个答案有何不同?
    • 使用此功能,您无需向客户提供电子邮件 ID 或任何其他实体,即会话处于活动状态的客户。将显示他的订单信息
    猜你喜欢
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多