【ショップ】EC-CUBEにAmazon Product Advertising API を組み込む

EC-CUBEにAmazon  Product Advertising API を組み込む

Amazon  Product Advertisingの概念としては、アマゾンの用意しているデータベースのサイトに、決められたXMLを送ると、その要求に応じた応答が返信されてくるため、この情報を使ってうまくサイトに表示させるということがわかりました。

EC-CUBEでは、PHPという言語でコードで書かれているようですので、
この言語を使って組み込みが必要になりそうです。

EC-CUBEの情報

https://www.ec-cube.net/developers/#developers_requirements

http://doc.ec-cube.net/

http://doc.ec-cube.net/spec_experimental

http://downloads.ec-cube.net/manual/v3/plugin.pdf

Amazonの情報

https://aws.amazon.com/code/PHP?browse=1

https://aws.amazon.com/jp/developers/getting-started/

実装方針:「本体へ機能的なカスタマイズを行わない」
バージョンアップの際に再度カスタマイズを適用するのは、非効率。費用や手間が掛かり過ぎる。中にはバージョンアップで動作しなくなるプラグイン(プラグインでのカスタマイズ)あり。よって、「プラグインにてカスタマイズを行う」
 
次に、表示周り(テンプレート)の変更について、「本体部分のテンプレート読込順を利用し、本体側へ変更」する。
EC-CUBE3では、テンプレートファイル(twig)の読込順が決まっており、まず「app/template」配下の対象テンプレートファイルを探す仕組みを利用する。

管理画面の「コンテンツ管理>ページ管理」でページを編集した場合にテンプレートファイルは、この場所へ保存されるようになっており、本体のテンプレートファイルを書き換えることなく、自分でテンプレートを編集できるようになっている。
編集したテンプレートファイルを置いてやれば、表示内容を変更できるという状態。
表示部分の簡単な変更は、この場所へテンプレートファイルを配置して対応する。

ec-cube3のファイル構成を知る
ec-cube3のソースをダウンロードし、解凍するとディレクトリとファイルができる。
以下4つのディレクトリがあることを確認する。
app, src, vendor, html
この4つのうちカスタマイズとして考えると、特に「app」と「src」が重要。

app ディレクトリについて
app には、設定ファイル・ログ・キャッシュ・インストールしたプラグインのファイルが格納されています。それぞれ、具体的な格納場所は以下になります。
 
<設定ファイル>
app/config/eccube/
例えば、ec-cubeのコミュニティ等で質問をした際に、config を確認とか設定を確認すれば良い等の回答をもらった場合は、こちらを確認します。
 
<ログファイル>
app/log
これは分かりやすいですね。logというディレクトリにログファイルが格納されています。
ちなみにログファイルは、site_日付.log というファイル名で出力されます。
 
<キャッシュ>
app/cache
ec-cube3のキャッシュ情報はここへ格納されます。
ec-cubeのコミュニティ等でキャッシュをクリアしてくださいと回答をもらった場合は、この配下をクリア(削除)します。
 
<プラグイン格納場所>
app/plugin
プラグインをインストールした際はplugin配下へディレクトリが作成されプラグインのファイルが格納されます。
 
appにはもう一つ「template」というディレクトがあるかと思いますが、ここへはテンプレートを格納することができます。

src ディレクトリについて
srcディレクトリについてですが、「src」の中身は、ec-cube3の本体に当たる部分になる。
各画面の処理や画面表示用のテンプレートはこの「src」の中にある「eccube」へ格納されている。
 
例えば、topページのテンプレートの場所は以下。
/src/eccube/resource/template/default/index.twig
開いてみると、topページの画像3枚の表示が書かれていると思います。
 
この様に実際の処理・画面がこのディレクトリにあります。
重要な箇所だけ簡単にまとめると以下になります。
 
/src/eccube/controller/
 ・・・ 各機能の処理部分になります。
/src/eccube/entity/
 ・・・ entityファイル
/src/eccube/form/
 ・・・ 画面コントロールの定義
/src/eccube/repository/
 ・・・ dbの取得条件
/src/eccube/resource
 ・・・ 画面テンプレート等
/src/eccube/service
 ・・・ 共通的な処理(カート、購入などの処理)
 

テンプレート部分について、画面テンプレートに着目して、どの画面のテンプレートがどこにあるかのまとめ。
 
管理画面のテンプレート
[管理画面側 v3.0.9] – パスは src/resource/template/admin 配下
ブロック管理(新規・編集)
Content/block_edit.twig
 
ブロック管理
Content/block.twig
 
キャッシュ管理
Content/cache.twig
 
ファイル管理
Content/file.twig
 
ページ管理
Content/layout.twig
 
新着情報管理(新規・編集)
Content/news_edit.twig
 
新着情報管理
Content/news.twig
 
ページ管理(新規・編集)
Content/page_edit.twig
 
ページ管理
Content/page.twig
 
コンテンツ管理ナビ部分
Content/subnavi.twig
 
会員登録(編集)
Customer/edit.twig
 
会員マスター
Customer/index.twig
 
会員管理ナビ部分
Customer/subnavi.twig
 
仮会員時メール本文
Mail/entry_confirm.twig
 
購入完了時メール本文
Mail/order.twig
 
受注登録(編集)
Order/edit.twig
 
受注マスター
Order/index.twig
 
受注マスターのメール通知(確認画面 ※一括)
Order/mail_all_confirm.twig
 
受注マスターのメール通知(入力画面 ※一括)
Order/mail_all.twig
 
受注マスターのメール通知(完了画面)
Order/mail_complete.twig
 
受注マスターのメール通知(確認画面 ※個別)
Order/mail_confirm.twig
 
受注マスターの個別の送信完了メール確認
Order/mail_view.twig
 
受注マスターのメール通知(入力画面 ※個別)
Order/mail.twig
 
受注マスターの商品検索部分
Order/search_product.twig
 
受注管理ナビ部分
Order/subnavi.twig
 
カテゴリ登録
Product/category.twig
 
規格編集(分類 ※子規格)
Product/class_category.twig
 
規格編集
Product/class_name.twig
 
カテゴリCSV登録
Product/csv_category.twig
 
商品CSV登録
Product/csv_product.twig
 
商品マスター
Product/index.twig
 
商品マスター>規格設定
Product/product_class_twig
 
商品マスター(編集)
Product/product.twig
 
商品管理ナビ部分
Product/subnavi.twig
 
CSV出力項目設定
Setting/Shop/csv.twig
 
会員規約設定
Setting/Shop/customer_agreement.twig
 
配送方法設定(編集)
Setting/Shop/delivery_edit.twig
 
配送方法設定
Setting/Shop/delivery.twig
 
メール設定
Setting/Shop/mail.twig
 
支払方法設定(編集)
Setting/Shop/payment_edit.twig
 
支払方法設定
Setting/Shop/payment.twig
 
ショップマスター
Setting/Shop/shop_master.twig
 
税率設定
Setting/Shop/tax_rule.twig
 
特定商取引法
Setting/Shop/tradelaw.twig
 
権限管理
Setting/System/authority.twig
 
EC-CUBE ログ表示
Setting/System/log.twig
 
マスターデータ管理
Setting/System/masterdata.twig
 
メンバー管理(編集)
Setting/System/member_edit.twig
 
メンバー管理
Setting/System/member.twig
 
セキュリティ管理
Setting/System/security.twig
 
システム情報
Setting/System/system.twig
 
管理画面テンプレートベース部分
default_frame.twig
 
管理画面TOP
index.twig

フロント側のテンプレート
[フロント側 v3.0.9] – パスは src/resource/template/default 配下
ブロック カート
Block/cart.twig
 
ブロック カテゴリツリー
Block/category.twig
 
ブロック フッター
Block/footer.twig
 
ブロック 送料無料
Block/free.twig
 
ブロック ギャラリー(TOPページ新着情報下のブロック)
Block/garally.twig
 
ブロック ログイン
Block/login.twig
 
ブロック ロゴ
Block/logo.twig
 
ブロック 新着商品(TOPページ新着情報上のブロック)
Block/new_product.twig
 
ブロック 新着情報
Block/news.twig
 
ブロック 商品検索
Block/search_product.twig
 
カート画面
Cart/index.twig
 
お問い合わせ(完了)
Contact/complete.twig
 
お問い合わせ(確認)
Contact/confirm.twig
 
お問い合わせ(入力)
Contact/index.twig
 
会員登録(完了 本登録完了)
Entry/activate.twig
 
会員登録(完了 仮登録完了)
Entry/complete.twig
 
会員登録(確認)
Entry/confirm.twig
 
会員登録(入力)
Entry/index.twig
 
パスワード再発行(発行メール完了)
Forgot/complete.twig
 
パスワード再発行(入力)
Forgot/index.twig
 
パスワード再発行(完了)
Forgot/reset.twig
 
EC-CUBE用Widgetsレイアウト
Form/form_layout.twig
 
当サイトについて
Help/about.twig
 
利用規約
Help/agreement.twig
 
ご利用ガイド
Help/guide.twig
 
プライバシーポリシー
Help/privacy.twig
 
特定商取引法
Help/tradelaw.twig
 
お問い合わせメールテンプレート
Mail/contact_mail.twig
 
退会メールテンプレート
Mail/customer_withdraw_mail.twig
 
本会員登録完了メールテンプレート
Mail/entry_complete.twig
 
仮会員登録完了メールテンプレート
Mail/entry_confirm.twig
 
パスワード再発行用メールテンプレート
Mail/forgot_mail.twig
 
注文完了時メールテンプレート
Mail/order.twig
 
パスワード再発行完了時メールテンプレート
Mail/reset_complete_mail.twig
 
マイページ会員情報編集
Mypage/change.twig
 
マイページ会員情報編集完了
Mypage/change_complete.twig
 
マイページお届け先編集(一覧)
Mypage/delivery.twig
 
マイページお届け先編集(編集)
Mypage/delivery_edit.twig
 
マイページお気に入り
Mypage/favorite.twig
 
マイページ注文履歴詳細
Mypage/history.twig
 
マイページ注文履歴(一覧)
Mypage/index.twig
 
マイページログイン
Mypage/login.twig
 
マイページナビ部分
Mypage/navi.twig
 
マイページ退会手続き(TOP)
Mypage/withdraw.twig
 
マイページ退会手続き(確認)
Mypage/withdraw_confirm.twig
 
マイページ退会手続き(完了)
Mypage/withdraw_complete.twig
 
商品詳細
Product/detail.twig
 
商品一覧
Product/list.twig
 
注文完了
Shopping/complete.twig
 
ご注文内容のご確認
Shopping/index.twig
 
注文時のログイン
Shopping/login.twig
 
非会員購入時の情報入力
Shopping/nonmember.twig
 
お届け先の指定(選択)
Shopping/shipping.twig
 
お届け先追加(入力)
Shopping/shipping_edit.twig
 
お届け先の複数指定
Shopping/shipping_multiple.twig
 
非会員用複数配送時のお届け先設定
Shopping/shipping_multiple_edit.twig
 
購入エラー
Shopping/shopping_error.twig
 
フロント側テンプレートベース
default_frame.twig
 
エラー画面
error.twig
 
TOP画面
index.twig
 
ページングナビ部分レイアウト
pagination.twig

ーーーーーーーーーーーーー

EC-CUBE3のカスタマイズとしてEC-CUBE3のテンプレート(Twig)ファイルを変更する。
 
変更方法としては、別テンプレートを用意して、書き換える方針で行う。

Step1
変更する(変更を試してみる)テンプレートは、商品詳細を利用。
準備として、テンプレートのコピーを行います。
 
商品詳細のテンプレート(コピー元)
/src/Eccube/Resource/template/default/Product/detail.twig
 
コピー先は、
/app/template/default/Product/
 
defaultの配下に、Productディレクトリはないと思いますので、ディレクトリを作成して、その中へTwigファイルをはりつけます。
 コピーが完了したら、商品詳細ページを表示してみます。
 
先程と同じ商品詳細ページが表示されたと思いますが、表示されているテンプレートは、「/src/Eccube/Resource/template/default/Product/detail.twig」ではなく、「/app/template/default/Product/detail.twig」の方を表示していることを確認する。
変更しなかった方は、キャッシュの影響のため、「/app/cache/twig」のディレクトリを削除するか、管理画面の「コンテンツ管理>キャッシュ管理」よりキャッシュをクリアを実施する。
 
Twigテンプレートの動的な部分を変更する。
静的な情報は、追加することができましたので、次は「動的」な情報を追加する。
 
商品名の次の行に、「最終更新日」を追加してみたいと思います。
最終更新日は、dtb_products の update_date より取得して表示します。
 
update_dateの内容を表示するにあたり、まずは、twig へどの様な情報が渡されているか確認してみたいと思います。
 
商品詳細画面を表示するための処理は、「/src/Eccube/Controller/ProductController.php」に記述されています。
具体的な場所としては、「202」行目あたりの、「function detail」の部分になります。
この部分の twig へ情報をセットしている部分を探してみます。
場所は、「309」行目になります。
ProductController.php
return $app->render(‘Product/detail.twig’, array(
    ‘title’ => $this->title,
    ‘subtitle’ => $Product->getName(),
    ‘form’ => $form->createView(),
    ‘Product’ => $Product,
    ‘is_favorite’ => $is_favorite,
));
 
Twig 側へ渡されている値としては、
title
subtitle
form
Product
is_favorite
になります。
 
この中で、商品情報は、「Product」の部分になります。
商品情報(dtb_product のエンティティー)が渡されているようですので、この中のupdate_dateを表示すれば、最終更新日を表示することができそうです。
 
では、Twig 側へ、情報を表示したいと思います。
detail.twig

 
    
    

{{ Product.name }}

    

        

最終更新日:{{ Product.update_date|date(‘Y/m/d H:i’) }}

        
 
商品名の下へ、最終更新日を追加しました。
画面を表示すると、次の様に商品名の下へ「最終更新日」が表示される。
 
まとめ
基本的に、コピーして書き換えるだけですので、特に難しいところはなかったかと思います。
他のテンプレートも同じ要領でコピーして変更することにより、EC-CUBEの本体側はそのままで、独自のテンプレートを表示した状態とすることができます。
表示していくなかで、表示がおかしくなったり、エラーが発生した場合は、app配下のテンプレートを削除することにより、デフォルト状態へ戻すことができます。
 
これで、簡単な表示変更はできるようになりましたが、処理を変更してテンプレートへ表示する項目を追加するには、プラグインで拡張することが必要となってきます。
(本体を直接変更しない場合)

【ショップ】Product Advertising APIのREST リクエスト

REST リクエスト

REST リクエストの構造

Product Advertising API のRESTリクエストは、次の例に示すURLです。

このリクエストのIDを実際のIDで置き換え、ブラウザにURL全体を入力すると、Product Advertising API にリクエストが送信されます。

上の例は、リクエストをブラウザに入力するフォームですが、読むのは困難です。そのため、このガイドでは、同じリクエストを次のように表記します。

http://ecs.amazonaws.com/onca/xml?
Service=AWSECommerceService& Operation=ItemSearch& AWSAccessKeyId=アクセスキーID
& AssociateTag= ID &
SearchIndex=Apparel&
Keywords=Shirt

 

エンドポイントの値は各国のサイトごとに異なりますが、エンドポイントはサイトあたり2つしかありません。そのうちの1つは、もう1つのエンドポイントのセキュアバージョンです。次の表に、Product Advertising API のリクエストで使われるエンドポイントの一覧を示します。

エンドポイント
JP (日本) http://ecs.amazonaws.jp/onca/xml

https://aws.amazonaws.jp/onca/xml

3行目と4行目は、リクエストの送信者を表します。AWSAccessKey Id は必須で、リクエストの送信者を識別するのに使われます。AWS Access Key ID は、Product Advertising API に申し込んだときに付与されます。

他のIDである AssociateTag はオプションです。これはアソシエイトのIDです。アソシエイト・プログラムのメンバーとして、カスタマーの購入に対する紹介料を受け取るには、アソシエイトタグを各リクエストで指定する必要があります。

 

RESTリクエストはURLであるため、リクエストの各部の間にスペースを入れることはできません。ブラウザは、最初のスペースを認識したときに読み取りを停止します。例えば、最後のパラメータが Keywords=Blue Shirtsの場合、リクエストは “Blue” で終わります。”Shirts” は読み取りません。名前など、スペースが含まれるキーワードがある場合、%20を使用してスペースをURLエンコードする必要があります。上の例が正しく動作するようにするには、次のようにURLエンコードされたスペースを使用します。

 

 

【ショップ】Amazon Product Advertising API商品構成

Amazon に出品されている商品の構成を知る

このAPIを使って、情報を入手し、EC-CUBEに配置することが必要です。

Amazon に出品されている商品の構成(アマゾンサイトより)

E コマース Web サイトを訪問する大多数のカスタマーは、まず購入したい商品を検索します。例えば、カメラ、本、アクセサリーなどです。出品されている商品が比較的少ない店に立ち寄った場合には、購入する商品を見つけるのは簡単です。しかし、入った店に数千もの棚があり、数十万もの商品が販売されている場合は、欲しい商品を見つけるのが途端に難しくなります。そのような店では、優れたオーナーは、購入したい商品をカスタマーがすばやく見つけられるような方法で商品を配置します。Amazon にもこれが当てはまります。

Amazon には、数百万もの商品が出品されています。Product Advertising API のオペレーションとレスポンスグループには、必要な商品をストア内ですばやく見つけられるようにするためのツールが用意されています。Product Advertising API のオペレーションが提供している検索メカニズムと、Product Advertising API のレスポンスグループが提供しているフィルタメカニズムについて理解する前に、Amazon で商品がどのように分類されているかを理解しておくことが大切です。

 

関連商品(アマゾンサイトより)

RelatedItemsレスポンスグループは、ItemLookup リクエストで指定した商品に関連する商品の情報を返します。商品は ItemLookupリクエストで指定します。デジタル商品には、ダウンロード可能なミュージック (サーチインデックス: MP3Downloads)、ダウンロード可能なビデオ (サーチインデックス: UnboxVideo)、デジタル書籍 (サーチインデックス: KindleStore)が含まれます。例えば、関連商品としては、個別に利用できる TV シリーズの全てのショーや、特定 CD の全ての曲などが考えられます。

商品の関連元は、RelationshipTypeパラメータで指定されます。RelatedItemsレスポンスグループでは、 ItemLookupリクエストにRelationshipTypeパラメータを指定する必要があります。値の例としては、Episode、Season、Tracks、Variationなどがあります。値の一覧については、ItemLookup.をご参照ください。

ItemLookupリクエストは、最大で10個の関連商品を返します。追加の商品を返すには、RelatedItemsPageパラメータを使用します。例えば、値に2を指定すると、10個をひとまとまりとした2番目の関連商品を返します。詳細については、 ItemLookupのページをご参照ください。

 

サーチインデックス(アマゾンサイトより)

カスタマーが Amazon でショッピングを楽しむ理由の1つは、Amazon に数百万点もの商品が出品されていることです。これは、どのストアよりもはるかに多い品揃えです。Amazon には、本から10万ドルもするアクセサリーまで、あらゆるものが揃っています。反面、出品商品があまりにも多いため、購入する商品を見つけるのが難しくなっています。レスポンスで返す商品が多すぎることは、商品を何も返さないのと同じくらい問題です。Amazon では出品商品を、サーチインデックスと呼ばれる製品カテゴリーに分類することでこの問題に対処しています。

サーチインデックスは、Amazon で出品されている全ての商品をグループに分類するものです(次の図を参照)。

商品を検索するために使用するタイトルとキーワードは、複数のサーチインデックスに現れることがあります。例えば、”Harry Potter” をキーワードとして検索すると、Books、DVD、Video、Music などの多数のサーチインデックスによって結果が得られます。興味のあるサーチインデックスを指定することで、リクエストがさらに絞り込まれます。

誤ったサーチインデックスを指定すると、結果に何も含まれないか、カスタマーの検索条件を満たさない結果が出てしまいます。例えば、キーワードが “キャブレター” で、サーチインデックスが Kitchen の場合、この検索条件を満たす商品が得られないということが起こります。。サーチインデックスを Automotive に変更すれば、多数の商品が一致します。

 

Amazon では、次のサーチインデックスを使用して、出品されている全ての商品を分類しています。

  1. All
  2. Apparel
  3. Automotive
  4. Baby
  5. Beauty
  6. Blended
  7. Books
  8. Classical
  9. DigitalMusic
  10. DVD
  11. Electronics
  12. ForeignBooks
  13. GourmetFood
  14. Grocery
  15. HealthPersonalCare
  • Hobbies
  • HomeGarden
  • Industrial
  • Jewelry
  • KindleStore
  • Kitchen
  • Magazines
  • Merchants
  • Miscellaneous
  • MP3Downloads
  • Music
  • MusicalInstruments
  • MusicTracks
  • OfficeProducts
  • OutdoorLiving
  • PCHardware
  • PetSupplies
  • Photo
  • SilverMerchant
  • Software
  • SoftwareVideoGames
  • SportingGoods
  • Tools
  • Toys
  • VHS
  • Video
  • VideoGames
  • Watches
  • Wireless
  • WirelessAccessories

 

 

【ショップ】Amazon Product Advertising API導入方法を調べる

Amazon Product Advertising API導入方法を調べる

前の記事でAmazon Product Advertising APIについて調査する。

https://quadkinghd.com/amazon-product-advertising-api/

を調べて、事前準備は完了し、導入に向けて進めていきます。

 

 

Product Advertising API 開発者コミュニティ

Product Advertising API を使用してアプリケーションを開発しているユーザは何千人にも及びます。そのため、何かわからないことがあれば、豊富な知識を持ったたくさんのユーザのアドバイスを参考にできます。Product Advertising API 開発者とのコミュニケーションは、次に記載している Product Advertising API 開発者フォーラムにおいて行うことができます。 http://developer.amazonwebservices.com/connect/forum.jspa?forumID=9

 

Web サービスとは(アマゾンサイトより)

サーバでの作業はサービスと呼ばれます。サービスには、例えば天気予報を返すものがあります。Product Advertising API の場合は、Amazon で販売している商品に関する情報を返します。これらのインターネット上でのリクエストとレスポンスのやり取りの一部は、Web サーバによって提供されるWeb サービスと見なされます。

Web サービスは、REST、またはWSDL(Web Service Definition Language)(ウィズダル=wiz-dal)で記述された標準化XMLメッセージングシステムを使用して、アプリケーションまたはシステム間でデータを交換するソフトウェアです。Web サービスには、興味を持った利用者が、SOAP over HTTP などの標準的ネットワークプロトコルを使用して、サービスとその公開インターフェイスを見つけられるような単純なメカニズムが備わっている必要があります。WSDL は、コンピュータが使用する言語の定義として機能するため、さまざまなプログラミング言語で記述されて、さまざまなプラットフォームで動作するソフトウェアアプリケーションが Web サービスを透過的に使用して、インターネットなどのコンピュータネットワーク上でデータを交換できます。

Product Advertising API には次のような特長があります。

  • リクエストとレスポンスはインターネット上で発生します。
  • クライアントとサーバは REST、SOAP、XML を通信手段として使用します。
  • WSDL を指定し、リクエストとレスポンスに使われる文法と構文をクライアントとサーバ間で一致させます。
  • リクエストとレスポンスは、単一のオペレーティングシステムやプログラミング言語に関連付けられているわけではありません。

Product Advertising API のリクエストの簡単な例として、オペレーション ItemSearch を使用した例を示します。このリクエストは Amazon の Web サーバに対して、データベース内の商品の説明を検索するよう依頼するものです。Web サーバはそのサービスを実行するため、商品の説明を検索してリクエストの送信元に返します。

Product Advertising API の全てのリクエストは REST または SOAP、全てのレスポンスは XML を基にしています。

 

WSDL(アマゾンサイトより)

WSDL を読むのは、値の型、オペレーション定義、リクエストとレスポンスの形式を理解するためです。WSDL (Web Service Description Language) は、Web サービスのやり取りで使われるオペレーション、パラメータ、リクエスト、レスポンスを定義した XML ドキュメントです。WSDL は、Web サービスのクライアントとサーバによって使われる言語と文法を定義した契約書と考えることができます。 例えば、Product Advertising API の WSDL を見ると、Product Advertising API の全てのオペレーション名、パラメータ、リクエストとレスポンスの構造が定義されています。

単一のWSDLはありません。例えば、Product Advertising API には、異なる多数のバージョン(最新バージョンと全ての旧バージョン)の WSDL があります。1つの企業が異なるバージョンの WSDL を使用する可能性があるだけでなく、どの企業も独自の API またはビジネスメトリックに基づいた独自の WSDL を使用する可能性があります。そのため、Web サーバがリクエストを解釈できるように、Web サービスリクエストは使用する WSDL を明確にする必要があります。

実際、Product Advertising API の開発者は、1つのセッションの全てのリクエストで同一バージョンのProduct Advertising API WSDL を使用します。 開発者は、徐々に最新の Product Advertising API WSDL にリクエストを送信するようになるでしょう。Product Advertising API の WSDL は、定期的にアップグレードされます。

Product Advertising API は、WSDL を介して API を提供しています。WSDL ドキュメントは、国およびバージョンごとに用意されています。次の表は、国ごとの最新の Product Advertising API WSDL の場所を示しています。これらの URI は、SOAP リクエストにおいて使用可能です。

http://ecs.amazonaws.com/AWSECommerceService/2009-10-01/JP/AWSECommerceService.wsdl

なんだか核心に迫ってきた気がします。ここにXMLを使って要求を出すと決められた形で応答が帰ってくるという形のようです。

スキーマとは(アマゾンサイトより)

スキーマは、XML ドキュメントであるという点で WSDL に似ています。 WSDL がコンピュータ Web サービス言語を定義するのに対し、スキーマは、WSDL で使われるデータ型を定義します。

Product Advertising API を利用するためにスキーマを作成する必要はありません。スキーマはすでに作成されています。しかし、レスポンスで返されるデータ型を判別できるようにするためにスキーマを理解しておくと便利です。

W3C は、int、string、float などの基本データ型を定義しています。これらのデータ型は便利ですが、あまりわかりやすいものではありません。例えば、XML ドキュメントの全てのテキストを文字列型として定義していると、パラグラフや注釈などのテキスト間の違いが不明瞭になります。パラグラフと注釈が使われるようなアプリケーションでは、スキーマに文字列基本クラスの拡張が含まれ、パラグラフ (<para>) や注釈 (<note>) がXMLドキュメントのタグとして使用できるようになっています。

スキーマを使用すると、XML ドキュメントの内容を識別するために、独自のデータ型を作成できます。作成する全てのデータ型は、W3C で定義されている基本データ型を基にする必要があります。これは、WSDL 例で定義されているスキーマネームスペースです。

http://ecs.amazonaws.com/AWSECommerceService/JP/AWSECommerceService.xsd

 

 

Product Advertising API とは

Product Advertising API は、Amazon のリテール Web サイトである http://www.amazon.co.jp や、http://www.amazon.com で使われるほぼすべての機能を提供しています。主な機能には次のようなものがあります。

  • 購入する商品の検索
    商品は、Amazon またはその他のマーチャントから販売/出品されます。
  • 商品に関する情報の検索
    商品情報には、CDの曲のタイトル、映画のおすすめ度、ジュエリーに使われている金属の種類、商品に付属しているアクセサリ、本の著者、音楽の作曲者などがあります。
  • 商品のカスタマーレビューの取得
    販売/出品中の商品についての他のユーザの意見をカスタマー向けに表示します。
  • 豊富な機能を備えたショッピングカートの作成
    今すぐに手に入る商品だけでなく、本の予約販売など後で手に入る商品も追加できます。
  • ショッピングカート内の商品の追加、削除、変更
    ショッピングカートにどのような商品を入れるのかを自由に制御できます。
  • 出品者(マーチャント)に関する情報の取得
    商品を出品しているマーチャントについての他のユーザの意見をカスタマー向けに表示します。
  • 関連商品の検索
    ある商品を購入しようとしているカスタマーにその関連商品を紹介し、売上げの増加につなげることができます。
  • ショッピングカート内の商品の購入
    カスタマーがショッピングカート内の商品の購入を決めると、Amazon によって出荷、支払い、注文処理が行われるか、あるいは同じ処理を行うように出品者またはマーチャントに通知が送られます。
  • ほしい物リストにある商品の検索と購入(Amazon.com のリストを検索・購入する場合は、Wedding Registry, Baby Registryもご利用いただけます)

Product Advertising API には、カスタマーが充実したオンラインショッピングを体験できるようにするツールが用意されています。

Product Advertising API を利用した収益化の方法

Amazon アソシエイト・プログラムと組み合せて Amazon の商品を広告することにより、Product Advertising API を使って収入を得ることが可能です。具体的な方法Amazon アソシエイト・プログラムに参加して商品を紹介すると、対象となる商品(適格商品)の売上に対する紹介料を獲得することが可能です。

紹介料を獲得するには、Amazon アソシエイト・プログラムのアカウントを作成し、API リクエストにアソシエイト・タグを組み込んでおく必要があります。このリクエストに対して API より返される URL にはアソシエイトタグが含まれるため、この URL を通じて Amazon の Web サイトにユーザがアクセスして商品を購入した場合、開発者ご自身が紹介料を得ることが可能となります。アソシエイト・プログラムのアカウントの詳細については、 アソシエイトへの登録をご参照ください。

 

商品 ID

www.amazon.co.jp や www.amazon.com に出品されているすべての商品にはIDがあります。IDは大きく4種類に分けられます。次の2種類のIDは、購入できるかどうかにかかわらず商品の識別に使われます。

  • ASIN—Amazon Standard Item Number
    Amazon マーケットプレイス内の商品を一意に識別する英数字の文字列です。
    ASIN は、マーケットプレイスのすべての商品に付与されていいます。ASIN は、現時点で最もよく使われている ID です。ASIN は、Product Advertising API のほとんどのオペレーションで使われます。
  • ListingId—zShop と 呼ばれるプロマーチャントのストアや、マーチャント@のストアの商品を一意に識別する英数字の文字列です。
    ListingId は、ASIN に比べるとあまり使われません。ListingId は、自身のストアで商品を販売しているプロマーチャントが出品している商品に割り当てられます。

残りの2つのIDは、実際に購入可能な商品を識別します。

  • OfferListingId—Amazon マーケットプレイス内の購入可能な商品を一意に識別する英数字の文字列です。
    マーケットプレイス内の購入可能な全ての商品には OfferListingId があります。これは、購入可能な商品に対して現時点で最もよく使われるIDです。
  • ExchangeId—zShop と呼ばれるプロマーチャントのストアや、マーチャント@のストアで出品されている、購入可能な商品を一意に識別する英数字の文字列です。
    ExchangeIds は、OfferListingId ほど頻繁には使われません。これは、 www.amazon.com の商品のほとんどが、出品者のストア以外でも入手できるためです。

ストアビルダー(アマゾンサイトより)

ストアビルダーアプリケーションにより、Amazon アソシエイト、マーケットプレイス出品者、マーチャント向けの Web サイトの一部または全体を作成できます。ストアビルダーを使用すると、あまり技術に詳しくないパートナーや Web サイトのオーナーでも、カスタマーに合わせてカスタマイズされたWeb サイトを簡単に作成できるようになります。次のサイトでは、ストアビルダーやストアを拡充させるのに役立つツールを紹介しています。

ソフトウェア実装サービス(アマゾンサイトより)

もしかすると、Product Advertising API をあなたのオンラインストアに実装するにあたり、外部からのサポートが必要かもしれません。次の開発者グループは、そのようなニーズに応えた実装サービスを提供しています。

 

 

 

【ショップ】EC-CUBEにカテゴリを登録する。

サイトの構成は変えずに登録していく。

EC-CUBEを自動インストールすると、デフォルトのサイトが出来ており、とてもイメージがつかみやすくなっています。
サイトを立ち上げたときのキーワード”くらしを楽しむライフスタイルグッズ Quadking shop”
立ち上げ時はなんとも感じなかったのですが、いろいろなものを扱うには、これぐらい広い言葉を選ばないといけないと思います。
また、成功者の方のなかには、範囲を狭くし、専門性を高めておられる方もいると思います。
どちらが良いかはそれぞれですが、私の場合、思いついたものに手を出したい性格であることと、内容を絞ってしまうとどこかで考え方が止まってしまうので、いろいろと取り扱えるサイトを目指してみます。

 

カテゴリを登録する

まずは、メニューにあたる、カテゴリには、3つ登録されており、キーワード上にマウスが来ると、さらに細かく子カテゴリが表示される構成になっていました。
スマホで表示される場合、PCとは異なる表示方法になっています。

 

  • インテリア
  • キッチンツール
    • 調理器具
    •  食器
      • フォーク
  • 新入荷

 

そこで、まずはこの機能をどのように修正するか見てみたいと思います。
管理ページにログインすると、左側のメニューに以下があります。

 

  • 商品管理・・・この部分でカテゴリを設定する。
  • 会員管理
  • コンテンツ管理
  • 設定
  • オーナーズストア

早速設定を始めてみたいと思います。

カテゴリは、商品管理の”カテゴリ登録”画面から登録・変更することになります。
この部分でカテゴリを変更できます。

今回は、商品にニンテンドーSwitchを取り扱いたいと思います。

サイトの形を崩したくないので、カテゴリをゲームとすると、なんだかサイトイメージに合いません。
また、インテリアとキッチンツールもカテゴリの抽象度があっていませんので、カテゴリを見直してみたいと思います。
(だって、インテリアの反対は、エクステリアですもん。)

そこで、まずは、リビングツールとしてその子カテゴリにゲーム機とし、さらにその下にニンテンドーSwitchを置いてみたいと思います。
とすぐ思ったのですが、ふと、自分のサイトのライフスタイルというキーワードやサイトを眺めていると、うまくカテゴリ化が必要と感じました。

ライフスタイルのカテゴリを考えてみる。

 

まずは、デフォルトのサイトを眺めてカテゴリを決めて生きたいと思います。
家の中の、”リビング”や”ダイニング”や”キッチン”これらに共通するカテゴリは”部屋”でしょう。

しかし、これらにあてはまるなものだけであればよいのですが、下のほうにスクロールすると
“エスプレッソタイム”、”アウトドアにおすすめのアイテム”、”フランス製のデッドストック”、さらには、”小物(オブジェ、ガラス瓶、シルバーカトラリー、フォトクッションカバー)など”があり、これをうまくまとめておかないと、今後自分が取り扱う商品をどこに置けばよいかがわからなくなってしまいます。

今まで、Amazon Associates Link Builderでは、映画や本、ゲーム、お土産など扱いました。
これらもうまくカテゴリに入れておきたい。
(すべての商品を扱えるわけではないので、まずは、Amazonと連携をすることを考えているため。)

イメージは、リンクのカテゴリの詳細ページは、AmazonのLinkのページのようにしたい。
これをうまく表現していけるようにする。

このようにブログの文字にすると、カテゴリって結構大事だといまさらながら感じませんか?

あなたも、取り扱う商品がどのようなカテゴリになるのか考えてみると良いのではないでしょうか?

 

  • インテリア
  • キッチンツール
    • 調理器具
    •  食器
      • フォーク
  • 新入荷

悩むよりも、すでに何万件もの商品を扱っているAmazon先生のカテゴリわけを採用します。

https://www.amazon.co.jp/gp/site-directory

ライフスタイル

  • 本・コミック・雑誌&Audible
  • DVD・ミュージック・ゲーム
  • 家電・カメラ・AV機器
  • パソコン・オフィス用品
  • ホーム&キッチン・ペット・DIY
  • 食品・飲み物・お酒
  • ドラックストア・ビューティー
  • ベビー・おもちゃ・ホビー
  • 服・シューズ・バック・腕時計
  • スポーツ&アウトドア
  • 車&バイク・産業・研究開発
  • クレジットカード・ポイント

これでうまくまとめられそうです。
とりあえずですが、カテゴリを登録してみした。

 

先ほど説明した、EC-CUBEのログイン画面に入り、
商品管理-カテゴリ登録に移動します。
そこで、”ゲーム”-”ゲーム機”-”ニンテンドーSwitch”としました。
さて、登録してみましたが結果は以下になります。
作業自体は思ったよりも簡単でしたね。

http://shopping.quadkinghd.com/

【ショップ】EC-CUBEで商品を売れるように設定する。

EC-CUBEで商品を売れるように設定する。

Xserverでは、EC-CUBEを自動インストールする機能があるため、この機能を使ってEC-CUBEをインストールしました。

それがこのサイトになります。

http://shopping.quadkinghd.com/

まだ、何も手を入れていないのですが、もうすでにいろいろな機能が織り込まれて、なんだかできあがってしまった気分になってしまいます。

しかし、これはまだ何もしていない状態なので何も売ることができません。

このページでは、EC-CUBEで商品を売れるようにするための手順をまとめたいと思います。

 

コンテンツ管理で構造を把握する。

コンテンツ管理内には、さらに細かく分かれています。

  • 新着情報管理
  • ページ管理
  • ブロック管理
  • キャッシュ管理

 

コンテンツ管理 新着情報管理

このメニューでは、ページ中央部に配置された、進捗情報を追加することができます。
新しい商品を登録した際などに使う機能です。
日付、タイトル、URL(別ウィンドウで開くかどうか)、本文を入力することになります。
この機能を使って、うまくサイトに誘導することになります。

 

コンテンツ管理 ファイル管理

このメニューでは、EC-CUBEで利用する画像を管理することになります。
フォルダ作成もでき、うまく画像を管理する必要があります。

コンテンツ管理 ページ管理

このメニューで、用意されているページのデザインを編集することになります。
作成されたブロックをどこにおくかを決める作業を行います。
EC-CUBEのページをで利用する画像を管理することになります。
ページはそれぞれの機能ごとに用意されているため、これらを自分の好みに修正する必要があります。

コンテンツ管理 ブロック管理

このメニューで、用意されているページに配置するブロック(箱)を管理します。
EC-CUBEのページをで利用する画像を管理することになります

https://www.shiro8.net/manual/v30x/content/block.html

 

コンテンツ管理 ブロック管理

このメニューで、本番環境にFTPなどでTwigファイルをアップロードして入れ替えた場合、画面を反映させるにはTwigキャッシュを削除する必要があります。
キャッシュ削除するディレクトリを選択してください。

 

https://quadkinghd.com/category/ec-cube/

【ショップ】ECサイトのEC-CUBEのコンセプトを考える

ECサイトで、取り扱う商品は、Amazonセラーセントラルを使って輸出・輸入ができる仕組みを導入していきたいと思います。

これは、

  • 将来海外との関わりがしたという想いがあります。
  • 色々な商品を取り扱うことで日本の良いところ、海外の良いところを知る機会が増えると考えたからです。
  • サイトを作成する活動を通じて、インターネットの仕組みを勉強できると考えたからです。
  • 結果、少々のお小遣いを得られると考えたからです。

実際に、活動を始めて生活スタイルが少しずつ変わってきました。

今までは、スマホでニュースを見るだけで日々の時間を使って何も残らない生活でしたが、今は気になったニュースや流行りの商品があると、アフィリエイトのリンクを作って投稿を行うということでサイトが充実すると共に、今まで以上に商品への興味が出るようになりました。

このように、いきなりECサイトで取り扱う商品を自分の好みだけで決めるよりも、先ずは、WordPressのサイトで色々と紹介しながら、扱う商品を決めたいと思います。
http://shopping.quadkinghd.com/

Amazonセラーセントラルで売り上げを伸ばして軌道に乗せているサイトはたくさんあります。私もそのようなサイトに近づけるよう少しずつ成長させていきたいです。

海外で売れる商品には

  • アニメ
  • 人形
  • 家電

を扱うと成功したということをよく聞きます。

レアな商品、海外の人が欲しい商品を取り扱うことが必要です。

しかし、個人がいきなり大量の商品を仕入れたり、販売するのは難しいという現実があります。

1日1万円の商品が売れれば年商365万円が達成できます。利益は数万かもしれません。これを微々たる金額で全然ダメと言われてしまうかもしれません。

しかし1日1万円を売り上げるサイトがあるということはとてもすごいことだと思います。

立ち上げ後はすぐに成果が出ないので、辛抱強くサイトを成長させることが必要です。

今までの取り組みでAmazonアフィリエイトの仕組みは導入できました。

行動を起こすには初期投資が必要ですし、継続するにも維持費用が必要です。

ブログ型のWordpressでは色々なことを紹介しつつ、どのようにECサイトと連携させるべきか考えてみたいと思います。

私もECサイト立ち上げに頑張られている方を見習っていきたいです。

【ショップ】EC-CUBEサイトをアマゾンアソシエイトに染めてみる。

EC-CUBEサイトをアマゾンアソシエイトで出来るサイトでまとめてみる。

EC-CUBEを立ち上げましたが、まだ商品が少ないため、すぐにはサイトを充実させることができません。
そこで、アマゾンアソシエイトの情報で足りない商品を扱えないか試してみたいと思います。

【ショップ】EC-CUBEのプラグインを開発するための情報まとめ

立ち上げられたサイトはこちら。

http://shopping.quadkinghd.com/

EC-CUBEの商品をアマゾンアソシエイトの情報にしてみる。

アマゾンアソシエイト(アフィリエイト)のサイトはここ。

https://affiliate.amazon.co.jp/

いずれは、アマゾンセラーセントラルの商品に置き換えていくための処置を記載します。

設定について、参考にさせていただいたサイト。

 

http://affiliate-blog.amazon.co.jp/

http://vdeep.net/eccube3-design

 

https://affiliate.amazon.co.jp/assoc_credentials/home

https://developer.amazonservices.jp

キーワードは、amazonから提供されるAPI。
Product Advertising API
Amazon MWS API
この2つがキーとなります。

EC-CUBE 3 店舗運営&デザインカスタマイズガイド
  • 価格   ¥ 3,024
  • メーカー西村 誠
  • 販売者 Amazon.co.jp



今すぐAmazon公式をチェック
基本からしっかり学ぶ Symfony2入門
  • 価格   ¥ 3,456
  • メーカー後藤 秀宣, 金本 貴志
  • 販売者 Amazon.co.jp



今すぐAmazon公式をチェック
EC-CUBE 実践カスタマイズ
  • 価格   ¥ 2,678
  • メーカー株式会社クオーレ, 手塚 俊, 明山 圭輔, 西井 健治
  • 販売者 Amazon.co.jp



今すぐAmazon公式をチェック

作業の続きはこちら。

 

 

Product Advertising API における主要な用語と概念について紹介。​

準備作業 Product Advertising API を利用する前に完了しておくべき作業について説明。

https://quadkinghd.com/amazon-product-advertising-api/

E コマースと Web サービス E コマース、WSDL、スキーマなど、Product Advertising API の中心となるテクノロジーについて紹介。

 

【ショップ】Amazon Product Advertising API導入方法を調べる

 

Product Advertising API の用語と基本概念  Product Advertising API における主要な用語と概念について紹介。
Product Advertising API のビジュアル解説 Product Advertising API を、Amazon リテール Web サイトと比較することで、その機能の特長を紹介。
Amazon に出品されている商品の構成 Amazon のデータベースにおける商品の分類方法について説明。
リクエスト Product Advertising API のリクエストを実行し、レスポンスを処理する方法を紹介します。
購入する商品の検索 購入する商品を見つけるのに必要なオペレーションとレスポンスグループについて説明。
カスタマーの購買意欲をかき立てる カスタマーの購入意欲をかき立てるのに必要なオペレーションとレスポンスグループについて説明します。画像、カスタマーレビュー、出品者レビューの表示などについての説明。
商品の価格と在庫状況を返す 出品されている商品の価格および在庫情報を取得するのに必要なオペレーションとレスポンスグループについて説明します。
リモートショッピングカートを使用する ショッピングカートの作成、カートへの商品の追加、カート内の商品数の変更に必要なオペレーションとレスポンスグループについて説明す。
リモートショッピングカート内の商品の購入 ショッピングカート内の商品を購入するのに必要なオペレーションとレスポンスグループについて説明。
取引の追跡 購入履歴を追跡するのに必要なオペレーションとレスポンスグループについて説明。
エラーの処理とアプリケーションのトラブルシューティング Product Advertising API によって返されるエラーについて説明。
プログラミングの最良事例 Product Advertising API アプリケーションの機能を最大限に活用するためのプログラミングのヒントを紹介。
国ごとの留意事項 国ごとの固有の問題について説明。

 

【ショップ】EC-CUBE にAmazonのPHPコードを組み込む

EC-CUBE にAmazonのPHPコードを組み込む

EC-CUBEでは、PHPコードを取り扱うことが出来るようです。
そこで、以下のAmazonのソースコードを使えるように出来ないか検討をして見ました。
Amazon開発コードはこちら。
https://aws.amazon.com/jp/developers/getting-started/php/

しかしながら、コマンドを使ってソースコードをインストールするようですので、
Xserverでの方法をいかにまとめました。

エックスサーバー(Xserver)で「SSH」接続機能を利用する。

「SSH」(Secure Shell)とは、ネットワークを介してサーバーにログインし、Linuxの各種コマンドを実行する手段の一つです。
ネットワーク上を流れるデータはパスワード情報等を含め
全てのデータが暗号化されるため、操作を安全に行うことができます。

本機能をご利用することでファイルのコピーや削除といったサーバー上のファイル操作や、さまざまなコマンドライン操作を行うことが可能です。

———————————————————————–
■サービス対象
サーバー全プラン

■利用方法
SSH接続を利用するには、「SSH接続の有効化」と「公開鍵」の登録または「公開鍵認証用鍵ペアの生成」が必要になります。サーバーパネルにログイン後、「SSH設定」より設定・登録を行う。

※SSHで接続を行うには、SSH接続に対応したクライアントソフトが必要。

環境の立ち上げ準備

XserverでSSHの設定を行う。
https://www.xserver.ne.jp/manual/man_server_ssh.php

PCにダウンロードしたTeraTermの設定を行う。
https://www.xserver.ne.jp/manual/man_server_ssh_connect_tera.php

Tera Term Home Page
※※こちらの手順はSourceForge.JPにて公開されているバージョン4.96にて記載しています。
teraterm-4.96.exe
http://ttssh2.osdn.jp/

※ウイルスセキュリティを使っている場合、タイムアウトにより接続が出来ない場合があります。
以下の対策を行い、必要なポート設定を行いましょう。また、必要に応じてアプリケーションの許可もしましょう。
http://www.sourcenext.com/support/qa/?faq=VS-01416&c=c26ab9ff-d3ab-43e0-a5f1-751bb20fd561

Amazon開発コードはこちら。
https://aws.amazon.com/jp/developers/getting-started/php/

 

Xserverのフォルダの位置を確認する。

上記までの設定で、成功しているのであれば、
TeraTerm上で

ls(フォルダの表示)

と打ってみましょう。

これで、Xserverのファイルマネージャと同フォルダ構成が表示されれば成功です。

cd  ./移動したいフォルダ名

と打っていくことで、コマンドでファイルの作業場所を移動できますので、

いよいよEC-CUBEのダウンロードしたフォルダに移動していきます。
(ここは、皆さんのインストールした場所になりますので、どこにインストールしているのか覚えておいてください。)

https://www.xserver.ne.jp/manual/man_install_auto_ec.php

ここまで準備できたものの、ECCUBEのどこにインストールするかがわからない。

ここからは、独自に調査したものになるので、参考までにして、自己責任でお願いします。

ECCUBEは、わかりやすいと言いながら、
結局カスタマイズがやり方がわからないですので、一般的に公開されているプラグインを使って攻めてみたいと思います。

https://www.ec-cube.net/plugin/

ここのHPに載っている、サンプルプログラム「カテゴリーコンテンツプラグイン」を入手する。

手助けになるのは、この2つのドキュメントだけ。
http://downloads.ec-cube.net/manual/v3/plugin.pdf

EC-CUBE3プラグイン仕様

概要。

EC-CUBE3は、フレームワークとしてSymfony2 ComponentsベースのSilexを利用しています。
そのため、リクエストを処理しレスポンスを返すまでの内部的な動作は、Symfony2のHttp Kernelのライフサイクルにしたがって実行されます。
また、Http Kernelでは、各ステップで処理を差し込めるeventという仕組みがあります。

→ボン!(頭がフリーズ。)さっそく専門用語。。。

http kernelのライフサイクル:
http://symfony.com/doc/current/components/http_kernel.html
ボン!ボン!!英語のページを見る!!とは。ありえない。。。

http kernelってところで標準的な方法が定義されているけど、EC-CUBEでも独自にアレンジしてるよ。
開発者はいろいろなイベントが用意されているから、関数登録できるよ!と言うことだと理解してみる。

 

プラグインでできること

新規ページの作成
プラグインから独自のページを定義することができます。

既存機能の変更・拡張
フックポイントを利用し、フォームへの項目追加や、検索クエリの変更、テンプレートやビューの変更、
メール本文の変更等が可能です。

 

プラグインの作り方

ついにきました。

1.プラグイン名、プラグインコードを決める
1-1.規則・機能に則したプラグイン名・プラグインコード名の命名

2.必要となるファイルを用意し、開発をする
2-1.config.yml, PluginManagerにプラグインの情報を定義
2-2.Migrationファイルを記載
3.圧縮し、パッケージングする

具体的なやり方は、マニュアルを見ながら以下を探すのがよさそうです。

https://qiita.com/tags/ec-cube3

 

EC-CUBE3開発者ドキュメント

こちらの方が、具体的なサンプルコードとともに記載があるため、
手を動かしながら理解が出来そうです。

http://doc.ec-cube.net/plugin_tutorial

 

サンプルプロジェクトのダウンロード

git clone https://github.com/awslabs/aws-php-sample.git

上記のコマンドを打つ必要がある。
これをEC-CUBEのどこに入れるか。

SDK および依存関係のインストール

aws-php-sample ディレクトリから以下を実行します。

curl -sS https://getcomposer.org/installer | php

php composer.phar install


アクセスキーの設定

~/.aws/credentialsWindows ユーザーの場合は、C:\Users\USER_NAME\.aws\credentials)に認証情報ファイルを作成し、下線部分の値を自分用の値に置き換えてから以下の行を保存します。

[default]

aws_access_key_id = YOUR_ACCESS_KEY_ID

aws_secret_access_key = YOUR_SECRET_ACCESS_KEY


サンプルの実行

php sample.php

AWS SDK for PHP Sample Project

A simple PHP application illustrating usage of the AWS SDK for PHP.

Requirements

A composer.json file declaring the dependency on the AWS SDK is provided. To install Composer and the SDK, run:

curl -sS https://getcomposer.org/installer | php
php composer.phar install

Basic Configuration

You need to set up your AWS security credentials before the sample code is able to connect to AWS. You can do this by creating a file named “credentials” at ~/.aws/ (C:\Users\USER_NAME\.aws\ for Windows users) and saving the following lines in the file:

[default]
aws_access_key_id = <your access key id>
aws_secret_access_key = <your secret key>

See the Security Credentials page for more information on getting your keys. You can also set your credentials in a couple of other ways. See the AWS SDK for PHP documentation for more information.

Running the S3 sample

If you are using IAM security credentials, the user account must have the Full S3 Access policy attached.

This sample application connects to Amazon’s Simple Storage Service (S3), creates a bucket, and uploads a file to that bucket. The sample code will generate a bucket name and a file for you, so all you need to do is run the code:

php sample.php

The S3 documentation has a good overview of the restrictions for bucket names for when you start making your own buckets.

License

This sample application is distributed under the Apache License, Version 2.0.

 

PHPフレームワーク Laravel入門
  • 価格   ¥ 3,240
  • メーカー掌田津耶乃
  • 販売者 Amazon.co.jp



今すぐAmazon公式をチェック
いきなりはじめるPHP~ワクワク・ドキドキの入門教室~
  • 価格   ¥ 1,944
  • メーカー谷藤賢一
  • 販売者 Amazon.co.jp



今すぐAmazon公式をチェック

【ショップ】Amazon Product Advertising APIについて調査する。

EC-CUBEにアマゾンと連携させようとした際に調べて出てきたキーワード、Amazon Product Advertising APIを調べてみると、アマゾンアソシエイトのサイトにたどり着きました。

Amazon Product Advertising API

アマゾンサイトより。
Product Advertising API は、Amazon の商品情報を API を通してご提供するサービスです。Webやアプリ開発者の皆さまが、ご自分の Web サイトやアプリに組み込むことで Amazon の商品をより動的に紹介することを可能にします。Amazon の豊富な品揃えの商品を、その詳細情報や画像URL、金額、類似製品などと合わせてご紹介いただくことで、マネタイズを支援いたします。
とあります。
ログインしてみるとなにやら見たことがあるページです。
アマゾンプラグイン(Associates Link Builder)の導入と設定のときに設定した際に対応したページでした。
ということは、まずはこの認証キーについては、取得済みです。
さて、ここからは実際に対応された方の記事をひたすら探すことになります。
プログラムをかかれる方はあっという間に出来てしまうため、難なく出来てしまうことも、自分にとっては、えっ!どうやったのというものばかりです。
見つけた記事を参考に、Rubyという言語で対応する場合は、
  • 前準備:Product Advertising API に登録する
  • 前準備:シークレットアクセスキーの取得方法
    が必要。うん、これは出来る。
  • 適当なフォルダにbundlerをインストールする。
  • Gemfileを作成する。
  • amazon/ecs をインストールする。
  • 商品検索のサンプルコードをRubyで作成する。
  • 検索を実行する。(Rubyを実行する。)

という流れのようです。

さてさて、早速ですがわからないキーワード。
でも、なんらかの事前準備して、Amazonのecsというソフトパッケージをインストールして、対応する言語で記載すれば動きそうな気がします。

EC-CUBEでAmazon ecsを使うとかすると検索されるのでしょうか。。。
まずは、前準備段階は完了できているようです。

Amazon Product Advertising APIを読み込む。

私の悪い癖ですが、ググってなんだか苦労した人がブログで残している情報を探して楽しようと考えてました。
このサイトを作ったきっかけは勉強もかねているのでした。(忘れてました。)

まずはしっかりとアマゾンのサイトを読み込む必要があるのですが、どこから手をつけてよいものか。

ということで、アマゾンProduct Advertising APIのプログラミングガイドを読んだ結果を残していきます。

ここの手順を順番に進めました。

準備作業

①Product Advertising API 開発者として登録する。
以下のサイトに登録する。

https://affiliate-program.amazon.com/gp/flex/advertising/api/sign-in-jp.html

英語ですが、ここは、他の方が登録方法をたくさん載せているので、
ググればみつけられました。

②アソシエイトへの登録

https://affiliate.amazon.co.jp/join

ここも、一般的な流れで、アカウントを作成し、鍵ペアを作成する。
https://affiliate.amazon.co.jp/join

鍵ペアの取得Amazon アソシエイト・プログラムへの参加が完了したら、アクセスキー ID と秘密鍵で構成された鍵ペアの取得が必要です。Product Advertising API は、他の APIリソース同様、Amazon Web サービスのインフラストラクチャを利用して鍵ペアを生成しています。鍵ペアは、次の場所から取得できます。

http://aws-portal.amazon.com/gp/aws/developer/account/index.html?action=access-key

鍵ペアを取得すると、全ての国の Product Advertising API に対してリクエストを作成することが可能となります。

③ライセンス契約を読む

https://affiliate.amazon.co.jp/gp/advertising/api/detail/agreement.html

これでまずは前段階は完了。