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

Стандартные акции. Поменять местами старую и акционную цену


Andrej1986

Recommended Posts

Здравствуйте. Подскажите, пожалуйста, может кто-то сталкивался. Товар выгружается на сайт с 1С каждый день. К примеру, "джинсы" раньше стоили 1000 руб, теперь акционная цена на них 500 руб. Цена меняется в 1С, соответственно на сайт выгружается цена 500 руб. В стандартных акциях можно выставить новую цену товара, при этом она будет акционной, и получится, что акционная цена 1000 руб. Но нужно, чтобы акционная цена товара была 500 руб, а цена в 1000 руб была как бы "старой" ценой, перечёркнутой. Что нужно поправить? Или может модули акций какие-то с таким функционалом есть?

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


В контроллере делаете сравнение и если вторая выше, меняете местами

Спасибо, буду пробовать

Змінено користувачем Andrej1986
Надіслати
Поділитися на інших сайтах


Есть модуль : массовое изменение цен, акций, скидок

Правда откуда брался не помню.

Вот пример с ценой http://mebelny.in.ua/108-schkafy-kupe-standartnye/116-dvuhdvernye-schkafy-kupe-

Змінено користувачем ABEXX
Надіслати
Поділитися на інших сайтах


Есть модуль : массовое изменение цен, акций, скидок

Правда откуда брался не помню.

Вот пример с ценой http://mebelny.in.ua/108-schkafy-kupe-standartnye/116-dvuhdvernye-schkafy-kupe-

Спасибо, поищу

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


Спасибо, буду пробовать

Пока что получилось поменять цены местами на страницах товара и акций. Но при добавлении в корзину всё равно цены не правильные

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


Есть модуль : массовое изменение цен, акций, скидок

Правда откуда брался не помню.

Вот пример с ценой http://mebelny.in.ua/108-schkafy-kupe-standartnye/116-dvuhdvernye-schkafy-kupe-

Модуль посмотрел, не умеет он этого. Он может только добавлять или отнимать цену. Местами не меняет

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


			//special > price
//условие, что акционна цена больше обычной
			if ($product_info['special']>$product_info['price']){			
			if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
				
				$this->data['price'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
			} else {
				$this->data['price'] = false;
			}
						
			if ((float)$product_info['special']) {
				$this->data['special'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
			} else {
				$this->data['special'] = false;
			}
			
			if ($this->config->get('config_tax')) {
				$this->data['tax'] = $this->currency->format((float)$product_info['special'] ? $product_info['special'] : $product_info['price']);
			} else {
				$this->data['tax'] = false;
			}
			}
			//price > special
//условие, что цена выше акционной
			else{
			if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
				
				$this->data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
			} else {
				$this->data['price'] = false;
			}
						
			if ((float)$product_info['special']) {
				$this->data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
			} else {
				$this->data['special'] = false;
			}
			
			if ($this->config->get('config_tax')) {
				$this->data['tax'] = $this->currency->format((float)$product_info['special'] ? $product_info['special'] : $product_info['price']);
			} else {
				$this->data['tax'] = false;
			}	
			}

так делал в product.php, цены поменялись местами, а вот в category.php и cart.php такое не прокатило))) Видимо я что-то делаю неправильно или не там) Направьте, пожалуйста, кто знает

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


в category.php тоже прокатило, я не внимательно поменял. А вот что делать с cart.php не знаю. Там в принципе нет ничего со special связанного, только с price. Или может где-то в другом месте поменять можно, чтобы в корзине цена правильная была?

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


в корзине тоже поменял цену)

в файле system/library/cart.php

изменил это

if ($product_special_query->num_rows) {
$price = $product_special_query->row['price'];
} 

на это

if ($product_special_query->row['price']>$product_query->row['price']){
if ($product_special_query->num_rows) {
$price = $product_query->row['price'];
}						
}
else{
if ($product_special_query->num_rows) {
$price = $product_special_query->row['price'];
}							
}

Ещё где-то нужно править?

Змінено користувачем Andrej1986
Надіслати
Поділитися на інших сайтах


подход стратегически не верный. Надо было устранять причину а не последстивия.

В данном случае менять обработку 1С.

В крайнем случае не использовать special совсем, а сделать свой аналог.

А то что сейчас получилось и какие проблемы всплыли, это страшный сон разработчика.

Не могли бы вы объяснить, какие проблемы в дальнейшем могут быть? Акционная цена выше обычной не планируется в принципе. Просто хочется понять для себя, с чем можно сталкнуться.

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


  • 1 year later...

Поменять местами несложно, но

 

Нужно знать состав product_special

 

там может быть

 

product.price = MMM

 

product_specia.price = NNN

product_specia.price = NNN

product_specia.price = NNN

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

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

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

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

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

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

Вхід

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

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

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

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

Important Information

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