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

Быстрый заказ только для определенных товаров


 Поделиться

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

Всем привет!

 

Необходим модуль "Заказ в 1 клик" или "Быстрый заказ" без разницы как их называть. Задача в том, что бы он отображался только у тех товаров у которых стоимость к примеру от 1 000 рублей.

 

Как это можно реализовать?

 

Спасибо )

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

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

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

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

 

Это относиться к какому то определенному модулю или к любой кнопке можно приладить?

Очень буду признателен если ткнете носом в пример условия такого :)

Спасибо )

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

 <?php if ($price > 999) { ?>
  Тут кнопка
 <?php } ?>

Низзя так

 

price - строка

 

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

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

Низзя так

price - строка

 

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

так точно

 

для получения чистой неформатированной цены на странице товара (т.е. без разделителей, знаков валют и прочей дребедени)

в файле catalog\controller\product\product.php

 

перед строкой

$discounts = $this->model_catalog_product->getProductDiscounts($this->request->get['product_id']);

 

для движков 1.5.х добавить

$this->data['clear_price'] = ($product_info['special']) ? $product_info['special'] : $product_info['price'];

 

для движков 2.х добавить

$data['clear_price'] = ($product_info['special']) ? $product_info['special'] : $product_info['price'];

 

в самом шаблоне карточки товара catalog/view/theme/имя вашей темы/template/product/product.tpl

добавить условие для вывода в нужном месте

 

<?php if ($clear_price >= 1000) { ?>

Тут кнопка или что нужно выводить при цене больше или равной 1000

<?php } ?>

 

PS: в $clear_price будет чистая цена товара (или акционная, если она есть) в валюте по умолчанию

PPS: не забудьте обновить кеш модификаторов после правок файлов если движок 2х

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

в данном случае, то что я написал - решение будет простым и верным. Работать будет. Задача не стоит выводить цену без форматирования, а лишь включать кнопку при пороге, а этого достаточно.
Если уже там как-то форматировать нужно, или например существует мультивалютность, или требуется ряд других условий для разных товаров - тогда да, этот костыль работать как нужно не будет.

А вообще я бы сделал отдельный чекбокс в админке, который будет включать и выключать эту возможность. Но это было бы не удобно контроллировать, если бы было много таких товаров и цена постоянно обновлялась бы

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


Работать будет.

Не будет. :-)  В ос2 при цене >= 1000, ваш опэранд слева при сравнении потеряет, как минимум 3 символа. А если в Локализации->Валюты добавить "Символ слева", то вообще получим сами знаете что.

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

Ну.. можно ведь заставить работать

 

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

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

В шаблоне
 

<?php if ($price > $price_fast) { ?>
Тут кнопка
<?php } ?>
Ссылка на комментарий
Поделиться на других сайтах

Ну.. Как сказать.. Если цена будет 5000, а в $price_fast передать 10000, то $price будет больше $price_fast

 

Можно конечно еще что-то подкрутить, но все-таки лучше получать число и сравнивать его с числом, как и писал выше AlexDW

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

Не будет. :-)  В ос2 при цене >= 1000, ваш опэранд слева при сравнении потеряет, как минимум 3 символа. А если в Локализации->Валюты добавить "Символ слева", то вообще получим сами знаете что.

хз как там в ос2, я с ней пока еще на Вы, в 1.5 проверил ток что - все работает

А что там в ос2 поменялось?

 

PS символ слева/справа при работе с рублями обычно не ставят, поэтому это я и не учитываю.

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

PSS а стоп...мы и так в платных..

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


А что там в ос2 поменялось?

Форматирование. В любом случае, это плохая практика сравнивать разные типы, без крайней необходимости. Рано или поздно будет фейл и пхп даже не намекнет об этом

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

Форматирование. В любом случае, это плохая практика сравнивать разные типы, без крайней необходимости. Рано или поздно будет фейл и пхп даже не намекнет об этом

тут согласен

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


  • 2 месяца спустя...

<?php if ($clear_price == 0) { echo "Цена: договорная"; } else { echo $price;  } ?>

а как сделать для category.php и для остальных модулей featured.php, bestseller.php, latest.php и т.д.

 

заранее спасибо

 

так точно

 

для получения чистой неформатированной цены на странице товара (т.е. без разделителей, знаков валют и прочей дребедени)

в файле catalog\controller\product\product.php

 

перед строкой

$discounts = $this->model_catalog_product->getProductDiscounts($this->request->get['product_id']);

 

для движков 1.5.х добавить

$this->data['clear_price'] = ($product_info['special']) ? $product_info['special'] : $product_info['price'];

 

для движков 2.х добавить

$data['clear_price'] = ($product_info['special']) ? $product_info['special'] : $product_info['price'];

 

в самом шаблоне карточки товара catalog/view/theme/имя вашей темы/template/product/product.tpl

добавить условие для вывода в нужном месте

 

<?php if ($clear_price >= 1000) { ?>

Тут кнопка или что нужно выводить при цене больше или равной 1000

<?php } ?>

 

PS: в $clear_price будет чистая цена товара (или акционная, если она есть) в валюте по умолчанию

PPS: не забудьте обновить кеш модификаторов после правок файлов если движок 2х

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


по аналогии

 

в контроллере catalog\controller\product\category.php

после

'special'     => $special,

 

добавить

'clear_price'  => ($result['special']) ? $result['special'] : $result['price'];

 

а в самом шаблоне catalog\view\theme\имя вашей темы\template\product\category.tpl

вывод цены оборачивать в условие по $product['clear_price']

 

так же и с остальными

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

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

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

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

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

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

Войти

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

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

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

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

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

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