我正在编写自定义模块,用户可以输入每件产品的运费。
我在所有名为'initial_shipping_charge'的产品中添加了自定义变量。在我的获取运费率函数中,我试图遍历我的购物篮中的产品并获取变量(这些将被添加到总体)。
var_dump($ shipping_price_initial); line返回NULL而不是它包含的变量 - 任何想法为什么这不起作用?
提前致谢。
protected function _getStandardShippingRate()
{
$rate = Mage::getModel('shipping/rate_result_method');
/* @var $rate Mage_Shipping_Model_Rate_Result_Method */
$rate->setCarrier($this->_code);
/**
* getConfigData(config_key) returns the configuration value for the
* carriers/[carrier_code]/[config_key]
*/
$shipping_price_value = rand(10 , 50);
//Create a basket session object
$session = Mage::getSingleton('checkout/session');
foreach ($session->getQuote()->getAllItems() as $item) {
$item_id = $item->getId();
$_basketProduct = Mage::getModel('catalog/product')->load($item_id);
$shipping_price_initial = $_basketProduct->getAttribute('initial_shipping_charge');
var_dump($shipping_price_initial);
}
$rate->setCarrierTitle($this->getConfigData('title'));
$rate->setMethod('standand');
$rate->setMethodTitle('Standard');
$rate->setPrice($shipping_price_value);
$rate->setCost(0);
return $rate;
}
答案 0 :(得分:1)
$_basketProduct->getAttribute('initial_shipping_charge');
应该是
$_basketProduct->getData('initial_shipping_charge');
或
$_basketProduct->getInitialShippingCharge();
但是我想你甚至没有产品导致你获取报价项ID并尝试加载具有该ID的产品....你需要:
$item->getProduct()
P.S:
产品>& - 经济通GT;顺序
有一个转换过程,查找"引用订单转换"或"产品引用项目转换"