最后的订单详细信息显示可配置产品的重复值

时间:2012-11-26 12:32:45

标签: magento checkout

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

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

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

$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”唇膏价格?

提前致谢。

这是所有可用唇膏及其值的详细信息: enter image description here 当我选择“Tango”作为前端口红的颜色时: enter image description here 我在成功页面上获得了两种产品的价格: enter image description here 这是订单详情屏幕截图: enter image description here

2 个答案:

答案 0 :(得分: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

}

答案 1 :(得分:0)

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

尝试将此添加到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); 
}