我在页面上显示我在Magento商店中可用的产品.如果我继续将订单添加到购物车并在最后购买,我想获得订单的当前ID.
由于每个订单的订单不存在且多个人可以同时购买,我将不得不计算订单ID,同时确保它不会与另一个同时订购另一个订单的人发生冲突.
另一件事是我提到这是在产品列表页面(/../../../../../template/catalog/product/list.phtml)所以每个说"订单"(我之前提到的这个)不存在.
如何以最佳方式获得未使用的订单ID?
在Magento中,在购物车上创建时,会创建一个引用对象,对于您添加的每个项目,都有一个quote_item对象.
您可以从会话中获取当前报价ID
$session = Mage::getSingleton('checkout/session');
$quote_id = $session->getQuoteId();
Run Code Online (Sandbox Code Playgroud)
然后加载sales_quote对象
$item_quote = Mage::getModel('sales/quote')->load($quote_id);
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以轻松访问与报价表相关的任何属性.
对于购物车中的商品,您可以访问
$items_in_cart = $quote->getAllItems();
Run Code Online (Sandbox Code Playgroud)
然后循环运行它
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 />';
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!有关更多参考,请参阅 http://inchoo.net/ecommerce/magento/magento-quote-order-invoice-workflow/