2010年8月21日

カートに入れるボタンを商品詳細ページ以外に設置する

以前、「Color Me Shop! pro - 助け合い掲示板」 に興味深い記事がありましたので、ちょこっと修正してサンプルのご紹介を。橙色部分は各自修正。
内容は表題どおり、「カートに入れるボタンを商品詳細ページ以外に設置する」。
<form name="product_form" method="post" action="http://secure.shop-pro.jp/?mode=cart_inn">
  購入数:<input type="text" name="product_num" value="1" />
  <input type="submit" value="カートに入れる" />
  <input type="hidden" name="product_id" value="12345678" />
  <input type="hidden" name="user_hash" value="<{$smarty.request.PHPSESSID}>" />
  <input type="hidden" name="members_hash" value="<{$smarty.request.PHPSESSID}>" />
  <input type="hidden" name="shop_id" value="PA01234567" />
  <input type="hidden" name="members_id" value="<{$smarty.session.PA01234567.MembersInfo.customer_id}>" />
  <input type="hidden" name="back_url" value="/" />
</form>
・product_numは、購入数。valueは初期購入数。商品詳細ページ内では独自タグ<{$product.init_num}>が使用可能ですが、他のページでは使用できませんので、直接数字を入れます。
・product_idは、商品詳細ページURLに表示されているとおり、「pid=」以下の数字。
・user_hash、members_hashは、そのままでOK。サーバーがユーザーを認識するための一連のやりとり、というくらいのイメージで。
・shop_idは、カラーミーショップ!プロのメニュー「オーナー情報」内にある「アカウントID」。

実際に試してみると、たしかに機能してそうです。
商品一覧ページに「カートに入れる」ボタンがあると便利よさそうと、思っていたので、これはつかえるかもしれません。それにしても、こんなことができるとは……勉強になりました。


【追記】 input type="hidden"としてサーバに送っているパラメータは、formタグ内の <{$product.info}> を展開したもの。 それゆえに、この独自タグがないと、カートが動かないのです。
【追記】オプションがある場合について、匿名さんが下にコメントを残してくれています。商品詳細ページに飛ばすという方法がシンプルでよいと思います。
カラーミー以外では、モーダルウィンドウで入力させる画面を表示している、カートもあります。

【関連記事】
カラーミーにできること、できないこと