商品データ(エントリー)を登録する
Shopping Cart 拡張アプリでは1エントリーを1商品として扱います。そのため、商品データをサイトに追加したい時は、Shopping Cart 拡張アプリのルールに従ってエントリーを作成する必要があります。安心してください。難しいことは何もありません。Shopping Cart 拡張アプリを使用したECサイトで商品を登録する方法を学習しましょう。
商品を登録する手順は以下になります。
- 商品管理に必要なエントリーのカスタムフィールドを追加する
- 配送グループを選択するカスタムフィールドを追加する
商品管理に必要なエントリーのカスタムフィールドを追加する
Shopping Cart 拡張アプリを使用した、ECサイト構築ではエントリーを商品データとして扱うために必要なカスタムフィールドがいくつか設定されています。
フィールド | 概要 | 例 |
---|---|---|
item_price | 商品の販売価格を設定するためのカスタムフィールドです。 | 1000 |
item_stock | 商品の在庫数を設定するためのカスタムフィールドです。このフィールドの値が空文字の場合、その商品(エントリー)について在庫管理をしないことになります。 | 100 |
item_tax | 商品の消費税率を設定するためのカスタムフィールドです。 | 0.1 |
item_shipping_group_id | 商品の配送グループを設定するためのカスタムフィールドです。 Shopping Cart 設定で設定した配送グループの id の値を設定します。 | group_default |
※ Shopping Cart拡張アプリに同梱しているサンプルテーマでは、「商品を探す(products)」カテゴリーでエントリーを作成すると、上記の商品データ用のカスタムフィールドが設置された状態でエントリーを作成できるようになっています。
配送グループを選択するカスタムフィールドを追加する
エントリーのカスタムフィールドで Shopping Cart 拡張アプリ設定で設定した配送グループを設定できるようにするには、ShippingGroup_AdminSelect モジュール を使用して以下のように記述する必要があります。
ShippingGroup_AdminSelect モジュール を利用することで、自動的に配送グループのステータスを考慮した選択肢を表示することができます。
<select name="item_shipping_group_id"> <!-- BEGIN_MODULE ShippingGroup_AdminSelect --> <!-- BEGIN shippingGroup:loop --> <option value="{id}" \{item_shipping_group_id:selected#{id}\}>{name}</option> <!-- END shippingGroup:loop --> <!-- END_MODULE ShippingGroup_AdminSelect --> </select> <input type="hidden" name="field[]" value="item_shipping_group_id" />
【Tips】エントリー(商品)で在庫管理を行うかどうかを判定する
エントリーにおいて、在庫管理が有効かどうかは、エントリーのカスタムフィールド item_stock
の値が空文字であるかどうかによって決まります。そのため、エントリーを表示するときに以下のようなIFブロックを記述することで、そのエントリーで在庫管理を行うかどうかを判定することができます。在庫管理を行うかどうかによってテンプレートを分岐させたい場合に活用できます。
<!-- BEGIN_IF [{item_stock}/isset] --> 在庫管理が有効な場合 <!-- ELSE --> 在庫管理が無効な場合 <!-- END_IF -->
まとめ
これで、ECサイトに商品データ(エントリー)を登録できるようになりました。商品データを登録できるようにはなりましたが、商品を購入できるようにするにはどうしたら良いのでしょうか?ユーザーが商品を購入するためには以下の2つのステップが必要になります。
- カート機能(カートへの商品の追加・削除)機能の実装
- 決済用フォームの実装
カートへの商品の追加・削除の実装方法ついてはリファレンスにて説明しています。また、決済用のフォームの作成についてはこちらのエントリーで説明しています。さぁ、ECサイトの構築完成まであと少しです!この調子で制作を進めていきましょう。