VirtualCartと商品検索サービス

これは何?

VirtualCart

  • VirtualCartは、ECサイトを跨いで商品購入ができるショッピングカートです。リソース志向の階層型CMS&ワークフローエンジンReflex Tagging Serviceを利用して作られています。

商品検索サービス

  • 商品検索サービスは、ショッピングサイト向けの検索サービスです。こちらも、Reflex Tagging Serviceを利用しています。cart

機能概要

VirtualCartの機能

  • このカートを利用することで、異なるドメインのサイトを渡り歩いて購入することが可能になります。

    (※ 以下のDEMOはFirefox3.6で動かしてください。)

    1. まず、 ECサイト1(→クリック)から商品を選択して、カートに入れるを押してください。そして右上の×を押してサイトに戻ってください。
    2. 次に、 ECサイト2(→クリック)から何か商品を選択して、アイテム詳細へを押して、単品詳細画面からカートに入れるを押してください。
    3. 最後に、カートの画面で購入するを押して、決済選択、配送先を入力して次へを押してください。(※ DEMOなので実際には決済はされません)
    4. これで購入は完了です。2つの商品が同時に購入できたことを確認してください。 →/d/orderを確認する
virtualcart

動作原理

  • VirtualCartがTagging serviceで実行されているところがポイントになります。

    クロスドメイン通信のための新技術(HTML5 postmessageなど)は使っていないため、理論的にはcookieに対応したあらゆるブラウザーで実行可能です。

    1. ECサイト1で「カートに入れる」が押されると、VirtualCartがIFRAMEとして呼び出されます。その際、iframe.src="http://tagging-service.appspot.com/d/cart/cart.html#商品情報"のように商品情報のハッシュが付きます。
    2. VirtualCart側でlocation.hashを読み取り、商品情報をcookieに保存します。このときのドメインは、tagging-service.appspot.comですので、ECサイト2に遷移した後でもcookieの値は読み出せることになります。
    3. ECサイト2で購入ボタンを押した際にも、VirtualCartのIFRAMEでtagging-service.appspot.comにPOST実行しますので、クロスドメイン通信の制約を回避できます。
    4. POSTを受け付けるのはTagging Serviceであり、ACL設定によってログイン済の人に限定といった制限をつけることができます。ログイン認証はOpenIDに対応しているため安全です。
    5. Tagging ServiceにはServer Side Script機能があり、注文受付時にJavaScriptを実行して、入力値チェックや料金計算、配送料計算などをサーバ側で行ないます。受付が成功するとWebHook機能により在庫引当や受注メールサービスが非同期に起動されます。

商品検索サービスの機能

  • Tagging Serviceのproperty検索機能とalias検索機能により、ショッピングサイトのカテゴリ検索やキーワード検索を提供します。
  • 商品の詳細データをATOM entryで提供します。 →単品詳細を確認する
  • カテゴリ検索は、以下のように、大中小それぞれのカテゴリのaliasを定義することで可能になります。
    o 本体(self)
       <link href="/item/0000003400021" rel="self"/>                                   (定義)
       http://tagging-service.appspot.com/d/item/0000003400021                         (取得)
        
    o 別名(alias)
       <link href="/cloudec-l/Men/0000003400021" rel="alternate"/>
       http://tagging-service.appspot.com/d/cloudec-l/Men/0000003400021        (大カテ)
    
       <link href="/cloudec-m/Men/Tops/0000003400021" rel="alternate"/>
       http://tagging-service.appspot.com/d/cloudec-m/Men/Tops/0000003400021     (中カテ)
    
       <link href="/cloudec/Men/Tops/Sweater/0000003400021" rel="alternate"/>
       http://tagging-service.appspot.com/d/cloudec/Men/Tops/Sweater/0000003400021  (小カテ)
    
  • 在庫数は以下のように「商品コード?count」で取得できます。
    o 在庫数取得
       http://tagging-service.appspot.com/d/cloudec/Men/Tops/Sweater/0000003400021?count
    
  • color検索、size検索、keyword検索も以下のようにaliasを定義することで可能になります。
    o 別名(alias)定義
       <link href="/cloudec-color/Men/Tops/color/purple/0000001400000" rel="alternate"/>
       <link href="/cloudec-size/Men/Tops/S/0000001400000" rel="alternate"/>
       <link href="/keyword/流行/0000001400000" rel="alternate"/>
         
    o 検索実行
       http://tagging-service.appspot.com/d/cloudec-color/Men/Tops/color/               (color検索)
       http://tagging-service.appspot.com/d/cloudec-size/Men/Tops/S/                    (サイズS検索)
       http://tagging-service.appspot.com/d/cloudec-size/Men/Tops/S/?s=price.asc&l=20   (サイズSで安い順に20件)
       http://tagging-service.appspot.com/d/keyword/流行/                               (キーワード検索)
    
  • shop検索、価格帯検索では、以下のように検索項目(property)を追加することで可能になります。
    o 検索項目(category)定義
       <category term="shop" scheme="http://amazon.jp/" label="anzon"/>
       <category term="pricerange" label="100"/>
    
    o 検索実行
       http://tagging-service.appspot.com/d/item?shop=anzon                            (shop検索)
       http://tagging-service.appspot.com/d/item?pricerange=100                        (価格帯検索)
       http://tagging-service.appspot.com/d/item?shop=anzon&s=price.desc&l=10          (shop検索で高い順に10件)
    

    検索方式の詳細は、Reflex Tagging Serviceにて