B3S
menu close

EC-CUBE

EC-CUBEでAPIを使ってみる。


はち

更新日:2021/08/11


オンラインショップをやっていていると商品情報の登録作業などに結構なコストを割いてしまいます。
商品情報はほかのサイトやシステムにある情報を自動で登録作業おこなえたらいいなーていう状況でEC-CUBEならAPIで解決できます。

EC-CUBEでは、APIを使って商品情報の取得やカート情報の変更がRestfulでおこなえるようです。
API使用するにはまず管理画面のパラメータ変更します。

①管理画面からAPIを有効にする。
管理画面→システム設定→パラメータ設定→API_ENABLE_FLAG→trueに変更

EC-CUBE 管理画面

これでAPIの起動させられます。

②レスポンスの形式を指定
APIのレスポンス形式がXML、JSON、PHPの3パターンを選べます
アクセスするURL例はJSONの場合下記のようになります。
http://******/api/json.php

③商品情報取得方法
商品情報取得にはリクエストとして「operation」に「ItemLookup」か「ItemSearch」を使います。

以前に紹介したAmazonのAPIの商品情報取得方法にものすごい似ています。
調べてみるとEC-CUBEのAPIはAmazonのAPIを例に作っているようです。
APIのドキュメントもAmazonと同じぐらい充実させて欲しいところです。

商品名で検索を指定して商品情報を取得する場合、こう記述します。
http://******/api/xml.php?operation=ItemSearch&Service=none&Keywords=bike

XML形式

<ItemSearchResponse xmlns="http://www.ec-cube.net/ECCUBEApi/2.13.5" xml:lang="ja">
<OperationRequest>
<HTTPHeaders>
<Header Name="UserAgent" Value="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36"/>
</HTTPHeaders>
<RequestId>1469175199.37</RequestId>
<Arguments Name="Operation" Value="ItemSearch"/>
<Arguments Name="Service" Value="none"/>
<Arguments Name="Keywords" Value="bike"/>
<RequestProcessingTime>0.0389277935028</RequestProcessingTime>
</OperationRequest>
<Items>
<Request>
<IsValid>True</IsValid>
<ItemSearchRequest>
<BrowseNode/>
<Keywords>bike</Keywords>
<Manufacturer/>
<ItemPage/>
<Sort/>
</ItemSearchRequest>
</Request>
<Item>
<product_id>2620</product_id>
<DetailPageURL>
http://*****/site/products/detail.php?product_id=2620
</DetailPageURL>
<ItemAttributes>
<product_id>2620</product_id>
<product_code_min>AceBike-RD</product_code_min>
<product_code_max>AceBike-RD</product_code_max>
<name>キッズバイク</name>
<comment1></comment1>
<comment2/>
<comment3/>
<main_list_comment>商品詳細を御覧ください。</main_list_comment>
<main_image>aaaaaa.png</main_image>
<main_list_image>bbbbbb.png</main_list_image>
<price01_min/>
<price01_max/>
<price02_min>7500</price02_min>
<price02_max>7500</price02_max>
<stock_min/>
<stock_max/>
<stock_unlimited_min>1</stock_unlimited_min>
<stock_unlimited_max>1</stock_unlimited_max>
<deliv_date_id/>
<status>1</status>
<del_flg>0</del_flg>
<update_date>2016-03-14 18:23:35</update_date>
<price01_min_inctax/>
<price01_max_inctax/>
<price02_min_inctax>8100</price02_min_inctax>
<price02_max_inctax>8100</price02_max_inctax>
<price01_min_format>0</price01_min_format>
<price01_max_format>0</price01_max_format>
<price02_min_format>7,500</price02_min_format>
<price02_max_format>7,500</price02_max_format>
<price01_min_inctax_format>0</price01_min_inctax_format>
<price01_max_inctax_format>0</price01_max_inctax_format>
<price02_min_inctax_format>8,100</price02_min_inctax_format>
<price02_max_inctax_format>8,100</price02_max_inctax_format>
<price01_min_tax_format>0</price01_min_tax_format>
<price01_max_tax_format>0</price01_max_tax_format>
<price02_min_tax_format>8,100</price02_min_tax_format>
<price02_max_tax_format>8,100</price02_max_tax_format>
</ItemAttributes>
</Item>
<Item>
<product_id/>
<DetailPageURL>
http://*******/site/products/detail.php?product_id=
</DetailPageURL>
<ItemAttributes>
<price01_min_format>0</price01_min_format>
<price01_max_format>0</price01_max_format>
<price02_min_format>0</price02_min_format>
<price02_max_format>0</price02_max_format>
<price01_min_inctax/>
<price01_max_inctax/>
<price02_min_inctax/>
<price02_max_inctax/>
<price01_min_inctax_format>0</price01_min_inctax_format>
<price01_max_inctax_format>0</price01_max_inctax_format>
<price02_min_inctax_format>0</price02_min_inctax_format>
<price02_max_inctax_format>0</price02_max_inctax_format>
<price01_min_tax_format>0</price01_min_tax_format>
<price01_max_tax_format>0</price01_max_tax_format>
<price02_min_tax_format>0</price02_min_tax_format>
<price02_max_tax_format>0</price02_max_tax_format>
<main_list_image>noimage_main_list.jpg</main_list_image>
</ItemAttributes>
</Item>
</Items>
</ItemSearchResponse>


JSON、PHP形式
※PHP形式は.phpファイルでレスポンスされますが中身はJSON形式です。

{"OperationRequest":{"HTTPHeaders":{"Header":{"_attributes":{"Name":"UserAgent","Value":"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/51.0.2704.106 Safari\/537.36"}}},"RequestId":1469175534.3,"Arguments":[{"_attributes":{"Name":"Operation","Value":"ItemSearch"}},{"_attributes":{"Name":"Service","Value":"none"}},{"_attributes":{"Name":"Keywords","Value":"Bike"}}],"RequestProcessingTime":0.0390908718109},"Items":{"Request":{"IsValid":"True","ItemSearchRequest":{"BrowseNode":"","Keywords":"Bike","Manufacturer":"","ItemPage":"","Sort":""}},"Item":[{"product_id":"2620","DetailPageURL":"http:\/\/******\/besite\/products\/detail.php?product_id=2620","ItemAttributes":{"product_id":"2620","product_code_min":"bike","product_code_max":"bike","name":"\u30ad\u30c3\u30ba\u30d0\u30a4\u30af bike","comment1":"http:\/\/www.doppelganger.jp\/option\/bike\/","comment2":null,"comment3":null,"main_list_comment":"\u5546\u54c1\u8a73\u7d30\u3092\u5fa1\u89a7\u304f\u3060\u3055\u3044\u3002","main_image":"":"*****..png","main_list_image":"*****.png","price01_min":null,"price01_max":null,"price02_min":"7500","price02_max":"7500","stock_min":null,"stock_max":null,"stock_unlimited_min":"1","stock_unlimited_max":"1","deliv_date_id":null,"status":"1","del_flg":"0","update_date":"2016-03-14 18:23:35","price01_min_inctax":null,"price01_max_inctax":null,"price02_min_inctax":8100,"price02_max_inctax":8100,"price01_min_format":"0","price01_max_format":"0","price02_min_format":"7,500","price02_max_format":"7,500","price01_min_inctax_format":"0","price01_max_inctax_format":"0","price02_min_inctax_format":"8,100","price02_max_inctax_format":"8,100","price01_min_tax_format":"0","price01_max_tax_format":"0","price02_min_tax_format":"8,100","price02_max_tax_format":"8,100"}},{"product_id":null,"DetailPageURL":"http:\/\/******\/besite\/products\/detail.php?product_id=","ItemAttributes":{"price01_min_format":"0","price01_max_format":"0","price02_min_format":"0","price02_max_format":"0","price01_min_inctax":null,"price01_max_inctax":null,"price02_min_inctax":null,"price02_max_inctax":null,"price01_min_inctax_format":"0","price01_max_inctax_format":"0","price02_min_inctax_format":"0","price02_max_inctax_format":"0","price01_min_tax_format":"0","price01_max_tax_format":"0","price02_min_tax_format":"0","price02_max_tax_format":"0","main_list_image":"noimage_main_list.jpg"}}]},"response_name":"ItemSearchResponse"}

続編では、APIからの商品登録をおこなってみたいと思います。