如何动态获取订单详细信息?

时间:2015-06-23 05:36:32

标签: magento search dynamic magento-1.9

我需要通过其ID从Magento检索订单。 如何按ID加载特定订单?

到目前为止,我已经尝试过这个:

<?php

$orderNumber = 145000013;
$order = Mage::getModel('sales/order')->loadByIncrementId($orderNumber);

// get order item collection
$orderItems = $order->getItemsCollection();

foreach ($orderItems as $item){

$product_id = $item->product_id;
$product_sku = $item->sku;
$product_name = $item->getName();
$_product = Mage::getModel('catalog/product')->load($product_id);
$cats = $_product->getCategoryIds();
$category_id = $cats[0]; 
$category = Mage::getModel('catalog/category')->load($category_id);
$category_name = $category->getName();

echo "orderNumber=".$orderNumber."<br/>";
echo "orderValue=".$orderValue."<br/>";
echo "product_name=".$product_name."<br/>";
echo "product_id=".$product_id."<br/>";
echo "product_sku=".$product_sku."<br/>";
echo "category_id=".$category_id."<br/>";
echo "category_name=".$category_name."<br/><br/>";

}
?>

它适用于静态顺序......但我想动态获取。

2 个答案:

答案 0 :(得分:0)

首先,您需要创建一个发布到自定义控制器的表单,其中包含上述代码

然后使用

更新您的代码
$orderNumber = $this->getRequest()->getParams('field_name');;
$order = Mage::getModel('sales/order')->loadByIncrementId($orderNumber);

请参阅此How to get post data variables after submition a form in magento

答案 1 :(得分:-1)

为此,您需要按照以下步骤操作:

  1. 创建表单以搜索订单明细
  2. 您可以在所需位置添加自定义代码。
  3. 然后,您需要在要显示订单详细信息的网址上提交搜索表单。必须有一个与表单提交的URL关联的模板文件。

    在模板文件中,您可以使用上面指定的代码。但是,如果您想使其动态化,则需要使用以下方式获取提交的订单号:

    $orderId = $this->getRequest()->getParam('search_orderid'); //search_orderid is name of search box
    

    搜索表单:

    <form id="orderSerchForm" method="post" action="<?php echo $this->getUrl('sales/order/history') ?>">
      <input type="text" name="search_order" id="search_order" placeholder="Enter Order ID" />
      <input type="submit" />
    </form>