我需要帮助从magento获取订单详细信息

时间:2014-01-07 19:01:57

标签: php magento magento-1.7

我正在尝试将转化跟踪添加到我的magento商店。我知道我需要添加以下代码并对其进行自定义,以便magento与CA共享信息。

<script type="text/javascript">
var _caq = _caq || [];
var products = [];
products.push({Sku: 'ProductID', UnitPrice: 'item price here', Quantity: 'quantity here'});
products.push({Sku: 'ProductID', UnitPrice: 'item price here', Quantity: 'quantity here'});
_caq.push(["Order", {OrderId: 'OrderID', Revenue: 'oVal', CurrencyCode: '3 letter currency code here', Products: products}]);

到目前为止,我一直在尝试使用以下代码从订单中获取数据:

<?php $orderId = $this->getOrderId();
$order = Mage::getModel('sales/order')->load($orderId);
$items = $order->getAllItems();
$_grand = $order->getGrandTotal();
$custname = $order->getCustomerName();
$itemcount=count($items);
foreach ($items as $itemId => $item)
{
    $sObject2->Item_name__c = $item->getName();
    $sObject2->Unit_price__c = $item->getPrice();
    $sObject2->Sku__c = $item->getSku();
    $sObject2->Quantity__c = $item->getQtyToInvoice();
}

echo $_grand;
echo $custname;
?>

当我尝试回显客户名称和总计时,我得到一个空白的总数和来宾的客户名称。即使我将$ orderId作为订单的一个订单,也会发生这种情况。

2 个答案:

答案 0 :(得分:1)

当您传递订单号时,您是否传递了entity_id或increment_id?通常,您在admin中看到的数字将是increment_id。查看浏览器的地址栏以选择entity_id。

$order = Mage::getModel('sales/order')->load($orderId); // $ orderId应该是entity_id。

尝试这种检索订单的方法(在成功页面上工作):

$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
$order = Mage::getModel("sales/order")->loadByIncrementId($orderId);

此外,请务必调用正确的方法来获得总计:

$_grand = $order->getGrandTotal(); //获取商店货币的总计。

$_grand = $order->getBaseGrandTotal(); //获取基础货币的总计。

对于您的跟踪目的,使用基础货币可能更有用。如果您只有一个商店,或使用一种货币,它可能不会有任何区别。但是,如果你使用多种货币,你需要做到这一点。

答案 1 :(得分:-1)

我正在使用这些功能请看一下:

function get_all_orders($fromdate,$todate)
{
$getsales = mysql_query("SELECT * FROM `sales_flat_order` WHERE `created_at`>='$fromdate' AND `created_at`<='$todate'");
if(mysql_num_rows($getsales)> 0)
return $getsales;
else
return FALSE;
}

function num_items_under_order($order_entity_id)
{
$getorder_num = mysql_query("SELECT * FROM `sales_flat_order_item` WHERE `order_id`='$order_entity_id'");
if(mysql_num_rows($getorder_num) == 1)
return TRUE;
elseif(mysql_num_rows($getorder_num) > 1 )
return FALSE;
}

function get_order_item_details($order_entity_id)
{
$getsales = mysql_query("SELECT * FROM `sales_flat_order_item` WHERE `order_id`='$order_entity_id'");
if(mysql_num_rows($getsales) == 1)
{
return mysql_fetch_object($getsales);
}
elseif(mysql_num_rows($getsales) > 1)
{
return $getsales;
}
else
return FALSE;
}

function get_all_orders($fromdate,$todate) { $getsales = mysql_query("SELECT * FROM `sales_flat_order` WHERE `created_at`>='$fromdate' AND `created_at`<='$todate'"); if(mysql_num_rows($getsales)> 0) return $getsales; else return FALSE; } function num_items_under_order($order_entity_id) { $getorder_num = mysql_query("SELECT * FROM `sales_flat_order_item` WHERE `order_id`='$order_entity_id'"); if(mysql_num_rows($getorder_num) == 1) return TRUE; elseif(mysql_num_rows($getorder_num) > 1 ) return FALSE; } function get_order_item_details($order_entity_id) { $getsales = mysql_query("SELECT * FROM `sales_flat_order_item` WHERE `order_id`='$order_entity_id'"); if(mysql_num_rows($getsales) == 1) { return mysql_fetch_object($getsales); } elseif(mysql_num_rows($getsales) > 1) { return $getsales; } else return FALSE; }

由于