Связаться
  • OpenCart
  • Продажи и конверсия
  • v1.0.0

Product Page Tweaks для OpenCart 2.3, 3.x и 4.x — кнопка «Купить» при нулевом остатке, «Цена по запросу», «Задать вопрос о товаре»

Три микромодуля карточки товара OpenCart в одном: что делает кнопка «Купить», когда товара нет (заблокирована с надписью, скрыта или «Узнать о наличии»), «Цена по запросу» вместо цены с формой запроса и кнопка «Задать вопрос о товаре» с антиспамом и письмом в магазин. Корзина тоже не примет такой товар. Pro — то же на карточках во всех списках, бейдж «Распродано», распроданные значения опций, цена по запросу по категориям и производителям и журнал заявок. Лицензия навсегда.

Скачать Free
Pro · лицензия навсегда Чем больше сайтов, тем дешевле каждый
Совместимость
OpenCart 4.0.2.0+ и 4.1.x (проверено на 4.1.0.3 и 4.0.2.3) · OpenCart 3.x (проверено на 3.0.5.0) · OpenCart 2.3.0.2 · PHP 7.0+ (проверено на 7.0, 8.1 и 8.3)
Версия
v1.0.0 (OpenCart 4)
v1.0.0 (OpenCart 3.x)
v1.0.0 (OpenCart 2.3)
Лицензия
один сайт, навсегда
Триал
7 дней, без карты, один на сайт
Обновлено
сентябрь 2026
Или все 144 Pro-модулей в All Access — 4 990 ₴ / год

Что есть во Free,
а что даёт Pro

Бесплатная версия работает без ограничения по времени. Pro добавляет остальные функции из таблицы.

Функция Free Pro
Кнопка «Купить» при нулевом остатке: оставить как есть, заблокирована с надписью, скрыта вместе с количеством или заменена на «Узнать о наличии» ✔ ✔
Только для выбранных статусов наличия (предзаказ и «2–3 дня» остаются доступными), товары без вычитания со склада и список «всегда можно купить» — вне правила ✔ ✔
Строка статистики в админке: сколько товаров с нулевым остатком попадёт под правило — ещё до сохранения ✔ ✔
Корзина на сервере не принимает распроданный товар или товар с ценой по запросу — тема или прямой запрос правило не обойдут ✔ ✔
Кнопки покупки в 1 клик (CatCode Quick Order и любые другие по CSS-селектору) скрываются на таких товарах ✔ ✔
«Цена по запросу» для выбранных товаров и всех товаров с ценой 0: метка вместо цены на странице товара и во всех списках, кнопка «Узнать цену» ✔ ✔
Кнопка «Задать вопрос о товаре» и одна лёгкая форма для вопроса, цены и наличия: имя, email, телефон (выкл. / необязательный / обязательный), согласие на обработку данных ✔ ✔
Антиспам без капчи: скрытое поле, подписанная метка времени, лимит с одного IP и общий лимит в час ✔ ✔
Письмо в магазин с Reply-To на покупателя и ссылкой на товар; заявки сохраняются и удаляются через N дней ✔ ✔
Тексты на витрине меняются для каждого языка магазина; интерфейс на английском, украинском и русском ✔ ✔
То же поведение кнопки на карточках товаров: категории, поиск, акции, производители, модули, рекомендуемые товары — ✔
Бейдж «Распродано» на фото товара и на карточках — ✔
Распроданные значения опций видны серыми с пометкой вместо скрытых, корзина их не принимает — ✔
«Цена по запросу» для целых категорий (с подкатегориями) и производителей — ✔
Дополнительные получатели заявок и письмо-подтверждение покупателю — ✔
Полный журнал заявок: тип, статус, поиск, фильтры и экспорт в CSV — ✔

Как это выглядит

Страница товара OpenCart: товара нет — кнопка «Out of stock» заблокирована, рядом «Ask a question»
Режим «заблокирована с надписью»: количество товара 0, кнопка корзины серая и не нажимается, кнопка «Задать вопрос о товаре» остаётся.
Форма «Availability request» с именем, email, телефоном и сообщением
Режим «Узнать о наличии»: вместо кнопки корзины — форма с именем, email, телефоном и заготовленным сообщением; заявка уходит письмом в магазин.
Страница товара с «Price on request» вместо цены и кнопкой «Request the price»
«Цена по запросу»: вместо цены — метка, вместо «Купить» — «Узнать цену», рядом «Задать вопрос о товаре».

Триал стартует, когда вы попросите

Свежая установка — бесплатная версия, ничего не включается само. Кнопка «Попробовать Pro 7 дней» → e-mail → ключ сразу в окне и письмом.

Один ключ — один сайт

Переносите магазин — отвяжите лицензию на старом домене и активируйте на новом сами. Если наш сервер недоступен, Pro работает ещё 14 дней. Для студий — ключи на 5, 25 сайтов или без ограничений.

Технические требования

  • OpenCart 4.0.2.0+ и 4.1.x — архив cc_pptweaks.ocmod.zip (не переименовывайте: OpenCart 4 берёт из имени файла код расширения)
  • OpenCart 3.x — архив cc_pptweaks-oc3.ocmod.zip; OpenCart 2.3.0.2 — cc_pptweaks-oc2.ocmod.zip
  • PHP 7.0+ (проверено на 7.0, 8.1 и 8.3)
  • Настроенная почта магазина для писем с заявками (без неё заявка всё равно сохраняется, а админка предупреждает)
  • Языки: админка и витрина на английском, украинском и русском; для других языков магазина — английский, тексты витрины можно перевести в настройках

История версий

v1.0.0 Текущая сентябрь 2026

Для OpenCart 4.0.2+ / 4.1, 3.x и 2.3.

Вместе с Product Page Tweaks для OpenCart 2.3, 3.x и 4.x покупают

4 модуля одним заказом — на 40% дешевле, чем по отдельности

Набор «Старт магазина» Product Page Tweaks Nova Poshta Premium LiqPay Telegram-уведомления и Viber/SMS покупателям Нужно больше — все 144 модулей в All Access за 4 990 ₴.
3 790 ₴ навсегда вместо 6 260 ₴ поштучно
Купить набор →

Полное описание модуля

Product Page Tweaks для OpenCart — три популярные доработки карточки товара в одном модуле: что делает кнопка «Купить», когда товара нет на складе, «Цена по запросу» вместо цены и кнопка «Задать вопрос о товаре». Без правок ядра и без OCMOD — на событиях OpenCart, для 4.x, 3.x и 2.3. Покупатель не добавляет в корзину то, чего нет, а вместо того чтобы уйти — оставляет заявку, которая приходит вам письмом.

Честно о проверке. Модуль проверен сквозным тестом в локальных магазинах на OpenCart 4.1.0.3, 4.0.2.3, 3.0.5.0 и 2.3.0.2 со стандартными темами: установка штатным установщиком, все режимы кнопки, отказ корзины, цена по запросу в списках, форма с антиспамом и письмо в почтовый ящик, Pro-функции, удаление, а также рядом с CatCode One Page Checkout. В сторонних темах (Journal, Unishop и т. п.) изменение кнопки мы не проверяли — защита корзины и метка цены там работают, а вид кнопки зависит от разметки темы. Проверьте на своей теме в 7-дневном триале Pro.

Как это выглядит для покупателя

  • Товара нет — кнопка честно об этом говорит. Четыре режима на выбор: оставить как есть (стандартное поведение OpenCart), показать кнопку заблокированной с надписью «Нет в наличии», скрыть кнопку вместе с полем количества или заменить её на «Узнать о наличии», которая открывает форму.
  • Без мерцания: кнопка скрывается стилем ещё до загрузки скриптов, так что покупатель не успевает на неё нажать.
  • Кнопки «в 1 клик» на таком товаре тоже исчезают — CatCode Quick Order сразу, другие модули — по CSS-селектору в настройках. На остальных товарах они остаются.
  • Одна лёгкая форма на три случая: вопрос о товаре, запрос цены, запрос наличия — с нужным заголовком и заготовленным текстом. Имя, email, телефон (выключен / необязательный / обязательный), сообщение и, по желанию, галочка согласия на обработку данных.
  • Антиспам без капчи: скрытое поле для ботов, подписанная метка времени (форма, отправленная быстрее чем за 3 секунды, отклоняется), лимит с одного IP-адреса и общий лимит магазина в час.
  • Письмо в магазин с Reply-To на покупателя и ссылкой на товар — отвечаете прямо со своей почты.
  • «Цена по запросу» для выбранных товаров и для каждого товара с ценой 0: вместо цены — метка, вместо «Купить» — «Узнать цену». Спеццены, скидки и налог тоже не показываются.
  • Во всех списках: категории, поиск, акции, производители, модули главной, рекомендуемые товары, сравнение, закладки — метка вместо цены, а кнопка корзины ведёт на страницу товара с формой.
  • Корзина на сервере не принимает ни распроданный товар, ни товар с ценой по запросу — даже если тема или прямой запрос попытаются его добавить.

На телефоне форма открывается на всю ширину без горизонтальной прокрутки.

Pro: карточки, бейдж, опции, журнал

  • То же поведение на карточках товаров в категориях, поиске, акциях, производителях, модулях и рекомендуемых товарах: кнопка корзины распроданного товара заблокирована, скрыта или ведёт на форму.
  • Бейдж «Распродано» на фото — на странице товара и на карточках.
  • Распроданные значения опций: OpenCart просто скрывает значения с нулевым количеством, и покупатель не видит, что размер M в принципе бывает. С Pro значение видно серым с пометкой «нет в наличии», выбрать его нельзя, и корзина его не примет.
  • «Цена по запросу» для целых категорий (вместе с подкатегориями) и производителей — не нужно отмечать товары по одному.
  • Дополнительные получатели заявок и письмо-подтверждение покупателю.

Что получает админ

  • Пять вкладок: Out of stock, Price on request, Questions, Requests, Licence — и переключатель «Module is on», который выключает всё одним кликом.
  • Правило под контролем: только для выбранных статусов наличия (предзаказ и «2–3 дня» можно оставить доступными), товары с «Вычитать со склада: Нет» пропускаются, отдельный список «всегда можно купить» для товаров под заказ.
  • Строка статистики сразу под настройкой: сколько включённых товаров имеют нулевой остаток и сколько из них попадает под правило.
  • Тексты витрины — свои для каждого языка магазина: надпись на кнопке, метка цены, заголовки форм, благодарность.

Заявки хранятся в базе и удаляются автоматически через заданное количество дней. В Free в админке видны последние 20; Pro даёт полный журнал: тип (вопрос, цена, наличие), статус, поиск, фильтры, удаление и экспорт в CSV.

Как это работает — шаг за шагом

  1. Установите модуль и откройте Расширения → Модули → Product Page Tweaks.
  2. Out of stock: выберите поведение кнопки и посмотрите строку статистики — сколько товаров попадёт под правило. Продаёте под заказ — «Оставить как есть», фильтр статусов или список «всегда можно купить».
  3. Price on request: выберите товары (с Pro — категории и производителей); товары с ценой 0 попадают сюда автоматически, если это включено.
  4. Questions: включите кнопку «Задать вопрос о товаре», поля формы, согласие и адрес для писем.
  5. Готово: заявки приходят письмом и видны на вкладке Requests.

Что под капотом

  • Без правок ядра и без OCMOD: три события OpenCart — подготовка шаблона, вывод страницы и защита корзины. Модуль меняет только данные шаблона, так что стандартные шаблоны остаются нетронутыми.
  • Цена скрыта на уровне данных: в шаблон попадает метка вместо цены, а не CSS поверх неё. Цены, которые другие модули выводят из своих запросов (SEO-микроразметка, фиды, быстрый просмотр), модуль не меняет.
  • Страницы заказа, корзины, писем и оформления модуль не трогает — там действуют обычные правила OpenCart.
  • Совместимость: проверено рядом с CatCode One Page Checkout — добавление в корзину работает, распроданный товар отклонён, страница оформления открывается.
  • Кэш страниц: с модулями полного кэша страниц метка времени формы (действует 7 дней) кэшируется вместе со страницей — установите время кэша меньше.
  • Удаление: события, настройки и таблица заявок удаляются, витрина возвращается к стандартному поведению.

Как установить

  1. OpenCart 4: Расширения → Установщик → загрузите cc_pptweaks.ocmod.zip → «Установить». OpenCart 3: то же с cc_pptweaks-oc3.ocmod.zip. OpenCart 2.3: скопируйте содержимое папки upload/ из cc_pptweaks-oc2.ocmod.zip в корень магазина.
  2. Расширения → Модули → Product Page Tweaks: установите и откройте.
  3. Вкладка Out of stock: выберите поведение кнопки и проверьте строку статистики, затем Price on request и Questions. Сохраните.
  4. Для Pro: вставьте лицензионный ключ из письма после оплаты или запустите 7-дневный триал на вкладке Licence.

Вопросы
о модуле

Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.

@catcode_support Настройка, совместимость, активация
У меня товары продаются с нулевым остатком — они все станут недоступными?

Модуль считает товар распроданным, когда его количество 0 или меньше, и по умолчанию блокирует кнопку. Поэтому сразу после установки посмотрите строку статистики под настройкой: там видно, сколько товаров с нулевым остатком есть сейчас и сколько из них попадёт под правило. Для продажи под заказ выберите режим «Оставить как есть», оставьте соответствующие статусы наличия (например, «Предзаказ») неотмеченными или добавьте товары в список «Всегда можно купить». Товары с «Вычитать со склада: Нет» модуль по умолчанию не трогает.

Работает ли модуль с моей темой?

Проверено на стандартных темах OpenCart 4.x, 3.x и 2.3. Метка цены и защита корзины работают на уровне данных и сервера, поэтому действуют в любой теме. Изменение самой кнопки (заблокировать, скрыть, заменить) ищет её по типовой разметке OpenCart — в сторонних темах (Journal, Unishop и т. п.) мы его не проверяли, и если тема рисует кнопку по-своему, кнопка может остаться на месте, хотя корзина товар всё равно не примет. Проверьте на своей теме в 7-дневном триале — и напишите нам, если что-то не так.

Модуль скрывает цену везде?

Везде, где цену выводит OpenCart: страница товара, категории, поиск, акции, производители, модули, рекомендуемые, сравнение, закладки. Цены, которые другие модули печатают из своих запросов (SEO-микроразметка, фиды товаров, быстрый просмотр, собственные кнопки «в 1 клик»), модуль не меняет.

Товар уже лежит в корзине покупателя, а потом закончился. Что будет?

Модуль блокирует новые добавления в корзину. Товар, добавленный раньше, оформляется по обычным правилам OpenCart — настройкой «Разрешить оформление при отсутствии на складе».

Какие данные сохраняются из заявок?

Имя, email, телефон (если включён), сообщение, товар и IP-адрес. Заявки автоматически удаляются через заданное количество дней (по умолчанию 365); при необходимости включите в форме галочку согласия на обработку данных. При удалении модуля OpenCart удаляет и настройки, и таблицу заявок.

Как установить на OpenCart 2.3?

Установщик OpenCart 2.3 требует FTP, поэтому проще скопировать содержимое папки upload/ из архива в корень магазина, а затем установить модуль в Модулях.

Не тот вариант, что искали?

Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль