我目前正在尝试在提交订单并使用观察者捕获 checkout_submit_all_after 事件后取回客户数据。如果我通过前端下订单,观察者内部的
Mage::getSingleton('customer/session')
和 Mage::getSingleton('checkout/session')
ran 会给我提供大量信息,但是当我通过 SOAP 下订单时,这些方法不会返回任何内容。我也尝试了Mage::helper('customer')->getCustomer()
,但也没有返回任何内容。还有其他方法可以获取上次提交订单的数据吗?具体来说,我需要会话中的客户和最后一个订单 id ala
Mage::getSingleton('checkout/session')->getLastRealOrderId()
。
<complexType name="shoppingCartCustomerAddressEntity">
<all>
<element name="mode" type="xsd:string" minOccurs="0"/>
<element name="address_id" type="xsd:string" minOccurs="0"/>
<element name="firstname" type="xsd:string" minOccurs="0"/>
<element name="lastname" type="xsd:string" minOccurs="0"/>
<element name="company" type="xsd:string" minOccurs="0"/>
<element name="street" type="xsd:string" minOccurs="0"/>
<element name="city" type="xsd:string" minOccurs="0"/>
<element name="region" type="xsd:string" minOccurs="0"/>
<element name="region_id" type="xsd:string" minOccurs="0"/>
<element name="postcode" type="xsd:string" minOccurs="0"/>
<element name="country_id" type="xsd:string" minOccurs="0"/>
<element name="telephone" type="xsd:string" minOccurs="0"/>
<element name="fax" type="xsd:string" minOccurs="0"/>
<element name="is_default_billing" type="xsd:int" minOccurs="0"/>
<element name="is_default_shipping" type="xsd:int" minOccurs="0"/>
</all>
</complexType>
您看到其中有一个“电子邮件”字段吗?我当然不会! 所以现在我必须重写这个东西才能使其发挥作用。说真的 Magento,wtf?