Категории
[FAQ] Часто задаваемые вопросы и ответы
Проблемы и решения
Ошибки и исправления
Общие вопросы
Расширения
Установка и обновление
Модули
Шаблоны
Локализация интерфейса
Коммерческие предложения
Учимся бизнесу
Бизнес книги
Поисковая оптимизация (SEO)
Магазины на ShopOS
Хостинг для ShopOS
Предложения и пожелания
Курилка
|
Разные скидки и их работа
Собственно вопрос тем, кто часто использует скидки. Не могу никак понять(уже запарился копаться в настройках) как точно работают скидки?
Есть скидки для групп пользователей Есть скидки "Специальные" т.е. сразу товару или целой категории Есть скидки от количества Есть скидки в редактировании товара, там же где и От количества Есть скидки для атрибутов Еще скидки какие-то есть...?
Какие имеют какой приоритет? Если включено сразу много скидок Например у товара и Для группы покупателя и Специальная скидка и Скидка от количества + еще купон (жесть я выдумал да? :) Я сейчас уже два раза двиг переустанавливал, пробовал ковырять эти настройки но все время почему-то мне выводит разные типы скидок в приоритете.
много скидок, и не совсем просто разобратся, если честно то многовато скидок
Тут решение одно, зделать две скидки для груп и для количества, и то должно учитыватся приоритетность
Есть например тиливизор - 30 руб. , 10 тел - 28 руб, 40 тел - 25 руб, 100 тел - 23 руб.
Если есть скидка на телевизор - 25 руб, то 10 тел - 25 руб, 40 тел - 25 руб, 100 тел 23 руб.
Ну если честоно. то редка использую скидку на количество, можно сказать вообще не использую, а вот скидку на производителя очень даже часто ипользую, ибо цены приходят именно по прайсу произвотеля со скидкой, от 55 до 15%. И тут уже наценки нужно держать стабильными.
В тестах на сегодня результат получился такой
реальная цена товара (прямиком из БД) : 23.842,0 руб. цена для корзины (если есть скидка, то с ней) : 11.921,0 руб.
Первой выставил скидка Специальная на отдельный товар или категорию (Каталог>Скидки) : 21.457,8 руб. Второй выставил скидка для группы пользователей (у группы покупателей) : 11.921,0 руб. Третья индивидуальная скидка на товар для группы (при редактировании товара) : 250,0 руб.
По всему видно, что приоритет у группы покупателей. Завтра еще потестирую и настройки поковыряю. Думаю будет полезно новичкам
По поводу приоритета. Все оказалось очень просто includes/classes/price.php
Ищем function GetPrice($pID, $format = true, $qty, $tax_class, $pPrice, $vpeStatus = 0, $cedit_id = 0) {
if ($this->cStatus['customers_status_show_price'] == '0') return $this->ShowNote($vpeStatus, $vpeStatus);
if ($cedit_id != 0) { $cinfo = os_customer_infos($cedit_id); $products_tax = os_get_tax_rate($tax_class, $cinfo['country_id'], $cinfo['zone_id']); } else { if (isset( $this->TAX)) $products_tax = $this->TAX; else $products_tax = 0; }
if ($this->cStatus['customers_status_show_price_tax'] == '0') $products_tax = '';
if ($pPrice == 0) $pPrice = $this->getPprice($pID); $pPrice = $this->AddTax($pPrice, $products_tax);
// скидка Специальная на отдельный товар или категорию if ($sPrice = $this->CheckSpecial($pID)) { return $this->FormatSpecial($pID, $this->AddTax($sPrice, $products_tax), $pPrice, $format, $vpeStatus); }
// индивидуальная скидка на товар для группы if ($this->cStatus['customers_status_graduated_prices'] == '1') { if ($sPrice = $this->GetGraduatedPrice($pID, $qty)) return $this->FormatSpecialGraduated($pID, $this->AddTax($sPrice, $products_tax), $pPrice, $format, $vpeStatus, $pID); } else { if ($sPrice = $this->GetGroupPrice($pID, 1)) return $this->FormatSpecialGraduated($pID, $this->AddTax($sPrice, $products_tax), $pPrice, $format, $vpeStatus, $pID); }
// скидка для группы пользователей if ($discount = $this->CheckDiscount($pID)) return $this->FormatSpecialDiscount($pID, $discount, $pPrice, $format, $vpeStatus);
return $this->Format($pPrice, $format, 0, false, $vpeStatus, $pID); }
Что первое есть, то и возвращается) Меняем местами и получаем всегда нужную скидку в приоритете. У меня вроде работает корректно если менять. Но как там глубже в скрипте, я не знаю. По идее проблем не должно быть.
Источник
|