ECサイトの購入後の在庫処理

このQ&Aのポイント
  • ECサイトでの購入後の在庫処理について
  • 在庫が少なくなると他の人が商品をカゴに入れられないようにする方法
  • 在庫の管理方法と早い者勝ちシステムの難しさ
回答を見る
  • ベストアンサー

ECサイトの購入後の在庫処理

ECサイトで商品を販売しています。プログラムはPHP、データベースはMYSQLを利用しています。 購入ごとに在庫数を減らしていくようにしています。 この時、在庫が少なく、在庫0になる決済を処理中に、他の誰かがその対象商品をカゴにいれようとしたときに「在庫なし」という表示をしたいと思います。実際に在庫が0ならば「在庫なし」表示はでるのですが、カゴに入れるタイミングで、その時在庫が0でなければ、何人でもカゴに投入できると思います。そのタイミングがズレた場合、在庫のない商品を購入できてしまいます。 早いもの勝ちで在庫を管理すればいいのでしょうが、なかなか難しく、システムの概要をお教え願えないかと頼った次第です。 支離滅裂になってしまいましたが、どうぞよろしくお願いいたします。m(_ _)m

  • PHP
  • 回答数2
  • ありがとう数6

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

MYSQLを使ってないので、見当違いのコメントかもしれませんが 普通、DBの処理では、 そういう場合ロックをかけます。 ロックには、レコードロックやテーブルロックやDBロックなどがあり 読み出しは許すが書き込みは禁止するとかのロックもあります。 在庫の数の場合、そのレコードの読み出し書き込みを処理終了までロックする必要があります。 処理終了後COMMITを発行し、ロックを解除します。 ロックされたレコードを参照しようとするクライアントは、その間またされることになります。 MySQLでのロックについて調べてみて下さい。

RSTREET
質問者

お礼

ありがとうございます。ロックの件に関しては調査しておりました。 ECサイトでの商品在庫の読み出し・書き込みですので不特定多数の方からのアクセスがあります。 カゴに入れた人順で在庫を割り振る必要があり、カゴに入れても購入が決定しない限り、在庫は減らせない、しかし、カゴに入れている時点で、早いもの順で在庫の割り振りをしておかなければならない。 というような感じのプログラムというかシステムを準備しなければいけないかと思っています。 DBのロックをうまく応用できるでしょうか??

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

カゴの中に入れてる状態では、 仮の在庫というかDBを更新する訳には、 いかないので単にページで保持している数にしないと しょうがないと思います。 しかし、 在庫のレコードを更新ロックをかけておけば 少なくとも「在庫のない商品を購入できる」ということはないと思います。 購入ページで、実際に購入する段階で 実は既に在庫がなくなってしまって購入できない。 旨を表示するればよいと思います。 実際、早い者勝ちというか、 カゴに入れたモノ勝ちというのはおかしくて 購入を決定したモノ勝ちの方が動作としては 良いのではないかと思います。

RSTREET
質問者

お礼

たびたびありがとうございます!親身にお教えいただき助かります。 おっしるとおりですね。 カゴに入れたもの順ではなく、購入を決定したモノ勝ちが動作としては正しいです。 ・購入決定時に在庫の再チェックをする。 ・その際、在庫がなくなっていた場合は在庫がない旨を表示する。 を実践してみようと重います。 現在はカゴに入れる前で在庫の有無を判断してしまっているので、在庫数をオーバーしてしまいます。 購入を最終決定する前に、在庫の確認をするようしてみようとおもいます。

関連するQ&A

  • 在庫数がわかるショッピングカート

    商品の在庫数が表示される「買い物カゴ」を 使っているネットショップを見かけました。 これは素人でも作れるものなのでしょうか? それともレンタルですか? どうぞよろしくお願いいたします。

  • Amazon 在庫なし 再入荷

    amazonで在庫がない商品はお取り寄せなどの表示がつきますが、1度「こちらの出品者からご購入いただけます」という状態(アマゾンマーケットプレイスの商品のみの状態)になった商品が、再びアマゾンで普通に扱われることはあるのでしょうか?それとも一度こうなったら二度とアマゾンでは購入できないのでしょうか?  もちろんその商品は以前はアマゾンでも扱っていましたが、アマゾンの在庫はなくなったようです。(在庫なし、とは表示されていませんが、アマゾンでの値段がついておらず、マーケットプレイスからしか購入できないようです)。  また、商品はシリーズもののDVDで、同シリーズの他のナンバーはまだ普通に売られており、商品が出回っていないとは思えないのです。

  • ダウンロード販売用ECサービス

    海外向けダウンロード販売用ECサービス shopifyがEサイトで使われている例は、企業(事業)規模にかかわらず多いのですが、市販の教本を買ってみると実物商品(かばん、アパレル、手作り小物など)を販売し、送付する事例ばかりでした 売りたいものは、写真画像、絵画、2次元イラストなどですが、ユーザーに購入してもらったあと、ダウンロードすれば済むので、商品発送という工程がありません shopifyでもなんでもいいですが、ユーザーが購入後 ・ダウンロードリンクを1回(または期間限定で)表示 ・1つの画像商品には、販売個数(人数)を設定したい という条件を満たせる、サービスはあるでしょうか? Wordpress関係のサイトからリンクする予定なので、WP関連でもけっこうです なお海外を相手にした決済もあるため、国内の決済機関を利用するものは避けたいです。たとえば日本では、JCB/Master/VISAのマークのシールがあるお店でも、外国でつくったクレジットカードは承認が通らない可能性があり、日本のECツールは避けて考えています 表示は外国をターゲットにする予定のため、英語メインで問題ありません

  • EC-CUBEについて

    EC-CUBEでネットショップを始める予定なのですが、テストで商品を購入すると、相手に届く自動返信のメールには件名しか表示されないんです。管理画面の基本情報管理からメールの設定でテンプレートを書き換えただけでは自動返信できないのでしょうか?教えてください。よろしくお願いします。

  • 在庫更新APIなどの情報を中に入れる系のAPI

    在庫更新などのAPIなどはどのタイミングで在庫が更新されるのでしょうか? 例えば、楽天商品データをホームページに表示させたい場合は、リクエストを送って、それに対するレスポンスをひもづけて、表示させると思うのですが(合ってなかったら私の勉強不足です)、在庫更新などの場合は情報をリクエストで送ることで、在庫が更新される?のでしょうか? 在庫が更新されるのはどうやってされているのかが知りたいです。 回答よろしくお願いします!

    • ベストアンサー
    • PHP
  • 楽天ブックスの在庫状況の見方

    楽天ブックスの在庫状況の見方について分からないことがあります。 在庫状況の表示が一つだけのものは良いのですが、 プルダウンボックスの表示と、もう一つその下に赤文字の表示があるものは、 どのような見方をすればいいのでしょうか? 購入を考えている商品に、 プルダウンボックスの表示は『取り寄せ(メーカー確認)』、 赤文字の表示は『在庫あり』となっているものがあって迷っています。

  • エクセルで在庫表を作りたいのですが

    ネットショップのバイヤーをやっております。 今まではエクセルで仕入れ表を作り商品の在庫管理も同じ表を使い管理してきましたが、商品数が増えて今までの方法では管理できないようになってしまいました。 フリー配布の在庫表でもかまわないのですがネックになっているのが海外からの仕入れ金額の反映方法で同じ商品を別の地区で購入することがあり、州ごとに税金が違うなど管理方法が面倒である点です。 今までは在庫表としてこれらをコピペしたものを使い、売れるたびに商品番号を過去の在庫表からひとつずつ探して削除しており手間がかかってしまいました。 今までの仕入れ表(これと同じものを在庫表としてコピペ利用) 購入地 日付 商品番号 購入金額 消費税 個数 購入金額トータル レート(買い付け時)日本円での金額 上記のような項目を作り管理しております。 購入地によって変動するのが消費税、レートはそのときの円高、円安で変動します。 同じ商品番号の商品を別の場所で複数購入する場合もあるので在庫表上で同じ商品としてカウントしたい 例・A州で001という商品を二個購入  ・B州で同じ001を10個購入 在庫表では12個の入庫数として自動で反映したい。 欲しい機能と項目 同じ商品番号があれば在庫として集計して別に作る在庫表に自動でカウントしたい 日本円での購入金額も上の仕入れ表に打ち込むと在庫表に反映できるようにしたい 在庫表として欲しいもの 商品コード(ハンドバックならA,ショルダーならBという大カテゴリー) 商品番号 (これは上記の仕入れで商品番号を打ち込むと連動して反映できるように) 日付 (手打ちで問題なし) 購入地 (手打ち後にオートフィルタで対応予定) 入庫数 (買い付け時の個数、同じ商品番号があった場合に自動でカウントしたい) 出庫数 (都度、手打ちにて入力) 在庫数 (入庫数ー在庫数) 購入金額(買い付け時の日本円税込み価格) 販売金額(日本での販売価格) 売り上げ (販売金額ー購入価格の差額)在庫数ー出庫数で自動にカウントできればよい 繰越 残った在庫数とその金額 以上の機能となります。 簡単な計算式は理解できるのですが、仕入れ表で入力した数字を在庫表にどうやって反映させるのかなどわからずここで教えていただければ幸いです。 また実際に同じように海外買い付けなどされている方からのアドバイスなども御座いましたらご教授ください。 よろしくお願いいたします。

  • ECサイト等のサイトの構築方法、概要について

    1.ECサイトを作成する場合、何が必要で、そのために何の知識が必要になるのでしょうか? 具体的には、(1)各カテゴリごとに商品を登録する、(2)購入者が、各カテゴリに商品を閲覧し、または、商品の機能・価格等の指定属性によって、指定条件に合う商品を検索する、(3)購入者が、サイト上で決済を行うサイトを作る場合に、どのような手順でサイトを構築し、そのためにどのような知識が必要となるのでしょうか? 2.価格.comやオークションサイトのようなWEBサイトを作る場合、何が必要で、そのために何の知識が必要になるのでしょうか? 具体的には、最低限、(1)販売者側が、各カテゴリごとに商品、価格を登録する、(2)購入者側が、各カテゴリに商品を閲覧し、または、商品の機能・価格等の指定属性によって、指定条件に合う商品を検索する、(3)購入者が、入札、落札をするサイトを作成する場合に、どのような手順で、サイトを構築し、それをするためにどのような知識が必要となるのでしょうか? 上記1と重なる部分がある場合は、その点は省略して頂いて構いません。 3.以下のようなWEBサイトを作る場合、何が必要で、そのために何の知識が必要になるのでしょうか? あるテーマについて、その主張、理由、批判、反論等の属性を指定の上、投稿し、それをツリー形状で表示し、最終的に、そのテーマに関する採決を取るサイトを作る場合 <イメージ> +テーマ(例.今後の日本の財政をどうするべきか?)  +主張(1)(例.歳入増加(増税)をして、財政再建をするべき)   +理由(1)(例.支出削減は限界で、増税より他の策がない)    +批判(1)(例.公務員制度改革は依然として進んでいない)   +理由(2)    ・    ・  +主張(2)(例.歳出削減をして、財政再建をするべき)   +理由(1)(例.まだ削減できる部分はあるはず)   +理由(2)    ・    ・  +主張(3)(例.積極財政により、景気回復を目指すべき)   +理由(1)(例.政府介入による経済体系が日本には合っている)   +理由(2)    ・    ・  +主張(4)(例.過去の経済繁栄を諦め、北欧型の社会を目指すべき)   +理由(1)(例.経済的繁栄以外の幸福もある)   +理由(2)    ・    ・ 私は、過去に業務でネットワーク構築経験がありますが、HP、DBの経験がないため、非常にあいまいな質問しかできませんが、経験者の方に、是非、概要をお伺いしたいと考えています。 なお、インターネットで情報を検索して回答して下さるのも嬉しいのですが、今回は、経験者の方のご意見をお伺いしたいと考えています。 どうぞ、ご回答よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • ECサイト等のサイトの構築方法、概要について

    1.ECサイトを作成する場合、何が必要で、そのために何の知識が必要になるのでしょうか? 具体的には、(1)各カテゴリごとに商品を登録する、(2)購入者が、各カテゴリに商品を閲覧し、または、商品の機能・価格等の指定属性によって、指定条件に合う商品を検索する、(3)購入者が、サイト上で決済を行うサイトを作る場合に、どのような手順でサイトを構築し、そのためにどのような知識が必要となるのでしょうか? 2.価格.comやオークションサイトのようなWEBサイトを作る場合、何が必要で、そのために何の知識が必要になるのでしょうか? 具体的には、最低限、(1)販売者側が、各カテゴリごとに商品、価格を登録する、(2)購入者側が、各カテゴリに商品を閲覧し、または、商品の機能・価格等の指定属性によって、指定条件に合う商品を検索する、(3)購入者が、入札、落札をするサイトを作成する場合に、どのような手順で、サイトを構築し、それをするためにどのような知識が必要となるのでしょうか? 上記1と重なる部分がある場合は、その点は省略して頂いて構いません。 3.以下のようなWEBサイトを作る場合、何が必要で、そのために何の知識が必要になるのでしょうか? あるテーマについて、その主張、理由、批判、反論等の属性を指定の上、投稿し、それをツリー形状で表示し、最終的に、そのテーマに関する採決を取るサイトを作る場合 <イメージ> +テーマ(例.今後の日本の財政をどうするべきか?)  +主張(1)(例.歳入増加(増税)をして、財政再建をするべき)   +理由(1)(例.支出削減は限界で、増税より他の策がない)    +批判(1)(例.公務員制度改革は依然として進んでいない)   +理由(2)    ・    ・  +主張(2)(例.歳出削減をして、財政再建をするべき)   +理由(1)(例.まだ削減できる部分はあるはず)   +理由(2)    ・    ・  +主張(3)(例.積極財政により、景気回復を目指すべき)   +理由(1)(例.政府介入による経済体系が日本には合っている)   +理由(2)    ・    ・  +主張(4)(例.過去の経済繁栄を諦め、北欧型の社会を目指すべき)   +理由(1)(例.経済的繁栄以外の幸福もある)   +理由(2)    ・    ・ 私は、過去に業務でネットワーク構築経験がありますが、HP、DBの経験がないため、非常にあいまいな質問しかできませんが、経験者の方に、是非、概要をお伺いしたいと考えています。 どうぞ、ご回答よろしくお願いいたします。

  • 楽天ブックスの在庫表示は信用してはいけない?

    楽天ブックスで「在庫あり(残り10冊)」となっていた漫画を注文したのですが、1週間以上経過して「在庫なし」のため自動キャンセルとなりました。 ここで不思議だったのですが、1週間前まで10冊もあったのに、何でいきなり在庫無しになってしまったのでしょうか? ちなみにこの本は10年くらい前に出た本で、特に流行の本と言う訳でも、雑誌で紹介されて有名になった本と言う訳でもありません。 また、同じこの漫画を去年も注文したのですが、その時も「在庫あり」になっており1週間以上経ってから「在庫なし」でキャンセルになってしまいました。 今回、久しぶりに商品ページを見たら「在庫有り(残り10冊)」になっていたので「今度こそ買える」と思って注文したところ、またキャンセルになってしまい???となっています。 楽天ブックスは「在庫有り」になっているのに、何故、注文後にキャンセルとなってしまうのでしょうか? 出版社に取り寄せの連絡を入れているから1週間以上かかるのだと思ったのですが、それならば何故「在庫あり」(しかも具体的な冊数まで)と表示しているのでしょう。 10冊…なんて書かないでくれたら変な期待もしなかったのですが、この具体的な冊数はどこから出ているものなんでしょうか? 予約商品などのレビューを見ていると「楽天ブックスの在庫表示は信用できない」と言うものが多いのですが、この在庫表示はどう言う基準で決めているんでしょうか? 何で10冊と表示されていたのかが気になっています。

専門家に質問してみよう