Nikita 0 Опубликовано 13 января, 2017 Жалоба Share Опубликовано 13 января, 2017 Подскажите плз, Как сделать скидку в зависимости от кол-ва товара в заказе не процентную, а денежную? Например: если в заказе 2а разных! товара (а не 2а одинаковых) то скидка 200 руб. если в заказе 4е разных! товара (а не 4е одинаковых) то скидка 1000 руб. и т.д... Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 13 января, 2017 Жалоба Share Опубликовано 13 января, 2017 В файле /includes/modules/order_total/ot_discount_quant.php нужно вот этот кусок менять: if($_SESSION['cart']->count_contents() >= MODULE_ORDER_TOTAL_DISCOUNT_QUANT_ITEMS){ $discount_quant = $vamPrice->Format($order->info['subtotal'], false)/ 100 * $discount_quant_percent ; $order->info['total'] -= $discount_quant; $this->output[] = array('title' => $this->title . " " . $discount_quant_percent . '% :', 'text' => '<font color="ff0000">'.$vamPrice->Format("-".$discount_quant, true).'</font>', 'value' => $discount_quant); Наверное менять на: if($_SESSION['cart']->count_contents() >= MODULE_ORDER_TOTAL_DISCOUNT_QUANT_ITEMS){ $discount_quant = $discount_quant_percent ; $order->info['total'] -= $discount_quant; $this->output[] = array('title' => $this->title . " " . $discount_quant_percent . ' руб. :', 'text' => '<font color="ff0000">'.$vamPrice->Format("-".$discount_quant, true).'</font>', 'value' => $discount_quant); Что б просто отнимало указанное число от суммы заказа. Ссылка на сообщение Поделиться на другие сайты
Nikita 0 Опубликовано 18 января, 2017 Автор Жалоба Share Опубликовано 18 января, 2017 Еще вопрос в тему: если использовать процентную скидку, как округлить результат, полученный после вычитания скидки, например до ...50 руб. Пример:. у клиента 5 различных позиций в корзине на 23750 руб. - скидка составила 5% , т.е. 1187 руб. 50 коп., Итого к оплате 22562 руб. 50 коп. Не хочется связываться с мелочью, и округлить результат, чтобы он был кратным 50. т.е должно получиться 22550 руб. Возможно ли такое? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 18 января, 2017 Жалоба Share Опубликовано 18 января, 2017 11 минуту назад, Nikita сказал: Еще вопрос в тему: если использовать процентную скидку, как округлить результат, полученный после вычитания скидки, например до ...50 руб. Пример:. у клиента 5 различных позиций в корзине на 23750 руб. - скидка составила 5% , т.е. 1187 руб. 50 коп., Итого к оплате 22562 руб. 50 коп. Не хочется связываться с мелочью, и округлить результат, чтобы он был кратным 50. т.е должно получиться 22550 руб. Возможно ли такое? В Админке - Разное - Валюты в настройках валюты в опции Десятичные порядки укажите 0 Ссылка на сообщение Поделиться на другие сайты
Nikita 0 Опубликовано 18 января, 2017 Автор Жалоба Share Опубликовано 18 января, 2017 Указано 0, но я так понял это значение определяет кол-во разрядов после запятой. А нужно чтобы в целом значении кратность была 50. Т.е. сейчас при Десятичном порядке получается значение 22562 руб., а должно 22550 руб. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 18 января, 2017 Жалоба Share Опубликовано 18 января, 2017 Вряд ли получится именно так округлять. Можно лишь если пробное число, например 4.3 , то округлить либо в меньшую, т.е. до 3, либо в большую, т.е. до 5 сторону. А вот что б именно кратность была, что-то я такой php функции не знаю. Хоть готовой php функции и нет, но есть разные статьи в инете, вот например - https://glebov-gin.blogspot.com/2011/11/php.html т.е. можно вместо: 'value' => $discount_quant); попробовать что-то типа: 'value' => ceil(number_format($discount_quant)/10) * 10); ищите примеры в гугле, наверняка много разных вариантов готовых есть в различных статьях. Ссылка на сообщение Поделиться на другие сайты
Nikita 0 Опубликовано 18 января, 2017 Автор Жалоба Share Опубликовано 18 января, 2017 вот тут нашел вроде, но ничего не понимаю, что люди пишут)))))))))))))))))))))))))))))) http://forum.php.su/topic.php?forum=71&topic=12378 вот еще конкретно мой случай: Предположим, что цена товара составляет 350 рублей. Если объявить на него скидку в 3 процента, то получается новая цена 339 рублей 50 копеек.Такое значение во многих случаях не устраивает, поскольку некоторые кассиры отказываются от копеек, а иногда директора магазинов предпочитают иметь цены, кратные 50 рублям.В этой связи возникает такая задача: как средствами РНР округлить цену с заранее заданной точностью? Как отсюда вытащить код в ВамШоп? http://www.cyberforum.ru/php-beginners/thread722685.html Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 18 января, 2017 Жалоба Share Опубликовано 18 января, 2017 Наверное как-то так: if($_SESSION['cart']->count_contents() >= MODULE_ORDER_TOTAL_DISCOUNT_QUANT_ITEMS){ $discount_quant_percent = ceil(number_format($discount_quant)/0.5) * 0.5; $discount_quant = $discount_quant_percent; $order->info['total'] -= $discount_quant; $this->output[] = array('title' => $this->title . " " . $discount_quant_percent . ' руб. :', 'text' => '<font color="ff0000">'.$vamPrice->Format("-".$discount_quant, true).'</font>', 'value' => $discount_quant); По последней ссылке код неуниверсальный ведь. Там как раз дискретность надо указыть, то 2, то 20 Автоматически ведь это не посчитаешь, т.е. скидка может быть10, может быть 100, может быть 1000 рублей. Код, по идее, из той темы, что на cyberforum не совсем универсальный и не будет во всех случаях правильно работать. Ссылка на сообщение Поделиться на другие сайты
Nikita 0 Опубликовано 19 января, 2017 Автор Жалоба Share Опубликовано 19 января, 2017 Внес изменения в /includes/modules/order_total/ot_discount_quant.php Захожу в админку Модули - Модули Итого а там исчезла возможность редактировать какие-либо модули да и самих модулей только 2е шт осталось. Меняю на старый файл ot_discount_quant.php - все работает Попробовал Ваш самый 1й вариант вставить с фиксированным размером скидки - все работает Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 19 января, 2017 Жалоба Share Опубликовано 19 января, 2017 Видимо, скобка лишняя. Попробуйте так: if($_SESSION['cart']->count_contents() >= MODULE_ORDER_TOTAL_DISCOUNT_QUANT_ITEMS){ $discount_quant_percent = ceil(number_format($discount_quant)/0.5) * 0.5; $discount_quant = $discount_quant_percent; $order->info['total'] -= $discount_quant; $this->output[] = array('title' => $this->title . " " . $discount_quant_percent . ' руб. :', 'text' => '<font color="ff0000">'.$vamPrice->Format("-".$discount_quant, true).'</font>', 'value' => $discount_quant); Ссылка на сообщение Поделиться на другие сайты
Nikita 0 Опубликовано 20 января, 2017 Автор Жалоба Share Опубликовано 20 января, 2017 Да, теперь можно редактировать в админке. Поставил следующее правило: скидка начинает действовать если в корзине 2е позиции и скидка 5% т.е. в админке в строке Скидка указано: 2:5 При оформлении заказа на странице подтверждения видим следующее: Стоимость товара: 26.550 ₽ Скидка от количества 0 ���. : бесплатно Курьерская доставка по Москве в пределах МКАД (Стоимость доставки): бесплатно Всего: 26.550 ₽ Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 20 января, 2017 Жалоба Share Опубликовано 20 января, 2017 Наверное какое-то условие не выполняется. Да и файле в неправильной кодировк сохранили, нужно в utf8 Ссылка на сообщение Поделиться на другие сайты
Nikita 0 Опубликовано 21 января, 2017 Автор Жалоба Share Опубликовано 21 января, 2017 кодировку выбрал UTF-8 Получилось следующее: Стоимость товара: 63.700 руб. Скидка от количества 0 ₽ : бесплатно Самовывоз (Покупатель сам забирает свой заказ): бесплатно Всего: 63.700 руб. Какое условие не выполняется, где искать ошибку. правило в админке указал 2:5 если ко-во 1, то на странице подтверждения заказа строка Скидка от количества 0 ₽ : бесплатно отсутствует, значит правило срабатывает, только не считает. Ссылка на сообщение Поделиться на другие сайты
Nikita 0 Опубликовано 21 января, 2017 Автор Жалоба Share Опубликовано 21 января, 2017 Короче говоря, нервы сдали)))))), поставил денежную, а не процентную скидку все работает. Спасибо! Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 21 января, 2017 Жалоба Share Опубликовано 21 января, 2017 Понятно Ссылка на сообщение Поделиться на другие сайты
Nikita 0 Опубликовано 23 января, 2017 Автор Жалоба Share Опубликовано 23 января, 2017 В продолжение темы, как вывести эту денежную скидку на страницу ....shopping_cart.php Сейчас выводится только Стоимость товара, а нужно Стоимость товара: 32.100 руб. Скидка от количества : -300 руб. Всего: 31.800 руб. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 23 января, 2017 Жалоба Share Опубликовано 23 января, 2017 Только что, Nikita сказал: В продолжение темы, как вывести эту денежную скидку на страницу ....shopping_cart.php Сейчас выводится только Стоимость товара, а нужно Стоимость товара: 32.100 руб. Скидка от количества : -300 руб. Всего: 31.800 руб. Никак не вывести, в корзине итоговые суммы не выводятся на данный момент. Можно лишь в корзине просто добавить какой-то текст с пояснением, что у нас в магазине действует такая-то скидка при такой-то сумме заказа, скидка будет учтена при оформлении заказа. Как-то так. Шаблон корзины в /templates/шаблон/module/shopping_cart.html или order_details.html В один из этих шаблонов вставляйте текст. Ссылка на сообщение Поделиться на другие сайты
Nikita 0 Опубликовано 23 января, 2017 Автор Жалоба Share Опубликовано 23 января, 2017 Ну да, я так и сделаю. Еще вопрос возникает в тему.: как сделать, чтобы эта скидка не распространялась, если сумма заказа меньше, например 10000 руб.? Вопрос не в тему: Как сделать так, - если способ оплаты не наложенный платеж, в /sender_form.php не заполнялось поле с наложенным платежом, а заполненным было поле с объявленной ценностью, а там где указывается наложенный платеж было бы написано БЕЗ НАЛОЖЕННОГО ПЛАТЕЖА? На форуме что-то сходу не нашел решения. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 23 января, 2017 Жалоба Share Опубликовано 23 января, 2017 Если настроек в модуле нет, то никак не сделать, только код переписывать. Опять же, всё это ведь правкой кода делается и не двумя строчками, что б можно было тут в теме написать. Если знаете php, то правьте код и добавялйте нужный текст, нужные условия. Ссылка на сообщение Поделиться на другие сайты
Nikita 0 Опубликовано 23 января, 2017 Автор Жалоба Share Опубликовано 23 января, 2017 ОК, а по вопросу с печатью бланка без наложки посдкажите Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 23 января, 2017 Жалоба Share Опубликовано 23 января, 2017 Так это ведь тоже не так просто, там бланк в виде картинки. т.е. нужно править код, если надо сверху что-то написать на бланке. Смотрите как сделаны надписи, что уже есть и делаете по аналогии нужный Вам текст. Ссылка на сообщение Поделиться на другие сайты
Nikita 0 Опубликовано 23 января, 2017 Автор Жалоба Share Опубликовано 23 января, 2017 ок Ссылка на сообщение Поделиться на другие сайты
Nikita 0 Опубликовано 30 июня, 2017 Автор Жалоба Share Опубликовано 30 июня, 2017 Добрый день! Руки все не доходили поднять эту проблему с денежными скидками, но сегодняшний "косяк" заставил меня вернуться к ней. Скидка от кол-ва товара в корзине работает без проблем, но до тех пор пока не залезешь в админку и не выберешь: Редактировать товары или Редактировать другие данные заказа. Скидка перестает быть скидкой, а становится наценкой к заказу. Т.е. если открыть Редактировать другие данные заказа, то увидим, что в поле Скидка от количества : 300 и если нажать сохранить, то заказ станет на 300 дороже. Т.е. каждый раз, когда тебе необходимо изменить состав заказа или изменить способ оплаты, нужно помнить, что обязательно поставить знак "-" перед размером скидки! иначе быть беде. Т.е. если вручную изменить на Скидка от количества : -300 то все работает, но это упомнить невозможно. Как решить эту проблем? Спасибо! Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 30 июня, 2017 Жалоба Share Опубликовано 30 июня, 2017 14 минуты назад, Nikita сказал: Добрый день! Руки все не доходили поднять эту проблему с денежными скидками, но сегодняшний "косяк" заставил меня вернуться к ней. Скидка от кол-ва товара в корзине работает без проблем, но до тех пор пока не залезешь в админку и не выберешь: Редактировать товары или Редактировать другие данные заказа. Скидка перестает быть скидкой, а становится наценкой к заказу. Т.е. если открыть Редактировать другие данные заказа, то увидим, что в поле Скидка от количества : 300 и если нажать сохранить, то заказ станет на 300 дороже. Т.е. каждый раз, когда тебе необходимо изменить состав заказа или изменить способ оплаты, нужно помнить, что обязательно поставить знак "-" перед размером скидки! иначе быть беде. Т.е. если вручную изменить на Скидка от количества : -300 то все работает, но это упомнить невозможно. Как решить эту проблем? Спасибо! Пока не могу сказать, редактор заказа понимает только если - ставить. Зарегистрируйте в ошибках - https://forum.vamshop.ru/bugs/ Посмотрим, что можно сделать. Ссылка на сообщение Поделиться на другие сайты
listok 0 Опубликовано 18 июля, 2017 Жалоба Share Опубликовано 18 июля, 2017 В админке присвоил товару скидку от кол-ва, в БД она есть, а при оформлении заказа цена товара стандартная, т.е без скидки... что не так делаю? Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения