質問 > 管理機能 > 規格適用時に在庫数を共通にしたい |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
suika01 |
投稿日時: 2011/10/18 0:38
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2011/6/4 居住地: 投稿: 17 |
規格適用時に在庫数を共通にしたい 規格をオプションの有無機能として使用したいと考えています。
たとえば、 「お菓子」という商品に、規格機能で「包装なし」または「包装あり+100円」 などのようにしたいのですが、 このまま在庫数それぞれ1づつと、登録してしまうと、在庫数が各1個ずつとなり、オプションありとなしでどちらも注文しないと在庫が0になりません。 注文時にオプションの有無にかかわらず在庫を-1させたいのですがどうにか出来る方法はないものでしょうか? ------------------------------------------------------------------------------------------ [EC-CUBE] 2.11.1(新規インストール) [レンタルサーバ] ロリポップ [OS] Redhat系 Linux [PHP] 5.134 [データベース] MySQL 5.1.34 [WEBサーバ] Apache [ブラウザ] Google Chrom 11.0.696.71 ------------------------------------------------------------------------------------------ |
yukikaze |
投稿日時: 2011/10/18 9:38
対応状況: −−−
|
長老 ![]() ![]() 登録日: 2011/7/26 居住地: 投稿: 196 |
Re: 規格適用時に在庫数を共通にしたい data/class/SC_Product.php の reduceStock[FUNCTION] で在庫を減らしてると思うのですが、このUPDATE文の条件を商品規格ID(product_class_id)ではなく、商品ID(product_id)に変更すればよいのではないでしょうか?
|
suika01 |
投稿日時: 2011/10/18 13:46
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2011/6/4 居住地: 投稿: 17 |
Re: 規格適用時に在庫数を共通にしたい アドバイスいただきありがとうございます。
組み込みのプログラミングは経験があるのですが、ウェブプログラミング(php等)はあまりよくわなからないため、もし可能であれば具体的にソースを教えていただくことはできないでしょうか? お手数をおかけします。もし可能であればよろしくお願いします。 |
yukikaze |
投稿日時: 2011/10/18 14:29
対応状況: −−−
|
長老 ![]() ![]() 登録日: 2011/7/26 居住地: 投稿: 196 |
Re: 規格適用時に在庫数を共通にしたい やり方1.
data/class/helper/SC_Helper_Purchase.php の registerOrderComplete[FUNCTION] で、在庫の減少処理IF文を変更。 if (!$objProduct->reduceStock($p['product_class_id'], $item['quantity'])) { ↓ if (!$objProduct->reduceStock($p['product_class_id'], $item['quantity'], $p['product_id'])) { data/class/SC_Product.php の reduceStock[FUNCTION] function reduceStock($productClassId, $quantity) { ↓ function reduceStock($productClassId, $quantity, $product_id) { $objQuery->update('dtb_products_class', array(), "product_class_id = ?", array($productClassId), array('stock' => 'stock - ?'), array($quantity)); ↓ $objQuery->update('dtb_products_class', array(), "product_id = ?", array($product_id), array('stock' => 'stock - ?'), array($quantity)); どうでしょうか? |
suika01 |
投稿日時: 2011/10/19 22:49
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2011/6/4 居住地: 投稿: 17 |
Re: 規格適用時に在庫数を共通にしたい ご丁寧にソースを上げていただきありがとうございました。
無事正常に動作を確認できました。どうもありがとうございました。 しかし一つ問題が見つかりまして、在庫数が1の同じ商品を企画あり・なしそれぞれ1つずつカートに入れることができます。 何度も非常に恐縮ですが、何卒よろしくお願いいたします。 |
yukikaze |
投稿日時: 2011/10/20 10:33
対応状況: −−−
|
長老 ![]() ![]() 登録日: 2011/7/26 居住地: 投稿: 196 |
Re: 規格適用時に在庫数を共通にしたい data/class/SC_CartSession.php の checkProducts[FUNCTION] で在庫数のチェックを行っています。
この処理を変更すれば、対応できると思います。 対応方法は、在庫を超える場合の仕様次第です。 在庫(15件)で包装なし(10件)包装あり(10件)を入力した場合、メッセージ、カゴの個数欄をどうするか? ですね。 |
yukikaze |
投稿日時: 2011/10/20 10:35
対応状況: −−−
|
長老 ![]() ![]() 登録日: 2011/7/26 居住地: 投稿: 196 |
Re: 規格適用時に在庫数を共通にしたい 追伸
ちなみに…ですが、例のように「包装あり」「包装なし」くらいの区別しかないのであれば、カゴの中の画面構成を修正して、商品10件の内「包装あり」何件、「包装なし」何件と入力させた方が楽なような? JavaScriptなどで「包装あり」「包装なし」の合計値が、注文個数を超えたらエラーでもいいですが、「包装あり」だけ入力させて、「包装なし」は自動計算させるとか。コレだと合計あってるかとか考えないですしね! ユーザも同じものを「包装あり」「包装なし」の2回、カゴに入れる手間もないですし。 素人意見ですが… |
suika01 |
投稿日時: 2011/10/26 10:11
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2011/6/4 居住地: 投稿: 17 |
Re: 規格適用時に在庫数を共通にしたい ご返信が遅くなってしまいもいう仕分けありませんでした。
カートにいれる際の在庫処理ですが、基本的に梱包ありのオプションと言う形になるため、 梱包あり・なしの在庫数は同じで登録します。 なので、おっしゃるとおり、梱包ありだけカートにいれる際に見て、梱包なしの方も、同着させる方針で行きたいと思います。 |
yukikaze |
投稿日時: 2011/10/26 11:01
対応状況: −−−
|
長老 ![]() ![]() 登録日: 2011/7/26 居住地: 投稿: 196 |
Re: 規格適用時に在庫数を共通にしたい 包装あり、なしの2重で商品管理してるということですか?
包装ありのオプションという考え方なら、商品情報に「包装有無」のフラグを追加して、「有」の場合のみ包装ありなしの選択ができるようにすればいいんですよね? 全ての商品に包装ありなしの選択があるなら、「包装有無」のフラグは不要ですが…。 受注詳細情報には、包装ありとなしの2つのフィールドを追加して、前記してあるようにカゴで包装ありなしの数をそれぞれ入力して頂き、その値を受注詳細情報テーブルに反映すればいいのでは? 管理する上では商品レコードが2重よりは、楽だと思うのですが… 素人意見ですが… |
suika01 |
投稿日時: 2011/11/2 0:28
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2011/6/4 居住地: 投稿: 17 |
Re: 規格適用時に在庫数を共通にしたい 貴重なご意見をいただきありがとうございます。
フラグを設ける方式ですと、非常に変更箇所が多くなりそうで、 規格を使用する現在行っている方法でもあまり不便を感じませんので 特に問題ないかと思います。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |