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

[Решено]Выбор цены в товаре из первой опции

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

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

 

ocStore 2.1.0.2

 

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

 

 

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

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


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

Здесь как минимум нужно ещё опциям добавить значение равенства " = ", что бы отображалась полная цена, а не разница.Ну и далее уже выводить условие 

 

У товара цена ноль.Если есть опции выводим цену за  наименьшую опцию.В магазине отображаем как "Цена от ....."

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


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

Это то все понятно и стоит... Если зайдя в товар и тыкнуть опцию, цена появляется, но вот везде в других местах, товар пишет что он стоит 0р. и когда нажимаешь купить, покупаешь его за 0р.

Мне надо чтобы товар подгружал цену из первой опции. Цена у опций уже стоит (= сумма)

 

Вот например:

 

Bezimyanni_3629127_23051092.png

ВНИЗУ ТИПА КАК НАДО, ЧТОБЫ БЫЛО!)

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

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


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

Если есть навыки то сделать подобное не проблема.

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


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

Если есть навыки то сделать подобное не проблема.

Это я понял!))

 

Навык есть, только куда воткунуть не пойму, чтобы подгружалась цена из опции, ранее я делал, аналогичный пример, там все было ровно, но сайта того больше нет, а что я делал хоть убей не помню!(((

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


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


$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')));

}

  • +1 1

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


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

 

.сдаюсь, не понял куда именно воткнуть... Можешь подробнее написать?)

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


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

Так это уже будет "Сделай за меня".

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


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

Так это уже будет "Сделай за меня".

Я имею ввиду среди опций в product.tpl закинуть или в другое место, если в product.tpl то на других страницах(таких как витрина магазина), он же не будет отображаться с ценой из опций, или я чего не понимаю!?

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


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

Это для контроллера категории.С модулями по аналогии.

тплки можно вообще не трогать.

  • +1 1

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


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

Нет, все таки не понял, это куда именно в category.php вставлять!?) (я ведь правильно понял файл!?) ставлю, ничего не происходит, ничего не меняется!(

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


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

Нет, все таки не понял, это куда именно в category.php вставлять!?)

дам подсказку - $price

  • +1 1

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


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

Читаем сообщение #8.

 

дам подсказку - $price

 

Правильно вставляю!?

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

			$results = $this->model_catalog_product->getProducts($filter_data);
            $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')));
                }
			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')) {
					$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

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


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

 

Или нет

 

 

А надо вставить или заменить!?

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


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

Заменить.И это кстати видно в моём сообщении.Тем более

 

......Навык есть,

 

  • +1 1

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


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

Заменить.И это кстати видно в моём сообщении.Тем более

У меня мозг будто вытащили, прям туплю жесть, при этом ни о чем думать не могу, просто не получается думать!!!!)

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


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

интересная тема. стоит попробовать ноотропил.

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

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


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

Думаю информации предостаточно.

  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Похожий контент

    • От mctolan
      Добрый день. Скажите возможно в таблице, где отображаются все опции магазина, напротив каждой опции вывести список товаров, к которым эти опции привязаны, а также колонку с их количеством? Это нужно, чтобы почистить опции, которые не используются и засоряют базу. Может модуль готовый есть.
  • Последние посетители   0 пользователей онлайн

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

×

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

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