2016-02-11 8 views
0

Вот сайт, который после нажатия кнопки «Dodaję» (означает «добавить» на польском языке) пункт идет в корзине в течение 30 минут: https://remix.pl/Платежи, корзина и добавить товар в корзину только за полчаса

В то время как элемент находится в корзине, товар не может быть куплен другими. Я проверил их basked: когда я удалял куки, предметы были удалены из корзины (поэтому корзина использует сеанс php), и предметы снова были доступны для покупки. Я хотел бы знать, как они это сделали (использует ли их корзина база данных, чтобы сохранить дату добавления добавленного товара в 30 минут или сценарий можно сделать другим способом?). Возможно, это Cron Job что ли? Каков наилучший способ сделать это с помощью php или невозможно сделать что-то подобное с php? Я не имею в виду показ времени/прохождение времени, потому что ему нужны jQuery, js и т. Д., А просто суть скрипта.

Я спрашиваю об этом, потому что я сделал интернет-магазин для клиента, который продает использованную одежду, такую ​​как remix.pl, поэтому количество предметов всегда 1. Я должен сделать некоторую блокаду для продуктов, которые добавляются в корзину одним пользователем добавить один и тот же элемент для другого пользователя. У меня нет ума, как это сделать.

И еще один вопрос: возможно ли удалить количество товара только тогда, когда товар оплачивается через paypal например? химии, например: товара Количество: 99 После добавления в корзину: еще 99 После размещения заказа в базу данных MySQL: еще 99 После оплачивается PayPal, например: 98 Это хорошая практика, и можно запускать скрипт после оплаты предмета? Спасибо большое!

ответ

1

Создайте таблицу корзин в своей базе данных. Когда sy помещает предмет в свою корзину, вставьте запись в таблицу корзин, а также отметку времени записи. Когда вы запрашиваете таблицу продуктов, вы считаете, что эти продукты недоступны, которые находятся в таблице корзины, а значение метки времени составляет менее 30 минут. Вы можете игнорировать любые оговорки в корзине, которые старше 30 минут. Вы можете очистить таблицу корзины либо от запланированного сценария, либо от кода любой регулярно выполняемой страницы.

Что касается вашего второго вопроса: конечно, вы только вычитаете количество проданного продукта со склада, когда платеж будет успешно завершен. Paypal api обеспечивает обратную связь для этого, см. instant payment notifications

+0

Возможно, я нашел лучший способ сделать это: когда пользователь добавляет 1 элемент в корзину, уменьшайте количество предметов на 1 на 30 минут. Если товар оплачен с этим 30 мин, то уменьшите это количество навсегда, если товар не будет оплачен в течение 30 минут, а затем увеличьте количество на 1. Таким образом, я могу продавать подержанные продукты с количеством 1 и новыми продуктами, количество которых 999. Если количество товаров было 1 и теперь равно 0, то пользователь не может купить товар, если количество товаров было 999, а теперь 998, тогда пользователь может купить 998 предметов. количество предметов увеличивается каждый раз, когда пользователь не платил в течение 30 минут –

+0

У меня проблема, если кто-то покупает 1000 предметов с количеством 999? Например, бот-программа? Тогда у меня не будет продуктов на моем сайте в течение 30 минут. Программа покупает продукт каждые 30 минут, поэтому мой магазин всегда имеет 0 количество. Выглядит так уродливо. –

+0

Возможно, у меня не должно быть количества. Просто продукты. –