在庫が少なくなってきたら在庫数を表示する方法
スポンサーリンク
Welcartの商品ページで、在庫数を表示する方法です。
今回は、某Amazon風に、以下のようにしてみたいと思います。
在庫数 | 表示 |
---|---|
15~ | 在庫あり |
1~14 | ○点の在庫あり |
0 | 売切れ・入荷待ち・廃盤 等の在庫状態 |
注:Amazonで、実際に在庫がいくつ以下になると在庫数が表示されるのかは、筆者は知りません。
もくじ
1. wc_item_single.phpを使用中のテーマに退避
今回は、商品詳細ページに表示される在庫状態の部分に新たなコードを書き入れます。カスタマイズを行うには、プラグインフォルダから商品詳細ページのテンプレートをコピーして、使用中テーマに設置(退避)する必要があります。
Welcartでは、使用中テーマ内にWelcart用テンプレートがあると、そちらを優先的に読み込む仕組みです。
商品詳細ページのテンプレートのwc_item_single.phpは、プラグインフォルダの以下の場所にあります。
usc-e-shop/theme/welcart_default/wc_templates/wc_item_single.php
これをコピーして、使用中テーマのwc_templatesフォルダ(なければ作成)の中に設置します。
- 使用中のテーマフォルダ
- wc_templates
- wc_item_single.php ←ココ
- wc_templates
これ以降の作業は、使用中のテーマに設置したwc_item_single.phpで行います。
2. 在庫数に関係するタグ
2-1. デフォルトでの在庫表示
デフォルトのwc_item_single.phpには、在庫表示は38行目(単数SKUの場合)辺りにある以下のコードが出力するようになっています。
<?php _e('stock status', 'usces'); ?> : <?php usces_the_itemZaikoStatus(); ?>
usces_the_itemZaikoStatus();というテンプレートタグ(関数)は、「在庫有り」「在庫僅少」「入荷待ち」といったステータスを表示するものです。
フロントエンドでの表示はこうです。
今回は、この部分をカスタマイズすることにします。
2-2. 在庫数を表示するコード
在庫数を表示する関数は、いくつかWelcartで用意されています。今回は以下の関数を使います。
- usces_the_itemZaikoNum():在庫数を取得
- usces_get_itemZaiko():在庫状態を取得
- usces_the_itemZaikoStatus():在庫状態を表示
カッコの中に入れるパラメータによって、返り値が微妙に違ってきます。PHPがわかる方なら、プラグインフォルダの中からこれらの関数を探してみても良いと思います。
Welcart公式サイトでも、いくつかの関数は表にまとめられています。
Welcart テンプレートタグ一覧 - Welcartコミュニティー
3. コードをwc_item_single.phpに記述
先ほどの3つの関数を使って、Amazon風に在庫を表示させるコードは以下のとおりです。これを、1の在庫表示部分と置き換えます。複数SKUの表示部分もお忘れなく。
<?php $stock_rest = usces_the_itemZaikoNum('return'); if( usces_get_itemZaiko('id') <= 1 ){ if( $stock_rest >= 15 ){ //在庫数が15以上の場合 echo '在庫有り'; } elseif ( 0 < $stock_rest && $stock_rest < 15 ){ //在庫数が0より大きく15未満の場合 echo $stock_rest. '点在庫有り'; } } else { //その他の場合 usces_the_itemZaikoStatus(); //在庫状態を表示 } ?>
コード解説
2行目で、在庫数を取得して変数$stock_restに代入。3行目のusces_get_itemZaiko(‘id’)で、在庫状態を数値に変換したもの(※)を取得します。
※0→在庫有り、1→在庫僅少、2→売切れ、3→入荷待ち、4→廃盤
後はコード内の注の通りです。
在庫があっても、在庫状態を「売切れ」「入荷待ち」「廃盤」にしている場合は、カートボタンは表示されません。そこを考慮するため、3行目の条件が必要になってきます。
これで、在庫が1~15個の時は、以下のように在庫数が表示がされます。
4. まとめ
在庫数を表示すると、「もうすぐ売り切れてしまうかも!」と顧客に思わせて購買を促すきっかけになるかもしれません。
ちなみに、単に在庫数を表示させたいだけなら、シンプルにこれだけです。
<?php usces_the_itemZaikoNum(); ?>
3のコードをアレンジするとすれば、楽天のように在庫が残り1~2個程度で「△」を出力するようにしてもいいかもしれませんね。
[…] さて、今回は「在庫が少なくなってきたら在庫数を表示する方法」の導入です。今回も、『Welcart カスタマイズ ブログ』さんに書いてある通りで設置できるはずです。なので細かい説 […]