バージョン選択

フォーラム

メニュー

オンライン状況

45 人のユーザが現在オンラインです。 (37 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 45
もっと...

サイト内検索

質問 > フロント機能 > 規格に在庫数ではなく在庫状態を表示したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
karasuno
投稿日時: 2014/11/20 10:10
対応状況: −−−
新米
登録日: 2014/11/6
居住地:
投稿: 7
規格に在庫数ではなく在庫状態を表示したい
======================
EC-CUBEバージョン 2.13.3
PHPバージョン PHP 5.2.17
DBバージョン MySQL 5.6.14-log
======================

全商品に規格を与えるので複数規格の時規格選択する際のセレクトボックス内にそれぞれの在庫状態を表示させて、画面をスッキリさせたいです。

現在、在庫がゼロになると
・Sサイズ
・Mサイズ(品切れ中)
・Lサイズ
と自動的に品切れを表示してくれますが、
在庫数ではなく、
在庫0→品切れ中
在庫1〜9→在庫僅少
在庫10以上→在庫ありという感じで
・Sサイズ(在庫僅少)
・Mサイズ(品切れ中)
・Lサイズ(在庫あり)
このように表示させたいのですが、うまくいきません。

data/class/SC_Product.phpの290-292行目
if (!in_array($classcat_id1, $classCats1)) {
$classCats1[$classcategory_id1] = $arrProductsClass['classcategory_name1']
. ($classcategory_id2 == 0 && !$stock_find_class ? ' (品切れ中)' : '');

これを条件分岐させたらいいのかな?と思い試してみたのですが、サーバーエラーになってしまったので慌てて元に戻しました。
色々検索してみたのですが、在庫数の表示についてはたくさん出てくるのに在庫僅少については商品ステイタスで手動で「残りわずか」に切り替える、という感じで欲しい情報にたどり着けませんでした。

良いお知恵をお貸しいただけないでしょうか。
tsuji
投稿日時: 2014/11/20 10:51
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: 規格に在庫数ではなく在庫状態を表示したい
karasuno 様

karasuno 様の書かれている方法で問題ないと思いますよ。
ちゃんと在庫数に応じてメッセージが変わりました。

ただ、下記に条件文を追加するよりは「品切れ中」などの文言を
あらかじめ条件ごとに作成して規格名に加える方がプログラムは
すっきりすると思います。

data/class/SC_Product.phpの290-292行目
if (!in_array($classcat_id1, $classCats1)) {
$classCats1[$classcategory_id1] = $arrProductsClass['classcategory_name1']
. ($classcategory_id2 == 0 && !$stock_find_class ? ' (品切れ中)' : '');


例えば、下記のように
                if(!$arrProductsClass['stock_unlimited'] && $arrProductsClass['stock'] > 0 && $arrProductsClass['stock'] < 10){
                    $stock_msg = '(僅少)';
                }else if(!$stock_find_class){
                    $stock_msg = '(品切れ中)';
                }else{
                    $stock_msg = '';
                }


----------------
****************************************
株式会社システムフレンド
辻 拓也(takuya tsuji)
改造専門店・EC-CUBE工房
****************************************

karasuno
投稿日時: 2014/11/20 16:20
対応状況: −−−
新米
登録日: 2014/11/6
居住地:
投稿: 7
Re: 規格に在庫数ではなく在庫状態を表示したい
お早い回答ありがとうございます!
引用:

karasuno 様の書かれている方法で問題ないと思いますよ。
ちゃんと在庫数に応じてメッセージが変わりました。

ただ、下記に条件文を追加するよりは「品切れ中」などの文言を
あらかじめ条件ごとに作成して規格名に加える方がプログラムは
すっきりすると思います。
                if(!$arrProductsClass['stock_unlimited'] && $arrProductsClass['stock'] > 0 && $arrProductsClass['stock'] < 10){
                    $stock_msg = '(僅少)';
                }else if(!$stock_find_class){
                    $stock_msg = '(品切れ中)';
                }else{
                    $stock_msg = '';
                }


とのことですが、290-293行を教えてくださったコードに書き換えたところセレクトボックスの中身が表示されなくなりました^^;
>あらかじめ条件ごとに作成して規格名に加える方が
ということなので290-293行より前に記述するのでしょうか。
申し訳ないのですが、具体的にどこにコードを記述するのか教えていただけると嬉しいです。
tsuji
投稿日時: 2014/11/21 9:14
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: 規格に在庫数ではなく在庫状態を表示したい
karasuno 様

>>あらかじめ条件ごとに作成して規格名に加える方が
>ということなので290-293行より前に記述するのでしょうか。

そうです。前に記述するものです。
また、$stock_msgは「(品切れ中)」などの文言をあらかじめ
入れておくものです。簡単にいうと「(品切れ中)」を$stock_msg
で置き換えるという方がわかりやすいでしょうか。
ただ、そのまま置き換えただけでは(品切れ中)としかでてこない
と思いますので、そこはコードを読んでお考えください。

わからない場合はご投稿ください。その際はどういう風にわからない
かを教えてくださればと思います。


----------------
****************************************
株式会社システムフレンド
辻 拓也(takuya tsuji)
改造専門店・EC-CUBE工房
****************************************

karasuno
投稿日時: 2014/11/22 7:05
対応状況: −−−
新米
登録日: 2014/11/6
居住地:
投稿: 7
Re: 規格に在庫数ではなく在庫状態を表示したい
なるほど。
別ファイルなんですが、じっくり行を追って見ていてtsuji様の仰ってることが何となく分かった気がします。

>わからない場合はご投稿ください。その際はどういう風にわからない
かを教えてくださればと思います。

なんて嬉しいお言葉。
できるところまで自力で挑戦してみたいと思います。
どうしても無理だった時は頼らせてください。
ありがとうございます!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,710名です
総投稿数は109,948件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1285
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.