[Решено] Создание скидок в ubercart

Главные вкладки

Аватар пользователя Erly Erly 8 июля 2010 в 0:40

Доброго времени суток!

Есть инет-маг: Drupal 6 + Ubercart 2.
Надо сделать следующую возможность: что бы каждому товару (именно каждому, каком мы захотим, а не всей категории, классу и т.д.) можно было устанавливать скидку. Т.е. есть у нас форма добавления товара, где мы вбиваем описание товара, картинки и т.д., так вот нужно что бы в этой форме было поле "скидка", а покупателю что было видно - "цена такая то минус столько то скидки" или что бы старая цена была перечёркнута, а рядом была написана новая.

Пробовал в гуглить и искать на друпал.ру, к сожалению ничего подходящего не нашёл... Sad

Как я понял, есть следующие модули для работы со скидками:
uc_discount_total
uc_discounts_alt
uc_discounts
UC Discount Framework
к сожалению, либо это не то что мне надо, либо я их не правильно настраивал.

Товарищи, прошу подсказать как сделать скидки или хотя бы в каком направлении копать, в каком модуле разбираться.

Комментарии

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 8 июля 2010 в 1:05

Не надо модулей. у вас 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);

$show_price_sell '<div class="pricesell">' .t('Our price').'<span class="price-value">'.$price_sell.'</span></div>';
$show_discount '<div class="discount">&nbsp;('.t('You save').'<span class="discount-value">'.uc_currency_format($discount ).'</span>)</div>';

$show_price_full '<div class="pricesell">' .t('Our price').'&nbsp;<span class="price-value">'.$price_sell.'</span></div>
<div class="discount">&nbsp;('
.t('You save').'<span class="discount-value">'.uc_currency_format($discount ).'</span>)</div>';
}else{
$show_price_sell '<div class="pricesell">' .t('Our price').'&nbsp;<span class="price-value">' .$price_sell.'</span></div>';
}

?>

В шаблон вставить

<?php

print $show_price_full

?>

также там есть другие переменные, пробуйте

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 8 июля 2010 в 15:04

MGMaster:

Работает простейше: извлекаем переменные цен, которые предоставляет АПИ Уберкарта, смотрим разницу между ценами, смотрим процентную разницу+округление через функцию round Простейшая арифметика, просто код громоздкий - дополнительные стили, буковки и не нравятся мне однобуквенные названия переменных Smile

Напечатайте эти переменные

$price_list
$price_sell
$discount
$discount_percent
$show_price_sell
$show_discount
$show_price_full

и сразу станет ясно кто что делает

Аватар пользователя Erly Erly 10 июля 2010 в 0:03

Так, ещё вопросик.
А если мы ещё поверх этого прикрутим какой либо модуль накопительных скидок, тогда как? что от чего будет считаться?
Пока такое не предвидится, но всё же интересно, так сказать "про запас".

Аватар пользователя Erly Erly 27 июня 2011 в 14:00

"khikashika" wrote:
так а как цену перечеркнуть везде уже пробовал но нигде чет не везет мне))

Вооружаетесь фаербагом, смотрите в какой тег обёрнута цена, и для него пишете css правило:

.any_css_class {text-decoration: line-through
}