Перейти к содержанию
MFX

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

Рекомендуемые сообщения

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну кто нибудь, прошу подсказать, жду помощи, хелп ми!)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Бен, Бен, это Данила, ай нид хелп....

Изменено пользователем MFX

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я вижу код, знаю куда засунуть(файл имею ввиду), но не пойму как именно его применить... :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;
				}

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

 

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

 

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

 

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

Изменено пользователем MFX

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на 2.3.0.2 работает. А подскажите пожалуйста подобной решение для ocStore 1.5.5.1.2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 часов назад, teslaS сказал:

на 2.3.0.2 работает. А подскажите пожалуйста подобной решение для ocStore 1.5.5.1.2

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Изменено пользователем teslaS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 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;
				}

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

 

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.