EC-CUBEのAjax APIを使う

EC-CUBE 2.12からAjaxで使う用のAPIがコソッと入ってるんですね。
リリースアナウンスとかではまったく触れられてなかったので、
ソース見るまでまったく気付かなかった。。。

使い方を解説してるページとかも全然見付からないので、
使い方を簡単に書いてみることにしました。

## リクエストURL
APIリクエストを送るためのURLは、以下の形式になります。

http://ホスト名/api/出力フォーマット.php

出力フォーマットとしては、以下の3種類が使えます。

フォーマット 説明
json JSON形式でレスポンスを返す
xml XML形式でレスポンスを返す(デフォルト)
php PHPのデータをserialize()したものを返す

例えばリクエストをJSONで受け取りたい時は、URLは以下のようになります。

http://examples.com/api/json.php

## リクエストパラメータ
具体的にどのようなオペレーションを要求するかは、
POSTで送信したパラメータによって決まります。
また、オペレーションの内容によっては認証を要求される場合もあります(設定で変更可)。

まずは全オペレーション共通のパラメータは、以下の2つです。

パラメータキー 説明
Operation オペレーションの種類を指定
Service 必須キーなので指定しないとエラーになるが、何も使われていな
いので適当な値を渡せば良い

EC-CUBE 2.12.2の時点では、以下のようなオペレーションが可能です。

オペレーション 認証の必要性 説明
GetVersion 不要 EC-CUBEのバージョンを取得出来る。テスト用途などに。
ItemLookup 不要 商品ID等をキーに商品データを取得
ItemSearch 不要 商品データを検索
BrowseNodeLookup 不要 商品カテゴリを指定して商品データを取得
CartCreate カートの新規作成
CartAdd カートへの商品追加
CartGet カートの取得
CartModify カートの修正
CartClear カートのクリア

## 実際に使ってみる
cURLで実際にAPIを叩いて、一番簡単なオペレーションである GetVersion を使ってみます。

$ curl -d ‘Operation=GetVersion’ -d ‘Service=none’ http://examples.com/api/xml.php






1348211643.3904


0.024797916412354



True


2.12.1

Serviceにはnoneという値を渡してますが、ここは何でもいいです。
チェックされてないので。

正しく値が返って来る時は <IsValid>True</IsValid> となってます。

今度はエラーとなるリクエストを送ってみます。

$ curl -d ‘Operation=GetVersion’ http://examples.com/api/xml.php






1348211887.2225

0.0092852115631104



False


Service
※ Serviceが入力されていません。<br />




今度は <IsValid>False</IsValid> が返って来ました。

## 他のオペレーションについて
続く…

– [EC-CUBEのAjax APIを使う(2) −−− 商品情報取得](http://lovepeers.org/2012/10/01/using-eccube-api-2/)
– [EC-CUBEのAjax APIを使う(3) −−− カート操作](http://lovepeers.org/2012/10/15/using-eccube-api-3/)

スポンサーリンク
スポンサーリンク:

フォローする