1

このリンク形式を使用して、RESTAPIを介して顧客情報のフィールドを更新しようとしています。

http://<magentohost>/api/rest/customers

しかし、私は顧客の電子メールをすでに存在させています

RESTAPIを介して情報を更新するにはどうすればよいですか。

サンプルコード:

        $productData = json_encode(array(
            'id'        => 1,
            'firstname' => 'Ted',
            'lastname'  => 'Mosbius',
            'website_id'=> 1,
            'group_id'     => 1,
            'email'         => 'ted@mosbis.com'
        ));
        $headers = array('Content-Type' => 'application/json');
        $oauthClient->fetch($resourceUrl, $productData, OAUTH_HTTP_METHOD_POST, $headers);
        // $oauthClient->fetch($resourceUrl);
        $productsList = json_decode($oauthClient->getLastResponse());
        print_r($productsList);

このコードでは、emailが存在し、idが存在し、website_idが存在し、group_idが存在します...firstNameとlastNameを更新したかっただけです

前もって感謝します

4

2 に答える 2

1

問題が見つかりました。このリンク (http://ajaxpatterns.org/RESTful_Service) に基づいて更新する場合、 POSTの代わりにPUTを使用する必要があります...

$productData = json_encode(array(
    'id'        => 1,
    'firstname' => 'Ted',
    'lastname'  => 'Mosbius',
));
$headers = array('Content-Type' => 'application/json');
$oauthClient->fetch($resourceUrl, $productData, OAUTH_HTTP_METHOD_PUT, $headers);
$productsList = json_decode($oauthClient->getLastResponse());
print_r($productsList);

うまくいけば、これは将来誰かを助けるでしょう... :)

于 2012-11-19T09:44:37.507 に答える
0

ヘッダーが次のように形成されていないと、エラーが発生します。

$headers = array('Content-Type' => 'application/json', 'Accept' => '*/*');
于 2013-01-03T13:31:49.957 に答える