Labo

[EC-CUBE 2.11.2] 新規作成したPHPページからEC-CUBEのカートを利用

2011年08月28日 / 投稿者名:fukap


EC-CUBEで作成した新規ページ(html/user_data/xxx.php)からカートを利用したい場合の方法です。
とりあえず、商品規格を使用しない場合は以下のようにできると思います。

 

1.管理画面>商品管理>商品登録 から商品登録を済ませておきます。
2.管理画面>デザイン管理>PC>ページ詳細設定 で、ページを新規作成。
3.コード入力欄に以下のコードをコピペ。

<!--{* 買い物かご *}-->
<!--{* product_id=xx に product_id を設定 *}--></pre>
<form id="form1" action="/products/detail.php?product_id=2" method="post" name="form1"><input type="hidden" name="transactionid" value="<!--{$transactionid}-->" />
 <input type="hidden" name="mode" value="cart" />
 <!--{* value=xx に product_id を設定 *}-->
 <input type="hidden" name="product_id" value="2" />
 <!--{* value=xx に product_class_id を設定 *}-->
 <input id="product_class_id" type="hidden" name="product_class_id" value="10" />
 <input type="hidden" name="favorite_product_id" value="" />
 <input class="box60" type="text" name="quantity" value="1" maxlength="9" />
 <a onmouseover="chgImg('/user_data/packages/default/img/button/btn_cartin_on.jpg','cart');" onmouseout="chgImg('/user_data/packages/default/img/button/btn_cartin.jpg','cart');" href="javascript:void(document.form1.submit())">
 <img id="cart" src="/user_data/packages/default/img/button/btn_cartin.jpg" alt="カゴに入れる" name="cart" /></a></form>
<pre>
<!--{* 買い物かご *}-->

4.カートを張りたい商品の商品詳細ページのソースを表示し、product_id や product_class_id の値を調べて書き換え。

 

付記)
上記のコードの場合、規格登録を含んだ商品を前提としていません。
規格がある場合は、規格ごとに異なる product_class_id をカートに渡さないといけません。
これを動的に行おうとすると、商品一覧ページや商品詳細ページと同様の処理が必要になると思いますが、
「新規作成したPHPページで特定の商品のカートボタンをつけたい」という場合なら、手動でやっても良いかと思います。
以下のサンプルコードを参考にしてみてください。
規格商品ごとに 商品名や価格、product_class_id の value を書き換えます。

<!--{* 買い物かご *}-->
<!--{* product_id=xx に product_id を設定 *}-->
<form name="form1" id="form1" method="post" action="/products/detail.php?product_id=2">
	<input type="hidden" name="transactionid" value="<!--{$transactionid}-->" />
	<input type="hidden" name="mode" value="cart" />
	<!--{* value=xx に product_id を設定 *}-->
	<input type="hidden" name="product_id" value="2" />
	<!--{* value=xx に product_class_id を設定 *}-->
	<table style="width:auto;"> 
	    <tr> 
	        <th>規格名</th> 
	        <th>価格</th> 
			<th>ご購入</th> 
	    </tr> 
	        <tr> 
	        <td>抹茶: S</td> 
	        <td> 980円</td> 
	   		<td><input type="radio" name="product_class_id" value="1" /></td> 
	    </tr> 
	        <tr> 
	        <td>抹茶: M</td> 
	        <td>1,190円</td> 
	   		<td> <input type="radio" name="product_class_id" value="2" /></td> 
	    </tr> 
	        <tr> 
	        <td>抹茶: L</td> 
	        <td>1,400円</td> 
	   		<td><input type="radio" name="product_class_id" value="3" /> 
			</td> 
	    </tr> 
	        <tr> 
	        <td>チョコ: S</td> 
	        <td>980円</td> 
	   		<td><input type="radio" name="product_class_id" value="64" /></td> 
	    </tr> 
	        <tr> 
	        <td>チョコ: M</td> 
	        <td>1,190円</td> 
	   		<td><input type="radio" name="product_class_id" value="65" /> </td> 
	    </tr> 
	        <tr> 
	        <td>チョコ: L</td> 
	        <td>1,400円</td> 
	   		<td><input type="radio" name="product_class_id" value="66" /></td> 
	    </tr> 
	        <tr> 
	        <td>バニラ: S</td> 
	        <td>980円</td> 
	   		<td><input type="radio" name="product_class_id" value="67" /></td> 
	    </tr> 
	        <tr> 
	        <td>バニラ: M</td> 
	        <td>1,190円</td> 
	   		<td><input type="radio" name="product_class_id" value="68" /></td> 
	    </tr> 
	        <tr> 
	        <td>バニラ: L</td> 
	        <td>1,400円</td> 
	   		<td><input type="radio" name="product_class_id" value="69" /></td> 
	    </tr> 
    </table>
	<input type="hidden" name="favorite_product_id" value="" />
	<input type="text" class="box60" name="quantity" value="1" maxlength="9" style="" />
	<a href="javascript:void(document.form1.submit())" onmouseover="chgImg('/user_data/packages/default/img/button/btn_cartin_on.jpg','cart');" onmouseout="chgImg('/user_data/packages/default/img/button/btn_cartin.jpg','cart');">
	<img src="/user_data/packages/default/img/button/btn_cartin.jpg" alt="カゴに入れる" name="cart" id="cart" /></a>
</form>
<!--{* 買い物かご *}-->

[EC-CUBE 2.11.2] 新規作成したPHPページからEC-CUBEのカートを利用 への4件のコメント

  1. mukazuki より:

    ご質問なのですが
    商品規格を使用する場合は
    どうすればよいのでしょうか?

  2. fukap より:

    product_id と product_class_id で一意な商品が認識できます。

     

    規格のない商品なら、product_id や product_class_id とも一意なので楽なのですが、
    規格登録のある商品を扱うためには、規格1や規格2のプルダウンリストボックスで
    規格分類に応じて、異なる product_class_id を取得するような仕組みが必要です。

     

    とりあえず規格登録のある商品を扱う場合の簡易的なコード例を追記しましたが、
    全ての商品で適用できるような動的な仕組みにしたいなら、
    商品一覧ページや商品詳細ページなど、同様にカートボタンが備わっているページで
    どういう処理を行っているか、参考にしてみてください。

  3. mukazuki より:

    助言ありがとうございます!
    そして追記ありがとうございます。
    これを元に勉強させていただきます!

  4. karen より:

    情報を提供してくださってありがとうございました。(^^)
    これから応用してみます。とても助かりました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

* Copy This Password *

* Type Or Paste Password Here *

*

コメント欄にコードを挿入したい場合は、[php][/php] を使ってください。