Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Проценты в скидках


andrey8501
 Поделиться

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

Нарыл такое вот решение

Вывожу в карточке товара процент скидки, отображается это дело в таком виде - 3.804347826087%

в контроллере добавил

$data['skidka'] = 100-($product_info['special']/($product_info['price']/100));

в вью добавил

- <?php echo $skidka; ?>%


как его обрезать до целых чисел?

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


До    $data['products'][] = array(

 

$percent = ($result['price'] > 0) ?  (round((($result['price'] - $result['special'])/$result['price']) * 100 ,0 )) . ' %' : false;

после  $data['products'][] = array(

'percent' => $percent,

тплка

$product['percent']

 

Изменено пользователем Tom
Ссылка на комментарий
Поделиться на других сайтах

22 минуты назад, Tom сказал:

До    $data['products'][] = array(

 


$percent = ($result['price'] > 0) ?  (round((($result['price'] - $result['special'])/$result['price']) * 100 ,0 )) . ' %' : false;

после  $data['products'][] = array(


'percent' => $percent,

тплка


$product['percent']

 


Спасибо. но не работает такой вариант вообще

C:\OSPanel\domains\epilator\system\storage\modification\catalog\view\theme\default\template\product\product.tpl on line 112

112линия
 

 <?echo  $product['percent']; ?>

 

Изменено пользователем andrey8501
Ссылка на комментарий
Поделиться на других сайтах


Работает

UPD сорри, не увидел, что для карточки товара, но суть та же.

Изменено пользователем Tom
Ссылка на комментарий
Поделиться на других сайтах

14 минут назад, Tom сказал:

 Notice: Undefined variable: product in C:\OSPanel\domains\epilator\system\storage\modification\catalog\view\theme\default\template\product\product.tpl on line 112

 

Screenshot_6.png

 

Opencart 2.3

 

Screenshot_7.png

Изменено пользователем andrey8501
Ссылка на комментарий
Поделиться на других сайтах


47 минут назад, andrey8501 сказал:

когда нету скидки лезут ошибки

if($result['special']){................

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

5 часов назад, fanatic сказал:

if($result['special']){................

 

куда вставить то?

сейчас в контроллере так
 

Спойлер

	if ((float)$product_info['special']) {


				$data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);

				$data['discount_amount'] = $this->currency->format($this->tax->calculate(($product_info['price'] - $product_info['special']), $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);	

				$data['skidka'] = round(100-($product_info['special']/($product_info['price']/100)));



			} else {
				$data['special'] = false;
				$data['skidka'] = false;


			}


$data['products'][] = array(
					'product_id'  => $result['product_id'],

					'thumb'       => $image,
					'name'        => $result['name'],
					'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..',
					'price'       => $price,
					'special'     => $special,
					'skidka' 	=> $skidka,
					'tax'         => $tax,
					'minimum'     => $result['minimum'] > 0 ? $result['minimum'] : 1,
					'rating'      => $rating,
					'href'        => $this->url->link('product/product', 'product_id=' . $result['product_id'])
				);
			}

 

 

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


Это

<?echo  $product['percent']; ?>

на это

 

<? if(isset($product['percent'])) { echo  $product['percent']; } ?>
Изменено пользователем falos
Ссылка на комментарий
Поделиться на других сайтах


и вы не много не там вставляете в шаблоне, поищите $products, там перебор массива должен быть и станет ясно почему $product не существует в той части где вы его пытаетесь использовать. в карточке товаров $product, относится к сопутсвующим товарам

Изменено пользователем falos
Ссылка на комментарий
Поделиться на других сайтах


11 часов назад, falos сказал:

и вы не много не там вставляете в шаблоне, поищите $products, там перебор массива должен быть и станет ясно почему $product не существует в той части где вы его пытаетесь использовать. в карточке товаров $product, относится к сопутсвующим товарам

не работает оно

 

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

Спойлер

В контроллер product.php  вставил



if ((float)$product_info['special']) {


				$data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);

				$data['discount_amount'] = $this->currency->format($this->tax->calculate(($product_info['price'] - $product_info['special']), $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);	

// Сюда вставил  -  $data['skidka'] = round(100-($product_info['special']/($product_info['price']/100)));



			} else {
				$data['special'] = false;
// Сюда вставил  -  $data['skidka'] = false;
//  Но false почему то не срабатывает, когда скидка включена, а лезут ошибки


			}


далее

$data['products'][] = array(
					'product_id'  => $result['product_id'],

					'thumb'       => $image,
					'name'        => $result['name'],
					'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..',
					'price'       => $price,
					'special'     => $special,
// Сюда вставил  -  'skidka' 	=> $skidka,
					'tax'         => $tax,
					'sku'         => (empty($result['sku'])) ? '' : $this->language->get('text_sku') .' '. $result['sku'],
					'minimum'     => $result['minimum'] > 0 ? $result['minimum'] : 1,
					'rating'      => $rating,
					'href'        => $this->url->link('product/product', 'product_id=' . $result['product_id'])
				);
			}


в product.tpl вставил

<span>- <?php echo $skidka; ?>%</span>

 

 

сейчас это дело все работает, если включена скидка

если скидка не стоит лезут ошибки

Notice: Undefined variable: skidka in /***********/catalog/controller/product/product.php on line 478Notice

478 линия это вот это      'skidka'     => $skidka,

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


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

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

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