0

Magjaプロジェクトから顧客を作成しようとしていますが、取得したAxisFaultは100「顧客の電子メールが必要です」です。。1.7のドキュメントから必要最小限の正しいパラメータを渡しています。長い話私の障害コードは私が私の電子メールを含めていないと言っていますが、それは明らかにそこにあります(SOに機密情報を入れていないので...あなたは私を信頼する必要があります:))。何か案は?

Stack
org.eclipse.debug.core.DebugException: com.sun.jdi.ClassNotLoadedException: Type has not been loaded occurred while retrieving component type of array.

//soapclient line 208
result = sender.sendReceive(method)  -> method variable

<mag:call xmlns:mag="urn:Magento" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-XML="http://xml.apache.org/xml-soap" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <sessionId>9be685563680f52c1ab5375bec545dfe</sessionId>
    <resourcePath>customer.create</resourcePath>
    <args SOAP-ENC:arrayType="xsd:ur-type[1]" xsi:type="SOAP-ENC:Array">
        <item SOAP-ENC:arrayType="xsd:ur-type[1]" xsi:type="SOAP-ENC:Array">
            <item xsi:type="SOAP-XML:Map">
                <item>
                    <key xsi:type="xsd:string">email</key>
                    <value xsi:type="xsd:string">MY EMAIL</value>
                </item>
                <item>
                    <key xsi:type="xsd:string">password_hash</key>
                    <value xsi:type="xsd:string">4cb9c8a8048fd02294477fcb1a41191a</value>
                </item>
                <item>
                    <key xsi:type="xsd:string">group_id</key>
                    <value xsi:type="xsd:int">1</value>
                </item>
                <item>
                    <key xsi:type="xsd:string">store_id</key>
                    <value xsi:type="xsd:int">1</value>
                </item>
                <item>
                    <key xsi:type="xsd:string">lastname</key>
                    <value xsi:type="xsd:string">LName</value>
                </item>
                <item>
                    <key xsi:type="xsd:string">firstname</key>
                    <value xsi:type="xsd:string">Fname</value>
                </item>
                <item>
                    <key xsi:type="xsd:string">website_id</key>
                    <value xsi:type="xsd:int">1</value>
                </item>
            </item>
        </item>
    </args>
</mag:call>

//magentosoapclient line 215
throw axisFault (axisfault -> message)
<?xml version='1.0' encoding='utf-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
        <SOAP-ENV:Fault>
            <faultcode>100</faultcode>
            <faultstring>Customer email is required</faultstring>
        </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
4

1 に答える 1

1

Magentoの最後のデータをトレース/ログに記録する必要があります。どういうわけか、電子メールはその過程で失われたり、壊れたりしています。顧客の作成のために呼び出されるPHPコードは

#File: app/code/core/Mage/Customer/Model/Customer/Api.php
public function create($customerData)
{
    $customerData = $this->_prepareData($customerData);
    try {
        $customer = Mage::getModel('customer/customer')
            ->setData($customerData)
            ->save();
    } catch (Mage_Core_Exception $e) {
        $this->_fault('data_invalid', $e->getMessage());
    }
    return $customer->getId();
}

そして、SOAPクライアントに返送される特定の例外は次のとおりです。

#File: app/code/core/Mage/Customer/Model/Resource/Customer.php
protected function _beforeSave(Varien_Object $customer)
{
    parent::_beforeSave($customer);

    if (!$customer->getEmail()) {
        throw Mage::exception('Mage_Customer', Mage::helper('customer')->__('Customer email is required'));
    }

クライアントの呼び出しや使用している特定のMagentoシステムについて、Magentoに顧客の電子メールセットがないと思わせる何かがあります。を数回呼び出すとMage::Log、正しい方向に進むはずです。

于 2012-09-28T20:05:31.617 に答える