Реализовать следующий функционал:

0. Группы покупателей - добавить поле "Сумма от". Поле должно редактироваться и видно в админке.

1. общий список товаров для заказа с возможностью проставления количества.

Т.е. весь товар должен быть представлен в виде таблицы с колонками: артикул, картинка (уменьшенная с возможностью перехода на товар), название товара ( с возможностью перехода в карточку товара), цены по типам цен (типы цен задаются в админке), колонка ввода количества (в поле вводится количество, которое клиент хочет заказать), статус наличия на складе (например, на складе, поступление в июне)

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

Функционал работы с корзиной:

2. Сделать одну общую кнопку (а не у каждой позиции своя) пересчета для всех позиций заказа.

Кнопка пересчета делает пересчет сумм по введенному/исправленному количеству

Пересчет сумм происходит так:

1.из списка элементов группы покупателей выбирается элемент с минимальным значением "сумма от" (см. п. 0). Выборка элементов должна быть отсортирована по значению реквизита.

2. Общая сумма за товар пересчитывается как цена для данной группы покупателей умноженная на количество товара. Вычисляется итоговая сумма за товар.

3. Выбирается элемент группы покупателей со значением "сумма от" большим, чем у предыдущего элемента "сумма от", но меньшим, чем у последующих элементов.

4. если общая сумма за товар превысила значение в поле группы покупателей "сумма от", то цены считаются по ценам этой группы покупателей, т.е. выполняется п. 2. Если общая сумма заказа меньше значения в поле группы покупателей "сумма от", то это и есть искомая сумма.

5. Если сумма заказа после пересчета меньше значения реквизита "сумма от", то сумма заказа пересчитывается для предыдущей группы покупателей из выборки, это и есть искомая сумма.

Пример:

Группы покупателей:

розница. Сумма от - 0

Опт 1 - сумма от 300

Опт 2 - сумма от 400

Опт 3 - сумма от 420

Товар 1, цены: розница 100, опт 1 - 80, опт2 - 70, опт 3 - 60

Товар 2, цены: розница 200, опт 1 - 190, опт 2 - 180, опт 3 - 170

Заказ:

Товар 1 - 1 шт

товар 2 - 2 шт.

Пересчитываем по группе покупателей "розница"

Товар 1: 1*100 = 100

Товар 2: 2*200 = 400

Итого: 500

Пересчитываем по следующей группе покупателей, опт 1:

Товар 1: 1*80 = 80

Товар 2: 2*190 = 380

Итого: 460

460>300. Т.е. условие по Опт 1 выполняется.

Пересчитываем по опт 2:

Товар 1: 1*70=70

Товар 2: 2*180=360

Итого: 430

430>400. Условие выполняется. Пересчитываем по опт-3

Товар 1: 1*60= 60

Товар 2: 2*170=340

Итого: 400. Условие для опт-3 не выполняется, сумма заказа пересчитывается для группы покупателей опт-2, т.е. суммма заказа остается 430.

14 лет назад
GoraChitich
Иван 
39 лет
17 лет в сервисе
Был
3 года назад

Заявки фрилансеров

Нет заявок фрилансеров