Скидки для пользователей

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

  1. bankomat87

    bankomat87 Пользователь

    Сообщения:
    32
    Симпатии:
    2
    подскажите, в товарах в разделе скидки, когда ставлю скидки от количества, они должны считаться в корзине? или только пишутся в описании товара?
     
  2. Vlad

    Vlad Эксперт

    Сообщения:
    3.905
    Симпатии:
    939
    Конечно должны считаться.
     
  3. bankomat87

    bankomat87 Пользователь

    Сообщения:
    32
    Симпатии:
    2
    а что то не считаются... в чем может быть загвоздка?
    опенкарт 2,0,3, хостинг beget
     
  4. Ravilr

    Ravilr Специалист

    Сообщения:
    3.158
    Симпатии:
    874
    всегда указывайте точную версию + если это сборка, то какая.
     
  5. bankomat87

    bankomat87 Пользователь

    Сообщения:
    32
    Симпатии:
    2
    v 2.0.3.1 "Русская сборка" качал с этого сайта)
     
  6. Ravilr

    Ravilr Специалист

    Сообщения:
    3.158
    Симпатии:
    874
    У товара видимо есть цена по акции. (вкладка Акции)
     
  7. bankomat87

    bankomat87 Пользователь

    Сообщения:
    32
    Симпатии:
    2
    действительно есть, убрал акцию, заработали скидки, вместе они получается не работают?
     
  8. Vlad

    Vlad Эксперт

    Сообщения:
    3.905
    Симпатии:
    939
    в файле \system\library\cart.php

    найдите строку с комментарием // Product Discounts
    и увидите, что сначала расчитывается скидка, а потом акция. Если местами поменять расчет, то думаю заработает.
     
  9. bankomat87

    bankomat87 Пользователь

    Сообщения:
    32
    Симпатии:
    2
    вы абсолютно правы, все заработало
     
  10. bankomat87

    bankomat87 Пользователь

    Сообщения:
    32
    Симпатии:
    2
    а можно сразу вопрос не по теме?) чтоб не плодить темы
    где лежит модуль рекомендуемые? хочу высоту блока поменять, а то описание товара почти нет, и много лишнего места остается
     
  11. Vlad

    Vlad Эксперт

    Сообщения:
    3.905
    Симпатии:
    939
    1 вопрос = 1 тема
     
  12. Malhaz

    Malhaz Новичок

    Сообщения:
    3
    Симпатии:
    0
    Столкнулся с этим вопросом на Opencart PRO 2.3.0.2.3 - подскажите как решить ?
     
  13. Ravilr

    Ravilr Специалист

    Сообщения:
    3.158
    Симпатии:
    874
    наверно так же как описано выше.
     
  14. Malhaz

    Malhaz Новичок

    Сообщения:
    3
    Симпатии:
    0
    "Если местами поменять расчет" - что тут имеется введу ?

    Вот так выглядит код:
    // Product Discounts
    $discount_quantity = 0;

    foreach ($cart_query->rows as $cart_2) {
    if ($cart_2['product_id'] == $cart['product_id']) {
    $discount_quantity += $cart_2['quantity'];
    }
    }

    $product_discount_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_discount WHERE product_id = '" . (int)$cart['product_id'] . "' AND customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND quantity <= '" . (int)$discount_quantity . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY quantity DESC, priority ASC, price ASC LIMIT 1");

    if ($product_discount_query->num_rows) {
    $price = $product_discount_query->row['price'];
    }

    // Product Specials
    $product_special_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_special WHERE product_id = '" . (int)$cart['product_id'] . "' AND customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY priority ASC, price ASC LIMIT 1");

    if ($product_special_query->num_rows) {
    $price = $product_special_query->row['price'];
    }
     
  15. Ravilr

    Ravilr Специалист

    Сообщения:
    3.158
    Симпатии:
    874
    Это самый логичный участок кода, а вы не видите?

    ну вот
    PHP:
    Product Specials
    $product_special_query 
    $this->db->query("SELECT price FROM " DB_PREFIX "product_special WHERE product_id = '" . (int)$cart['product_id'] . "' AND customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY priority ASC, price ASC LIMIT 1");

    if (
    $product_special_query->num_rows) {
    $price $product_special_query->row['price'];
    отвечает за цены по акции. Переместив выше // Product Discounts получите другую логику.
     
  16. Malhaz

    Malhaz Новичок

    Сообщения:
    3
    Симпатии:
    0
    увы, но не работает, я тоже так думал. По этому и спросил, может быть для это версии нужно что то иное сделать
     
  17. Ravilr

    Ravilr Специалист

    Сообщения:
    3.158
    Симпатии:
    874
    Я работаю только с опенкарт. В опенкарт-про может по другому все нужно..
     
  18. srs3000

    srs3000 Пользователь

    Сообщения:
    186
    Симпатии:
    1
    акция/скидка в корзине не учитывает приоритет более низкой цены.
    цена как и в карте товара - меняется в более низкую сторону, только если цена
    со скидкой ниже цены по акции. Это можно исправить?
     
  19. Ravilr

    Ravilr Специалист

    Сообщения:
    3.158
    Симпатии:
    874
    А должна? По умолчанию вроде нет.
     
  20. srs3000

    srs3000 Пользователь

    Сообщения:
    186
    Симпатии:
    1
    не должна, но хочется :) Вопрос как сделать иначе или тут простого решения нет