2017-02-16 3 views
0

Я занимаюсь разработкой веб-сайта электронной торговли, и у меня есть одно сомнение в моем сознании. Предположим, что пользователь добавил продукт в своей корзине и нажал на кассе, и он переведен на платежный шлюз, который возникает некоторые условияВеб-сайт электронной торговли с использованием ситуации с проверкой php

  1. В то же время другой пользователь 2 проверяя тот же продукт, в то время как пользователь 1 находится в процессе оформления заказа , так что я должен отображать количество продукта один раз или должен отображать такое же количество, пока пользователь 1 не сделает платеж.
  2. Что делать, если пользователь 1 нажал на checkout и не вернулся из шлюза, как он закрыл браузер или вкладку, и я вычитал количество, когда он нажал кнопку выписки, чтобы пользователь 2 мог видеть доступное количество актуалов.

  3. если я не вычитать количество, когда кнопка фотографии нажата и пользователь 2 также проверили только после того, как пользователь 1 и продукт, имеющий ограниченное количество, которое было куплено пользователем 1.

Как справиться с этой ситуацией? Я использую php и mysql.

ответ

0

Я рекомендую вам вычитать количество только после завершения проверки.

Пользователь, который закончил проверку, получит сообщение об ошибке, указывающее, что продукт больше не доступен.

Другой подход, используемый e-commerces, - JIT (точно в срок), поэтому продукт «всегда доступен», и эта проблема не произойдет.

+0

В этой ситуации, когда пользователь 2 вернулся на мой сайт, и мой скрипт для вычитания количества начинает работать, и он обнаружил, что количество уже равно 0, поэтому он должен отображать сообщение об ошибке, например, ваша транзакция успешна, но продукт больше недоступен, ваши деньги будут переведены на ваш банковский счет в некоторые рабочие дни? Но я хочу, чтобы транзакция никогда не происходила всякий раз, когда продукт выходит из употребления. –

+0

Хорошо, получил это сейчас ... В этом случае вы должны сохранить заказ и вычесть его до этапа оплаты. Этап оплаты приходит после того, как заказ уже находится в вашей базе данных. Поэтому вы должны зарезервировать продукты для этого заказа до оплаты и сохранить заказ со статусом «Ожидание платежа». Когда заказ остается на нем более чем на X дней, вы должны отменить заказ и вернуть зарезервированные количества в доступные количества. Эта электронная коммерция, с которой я работаю сейчас, использует этот подход. Надеюсь, это решит вашу проблему, поэтому я могу отредактировать ответ выше. –

 Смежные вопросы

  • Нет связанных вопросов^_^