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

[Решено] Показ ЦЕНЫ по минимальной цене? или ЦЕНА от ... [{казнить нельзя помиловать}]


delovoy

Recommended Posts

Вот такой каламбур получился :) Когда то Я уже подумал эту тему, но она почему-то не получила продолжения.

 

Ситуация следующая:

Предположим у вас есть товар имеющий разную стоимость в зависимости от кол-ва в одном заказе.

 

1000

900

800

 

Так вот, как сделать так, чтобы можно по мимо цены по умолчанию (что за 1ед товара), указывать "Цена от"?

 

В нашем примере "Цена от 800"

 

При этом сама расчетная часть должна оставаться не именной, т.е "ЦЕНА от" это своего рода маркетинговый ход,
Расчет же должен вестись по фактическому кол-ву в заказе.

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


catalog\controller\product\category.php

 

находим кусок кода

$this->data['products'][] = array(
	'product_id'  => $result['product_id'],
	'thumb'       => $image,
	'name'        => $result['name'],
до куска кода, вставляем
$dis = $this->model_catalog_product->getProductDiscounts($result['product_id']);
if (!empty($dis)) {
$dis_last = array_pop($dis);
$dis_price = $dis_last['price'];
$dis_price = $this->currency->format($this->tax->calculate($dis_price, $result['tax_class_id'], $this->config->get('config_tax')));
} else {
$dis_price = false;
}				
 

после куска кода, добавляем

'discounts' => $dis_price,
 

далее

 

catalog\view\theme\default\template\product\category.tpl

 

находим например

<?php if ($product['price']) { ?>
      <div class="price">
 

после добавляем это


<div class="discount">
<?php echo $product['discounts']; ?>
</div>
 

работает в версии 1.5.4.1 на странице списка товаров в категории.

Если надо в других модулях, то делаем по аналогии.

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

Спасибо, попробуем.

 

А можно ли сделать так, чтобы отображалось сразу две цены в карточке товара?

Минимальная и по умолчанию?

 

P.S.

не знаю правда, как потом опенкарт подсчитывать это все будет :)

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


  • 1 month later...

работает в версии 1.5.4.1 на странице списка товаров в категории.

Если надо в других модулях, то делаем по аналогии.

 

Вроде бы все работает, как было обещано, но ...

 

<?php echo $product['discounts'][0]['price']; ?><br />

 

не совсем понимаю атрибут [0] , как я понял, сюда я должен ставить кол-во позиций скидок, но тут недочет, в разных товарах свое кол-во позиций скидок. Те в одном их 3, в другом 6 и тп, а если я ввожу вместо 0 не существующее кол-во, то выдается ошибка :(

 

Плюс не понимаю, как убрать внизу Цену по умолчанию, убирал ['price'], выдает ошибку.

 

Вообще, может кто подскажет, какое нибудь более универсальное решение, которое могло бы определять минимальную ЦЕНУ ОТ, не зависимо кол-ва позиций скидок в товаре?

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


['discounts'][0]['price'] - это максимальная цена скидки, т.е самая первая.

Вот в том то и дело, что самая первая :)

 

Те к примеру имеется 3 позиции скидок

Цена по умолчанию за 1 ед 2000

в скидках

2 ед 1900

3 ед 1800

 

Но при этом атрибуте выдает Первую позицию в скидках 1900, а не ниже

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


у меня видимо на оборот было )) Надо так.


<div class="discount">

<?php if ($product['discounts']) { ?>

<?php $dis = array_pop ($product['discounts']); ?>

<?php echo $dis['price']; ?><br />

<?php } ?>

</div>

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

Браво :)! 

 

Но как цену по умолчанию убрать, что внизу отображается под скидочной? Это лишне.

 

И почему Скидочная цена отображается с нулями после запятой, хотя по умолчанию у меня это отменено и знак валюты не отображается  :(

 

Сейчас такой вид имеет:

 

1600.0000
1 900 р

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


И почему Скидочная цена отображается с нулями после запятой, хотя по умолчанию у меня это отменено и знак валюты не отображается   :(

 

Сейчас такой вид имеет:

 

1600.0000

1 900 р

 

исправил. см инструкцию

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

исправил. см инструкцию

 

Так рано радовался :)))))))))))))))))

 

Следующая ошибка появляется при попытке входа в категории



Parse error: syntax error, unexpected ';', expecting ')' in Z:\domains\site.ru\catalog\controller\product\category.php on line 199
 
Надіслати
Поділитися на інших сайтах


где то видимо скобку забыли поставить  или лишнюю наоборот

Ммм, нет все делал по твоей инструкции :) дважды, сегодня снова проверю, не знаю может конфликт с чем? :(

 

Повторил трижды!

 

$this->data['products'][] = array(

'product_id' => $result['product_id'],

'minimum' => $result['minimum'],

'thumb' => $image,

'name' => $result['name'],

$dis = $this->model_catalog_product->getProductDiscounts($result['product_id']);

if (!empty($dis)) {

$dis_last = array_pop($dis);

$dis_price = $dis_last['price'];

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

} else {

$dis_price = false;

}

'discounts' => $dis_price,

'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',

'price' => $price,

'special' => $special,

 Вот кусок кода! все далее сделал, как из описания и ошибка также

 

Parse error: syntax error, unexpected ';', expecting ')' in Z:\domains\site.ru\catalog\controller\product\category.php on line 199

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


в середину массива нельзя пихать код

...
'name' => $result['name'],
$dis = $this->model_catalog_product->getProductDiscounts($result['product_id']); /* вот такое и что там до discounts */
...
'discounts' => $dis_price,
Надіслати
Поділитися на інших сайтах

в середину массива нельзя пихать код



...
'name' => $result['name'],
$dis = $this->model_catalog_product->getProductDiscounts($result['product_id']); /* вот такое и что там до discounts */
...
'discounts' => $dis_price,

Вот я так и подумал, но раз дали инструкции, так и делаем  :| 

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


Так заработало! :)

 

Признаю, видимо надо было воспринимать ДО не как ДО, а  как ПЕРЕД ;)

Потому что визуально это воспринималось именно так.

 

А чтобы цену убрать по умолчанию, что сейчас под скидочной отображается, этот элемент убрать надо <?php echo $product['price']; ?> ?

 

в catalog\view\theme\default\template\product\category.tpl

<?php if (!$product['special']) { ?>
<?php echo $product['price']; ?> 

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


И пожалуй последний вопрос  8-)

 

Вот сейчас, все примет следующий вид:
1600 р

1 900 р

 

как добавить надпись "ОТ" (не в коде шаблона)

Я попробывал удалить из кода <?php echo $product['price']; ?>  цена по умолчанию удалилась.

Но как сделать так, чтобы убрав цену по умолчанию 1900, в случае отсутствия спеццены (скидочной), снова появлялась цена по умолчанию?  :ugeek:

 

Для примера есть Продукт 1 со скидочной ценой до 1600, показывается только цена от 1600

Есть Продукт 2, без установленной спеццены и должна показываться от 1900

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


Я что-то не то сказал? Или этот форум превращается в сборище троллей? Где вместо помощи, получаешь минусы!

Никто никого не заставляет, помогать, сидите и ковыряйте, другие же знать PHP и все тонкости движка не обязаны!

 

Вот какой вид, сейчас принимает сайт, если Скидочная цена не указана!

 

        от
1 900 р

 

со скидочной примерно так:

от 1600 р
     1900 р

 

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

Т.е я не хочу чтобы отображалось две цены одновременно - скидочная цена и цена по умолчанию! Или одна или другая!

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


  • 2 weeks later...

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

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

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

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

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

Вхід

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

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

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

Important Information

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