Хорошая тема. Любые вопросы по CS-Cart и не только

Скажите, кто как решил вопрос с стикером для товаров Ожидается?

Я изначально сделал динамический с условием что товар=0

Всё бы хорошо, но потом я решил что есть товар который Снят с производства, но не хочу удалять карточку товара, и решил добавить стикер “Снят с производства”

Однако в месте с ним теперь висит нелогично, динамический стикер Ожидается (((

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

Что скажите?

Можно присвоить единый тег снятым с производства товарам. Это массово делается через список товаров, отфильтровав главные вариации. Потом в настройках стикеров в условиях задайте этот тег.

Возможно из коробки теги массово не редактируются и это добавляет модуль, точно не помню.

Подскажите пожалуйста как добавить капчу для “Отзывы о товарах” https://disk.yandex.ru/i/mcibaXS3o-XzWg

Думаю этот вопрос будет многим важен.
Сегодня кто-то крепко вешал сайт загружая по 500 товаров на странице более 13000 раз с разных IP
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5
Вопросы к знатокам.

1 Как запретить загрузку количества товаров превышающих стандартные 16-32-64-128. Например, чтобы при ручном вводе ?items_per_page=500 этот параметр вообще исчезал из урла и загружались стандартные 20 товаров


2 Где задаются эти значения?
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

3 лайка

2 Где задаются эти значения?

app/function/fn.products.php

$min_range = $cols * 4;
$max_ranges = 4;

Где $cols – это “Количество товаров на странице” из Настройки:Внешний вид, а $max_ranges задает количество доступных шагов.

По первому вопросу самому интересно было бы. Пока мыслей нет, как ограничить

1 лайк

Можно решить например вот так:

  • открываем app/controllers/frontend/categories.php
  • находим(примерно 74 строка)
    if ($items_per_page = fn_change_session_param(Tygh::$app['session'], $_REQUEST, 'items_per_page')) {
        $params['items_per_page'] = $items_per_page;
    }
  • Перед этим кодом добавляем
    if (!empty($_REQUEST['items_per_page']) && $_REQUEST['items_per_page'] > 128){
        $_REQUEST['items_per_page'] = 1;
    }

В результате умники которые хотят получить больше 128 товаров на страницу будут получать всего 1 товар

3 лайка

Спасибо. Этот код можно вынести в “Мои изменения”, в categories.pre.php.

Жаль только, чтоб заделать дыру, надо еще и заморачиваться со страницей результатов поиска, акционными и скидочными страницами, страницами с товарами брендов, страницей с бестселлерами и т.д.

Альтернативный вариант, открываем init.php и вставляем этот же код перед

// Run INIT
fn_init($_REQUEST);

Так должно работать для всех страниц

Можно немного заморочиться с модулем “Мои изменения”, создать папку app/addons/my_changes/controllers/frontend и там создать три файла с содержимым:

categories.pre.php

<?php

if (!defined('BOOTSTRAP')) { die('Access denied'); }

if ($mode == 'view') {
	if (!empty($_REQUEST['items_per_page']) && $_REQUEST['items_per_page'] > 128){
		$_REQUEST['items_per_page'] = 1;
	}
}

product_features.pre.php

<?php

if (!defined('BOOTSTRAP')) { die('Access denied'); }

if ($mode == 'view') {
	if (!empty($_REQUEST['items_per_page']) && $_REQUEST['items_per_page'] > 128){
		$_REQUEST['items_per_page'] = 1;
	}
}

products.pre.php

<?php

if (!defined('BOOTSTRAP')) { die('Access denied'); }

if ($mode == 'final_sale' || $mode == 'on_sale' || $mode == 'bestsellers' || $mode == 'newest' || $mode == 'search') {
	if (!empty($_REQUEST['items_per_page']) && $_REQUEST['items_per_page'] > 128){
		$_REQUEST['items_per_page'] = 1;
	}
}

И почистить кэш.

Чуть дольше, зато не слетят правки ядра. В любом случае, теперь есть альтернативные решения :slightly_smiling_face:

8 лайков

Это надо тему в Багах открывать. Любой сайт на Карте с большим количеством товаров можно подломить.

3 лайка

Оофомлю в тему.
Огромное спасибо за решение!!!
Но кстати можно чтобы если больше 128, то открывался бы чистый урл категории вообще без параметров.
Многие же юзают модуль Кеширования и тогда бы им просто отдавались кешированные страницы и никакой практически нагрузки на сайт небыло.

1 лайк

да вообще изначально такие вопросы лучше поднимать отдельными темами, а то они теряются здесь в общей куче.

2 лайка

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

купите хост на захиде за 50 в месяц, если хватать не будет то значит пора что то менять в бизнесе или нанимать разработчиков, дорогих, желательно тех кто cs-cart не знает и делать так как нужно.

таких правок нужно миллион, я знаю как минимум 4 способа локнуть базу простым запросом к сайту )

1 лайк

Подскажите пожалуйста, как можно создать необходимые страницы с помощью комбинации из имеющегося каталога + фильтра? Например, у нас есть каталог «Мангалы для дачи». В данный каталог мы добавляем фильтр «Наличие крыши», как на скриншоте.
Далее при выборе фильтра происходит редирект на нужную страницу, т.е. «Мангалы для дачи с крышей».
Нюанс в том, что нужно будет создать ЧПУ URL для таких страниц.
Как создать страницу вида: https://mangalplus.ru/mangaly/mangaly-dlya-dachi-s-kryshej и на нее настроить редирект с комбинацией фильтров?
Скрин https://disk.yandex.ru/i/G70zpwNc5VN0Bg

Зачем редирект? Есть модули SEO фильтры они как раз и делают нормальные страницы для значений фильтров

1 лайк

Подскажите пожалуйста, в «Шаблон генерации «Сео-ссылки» страницы» https://yadi.sk/i/DdhUp59K8ejcqQ всего 3 варианта :
1 Название варианта
2 Название характеристики + Название варианта
3 Название фильтра + Название варианта
Можно добавить ещё варианты? Например Категория + Название варианта.
У меня получается вот так https://mangalplus.ru/mangaly/mangaly-dlya-dachi/s-kryshey/
А мне надо так https://mangalplus.ru/mangaly/mangaly-dlya-dachi/mangaly-dlya-dachi-s-kryshey/
Или есть другой способ?

Коллеги, у кого-то после последнего обновления еще исчезла ссылка для отправки счета?

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

Подскажите, как немного увеличить картинку и убрать жирную рамку https://yadi.sk/i/Ha_VGYDuU_RWvQ ?