バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

機能要望 > 管理機能 > 少なくなった在庫をメールで知らせてくれる機能

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 2007/8/22 13:41
対応状況: −−−
少なくなった在庫をメールで知らせてくれる機能
在庫終了が決められた数量以下になったら、管理者宛てにメールで知らせてくれると便利
ryo
投稿日時: 2007/8/22 15:03
対応状況: −−−
一人前
登録日: 2007/7/26
居住地: 関西
投稿: 86
Re: 少なくなった在庫をメールで知らせてくれる機能
超簡単に考えた機能で良ければ・・・

/html/shopping/complete.phpの


// 在庫を減らす処理
function lfReduceStock($objQuery, $arrID, $quantity) {
	$where = "product_id = ? AND classcategory_id1 = ? AND classcategory_id2 = ?";
	$arrRet = $objQuery->select("stock, stock_unlimited", "dtb_products_class", $where, $arrID);
	
	// 売り切れエラー
	if(($arrRet[0]['stock_unlimited'] != '1' && $arrRet[0]['stock'] < $quantity) || $quantity == 0) {
		$objQuery->rollback();
		sfDispSiteError(SOLD_OUT, "", true);
	// 無制限の場合、在庫はNULL
	} elseif($arrRet[0]['stock_unlimited'] == '1') {
		$sqlval['stock'] = null;
		$objQuery->update("dtb_products_class", $sqlval, $where, $arrID);
	// 在庫を減らす
	} else {
		$sqlval['stock'] = ($arrRet[0]['stock'] - $quantity);
		if($sqlval['stock'] == "") {
			$sqlval['stock'] = '0';
		}		
		$objQuery->update("dtb_products_class", $sqlval, $where, $arrID);
	}

}


ここに、以下の部分を追加すればOKです。


// 在庫を減らす処理
function lfReduceStock($objQuery, $arrID, $quantity) {
	$where = "product_id = ? AND classcategory_id1 = ? AND classcategory_id2 = ?";
	$arrRet = $objQuery->select("stock, stock_unlimited", "dtb_products_class", $where, $arrID);
	
	// 売り切れエラー
	if(($arrRet[0]['stock_unlimited'] != '1' && $arrRet[0]['stock'] < $quantity) || $quantity == 0) {
		$objQuery->rollback();
		sfDispSiteError(SOLD_OUT, "", true);
	// 無制限の場合、在庫はNULL
	} elseif($arrRet[0]['stock_unlimited'] == '1') {
		$sqlval['stock'] = null;
		$objQuery->update("dtb_products_class", $sqlval, $where, $arrID);
	// 在庫を減らす
	} else {
		$sqlval['stock'] = ($arrRet[0]['stock'] - $quantity);
		if($sqlval['stock'] == "") {
			$sqlval['stock'] = '0';
		}		
		$objQuery->update("dtb_products_class", $sqlval, $where, $arrID);
	}
	
	if($arrRet[0]['stock'] <= 5){
		// メール送信先
		$stock_mail = "zaiko@domain.com";
		// 件名
		$stock_sub = "商品在庫が少なくなりました。";
		// メッセージ
		$stock_msg = "商品ID:".$arrID[0]."(".$arrID[1].",".$arrID[2].")"."の商品が少なくなりました。";
		// メールを送信します。
		mb_send_mail($stock_mail, $stock_sub, $stock_msg);
	}
}


文章を少なめにすれば携帯でも受け取れるので便利ですよ。

ただ、「if($arrRet[0]['stock'] <= 5)」で設定した数値以下になったら毎回購入されるたびにメールが来るので、大きく設定しすぎるとウザイかもw

ちなみに、条件に「$arrRet[0]['stock']」を使用しているので、購入された後の値ではなく、購入前の在庫数でチェックしてます。これじゃ一気に設定数以上買われると、メール来ないや
購入後の在庫数でチェックする場合は「$sqlval['stock']」を使えばいいと思います。

あと、IDが3つあるみたいなので、3つ併記してますが、通常は「"(".$arrID[1].",".$arrID[2].")".」の部分は消してもいいです。(たぶん)


----------------
/* Ryo from KANSAI */
まいどっ!

ryo
投稿日時: 2007/8/22 15:13
対応状況: −−−
一人前
登録日: 2007/7/26
居住地: 関西
投稿: 86
Re: 少なくなった在庫をメールで知らせてくれる機能
上記IDが3つというのは、恐らく「商品ID」、「規格1ID」、「規格2ID」ですね。


----------------
/* Ryo from KANSAI */
まいどっ!

ゲスト
投稿日時: 2007/8/24 15:22
対応状況: −−−
Re: 少なくなった在庫をメールで知らせてくれる機能
Ryo様

有難う御座います。

勉強になりました〜
早速やってみます!!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,896名です
総投稿数は110,002件です

投稿数ランキング

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
1295
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.