4

Magento ショップからすべての顧客を取得しようとしていますが、アカウントでニュースレターの購読を有効にした顧客のみです。

問題: この属性をフィルタリングする方法がわかりません (「ニュースレター」はありますか?)。

私が得た:

$proxy = new SoapClient('http://magentohost/api/v2_soap/?wsdl');
$sessionId = $proxy->login('apiUser', 'apiKey');
$params = array(
    'sessionId' => $session_id,
    'filters' => null
);
$allCustomers = $proxy->customerCustomerList($params);

これにより、すべての顧客が返されます。ニュースレターの購読でこれをフィルタリングする方法はありますか?

4

1 に答える 1

4

ニュースレターの購読は別のモジュールに保存されます。Mage_Newsletter. このモジュールの API カバレッジはないようですが、newsletter_subscriberデータベース テーブルをざっと見てみると、顧客でもあるサブスクライバーが関連する外部キーを持っていることがわかります。

おそらく、Mage_Customer購読ステータスを保持する属性を追加し、購読および購読解除イベントにオブザーバーを追加して更新することを検討します。

次に、この属性をMage_CustomerAPI に追加して、顧客を取得するときにフィルター処理できるようにします。

サブスクリプション イベントのオブザーバー: https://stackoverflow.com/a/12991195/2205881およびMagento のサブスクリプション モジュールへのカスタム フィールドの追加

v2 API の拡張: http://inchoo.net/ecommerce/magento/magento-api-v2/

于 2013-03-25T23:19:17.923 に答える