Каков наилучший способ добавить скидки к процессу заказа? - PullRequest
0 голосов
/ 07 апреля 2011

Допустим, веб-сайт продает товары и хочет разрешить скидки с использованием кодов купонов.Каков наилучший способ структурировать это?Вот что я имею в виду, можете ли вы подтвердить, что это правильный путь?Любые другие предложения, пожалуйста?Как это делают другие?

Вот мои мысли:

В заказе будет указан данный продукт в качестве элемента заказа.Будет введен ввод кода купона, и при вводе правильного кода в заказ будет добавлена ​​новая позиция с отрицательным значением.Другими словами, теперь заказ будет состоять из двух пунктов:

  • Товар - 10 $
  • Скидка - 5 $ Итого: 5

Это правильный путьподходить скидки и купоны?

Ответы [ 2 ]

1 голос
/ 07 апреля 2011

Есть несколько способов сделать это. Там нет одного решения. Тем не менее, вот несколько ГАЧ .

  • Пользователь удаляет скидку из корзины?
  • Пользователь добавляет несколько одинаковых кодов купона?
  • У пользователя есть пустая корзина?

В конце концов, решение, которое применяет скидку при завершении заказа, будет наименее подвержено вышесказанному. Не пытайтесь отслеживать порядок и добавлять флаги в базу данных или сеанс. Это будет бесполезно. Вы действительно хотите сосредоточиться на тестировании, если условия купонов были выполнены. Функции Envision, такие как applyCoupons() или eligibleForDiscount($coupon).

0 голосов
/ 07 апреля 2011

У вас должно быть две реляционные таблицы в базе данных. Купоны имеют разные значения скидок?

Возможно, у вас есть таблица coupons с идентификатором, кодом, скидкой, и вы можете хранить код купонов, разделенных запятой, в поле code, например, (ABC, BBC, CCS) или по одному на строку.

если пользователь вводит идентификатор купона в поле ввода, проверьте его в базе данных, прочитайте discount и сделайте $ final_price = $ price * $ discount (при условии, что вы сохраните скидку как 0.2 (для 20%) и т. Д. вкл.

Если вы хотите, чтобы коды купонов через запятую делали это, управляйте ими:

$discount = 1;
while ( $var = mysql_fetch_assoc($result)) {
   $coupon = explode(',', $var['code']);
   $count = count($coupon);
   for ($i = 0; $i <= $count; $i++) {
     if($_POST['input_coupon'] == $coupon[$i]) { $discount = $var['discount'] }
   }

и тогда вы $ final_price = $ цена * $ скидка; Вы можете поместить его в запрос AJAX POST и вуаля;

Или используйте одну строку с каждым кодом купона, и это проще.

Или выполните запрос JOIN (таблицы, связанные по id), чтобы упростить процесс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...