delovoy

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

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

delovoy    52

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

 

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

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

 

1000

900

800

 

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

 

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

 

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

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


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

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 на странице списка товаров в категории.

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

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


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

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

 

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

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

 

P.S.

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

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


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

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

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

 

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

 

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

 

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

 

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

 

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

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


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

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

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


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

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

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

 

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

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

в скидках

2 ед 1900

3 ед 1800

 

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

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


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

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


<div class="discount">

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

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

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

<?php } ?>

</div>

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


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

Браво :)! 

 

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

 

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

 

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

 

1600.0000
1 900 р

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


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

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

 

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

 

1600.0000

1 900 р

 

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

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


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

Спасибо!

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


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

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

 

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

 

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



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

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


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

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

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


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

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

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

 

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

 

$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

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


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

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

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

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


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

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



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

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

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


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

инструкции нормальные.

код надо вставлять ДО

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

редактируйте свои файлы.

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


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

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

 

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

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

 

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

 

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

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

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


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

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

 

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

1 900 р

 

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

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

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

 

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

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

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


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

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

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

 

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

 

        от
1 900 р

 

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

от 1600 р
     1900 р

 

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

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

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


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

Так и не РЕШИЛИ до конца :)))))))))

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


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

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

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

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

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

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

Войти

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

Войти


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

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