1

我添加了一个简单的代码来跟踪网站上的每次购买。所有产品都有基于类别的不同类型的规则,以减去产品价格的预定义百分比。

但是,当购物车中有可配置的产品时,它会向我显示两种产品、原始产品价格和订单详细信息中产品详细信息的所选选项的价格。如果我的购物车中有一支口红,并且我选择的颜色是“红色”,那么口红的价格就会发生变化。但它在订单详细信息中向我显示原始口红价格以及红色口红价格。

我已经在订单成功页面上添加了代码。

$orders = Mage::getModel('sales/order')->getCollection()
     ->setOrder('created_at','DESC')
     ->setPageSize(1)
     ->setCurPage(1);
$orderId = $orders->getFirstItem()->getEntityId();

$order = Mage::getModel('sales/order')->load($orderId);
$items = $order->getAllItems();

foreach ($items as $itemId => $item)
{
            $pid = $item->getProductId();
        $product = Mage::getModel('catalog/product')->load($pid);
        $_finalPrice = $product->getFinalPrice();

        echo $price = Mage::helper('core')->currency($_finalPrice,true,false);
                // Some Code
}

我也试过

$tempmain = Mage::getModel('sales/order')->load(Mage::getSingleton('checkout/session')->getLastOrderId());
    $temp = $tempmain->getAllItems();

    $total = $tempmain->getGrandTotal();
    foreach ($temp as $itemId => $item)
    {
              $pid = $item->getProductId();
            $product = Mage::getModel('catalog/product')->load($pid);
            $_finalPrice = $product->getFinalPrice();

            echo $price = Mage::helper('core')->currency($_finalPrice,true,false);
                    // Some Code
        }

结果相同。

如何在订单详情中仅获取“RED”口红价格?

提前致谢。

这是所有可用口红及其值的详细信息: 在此处输入图像描述 当我在前端选择“Tango”作为口红的颜色时: 在此处输入图像描述 我在成功页面上获得了两种产品的价格: 在此处输入图像描述 这是订单详细信息屏幕截图: 在此处输入图像描述

4

2 回答 2

2

在前台,当客户在他的购物车中添加一个可配置的产品并订购它时,您将看到(在数据库中)2 行(2 个 quote_items 和 2 个 order_item)。

这很正常,因为magento需要存储可配置产品和与用户选择对应的链接简单产品(并链接到主可配置产品)。

在显示订单详细信息时,Magento 通过检查产品是否具有父 ID 来处理这种差异。你可以做同样的事情来忽略一些 order_item :

foreach($items as $item){
    if ($item->getParentProductId() {
         continue; // ignoring simple product associated to master order item (configurable)
    }
    // your code

}
于 2012-11-26T23:13:47.587 回答
0

我不是 100% 确定你要做什么,但如果你在订单成功页面上,那么这是检索当前订单信息的方法(获取数据库的最后一个订单可能并不总是当前订单如果两个用户相隔毫秒购买成功页面)

尝试将此添加到 Success.phtml

$order = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId());
$items = $order->getItemsCollection();


foreach($items as $item){
  if ($item->getParentItem()) {
       continue;
  }
  echo Mage::helper('core')->currency($item->getPrice(),true,false); 
}
于 2012-11-26T13:08:12.800 回答