バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 規格の在庫数を連動させたい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
niwi
投稿日時: 2013/11/23 0:21
対応状況: −−−
新米
登録日: 2013/11/22
居住地:
投稿: 4
規格の在庫数を連動させたい
お世話になっております。
どなたかご教授・アドバイス等頂けませんでしょうか。

商品管理の商品規格に関しまして、在庫数を商品に対して規格に連動した形で在庫数る仕組みで以下のようなものを考えております。

例)規格1に「購入方法」規格2に「サイズ」を入れた場合

サンプル:S:在庫10
サンプル:M:在庫10
サンプル:L:在庫10
購入する:S:在庫10
購入する:M:在庫10
購入する:L:在庫10

↓「購入する」「Mサイズ」を2枚購入

サンプル:S:在庫10
サンプル:M:在庫8
サンプル:L:在庫10
購入する:S:在庫10
購入する:M:在庫8
購入する:L:在庫10

※規格に対して在庫を減らす連動は出来たのですが、
(例:商品A・B・Cの全てのサイズが連動して減ってしまう)
商品単位で連動するしたいと考えております。

初心者なのでどなたか分かりやすくご教授いただければ
ありがたいです。
なにとぞよろしくお願いいたします。

--------------------------------------
EC-CUBEバージョン 2.12.4
PHPバージョン PHP 5.3.15
DBバージョン MySQL 5.6.11-log
--------------------------------------
tsuji
投稿日時: 2013/11/25 10:07
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: 規格の在庫数を連動させたい
在庫を管理しているDBのカラムは正しく更新されていますか?

商品A・B・Cの在庫がDB上正しく更新されているのであれば、
表示の際に在庫の参照先が正しくないことになります。

商品A・B・Cの在庫がDB上正しく更新されていない、
すべてのサイズが連動して減っているようであれば、
DBの更新するプログラムが正しくないことになります。
niwi
投稿日時: 2013/11/25 16:17
対応状況: −−−
新米
登録日: 2013/11/22
居住地:
投稿: 4
Re: 規格の在庫数を連動させたい
tsuji様

DBの方については慣れていないため触っておりません。
色々と調べた上で

/data/class/SC_Product.php の

在庫を減少させる項目を下記に差し替えたところ規格2にサイズを
入れることにより連動はするようになりましたが全ての商品が共通で減る設定になりました。

function reduceStock($productClassId, $quantity) {

if ($quantity == 0) {
return false;
}

$objQuery =& SC_Query_Ex::getSingletonInstance();
$arrRet = $objQuery->select('classcategory_id2','dtb_products_class',
'product_class_id=?',array($productClassId));
if (empty($arrRet)) {
return false;
}
$objQuery->update('dtb_products_class', array(),
"classcategory_id2 = ?", array($arrRet[0]['classcategory_id2']),
array('stock' => 'stock - ?'), array($quantity));

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

return true;
}

もし上記の内容の変更で対応が可能であれば是非ご教授頂きたいと思っております。
tsuji
投稿日時: 2013/11/26 11:28
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: 規格の在庫数を連動させたい
product_idで商品を指定しなければ、全商品で在庫数が減ってしまう結果となります。
dtb_product_classにproduct_idがありますので、それを取得して検索条件に入れて在庫数の更新をするなら、特定の商品で在庫数を管理できると思います。


また、EC-CUBEのバージョンやPHPのバージョン等の環境情報を記載していただければ、解決に役立つと思います。
niwi
投稿日時: 2013/11/26 23:21
対応状況: −−−
新米
登録日: 2013/11/22
居住地:
投稿: 4
Re: 規格の在庫数を連動させたい
tsuji様

再度ご回答ありがとうございます。
バージョンですが最初の投稿の下部に書いていたのですが
下記になります。

--------------------------------------
EC-CUBEバージョン 2.12.4
PHPバージョン PHP 5.3.15
DBバージョン MySQL 5.6.11-log
--------------------------------------

コード等は見真似で触っているのであまり理解できておりません。
tsuji
投稿日時: 2013/11/27 9:25
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: 規格の在庫数を連動させたい
> バージョンですが最初の投稿の下部に書いていたのですが
下記になります。

大変申し訳ございません。すっかり失念しておりました。


reduceStockを下記のように書き換えたらいかがでしょうか?
これで商品ごとに在庫が減るようになると思います。

しかし、下記のコードでniwi様の仕様を満たしたかどうかはわかりませんので、あらかじめご了承ください。

function reduceStock($productClassId, $quantity) {

if ($quantity == 0) {
return false;
}

$objQuery =& SC_Query_Ex::getSingletonInstance();
$arrRet = $objQuery->select('classcategory_id2, product_id','dtb_products_class',
'product_class_id=?',array($productClassId));
if (empty($arrRet)) {
return false;
}

$objQuery =& SC_Query_Ex::getSingletonInstance();
$objQuery->update('dtb_products_class', array(),
'classcategory_id2 = ? AND product_id = ? ', array($arrRet[0]['classcategory_id2'], $arrRet[0]['product_id']),
array('stock' => 'stock - ?'), array($quantity));

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

return true;
}
niwi
投稿日時: 2013/11/27 20:36
対応状況: 解決済
新米
登録日: 2013/11/22
居住地:
投稿: 4
Re: 規格の在庫数を連動させたい
tsuji様

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

頂いたコードで思っていた通りの動作をしております。
色々とアドバイス頂きありがとうございました。
tsuji
投稿日時: 2013/11/28 13:02
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: 規格の在庫数を連動させたい
niwi様

お役に立てて良かったです。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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.