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

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


Recommended Posts

Всем привет!

 

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

 

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

 

Спасибо )

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

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

 

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

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

Спасибо )

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

 <?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 months later...

<?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 користувачів

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

×
×
  • Створити...

Important Information

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