Magento - 如何获得订单的订单ID和2个字母的州名缩写

时间:2015-06-16 16:31:03

标签: php magento checkout magento-1.9

所以我必须将变量发送到联盟网站,他们需要订单ID,价格,2个字母的状态abbriviation和国家/地区缩写。我已经得到了价格和国家。但我仍然需要订单ID和2个字母的州名缩写。我现在的代码如下:

$order = Mage::getSingleton('checkout/session')->getLastRealOrderId();//doesnt work
$amount = Mage::getModel('checkout/cart')->getQuote()->getSubtotal();//works
$stateId = Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->getData('region');//Gives full name of State
$countryId = Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->getData('country_id');//works

echo " display: $order $amount $stateId $countryId";//prints out the variables

我一直在查看订单ID上的所有代码,但没有任何回复。所以我想知道我做错了什么/为什么它不打印任何东西。

第二件事是,我想知道是否有一种简单的方法来获得2级州的缩写?我也尝试了'region_id'而不是'region',但它只给了我数字代码(不是字母代码)。

非常感谢对这两个问题的答案。

2 个答案:

答案 0 :(得分:2)

加载订单后,您可以调用'region_code'或getRegionCode()。我正在使用magento 1.9。不确定它是否在以前的版本中可用。

答案 1 :(得分:0)

最好的方法是通过success.phtml文件发送此信息,因为只有在该文件中您才能获得该信息,并避免发送未完成订单的订单ID(PayPal交易失败等)。

1)根据您的结帐方式,您可能会或可能不会在您的数据中包含州代码。

所以,如果你通过

获得州名
$stateId = Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->getData('region');

然后添加此代码:

$states = Mage::getModel('directory/country')->load('US')->getRegions();//get list of states 
    foreach($states as $state){
        if($state[default_name] == $stateId){ //check if the names match
            echo $state[code]; //get code
        } 
    }   

2)成功页面

$orderId = $this->getOrderId();

应该有用。