подскажите, в товарах в разделе скидки, когда ставлю скидки от количества, они должны считаться в корзине? или только пишутся в описании товара?
в файле \system\library\cart.php найдите строку с комментарием // Product Discounts и увидите, что сначала расчитывается скидка, а потом акция. Если местами поменять расчет, то думаю заработает.
а можно сразу вопрос не по теме?) чтоб не плодить темы где лежит модуль рекомендуемые? хочу высоту блока поменять, а то описание товара почти нет, и много лишнего места остается
"Если местами поменять расчет" - что тут имеется введу ? Вот так выглядит код: // 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']; }
Это самый логичный участок кода, а вы не видите? ну вот 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 получите другую логику.
увы, но не работает, я тоже так думал. По этому и спросил, может быть для это версии нужно что то иное сделать
акция/скидка в корзине не учитывает приоритет более низкой цены. цена как и в карте товара - меняется в более низкую сторону, только если цена со скидкой ниже цены по акции. Это можно исправить?