Ответить Новая тема Новый опрос 
 Правила изменения цен в комбинации
webstudy.su
Новичок
Сообщений: 3
Регистрация: 05-06-2015


05-06-2015 17:07
Как настроить изменение цен?
1 - основной товар - сумма от количества
2 - дополнительный товар - сумма от количества первого
3 - дополнительный товар - сумма от количества первогоХ2
4 - дополнительный товар - сумма фиксированная
5 - дополнительный товар - сумма выбирается из сетки от количества товара №1


Сообщение отредактировано webstudy.su 05-06-2015 18:13 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


06-06-2015 00:30
задачу опишите подробнее.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
webstudy.su
Новичок
Сообщений: 3
Регистрация: 05-06-2015


06-06-2015 17:05
При добавлении в корзину основного товара с ним должны еще идти сразу еще 4 обязательных. Сумма по ним рассчитывается как я указал выше. При изменении количества основного товара в дополнительных товарах кол-во может оставаться=1, но сумма на каждом должна меняться по своим правилам.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


06-06-2015 20:51
Правильный способ: написать отдельный модуль, который будет отслеживать корзину добавлять и удалять скидки (отслеживать движение товара).

Плохой способ:
Откройте файл /controllers/front/CartController.php
после:
Код:
$cart_products = $this->context->cart->getProducts();

добавьте:
Код:
if($this->id_product == 1)
{
    $add_products = true;
    if ($cart_products)
    {
        foreach ($cart_products as $cart_product)
        {
            if ($cart_product['id_product'] == 1)
            {
                $add_products = false;
                break;
            }
        }
    }

    if ($add_products)
    {
        $this->context->cart->updateQty(1, 2);
        $this->context->cart->updateQty(1, 3);
        $this->context->cart->updateQty(1, 4);
        $this->context->cart->updateQty(1, 5);
    }
    
}


2,3,4,5 - это доп. товары.

дальше необходимо для каждого товара создавать и обрабатывать правила:
например так:
Код:
$cart_rule = new CartRule();
foreach(Language::getLanguages() as $language)
    $cart_rule->name[$language['id_lang']] = 'z_' . Tools::passwdGen();
$cart_rule->id_customer = $this->context->customer->id;
$cart_rule->date_from = date('Y-m-d');
$cart_rule->date_to = date('Y-m-d', strtotime('+1 year'));
$cart_rule->quantity = 1;
$cart_rule->quantity_per_user = 1;
$cart_rule->priority = 1;
$cart_rule->partial_use = 1;
$cart_rule->reduction_amount = здесь высчитывать по правилам из 1ого сообщения;
$cart_rule->reduction_currency = $this->context->cart->id_currency;
$cart_rule->product_restriction = 1;
$cart_rule->reduction_product = здесь id товара для которого даём скидку;
$cart_rule->add();
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
webstudy.su
Новичок
Сообщений: 3
Регистрация: 05-06-2015


07-06-2015 00:16
Спасибо за такой быстрый ответ.
В принципе - годится плохой способ.
2,3,4,5 - это доп. товары, но они, как в комбинации - разные (выбранные покупателем). Как это отследить?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


07-06-2015 00:48
Цитата:( webstudy.su @ 06-06-2015 18:05 Смотреть сообщение )
При добавлении в корзину основного товара с ним должны еще идти сразу еще 4 обязательных.


Цитата:( webstudy.su @ 07-06-2015 01:16 Смотреть сообщение )
2,3,4,5 - это доп. товары, но они, как в комбинации - разные (выбранные покупателем).


Если покупатель самостоятельно добавляет дополнительные товары:
1. Переберите товары.
2. Определите добавлен ли основной.
3. Переберите дополнительные, проверьте наличие правила для этого товара, (если правило отсутствует - добавьте).
Весь необходимый код для этого имеется в ранее добавленном сообщении.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос