0

SOAP APIを使用して、現在ログインしている顧客の電子メールアドレスを取得することは可能ですか?
CustomerIDはありません。

これは、ExpressionEngineのインストールから呼び出します。

4

1 に答える 1

0

/code/core/Mage/Customer/Model/Customer/Api.phpのこの変更により、現在ログインしている顧客とそのすべての情報が返されます。PHP 5.2.14のインストールにSOAPがインストールされていないため、現在テストできません。

public function info($customerId, $attributes = null)
{
    // if we didn't pass a $customerId
    if (!$customerId) {
        // get current customer session
        $custsess = Mage::getSingleton('customer/session');
        // if the customer is logged in
        if($custsess->isLoggedIn() == true) {
            // get their ID to load below
            $customerId = $custsess->getId();
            unset($custsess);
        }
    }

    $customer = Mage::getModel('customer/customer')->load($customerId);

    if (!$customer->getId()) {
        $this->_fault('not_exists');
    }

    if (!is_null($attributes) && !is_array($attributes)) {
        $attributes = array($attributes);
    }

    $result = array();

    foreach ($this->_mapAttributes as $attributeAlias=>$attributeCode) {
        $result[$attributeAlias] = $customer->getData($attributeCode);
    }

    foreach ($this->getAllowedAttributes($customer, $attributes) as $attributeCode=>$attribute) {
        $result[$attributeCode] = $customer->getData($attributeCode);
    }

    return $result;
}
于 2012-07-31T19:23:56.123 に答える