За последние 24 часа нас посетили 52790 программистов и 1768 роботов. Сейчас ищут 997 программистов ...

Помогите с написанием кода

Тема в разделе "Прочие вопросы по PHP", создана пользователем Denys, 3 авг 2015.

  1. Denys

    Denys Новичок

    С нами с:
    3 авг 2015
    Сообщения:
    1
    Симпатии:
    0
    Доброго времени суток, прошу помощи в написании кода, сам придумать не в силах.
    Интернет магазин. Есть 5 разных складов, каждому товару присвоена категория(например 1,2,3,4,5). В стоимость товара заложена сумма доставки с одного склада(пусть условно 1$). Если заказан 1 товар или несколько с разных складов то все в порядке, если же человек заказывает 2 товара с одного склада, то нет смысла с него брать 2 раза за доставку, лучше сделать скидку на эту сумму.

    Пример:
    Покупатель заказал 3 товара со склада "1" и 2 товара со склада "2", с него должно взяться 2$ за доставку, а 3$ выведется как скидка.

    Вопрос:
    Как это реализовать?)
    Есть значение цена, есть значение категории(1-5) и фиксированная стоимость доставки. Думал как то сделать на
    IF-ах, но не могу продумать все условия.
     
  2. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Пишешь запрос к бд к таблице с заказами с COUNT(Категория) и группировкой по заказанному товару для отдельного покупателя
    Дальше вычитаешь из стоимости товаров одного типа(в которую заложена лишняя сумма ) значение COUNT(Категория)-1
     
  3. George_Carlin

    George_Carlin Новичок

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