Jump to content
Sign in to follow this  
delovoy

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

Recommended Posts

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

 

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

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

 

1000

900

800

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

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

 

P.S.

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

Share this post


Link to post
Share on other sites

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

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

 

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

 

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

в скидках

2 ед 1900

3 ед 1800

 

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

Share this post


Link to post
Share on other sites

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


<div class="discount">

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

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

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

<?php } ?>

</div>

  • +1 1

Share this post


Link to post
Share on other sites

Браво :)! 

 

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

 

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

 

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

 

1600.0000
1 900 р

Share this post


Link to post
Share on other sites

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

 

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

 

1600.0000

1 900 р

 

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

  • +1 1

Share this post


Link to post
Share on other sites

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

 

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

 

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



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

Share this post


Link to post
Share on other sites

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

  • +1 1

Share this post


Link to post
Share on other sites

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

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

 

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

 

$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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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



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

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

Share this post


Link to post
Share on other sites

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

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

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

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

  • +1 1

Share this post


Link to post
Share on other sites

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

 

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

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

 

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

 

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

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

Share this post


Link to post
Share on other sites

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

 

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

1 900 р

 

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

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

 

        от
1 900 р

 

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

от 1600 р
     1900 р

 

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

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

Share this post


Link to post
Share on other sites

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

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.