Magentoストアから他のMagentoWebサイト(異なるデータベース、ドメインを持つ)に製品を販売するにはどうすればよいですか?SOAPAPIまたはその他の方法を使用する。
1 に答える
Magentoにはsoapサーバーがあり、「MagentoAdmin」で任意のsoapクライアントと連携するように構成できます。
Magentoには、サーバーとして別のMagentoと通信するためのsoapクライアントが組み込まれていません。
目的を達成するには、magento用のカスタムモジュールを作成する必要があります。
SOAPアカウントの設定:まず、SOAP用の特別なプロキシユーザーが必要です。アプリケーション内でSOAPクライアントを構築し、このクライアントは通常のブラウザーと少し同じように動作します。Magentoアプリケーション内の特定の「ページ」を要求しますが、このページには適切な権限がある場合にのみアクセスできるため、ユーザーアカウントを作成する必要があります。
実際のユーザーを作成する前に、まずこのユーザーのロールを作成する必要があります。管理者として管理パネルにログインし、[システム]、[Webサービス]、[SOAP/XML_RPCロール]の順に参照します。新しい役割を作成し、この役割がアクセスできるリソースを選択します。
この例では、すべてのリソースへのフルアクセスを持つロール「APIフルアクセス」を追加します。実生活では、どの役割でどの権限が目標に十分であるかを徹底的に調査する必要があります。すべてのリソースにアクセスして変更できるAPIユーザーを追加すると、セキュリティ上のリスクが少し増えます。
ロールを作成したら、APIユーザーを作成する必要があります。[システム]、[Webサービス]、[SOAP/XML-RPCロール]の順に参照します。新しいユーザーには、もちろんユーザー名とAPIキー(パスワードと見なすことができます)が必要です。このユーザー名とAPIキーをメモしてください。これらは、SOAPクライアントで構成する必要がある詳細です。ここでは、ユーザー名を「soaper」と想定します。新しいユーザーを保存する前に、適切なユーザーロールが選択されていることを確認してください(「APIフルアクセス」)。
SOAPクライアントの作成:
client = new SoapClient('http://mymagentohost/api/soap?wsdl');
// api認証が必要な場合は、//セッショントークンを取得します$ session = $ client-> login('apiUser'、'apiKey');
$ result = $ client-> call($ session、'somestuff.method'); $ result = $ client-> call($ session、'somestuff.method'、'arg1'); $ result = $ client-> call($ session、'somestuff.method'、array('arg1'、'arg2'、'arg3')); $ result = $ client-> multiCall($ session、array(array('somestuff.method')、array('somestuff.method'、'arg1')、array('somestuff.method'、array('arg1'、 'arg2'))));
//セッションが不要になった場合$client->endSession($ session);
石鹸クライアントを作成する方法の詳細については、このリンク http://www.magentocommerce.com/api/soap/introduction.htmlを試してください。