Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Вопрос]Атрибуты товара. Как реализовать абсолютную цену для атрибута


zeddy

Recommended Posts

В магазине предпологается продавать фанеру

различается только толщиной и ценой.

Делать 15 страниц одинаковых товаров с разной толщиной не практично и не удобно для пользователя.

Удобнее сделать 1 сраницу с выбором толщины в атрибутах.

Как реализовать цену для каждого атибута без префикса (+/-) а сразу указывать конечную цену. так логичнее и удобнее для себя и покупателя, нежели наценка к основной стоимости за каждый мм.

Надіслати
Поділитися на інших сайтах


расчет стоимости атрибутов происходит в файле ..\system\library\cart.php

if ($option_value_query->row['prefix'] == '+') {
	$option_price = $option_price + $option_value_query->row['price'];
} elseif ($option_value_query->row['prefix'] == '-') {
	$option_price = $option_price - $option_value_query->row['price'];
}

и собственно тут

'price'        => ($price + $option_price),
'total'        => ($price + $option_price) * $quantity,

ну и придется отредактировать кучу файлов чтоб все это выглядело по "новому"

  • +1 1
Надіслати
Поділитися на інших сайтах


  • 1 year later...

расчет стоимости атрибутов происходит в файле ..systemlibrarycart.php

if ($option_value_query->row['prefix'] == '+') {
	$option_price = $option_price + $option_value_query->row['price'];
} elseif ($option_value_query->row['prefix'] == '-') {
	$option_price = $option_price - $option_value_query->row['price'];
}

и собственно тут

'price'		=> ($price + $option_price),
'total'		=> ($price + $option_price) * $quantity,

ну и придется отредактировать кучу файлов чтоб все это выглядело по "новому"

Интересно, а в какую кучу файлов необходимо редактировать? Кроме темы product.tpl

А то пытаюсь решить такую же задачу.

Надіслати
Поділитися на інших сайтах


в cart.php сделал изменения:

if ($option_value_query->num_rows) {

if ($option_value_query->row['price_prefix'] == '+') {

$option_price += $option_value_query->row['price'];

} elseif ($option_value_query->row['price_prefix'] == '-') {

$option_price -= $option_value_query->row['price'];

} elseif ($option_value_query->row['price_prefix'] == '=') {$option_price = $option_value_query->row['price']; $d=1;} //Dobavlaem prefix =

и

if ($option_value_query->row['price_prefix'] == '=') {

$this->data[$key] = array(

...

'price' => ($option_price),

'total' => ($option_price) * $quantity,

...

);} else {

$this->data[$key] = array(

...

'price' => ($price + $option_price),

'total' => ($price + $option_price) * $quantity,

...

); }

Теперь при префиксе = цена в корзине равняется цене опции.

product.tpl подправил для корректного отображения префикса в списке опций.

Какие еще могут быть подводные камни?

Надіслати
Поділитися на інших сайтах


  • 2 years later...

в cart.php сделал изменения:

if ($option_value_query->num_rows) {

if ($option_value_query->row['price_prefix'] == '+') {

$option_price += $option_value_query->row['price'];

} elseif ($option_value_query->row['price_prefix'] == '-') {

$option_price -= $option_value_query->row['price'];

} elseif ($option_value_query->row['price_prefix'] == '=') {$option_price = $option_value_query->row['price']; $d=1;} //Dobavlaem prefix =

и

if ($option_value_query->row['price_prefix'] == '=') {

$this->data[$key] = array(

...

'price' => ($option_price),

'total' => ($option_price) * $quantity,

...

);} else {

$this->data[$key] = array(

...

'price' => ($price + $option_price),

'total' => ($price + $option_price) * $quantity,

...

); }

Теперь при префиксе = цена в корзине равняется цене опции.

product.tpl подправил для корректного отображения префикса в списке опций.

Какие еще могут быть подводные камни?

 

То что надо! Спасибо)

 

Камушек например есть, когда проставлена акция и показывается старая цена и новая, при выборе опции он затирает старую цену на новую, получается старая и новая цены равны

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

в cart.php сделал изменения:

if ($option_value_query->num_rows) {

if ($option_value_query->row['price_prefix'] == '+') {

$option_price += $option_value_query->row['price'];

} elseif ($option_value_query->row['price_prefix'] == '-') {

$option_price -= $option_value_query->row['price'];

} elseif ($option_value_query->row['price_prefix'] == '=') {$option_price = $option_value_query->row['price']; $d=1;} //Dobavlaem prefix =

и

if ($option_value_query->row['price_prefix'] == '=') {

$this->data[$key] = array(

...

'price' => ($option_price),

'total' => ($option_price) * $quantity,

...

);} else {

$this->data[$key] = array(

...

'price' => ($price + $option_price),

'total' => ($price + $option_price) * $quantity,

...

); }

Теперь при префиксе = цена в корзине равняется цене опции.

product.tpl подправил для корректного отображения префикса в списке опций.

Какие еще могут быть подводные камни?

А можно поподробнее?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.