我发现了一个主题,但它没有解决我的问题: Get customer details in backend admin panel order
我写了一个Observer catalog_product_get_final_price 来改变产品加载到购物车时的价格。
<events>
<catalog_product_get_final_price>
<observers>
<Soft3S_Pricelistview_Model_Observer>
<type>singleton</type>
<class>Soft3S_Pricelistview_Model_Observer</class>
<method>get_final_price</method>
</Soft3S_Pricelistview_Model_Observer>
</observers>
</catalog_product_get_final_price>
</events>
适用于前端页面。 我还希望它在管理员创建销售订单时适用于后端页面 在Observer.php中,我尝试获取客户信息:
public function get_final_price($observer)
{
{
$customer = Mage::getSingleton('customer/session')->getCustomer();
$customer_id=$customer->getEntityId();
$customer_Firstname = Mage::getSingleton('customer/session')->getCustomer()->getFirstname();
//var_dump($customer);
// var_dump($customer_erpcode);
$discount = 0.3;
$event = $observer->getEvent();
$product = $event->getProduct();
$product->original_price = $product->getPrice();
//$final_price = ($product->original_price ) * (1 – $discount);
Mage::log('Log order number : '.print_r(Mage::getSingleton('core/session'),true).' product code'.$product->getData('sku').' ' , null, 'Trace unit price after load.log');
print ($customer_id);
$product->setFinalPrice(300000);
return $this;
}
}
打印出空值。 请帮我解决这个问题。
答案 0 :(得分:1)
试试这段代码。它在我的工作结束。
$sessionquoteId = Mage::getSingleton('adminhtml/session_quote')->getQuote()->getId();
$sessionCustomerId = Mage::getModel('sales/quote')->loadByIdWithoutStore($sessionquoteId)->getCustomerId();
//$customerInfo = Mage::getModel('customer/customer')->load($sessionCustomerId);
希望这对你有所帮助。