Jump to content
Sign in to follow this  
emti

[Решено?..] Цены от

Recommended Posts

Приветствую друзья , может мне кто-нибудь подсказать или направить на тему, как мне сделать чтобы у меня цены были от ?

Share this post


Link to post
Share on other sites

от чего и где?

а то, простите уж, от балды - самое мягкое сравнение.

Share this post


Link to post
Share on other sites

Мне надо сделать чтобы у меня товары их цена была от , к примеру мой товар стоит от 3000р, надеюсь я правильно выразился

Share this post


Link to post
Share on other sites

Неправильно

Например: почему нет точной цены?

Ведь если у вас ОТ, то человек не может оплатить заказ. Потому что кто ж его знает, сколько на самом деле стоит тарелка супа в сингапуре ночью? От 5 долларов до скольки? Как оформить заказ?

Напишите свою цель: для чего, где и в каком виде вам нужно писать цену "от"

Share this post


Link to post
Share on other sites

неправильно выразился , к цене просто сделать приставку от

Edited by afwollis

Share this post


Link to post
Share on other sites

Тогда просто впишите в шаблон товара, категорий и других страниц, где это хотите видеть

Например на странице товара

catalog/view/theme/ВАША_ТЕМА/template/product/product.tpl 

вам нужно искать блок с переменной $price, перед которой можете тупо текстом написать ОТ 

Но это не отвечает на мой вопрос "как человеку оформить заказ, если точная цена не известна?"

С этим уж подсказать не смогу, так как вы не дали никакой информации

Share this post


Link to post
Share on other sites

У меня проэк постельное бельё, хотел задать ценну например на постельное бельё 3000 на 1,5 спальное, далее в опциях уже ставить + за ценную 2-сп итд. Спасибо за помощь

Share this post


Link to post
Share on other sites

Версия движка какая?Там где у товара нет опций,следовательно цена одна и не нужно  "ОТ" что выводить?

Share this post


Link to post
Share on other sites
Там где у товара нет опций,следовательно цена одна и не нужно  "ОТ" что выводить?

 

Share this post


Link to post
Share on other sites

В данной теме и в https://opencartforum.com/topic/54738-%D0%BD%D0%B0%D0%B4%D0%BF%D0%B8%D1%81%D1%8C-%D1%86%D0%B5%D0%BD%D0%B0-%D0%BE%D1%82-%D0%BF%D0%BE%D0%B4%D1%81%D0%BA%D0%B0%D0%B6%D0%B8%D1%82%D0%B5/?hl=%2B%D1%86%D0%B5%D0%BD%D0%B0+%2B%D0%BE%D1%82 не нашел для себя решения.

 

Есть ли готовое решение для вывода приставки перед ценой в category.tpl для продуктов, имеющих опции с ценой более чем 0?

Share this post


Link to post
Share on other sites

Я бы сделал вывод опций товара в категорию, причём именно сам вывод можно и не делать, достаточно объявить в контроллере, ну а потом:

<?php if ($product['options']) { ?>
от
<?php } ?>

Share this post


Link to post
Share on other sites

 

Я бы сделал вывод опций товара в категорию, причём именно сам вывод можно и не делать, достаточно объявить в контроллере, ну а потом:

<?php if ($product['options']) { ?>
от
<?php } ?>

Спасибо! Сделал так, теперь отображается приставка у товаров с опциями. Осталось докумекать как выводить это только при условии что установлена цена опции более 0....

Share this post


Link to post
Share on other sites

Вывести из массива опций максимальную цену, и если она >0, выводить приставку.

Share this post


Link to post
Share on other sites

Вывести из массива опций максимальную цену, и если она >0, выводить приставку.

К сожалению php не знаю... Добился вывода приставки если цена у опций более 0, но если несколько значений больше 0, то и выводит несколько приставок. Если есть возможность поправить, то вот что получилось:

controller
			$data['options'] = array();

			foreach ($this->model_catalog_product->getProductOptions($result['product_id']) as $option) {
				if ($option['type'] == 'select' || $option['type'] == 'radio' || $option['type'] == 'checkbox') {
				$product_option_value_data = array();

				foreach ($option['product_option_value'] as $option_value) {
					if (!$option_value['subtract'] || ($option_value['quantity'] >= 0)) {

					$product_option_value_data[] = array(
							'price'                   => $option_value['price'],
						);
					}
				}
				$data['options'][] = array(
					'product_option_value' => $product_option_value_data,
				); 
			}}
					
				$data['products'][] = array(
					'product_id'  => $result['product_id'],
					'thumb'       => $image,
					'name'        => $result['name'],
					'options'     => $data['options'],
					'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
					'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),
					'price'       => $price,
					'special'     => $special,
					'tax'         => $tax,
					'minimum'     => $result['minimum'] > 0 ? $result['minimum'] : 1,
					'rating'      => $result['rating'],
					'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
				);

и 

tpl
				<?php if ($product['options']) {  
						foreach ($product['options'] as $option) {
							foreach ($option['product_option_value'] as $option_value) { 
									if( ($option_value['price']) > 0) { 
									echo 'От'; 
								}
							}
						}
				} ?>

Share this post


Link to post
Share on other sites

Нашел на форуме "Нулевая цена в категории заменяется на цену опции" от mpn2005, подогнал под свои нужды, и вот что получилось в catalog/controller/product/category.php:

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
  foreach ($this->model_catalog_product->getProductOptions($result['product_id']) as $option) {
    if ( isset($option['product_option_value'][0]['price']) and $option['product_option_value'][0]['price'] > 0 || $option['product_option_value'][4]['price'] > 0){
    $price = '<span">от</span> '.$this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
    } else {$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
    }
  }
} else {
  $price = false;
}

Теперь если у товара задана цена больше 0 для первой выводимой опции из любой группы опций, то перед ценой выводится приставка "от", но если у первых опций стоит 0, то приставка не выводится. Если задаю цену для 5ой по счету выводимой опции и дописываю в if условие || $option['product_option_value'][4]['price'] > 0 ,то приставка выводится. НО если в категории присутствует товар у которого нет 5и опций, то появляется ошибка "Notice: Undefined offset: 4 in  .....". Прошу помочь оптимизировать код.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.