バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 【ver.2.11.2】在庫0 メール通知が上手く行きません

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
by0448
投稿日時: 2012/2/27 18:50
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
【ver.2.11.2】在庫0 メール通知が上手く行きません
お世話になっております。

http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=9405&forum=11

上記の在庫がゼロになったらメール通知をさせる機能を実装したのですが、商品の在庫がゼロではなく、売れただけでそれぞれの商品の在庫が無くなりましたと間違ってメールが来るのですが、どうしてこうなってしまっているのでしょうか。

ちなみに、以下の文を
./data/class/SC_Product.phpの604行目付近へ入れました。

if($arrRet[0]['stock'] < 1){ // メール送信先 $stock_mail = "eika@future.ocn.ne.jp"; // 件名 $stock_sub = "商品在庫がなくなりました。"; // メッセージ $stock_msg = "以下の商品の在庫が切れました。商品状況を確認してください。 ★商品ID:".$productsClass['product_id']." \n ★商品コード:".$productsClass['product_code']." \n ★商品名:".$productsClass['name']." \n"; // メールを送信します。 mb_send_mail($stock_mail, $stock_sub, $stock_msg); }




どなたか、同じような機能を実装して、同じような問題が起こった方はいませんか?
どのようにしたら、在庫ゼロになってしまった場合のみ、メールが来るのでしょうか?
ken-o
投稿日時: 2012/2/27 19:51
対応状況: −−−
長老
登録日: 2011/9/22
居住地:
投稿: 222
Re: 【ver.2.11.2】在庫0 メール通知が上手く行きません
引用:

if($arrRet[0]['stock'] < 1){ // メール送信先 $stock_mail = "eika@future.ocn.ne.jp";; // 件名 $stock_sub = "商品在庫がなくなりました。"; // メッセージ $stock_msg = "以下の商品の在庫が切れました。商品状況を確認してください。 ★商品ID:".$productsClass['product_id']." \n ★商品コード:".$productsClass['product_code']." \n ★商品名:".$productsClass['name']." \n"; // メールを送信します。 mb_send_mail($stock_mail, $stock_sub, $stock_msg); }[/code]


ですが、
↓の太文字のようにしてみたら、どうなりますか?
引用:

if($arrRet[0]['stock'] == 0){ // メール送信先 $stock_mail = "eika@future.ocn.ne.jp";; // 件名 $stock_sub = "商品在庫がなくなりました。"; // メッセージ $stock_msg = "以下の商品の在庫が切れました。商品状況を確認してください。 ★商品ID:".$productsClass['product_id']." \n ★商品コード:".$productsClass['product_code']." \n ★商品名:".$productsClass['name']." \n"; // メールを送信します。 mb_send_mail($stock_mail, $stock_sub, $stock_msg); }[/code]


----------------
何分知識が浅いですが・・・
出来得る限り協力したいと思っています

by0448
投稿日時: 2012/2/28 10:13
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
Re: 【ver.2.11.2】在庫0 メール通知が上手く行きません
ken-o 様

いつも回答頂き、ありがとうございます。


提示して頂いたように変更しましたが、今度は在庫が0になってもメールが届かなくなってしまいました。

根本から間違っているのでしょうか。
DELIGHT
投稿日時: 2012/2/28 10:41
対応状況: −−−
仙人
登録日: 2010/2/3
居住地: 熊本県・九州・長野県・関東甲信越
投稿: 572
Re: 【ver.2.11.2】在庫0 メール通知が上手く行きません
$arrRet[0]['stock']
の中身が気になりますね。
... と思ったら参照先のスレッドを最後までよく見ると・・・。


----------------
+ DAISY inc. -------------------- +
EC-CUBE構築・カスタマイズサービス
EC・WEB構築などお気軽にご相談ください。

デイジー株式会社
http://daisy.link/

by0448
投稿日時: 2012/2/28 11:17
対応状況: 解決済
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
Re: 【ver.2.11.2】在庫0 メール通知が上手く行きません
DELIGHT 様


回答ありがとうございます。

ものすごく単純なミスだったわけですね。
本当に情けないです。


お陰様で解決しました。
今後は、もっとよく見てから相談することにします。



ありがとうございました。
yuta
投稿日時: 2012/3/19 18:20
対応状況: −−−
常連
登録日: 2009/1/15
居住地:
投稿: 54
Re: 【ver.2.11.2】在庫0 メール通知が上手く行きません
すみません、良く見たのですが解決できなかったので、どのように解決されたのか教えていただけませんか?

参照先にあった、


if($productsClass['stock'] < 1){
// メール送信先
$stock_mail = "×××@×××.com";
// 件名
$stock_sub = "商品在庫がなくなりました。";
// メッセージ
$stock_msg = "★商品ID:".$productsClass['product_id']." ★商品コード:".$productsClass['product_code']." ★商品名:".$productsClass['name']."の在庫がなくなりました。";
// メールを送信します。
mb_send_mail($stock_mail, $stock_sub, $stock_msg);
}


というコードを

        // TODO エラーハンドリング

        $productsClass = $this->getDetailAndProductsClass($productClassId);
        if ($productsClass['stock_unlimited'] != '1' && $productsClass['stock'] < 0) {
            return false;
        }

の直後に挿入しました。

通常の商品であれば在庫0の場合だけメールが届くのですが、在庫無制限の商品の場合は購入するたびにメールが届いてしまいます。

当方ECCUBE 2.11.4 を使っています。

アドバイスいただけると幸いです。
宜しくお願いいたします。
karin
投稿日時: 2012/3/20 1:18
対応状況: −−−
仙人
登録日: 2008/9/15
居住地: 東京都
投稿: 689
Re: 【ver.2.11.2】在庫0 メール通知が上手く行きません
メールを送信する際の条件に、在庫無制限の場合を除く を追加する必要があるかと思います。


----------------

yuta
投稿日時: 2012/3/21 11:49
対応状況: −−−
常連
登録日: 2009/1/15
居住地:
投稿: 54
Re: 【ver.2.11.2】在庫0 メール通知が上手く行きません
コメント有難うございます。


// TODO エラーハンドリング
$productsClass = $this->getDetailAndProductsClass($productClassId);
if ($productsClass['stock_unlimited'] != '1' && $productsClass['stock'] < 0) {
return false;
        }


当方素人でして、という部分が条件分けを行っていると思っていましたが違ったのですね!

周辺で記述されている似たようなコードをみて

        if ($productsClass['stock_unlimited'] != '1'){
        } elseif($productsClass['stock'] < 1){ ....

などといろいろ書き換えたりして試してみましたがうまく条件わけが出来ませんでした。

質問ばかりで恐縮ですが、もし簡単に記載できる内容であれば具体的に教えていただけませんでしょうか?

karin
投稿日時: 2012/3/21 18:40
対応状況: −−−
仙人
登録日: 2008/9/15
居住地: 東京都
投稿: 689
Re: 【ver.2.11.2】在庫0 メール通知が上手く行きません
$productsClass['stock_unlimited'] != '1'

これが、「在庫無制限の商品ではない」という条件になります。

これをふまえて、メールを送信する条件は下記の内容になるかと思います。




if(商品の在庫数が1個より少ない かつ 在庫無制限の商品ではない) {
 	メール送信の処理
 }


----------------

yuta
投稿日時: 2012/3/22 10:46
対応状況: −−−
常連
登録日: 2009/1/15
居住地:
投稿: 54
Re: 【ver.2.11.2】在庫0 メール通知が上手く行きません
アドバイス有難うございます。
おかげさまで無事に解決いたしました。

他の方のために記録を残します。

PHP初心者向けのサイトを参考にしました。
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k02.htm



■条件式

  ・数値、文字列共に同じ比較演算子である。

  ==       等しい
  !=       等しくない
  <        より小さい
  >        より大きい
  <=       以下
  >=       以上

  ===      PHP4 - 値と型が等しい
  !==      PHP4 - 値と型が等しくない

  &&       and       (論理積)
  ||       or        (論理和)
  !        not       (否定)
  and      && と同じ (論理積)
  or       || と同じ (論理和)
  xor      排他論理和(エクスクルーシブオア)

  True     真
  False    偽


をみて&&を挿入しました。


if($productsClass['stock'] < 1){


これに、

&& $productsClass['stock_unlimited'] != '1' 

を加えて、

if($productsClass['stock'] < 1 && $productsClass['stock_unlimited'] != '1'){


として、最終的に


if($productsClass['stock'] < 1 && $productsClass['stock_unlimited'] != '1'){
// メール送信先
$stock_mail = "×××@×××.com";
// 件名
$stock_sub = "商品在庫がなくなりました。";
// メッセージ
$stock_msg = "★商品ID:".$productsClass['product_id']." ★商品コード:".$productsClass['product_code']." ★商品名:".$productsClass['name']."の在庫がなくなりました。";
// メールを送信します。
mb_send_mail($stock_mail, $stock_sub, $stock_msg);
}



と書き換えて無事に在庫設定が無限のものは除外されました。
有難うございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1294
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.