2016-04-20 2 views
0

я строю сайт электронной коммерции с Laravel 5.2расчет формы Checkout на основе радио-кнопки - Laravel 5,2

я могу добавить свои продукты в моей корзине, которая хранится в сессии. Я могу просмотреть корзину покупок &, когда я нажимаю «подтвердить», я перехожу на страницу проверки.

Корзина (работая намеченным): shopping-cart

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

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

страница заказ: (радио-кнопки здесь) enter image description here

2 Параметры я могу думать:

  • Сделать расчет на стороне клиента с яваскрипт и добавить скрытые поля ввода когда пользователь нажимает кнопку подтверждения, они сохраняются в таблице базы данных для заказов.

  • Начало сохранения данных в базе данных после корзины покупок, проблема с этим подходом заключается в том, что данных по-прежнему не хватает. Как и правильный адрес доставки/выставления счетов.

+0

Является ли ответ приемлемым? – Anderscc

+0

@ Anderscc. Ваш ответ хорош, поэтому я его поддержал. Но я больше смотрю на возможность использования JQuery/javascript для расчета и хранения моей корзины в сеансе – Christophvh

ответ

1

Я недавно реализовал нечто подобное.

У меня есть стол для тележки.

Cart Table

и и у меня есть таблица заказа.

Orders table

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

Когда пользователь завершает покупку, я обновляю таблицу корзины соответствующим order_id и отмечаю ее как полный заказ.

Это в таблице заказов, где я храню информацию о выставлении счетов и доставке.

Если пользователь вводит купон, я обновляю цену товаров в таблице корзины. Я обрабатываю весь купон и расчет доставки с помощью ajax-вызовов для поддержания состояния страницы.

Одним из преимуществ я нашел того, телеги таблицы находится в моей модели User я мог определить отношения, которые позволили бы мне быстро получить все элементы в пользовательской корзине

public function cart() 
{ 
    return $this->hasMany('App\Cart')->where('complete', 0); 
} 

, который затем позволит мне использовать функциональные возможности Laravel в коллекции

// Get the total value of items currently in user's cart. 
    $total = $user->cart->sum(function ($item) { 
     return $item->price * $item->qty; 
    }); 

Надеюсь, это наводит вас на несколько шагов в правильном направлении.

Любые другие вопросы просто дают мне крик.