Доброго времени суток, прошу помощи в написании кода, сам придумать не в силах. Интернет магазин. Есть 5 разных складов, каждому товару присвоена категория(например 1,2,3,4,5). В стоимость товара заложена сумма доставки с одного склада(пусть условно 1$). Если заказан 1 товар или несколько с разных складов то все в порядке, если же человек заказывает 2 товара с одного склада, то нет смысла с него брать 2 раза за доставку, лучше сделать скидку на эту сумму. Пример: Покупатель заказал 3 товара со склада "1" и 2 товара со склада "2", с него должно взяться 2$ за доставку, а 3$ выведется как скидка. Вопрос: Как это реализовать?) Есть значение цена, есть значение категории(1-5) и фиксированная стоимость доставки. Думал как то сделать на IF-ах, но не могу продумать все условия.
Пишешь запрос к бд к таблице с заказами с COUNT(Категория) и группировкой по заказанному товару для отдельного покупателя Дальше вычитаешь из стоимости товаров одного типа(в которую заложена лишняя сумма ) значение COUNT(Категория)-1
Ну наверно когда по списку товаров пробегаешь и вычисляй. Не знаю как там это всё реализовано, что-то в этом роде будет(вариант без условных переходов внутри цикла): Код (PHP): $carriagePaid = array(0, 0, 0, 0, 0);//все склады не оплачены $discount = 0;//скидка foreach($purchases as $purchase) { $discount += $carriagePaid[$purchase['storehouse']]*$purchase['deliveryPrice']; $carriagePaid[$purchase['storehouse']] = 1; } PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]