Редактирование корзины заказов в Glide

ГлавнаяНовое кафе → Редактирование корзины заказов

Мы имеем корзину заказов , и теперь давайте немного усложним наше приложение и дадим пользователю возможность внести некоторые изменения в корзину заказов. Добавить и удалить блюдо из корзины, мы умеем.

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




Как добавить в корзину заказов количества выбранного блюда

Введём в нашу корзину заказов двух новых столбцов, это столбец Количество типа Number и установим Precision = 1, и столбец Стоимость типа Math и установим Precision = 1.00. Для столбца ‘Стоимость’ в строке CONFIGURATION зададим следующую формулу: Price*Quantity, где значение ‘Price’ возьмем из столбца SV_цена_заказа, а значение ‘Quantity’ из столбца Количество и установим Precision = 1.00 (Рис. 1). Теперь в столбце ‘Стоимость’ будет стоять стоимость всех блюд данного вида. Column Price Math
Рис.1

У нас есть теперь колонка количества блюд данного типа, поэтому давайте дадим пользователю возможность сразу при выборе блюда задавать и его количество. Перейдём на вкладку ‘Layout’ и откроем одно из блюд, например, салат ‘Селёдка под шубой’. Здесь у нас наименование блюда, его фото, описание, цена и вес, которые берутся из таблицы ‘Лист1’. Нам сюда надо добавить еще и количество (сколько блюд данного вида мы хотим положить в корзину), но этого в таблице ‘Лист1’ нет, это должен задавать пользователь при выборе и перемещении в корзину.

App New Form Orders
Рис.2
Вводить дополнительные параметры при выборе (по нажатию кнопки ‘Button’) мы не можем, поэтому мы удаляем нашу кнопку ‘Выбрать’ и добавляем новый компонент ‘Form Container’, и в строке Target table (вкладка General) выбираем Корзина. Теперь в параметрах ‘Form Container’ мы имеем параметры ‘Title’, ‘Время заполнение’ ‘User ID’, ‘Menu ID’ и ‘Количество’. Здесь мы оставляем только ‘Title’ и ‘Количество’, а остальное удаляем. Выбираем ‘Title’ и в блоке DATA (вкладка General) в строке Title пишем Добавить в корзину.
Затем выбираем Number Entry Количество и в блоке DATA проверяем, чтобы в строке ‘Column’ было выбрано ‘Количество’. Далее в строке 'Default value' пишем 1 (если пользователь выбирает одно блюдо, то ему незачем ничего вводить), в строке ‘Min Value’ также пишем 1 (количество блюд не может быть отрицательным или нулём), а в строке ‘Max Value’ я пишу 10 (это на ваше усмотрение). И обязательно поставьте “Птичку” в Required (обязательно для заполнения).
Additional Columns
Рис.3

Заходим в наше приложение, и теперь мы можем задавать количество блюд данного вида. Пишем или выбираем по стрелкам, сколько нам нужно, например 3.
В результате окно нашего приложения примет вид на рисунке 2.

Теперь выбираем наш компонент Form Container и в блоке “ADDITIONAL COLUMNS” (вкладка General) в строке ‘Время заполнения’ выбираем Current date/time, в строке ‘User ID’ - User > User Id, в строке ‘Menu ID’ - Menu ID. Строку количество мы оставляем пустой (её задаёт пользователь при выборе блюда) (см. Рис. 3).

В форме ‘Form Container’ сразу задаётся действие по записи строки к таблице (‘это наша таблица “Корзина”), и поэтому нам не надо добавлять его в блоке ‘AFTER SUBMIT ACTION → Show notification”. Но давайте поменяем сообщение и здесь я назову своё сообщение Добавить в корзину, а в самом сообщении укажу Блюдо добавлено в корзину.

Table Cart Orders
Рис.4
Проверяем, жмём на кнопку Отправить и смотрим в таблице корзина. В столбцах Look_menu_name, Количество, Look_menu_price, SV_цена заказа и Стоимость, мы соответственно видим наименование, количество, цену, цену и стоимость нашего выбранного блюда “Селёдка по шубой” (см. Рис. 4). Т.е. всё работает замечательно.


Как добавить кнопки редактирования +/- в корзину заказов

Перейдём на вкладку ’Корзина’ и скорректируем её в части вывода позиций кроме фото и наименования, добавим ещё пункт Количество, а также вместо цены блюда я буду отображать стоимость всех блюд данного типа (мне так больше нравится, хотя здесь можно оставить и цену одного блюда, это на ваше усмотрение). Для этого выберем компонент “Collection Корзина” и в ITEMS DATA зададим соответственно в ‘Title’ - Количество, ‘Description’ - Стоимость, ‘Meta’ - SV_название блюда и ‘Image’ - Look_menu_photo (Рис. 5). А наше приложение примет вид, представленный на рисунке 6. Column Price Math
Рис.5
App New Cart Orders
Рис.6

Такая последовательность выбрана, чтобы расположить сначала – ‘Наименование’, затем – ‘Количество’ и ниже – ‘Стоимость’, так более понятно. Здесь можно предварительно добавить новый компонент, например, Hint поместив его на самый верх и сделать дополнительные пояснения.

Теперь нажмём на одно из блюд, где мы хотим изменить количество, например, Салат из свеклы, и в от открывшемся окне удалим всё кроме ‘Breadcrumbs’. Затем добавим новый компонент TITLE → Simple у которого в блоке DATA я оставлю только ‘Title’ где в строке выберу SV_название блюда, а остальные строки сделаю пустыми (можно оставить ещё и фото, но я думаю без него лучше). Добавим ещё один компонент CONTENT → Fields, где в блоке OPTIONS в первом пункте выберу столбец Количество, и добавлю ещё два пункта, это столбец SV_цена заказа, который назову ‘Цена’, и столбец Стоимость (Рис. 7). Options Fields
Рис.7


Теперь добавим ещё один компонент, это Button Block. У него STYLE я оставлю без изменения, он мне подходит. В OPTIONS в строке ‘Width’ я выберу ‘Auto’, а в строке ‘Alignment’ я выберу ‘По центру’, а остальное оставлю без изменения. Здесь кому как нравится.

В блоке ACTION сначала нажмём на действие ‘Primary’ и в ‘Title’ напишу +, иконку выбирать не буду. Далее нажимаю на ‘Open link’, и последовательно выберу ‘DATA → Increment number’. Здесь мне по умолчанию Glide в ‘Column’ выбрал Количество, что мне и надо. Далее нажимаю ‘Add condition’ и добавляю условие где количество меньше 10, т.е. увеличение блюд будет до числа 10. Число 10 я взял для примера, а вы по желанию можете взять любое (см. Рис. 8).
Action Increment
Рис.8

App New Cart Orders
Рис.9
App Final Cart Orders
Рис.10

Затем нажимаю на действие ‘Secondary’, где по аналогии создаём аналогичное действие, только вместо ‘+’ пишем -, вместо инкремент ‘1’ пишем инкремент -1, а в условии выбираем is greater or equal to и 1, т.е. число не может быть отрицательным. В результате мы получили приложение, показанное на рисунке 9.

Проверяем. Мы имеем заказ в составе, которого 3 ‘САЛАТА ИЗ СВЕКЛЫ’, со стоимостью трёх блюд 150.75 и общеё стоимостью заказа 1 040.75. Нажимаем на блюдо и переходим к окну редактирования, нажимаем два раза на кнопку плюс. Мы получили 5 блюд со стоимостью 251.25. Возвращаемся к корзине и видим все наши изменения. При этом общая сумма заказа увеличилась и стала 1 141.25 (Рис.10).

Всё замечательно работает. Осталось только забронировать заказ.




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

Закрыть
Имя:
816 + 99 =  
Добавить комментарий:
Имя:
816 + 99 =  

Перед публикацией все комментарии проходят обязательную модерацию!