Доброго времени суток!
Есть инет-маг: Drupal 6 + Ubercart 2.
Надо сделать следующую возможность: что бы каждому товару (именно каждому, каком мы захотим, а не всей категории, классу и т.д.) можно было устанавливать скидку. Т.е. есть у нас форма добавления товара, где мы вбиваем описание товара, картинки и т.д., так вот нужно что бы в этой форме было поле "скидка", а покупателю что было видно - "цена такая то минус столько то скидки" или что бы старая цена была перечёркнута, а рядом была написана новая.
Пробовал в гуглить и искать на друпал.ру, к сожалению ничего подходящего не нашёл...
Как я понял, есть следующие модули для работы со скидками:
uc_discount_total
uc_discounts_alt
uc_discounts
UC Discount Framework
к сожалению, либо это не то что мне надо, либо я их не правильно настраивал.
Товарищи, прошу подсказать как сделать скидки или хотя бы в каком направлении копать, в каком модуле разбираться.
Комментарии
Не надо модулей. у вас 3 вида цен по умолчанию: цена рекомендованая производителем, стоимость товара, цена фактической продажи. Если предположить, что цена продажи меньше рекомендованной цены, то имеем скидку от обычной цены, не так ли?
Я себе написал сниппет, который нужно вставить в шаблон ноды (node-product.tpl.php)
Вот он:
<?php
$price_list
= uc_currency_format($node->list_price);$price_sell = uc_currency_format($node->sell_price);
if ( $price_sell < $price_list) {
$discount = $node->list_price - $node->sell_price;
$discount_percent = round( ($savings/$node->list_price)*100, 0 ); $show_price_sell = '<div class="pricesell">' .t('Our price').'<span class="price-value">'.$price_sell.'</span></div>';
$show_discount = '<div class="discount"> ('.t('You save').'<span class="discount-value">'.uc_currency_format($discount ).'</span>)</div>'; $show_price_full = '<div class="pricesell">' .t('Our price').' <span class="price-value">'.$price_sell.'</span></div>
<div class="discount"> ('.t('You save').'<span class="discount-value">'.uc_currency_format($discount ).'</span>)</div>';
}else{
$show_price_sell = '<div class="pricesell">' .t('Our price').' <span class="price-value">' .$price_sell.'</span></div>';
} ?>
В шаблон вставить
<?php print $show_price_full
?>
также там есть другие переменные, пробуйте
А..... как просто то... а я то ещё всё думал - зачем эти три поля?...
Спасибо, буду прикручивать
volocuga@drupal.org, а можете написать комментарии в коде? Понимаю, что и так все должно быть понятно, но хочется разобраться как это работает.
и сюда, если можно
netuser@mail.ru
MGMaster:
Работает простейше: извлекаем переменные цен, которые предоставляет АПИ Уберкарта, смотрим разницу между ценами, смотрим процентную разницу+округление через функцию round Простейшая арифметика, просто код громоздкий - дополнительные стили, буковки и не нравятся мне однобуквенные названия переменных
Напечатайте эти переменные
$price_list
$price_sell
$discount
$discount_percent
$show_price_sell
$show_discount
$show_price_full
и сразу станет ясно кто что делает
Так, ещё вопросик.
А если мы ещё поверх этого прикрутим какой либо модуль накопительных скидок, тогда как? что от чего будет считаться?
Пока такое не предвидится, но всё же интересно, так сказать "про запас".
Будет доп скидка от фактической продажной цені. Тут уже модулёк писать надо, где задавать соответствующие правила
Спасибо.
так а как цену перечеркнуть везде уже пробовал но нигде чет не везет мне))
Вооружаетесь фаербагом, смотрите в какой тег обёрнута цена, и для него пишете css правило:
}