2012-11-21 181 views
1

Im在显示我在Magento商店中可用的产品的页面上。如果我继续将订单添加到购物车并在最后购买,我想要获得订单的当前ID。如何获得Magento产品页面上的当前订单ID?

由于单位订单不存在且一个以上的人可以同时购买,所以我将不得不计算订单ID,同时确保它不会与另一个订单发生冲突时间。

另一件事就像我提到,这是在产品列表页面(/../../../../../template/catalog/product/list.phtml)所以一个“订单”每说(我之前提到过)不存在。

如何获得未使用的订单ID的最佳方式?

+0

当您将产品添加到购物车时,您会得到一个报价编号。您在开始结账流程后收到订单编号(约付款信息) –

+0

这是每个产品或购物车的报价编号?这对购物车来说是完美的。 – riahc3

+0

报价是存储在您的购物车会话..请参阅http://stackoverflow.com/questions/4625688/getquote-function-magento –

回答

0

看看here来创建一个订单,你可以创建一个订单,当你保存你的新订单时,获得订单的下一个ID。

+0

我真的不需要创建一个新的,因为Magento自动执行此操作。我需要一些如何识别我的购物车/订单是唯一的。 – riahc3

7

在Magento中,在购物车上创建报价对象并为每个添加的商品添加一个quote_item对象。

您可以从会议

得到当前报价ID
$session  = Mage::getSingleton('checkout/session'); 
$quote_id  = $session->getQuoteId(); 

而且随后加载sales_quote对象

$item_quote  = Mage::getModel('sales/quote')->load($quote_id); 

通过这个,你可以很容易地访问相关的报价表中的任何属性。

对于车中的项目可以通过

$items_in_cart  = $quote->getAllItems(); 

访问并运行此在一个循环

foreach ($items_in_cart as $item) { 

    echo 'ID: '.$item->getProductId().'<br />'; 
    echo 'Name: '.$item->getName().'<br />'; 
    echo 'Sku: '.$item->getSku().'<br />'; 
    echo 'Quantity: '.$item->getQty().'<br />'; 
    echo 'Price: '.$item->getPrice().'<br />'; 

} 

希望这有助于! 有关更多参考,请参阅此处 http://inchoo.net/ecommerce/magento/magento-quote-order-invoice-workflow/

+0

该解决方案看起来很有趣,我将代码添加到了我的phtml页面: '<?php $ _productCollection = $ this-> getLoadedProductCollection(); $ _helper = $ this-> helper('catalog/output'); $ session = Mage :: getSingleton('checkout/session'); $ quote_id = $ session-> getQuoteId(); $ item_quote = Mage :: getModel('sales/quote') - > load($ quote_id);' 然后我尝试打印出$ item_quote,但显示空白。所以它似乎不能正常工作...... ?> – riahc3

+0

您的购物车中是否有商品? – huzefam

+0

尝试回显echo $ quoteId = Mage :: getSingleton('checkout/session') - > getQuoteId();它打印什么? – huzefam

相关问题