Как сделать скидку для группы покупателей?

Тема в разделе "Общие вопросы", создана пользователем UserWii, 13 июл 2015.

  1. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    не. 99% решений на данном форуме это для версии 2х
     
  2. авіаіа

    авіаіа Новичок

    Сообщения:
    5
    Симпатии:
    0
    А как сделать чтобы цены со скидкой отображались в категориях?
     
  3. авіаіа

    авіаіа Новичок

    Сообщения:
    5
    Симпатии:
    0

    А как сделать чтобы цены со скидкой отображались в категориях опенкарт
     
  4. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    проделайте теже действия , но для контроллера category.php
     
  5. авіаіа

    авіаіа Новичок

    Сообщения:
    5
    Симпатии:
    0
    Я так делал но здесь код иной и нет некоторых файлов


    foreach ($results as $result) {
    if ($result['image']) {
    $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
    } else {
    $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
    }

    if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
    $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
    } else {
    $price = false;
    }

    if ((float)$result['special']) {
    $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
    } else {
    $special = false;
    }

    if ($this->config->get('config_tax')) {
    $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']);
    } else {
    $tax = false;
    }


    if ($this->config->get('config_review_status')) {
    $rating = (int)$result['rating'];
    } else {
    $rating = false;
    }

    $data['products'][] = array(
    'product_id' => $result['product_id'],
    'thumb' => $image,
    'name' => $result['name'],
    'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
    'price' => $price,
    'special' => $special,
    'tax' => $tax,
    'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1,
    'rating' => $result['rating'],
    'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
    );
    }
     
  6. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    сначало оформите код по рекомендациям http://forum.opencart-russia.ru/threads/rekomendacii-po-oformleniju-koda-i-voprosov.460/

    А далее вам нужно как минимум перед $data['products'][] = array(
    разместить код
    PHP:
    // Скидка для групп
                
    if ($this->customer->getGroupId() == 2) {
                    
    $perc_price $result['price'] - ($result['price'] / 100) * 10;
                    
    $special $this->currency->format($this->tax->calculate($perc_price$result['tax_class_id'], $this->config->get('config_tax')));
                } else {
                    
    $special false;
                }
     
    авіаіа нравится это.
  7. авіаіа

    авіаіа Новичок

    Сообщения:
    5
    Симпатии:
    0

    Спасибо за помощь, все работает. Вставил этот код перед $data['products'][] = array(
     
  8. авіаіа

    авіаіа Новичок

    Сообщения:
    5
    Симпатии:
    0
    Нужна помощь. Установил все но теперь для группы покупателей обычно не выбивает никакой скидки в цене, цена остается та же без скидки и так же в категориях. Как сделать чтобы цена для обычный пользователей отображалась со скидкой?
     
  9. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    ну не все время же за вас думать? Посмотрите на код.. там же все просто. Основ php хватает с головой. Поставьте условия на спец стоимость... если такая то группа.. то тото.. если не такоя.. то это, а если вообще ничего то это. if else и elseif это основа основ.
     
  10. ramzes6961

    ramzes6961 Новичок

    Сообщения:
    19
    Симпатии:
    0
    Есть две группы оптовая и розничная, розничная по умолчанию, можно ли как то вывести скидку оптовой группы в розничную, как информционную?
     
  11. andrey231983

    andrey231983 Новичок

    Сообщения:
    5
    Симпатии:
    0
    Доброго дня! Очень нужна помощь разбирающегося человека: в opencart 2.x необходимо сделать так, чтобы установленные в каждом товаре акции для разных групп покупателей, в корзине магазина подставлялись любому покупателю (из любой группы) в соответствии с установленным диапазоном суммы общего заказа... Т.е. добавить условие для акций не только по группе, но и по общей сумме заказа в корзине.

    Например:
    0-999 руб. = исходная цена товара
    1000-4999 руб. = акционная цена для группы покупателей 1
    5000-9999 руб. = акционная цена для группы покупателей 2
    от 10000 руб. = акционная цена для группы покупателей 3

    т.е. если покупатель уже имеет статус группы 2 и берет товаров скажем на 500 руб, то цена все-равно должна браться для группы 2,
    или если покупатель уже в группе 2 и берет товаров на 10000 руб, то цена берется для группы 3.

    Очень необходима такая бредовая реализация оптовых цен, так как:
    - оптовые цены формируются вручную и заливаются прайсом, а не формируются через модули процентом скидки
    - добавление новых полей цен - не вариант (потом будут проблемы при импорте/экспорте)
    - скидки не подходят, т.к. необходима скидка не от кол-ва товаров, а от общей суммы заказа, а также их очень неудобно заливать прайсом
    - покупатели на сайте автоматически переводятся в другую группу при достижении определенной суммы всех покупок

    Или может возможно, как-то, сделать это на "Скидках", но не от кол-ва заказываемого товара, а с привязкой к сумме общего заказа в корзине?

    Буду очень благодарен за вашу помощь - не только морально, но и материально!
     
  12. Ravilr

    Ravilr Специалист

    Сообщения:
    3.877
    Симпатии:
    1.064
    В рамках данной темы не получится сделать. Посмотрите на модули, например https://shop.opencart-russia.ru/imdiscount23
     
  13. Chin2007

    Chin2007 Новичок

    Сообщения:
    1
    Симпатии:
    0
    Пытаюсь по аналогии сделать для Ocstore 3, выдаёт ошибку, подскажите пожалуйста что не так?


    Fatal error: Uncaught ArgumentCountError: Too few arguments to function Cart\Currency::format(), 1 passed in /var/www/u13234145/data/www/storage/modification/catalog/controller/product/product.php on line 535 and at least 2 expected in /var/www/u13234145/data/www/site.ru/system/library/cart/currency.php:24 Stack trace: #0 /var/www/u13234145/data/www/storage/modification/catalog/controller/product/product.php(535): Cart\Currency->format(24300) #1 /var/www/u13234145/data/www/storage/modification/system/engine/action.php(79): ControllerProductProduct->index() #2 /var/www/u13234145/data/www/site.ru/catalog/controller/startup/router.php(25): Action->execute(Object(Registry)) #3 /var/www/u13234145/data/www/storage/modification/system/engine/action.php(79): ControllerStartupRouter->index() #4 /var/www/u13234145/data/www/site.ru/system/engine/router.php(67): Action->execute(Object(Registry)) #5 /var/www/u13234145/data/www/site.ru/system/engine/router.php(56): Router->execute(Object(Action)) #6 /var/www/u13234145/data/www/site.ru in /var/www/u13234145/data/www/site.ru/system/library/cart/currency.php on line 24