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

[Не разобрался]Выбор цены в товаре из первой опции


Recommended Posts

Здравствуйте!

 

ocStore 2.1.0.2

 

Описание: Товар сейчас показывает стоимость 0р., так как цены идут в опциях, хотел бы узнать, как сделать так, чтобы товар подцеплял цену из опций(из первой опции если быть точнее) и с ней тусил везде(на главной, в категориях, в прочих модулях), а клиент когда захочет, может выбрать другую опцию и все типа гуд(ну это сейчас работает)

 

 

Вопрос: Как сделать так, чтобы товар брал цену из первой опции и эта цена считалась основной в товаре?

Bezimyanni_3629127_23051092.png

 

Использование данного кода

$cat_product_price = 0;
foreach ($this->model_catalog_product->getProductOptions($result['product_id']) as $option) { 
if (!is_array($option['product_option_value'])) continue;
foreach ($option['product_option_value'] as $product_option_value) { 
if (!(float)$cat_product_price || $product_option_value['price'] < $cat_product_price) $cat_product_price = $product_option_value['price'];
}
}
$price = '<span class="from">' .$this->language->get('text_from') . '</span> '.$this->currency->format($this->tax->calculate($cat_product_price, $result['tax_class_id'], $this->config->get('config_tax')));


if (!(float)$cat_product_price) {
$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
}

Не дало мне толком решения проблемы(я не понял куда конкретно его вставлять, точнее что именно на него заменить - короче пихал его  куда попало, но ничего толкового не вышло).

 

 

Если есть возможность, кто знает и кому не трудно, подскажите пожалуйста подробнее... Все же сюда в первую очередь обращаются за поддержкой в решении того или иного вопроса!)

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


Я вижу код, знаю куда засунуть(файл имею ввиду), но не пойму как именно его применить... :cry: :cry: :cry:

вместо

$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
  • +1 1
Надіслати
Поділитися на інших сайтах

 

вместо

$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));

 

Судя по тому, что опять ничего не произошло, я опять его неправильно вставил?

$product_total = $this->model_catalog_product->getTotalProducts($filter_data);

			$results = $this->model_catalog_product->getProducts($filter_data);

			foreach ($results as $result) {
				if ($result['image']) {
					$image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
				} else {
					$image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
				}

				if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
					$cat_product_price = 0;
                         foreach ($this->model_catalog_product->getProductOptions($result['product_id']) as $option) { 
                                if (!is_array($option['product_option_value'])) continue;
                         foreach ($option['product_option_value'] as $product_option_value) { 
                                if (!(float)$cat_product_price || $product_option_value['price'] < $cat_product_price) $cat_product_price = $product_option_value['price'];
                                }
                                }
                                        $price = '<span class="from">' .$this->language->get('text_from') . '</span> '.$this->currency->format($this->tax->calculate($cat_product_price, $result['tax_class_id'], $this->config->get('config_tax')));


                                if (!(float)$cat_product_price) {
                                        $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
                                }
				} else {
					$price = false;
				}

				if ((float)$result['special']) {
					$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
				} else {
					$special = false;
				}

У меня руки похоже не оттуда растут... Прям хоть убей не понимаю разбивать его на части, вставлять целиком, все равно одно и тоже, не берет он первую опцию.

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


кэш модификаторов обновили?

 

 

)))))))))))))))))))))))))))))))))))))))))))))) так вот в чем проблема была все это время!))))) Ну я, ну и .....!))))

 

все заработало, спасибо огромное!))))

 

А то думал, руки кривые... Все время забываю про то, что в "менеджере дополнений" обновляться надо!)))

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


  • 4 months later...

Отлично, спасибо.

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

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


  • 3 months later...

Есть ещё нюанс. Если в одной из опций цена равна нулю, то данное решение выводит ноль для цены товара. Кто-нибудь сталкивался или подскажите решение чтобы в цену товара шла там самая минимальная опция из решения, а опция с нулевой ценой не участвовала в формировании цены

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


  • 7 months later...
В 02.09.2016 в 13:27, MFX сказал:

 

Судя по тому, что опять ничего не произошло, я опять его неправильно вставил?


$product_total = $this->model_catalog_product->getTotalProducts($filter_data);

			$results = $this->model_catalog_product->getProducts($filter_data);

			foreach ($results as $result) {
				if ($result['image']) {
					$image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
				} else {
					$image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
				}

				if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
					$cat_product_price = 0;
                         foreach ($this->model_catalog_product->getProductOptions($result['product_id']) as $option) { 
                                if (!is_array($option['product_option_value'])) continue;
                         foreach ($option['product_option_value'] as $product_option_value) { 
                                if (!(float)$cat_product_price || $product_option_value['price'] < $cat_product_price) $cat_product_price = $product_option_value['price'];
                                }
                                }
                                        $price = '<span class="from">' .$this->language->get('text_from') . '</span> '.$this->currency->format($this->tax->calculate($cat_product_price, $result['tax_class_id'], $this->config->get('config_tax')));


                                if (!(float)$cat_product_price) {
                                        $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
                                }
				} else {
					$price = false;
				}

				if ((float)$result['special']) {
					$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
				} else {
					$special = false;
				}

У меня руки похоже не оттуда растут... Прям хоть убей не понимаю разбивать его на части, вставлять целиком, все равно одно и тоже, не берет он первую опцию.

 

 

Доброго времени суток! А в каком файле это прописывать нужно?

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


  • 1 year later...
On 5/21/2017 at 9:30 PM, teslaS said:

вроде справился, кому интересно подскажу

 

Добрый день! Хотела отписать выше, но увидела ваш пост с готовностью помочь + вы были 6 минут назад онлайн)

Подскажите пожалуйста детально. Спрашиваю дабы не напортачить и сделать с первого раза. Оригиналы файлов сохранила. 
 

Version 2.0.1.0

В какой конкретно файл\файлы вносить изменения и какую строку заменить \ дополнить?

$cat_product_price = 0;
foreach ($this->model_catalog_product->getProductOptions($result['product_id']) as $option) { 
if (!is_array($option['product_option_value'])) continue;
foreach ($option['product_option_value'] as $product_option_value) { 
if (!(float)$cat_product_price || $product_option_value['price'] < $cat_product_price) $cat_product_price = $product_option_value['price'];
}
}
$price = '<span class="from">' .$this->language->get('text_from') . '</span> '.$this->currency->format($this->tax->calculate($cat_product_price, $result['tax_class_id'], $this->config->get('config_tax')));


if (!(float)$cat_product_price) {
$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

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

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

Important Information

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