products_multicolumns
Надо на месте посмотреть. Если опции показываете стандартным кодом, должно работать без доп. изменений
products_multicolumns
Надо на месте посмотреть. Если опции показываете стандартным кодом, должно работать без доп. изменений
Здравствуйте!
Не могу в документации найти ответ на следующий вопрос, подскажите пожалуйста: где задается (возможно в коде ) время отображения нотификационных сообщений? Как можно увеличить это время глобально, для всех сообщений такого типа?
К примеру в js это функция $.ceNotification() а в php fn_set_notification() с типом 'N', такое сообщение исчезает примерно через 5сек, хочу изменить на 15сек.
Спасибо!
Здравствуйте!
Не могу в документации найти ответ на следующий вопрос, подскажите пожалуйста: где задается (возможно в коде ) время отображения нотификационных сообщений? Как можно увеличить это время глобально, для всех сообщений такого типа?
К примеру в js это функция $.ceNotification() а в php fn_set_notification() с типом 'N', такое сообщение исчезает примерно через 5сек, хочу изменить на 15сек.
Спасибо!
В админке в настройке Время отображения уведомлений.
Здравствуйте, подскажите пожалуйста:
Версия мультивендор
Есть два поля:
Артикул и Артикул продавца
Артикул продавца = стандартному sku
А просто "Артикул" создан как новая настройка продукта по видеоуроку.
Как бы так сделать, чтобы поиск работал по этой настройке товара?
Здравствуйте, подскажите пожалуйста:
Версия мультивендор
Есть два поля:
Артикул и Артикул продавца
Артикул продавца = стандартному sku
А просто "Артикул" создан как новая настройка продукта по видеоуроку.
Как бы так сделать, чтобы поиск работал по этой настройке товара?
Вам нужно использовать хук additional_fields_in_search в функции fn_get_products (app/functions/fn.catalog.php)
Смотрите, как идет поиск по параметру pcode_from_q
Добрый день, коллеги. Возникла следующая задача: при добавлении товара в корзину - изменять кнопку "В корзину" на "В корзине 4 шт."
При этом возникает проблема с отображением кол-ва товаров добавленных в корзину на странице списка товаров (каталог).
Для добавления информации о товарах из корзины используется хук get_products_post либо gather_additional_products_data_post (без разницы).
В result_ids добавлено "category_products_*" данный блок возвращается, однако данные не верны.
Видимо страница уже отдается из кеша и хуки не срабатывают.
Пробовал вносить изменения в файле blocks для раздела 'products':
'disable_cache_when' => array(
'callable_handlers' => array(
array('fn_block_products_disable_cache', array('$block_data'))
),
'session_handlers' => array(
'cart.amount' => array('gt', 0)
)
)
Подскажите, пожалуйста, есть ли идеи, как брать информацию не из кеша. Спасибо большое!
В result_ids добавлено "category_products_*" данный блок возвращается, однако данные не верны.
Что значит данные не верны? Мы делали подобный функционал, кэш не трогали
Данные приходят с нулевым количеством товара видимо минуя бекенд отдается сохраненная штмл. Раньше тоже реализовывал подобный функционал, на более старой версии (4.3.3) без проблем, но видимо в новой версии (4.3.6) по другому работает система кеширования. Однако, если начать фильтровать товар или переключиться на другой стиль отображения товара, все работает. http://cnc.segalp.ru/instrument-dlya-snyatiya-zausencev-grattec/
Данные приходят с нулевым количеством товара видимо минуя бекенд отдается сохраненная штмл. Раньше тоже реализовывал подобный функционал, на более старой версии (4.3.3) без проблем, но видимо в новой версии (4.3.6) по другому работает система кеширования. Однако, если начать фильтровать товар или переключиться на другой стиль отображения товара, все работает. http://cnc.segalp.ru/instrument-dlya-snyatiya-zausencev-grattec/
Скорее всего проблема в том, что post запрос добавления в корзину заканчивается кодом
return array(CONTROLLER_STATUS_OK, 'checkout.cart');
Т.е. по айдишнику контент ищется в коде странице корзины, а не категории. Поэтому изменения не показываются.
Скорее всего проблема в том, что post запрос добавления в корзину заканчивается кодом
return array(CONTROLLER_STATUS_OK, 'checkout.cart');Т.е. по айдишнику контент ищется в коде странице корзины, а не категории. Поэтому изменения не показываются.
Попробовал ради эксперимента заменить приведенный код на - return array(CONTROLLER_STATUS_OK, 'category.view?category_id=1'); - без изменений. Да и при простом обновлении страницы - с явно правильным контроллером, который содержит нужную информацию отображается нулевое кол-во.
Я все-же склонен к тому что проблема именно в кешировании, т.к. если в админке в разделе "Дизайн" - "Темы" выбрать "Обновлять кэш автоматически" - то все работает безупречно, но не хочется отказываться от кеширования полностью.
Покапавшись в директории с кешем были найдены сохраненные результаты функции get_products в директории "/var/cache/registry/" - логично предположить что от кеширования результатов при задуманном функционале придется отказаться, с помощью хука "get_products_pre" и параметра "use_caching" переведенного в false удалось отключить кеширование результатов функции. Результатов не принесло, вот это уже странно.
В какую сторону дальше копать ума не приложу
В общем покапавшись дальше нашел собственно закешированный полностью блок.
Пока сделал костыль, надеюсь есть более элегантное решение.
В файлике "/controllers/frontend/categories.pre.php"
if ($mode == 'view') { array_map('unlink', glob("var/cache/registry/block_content_11_37_main_40/1/*")); }
В общем покапавшись дальше нашел собственно закешированный полностью блок.
Пока сделал костыль, надеюсь есть более элегантное решение.
В файлике "/controllers/frontend/categories.pre.php"
if ($mode == 'view') { array_map('unlink', glob("var/cache/registry/block_content_11_37_main_40/1/*")); }
Это вариант работает при стандартном коде?
return array(CONTROLLER_STATUS_OK, 'checkout.cart');
Это вариант работает при стандартном коде?
return array(CONTROLLER_STATUS_OK, 'checkout.cart');
Да
Очень странная проблема:
Увидел что появляются не все фильтры в зоне покупателя.
Начал рыть. Таблица с фильтрами содержит, допустим 10 записей
При выводе всех записей в зоне покупателя, без всяких условий, показывается только часть
В админке все нормально.
Вот этот код выводит в зоне покупателя 4 записи, хотя в таблице хранится больше.
при копировании таблицы, и запросе из новой таблицы, записи выводятся нормально
function fn_get_filters_products_count($params = array(), $lang_code = CART_LANGUAGE)
{
$filters111 = db_get_hash_array("SELECT * FROM ?:product_filters", "filter_id");
fn_print_r($filters111);die;
Кто нибудь, может объяснить? может это какое то кеширование о котором я не знаю...
Очень странная проблема:
Увидел что появляются не все фильтры в зоне покупателя.
Начал рыть. Таблица с фильтрами содержит, допустим 10 записей
При выводе всех записей в зоне покупателя, без всяких условий, показывается только часть
В админке все нормально.
Вот этот код выводит в зоне покупателя 4 записи, хотя в таблице хранится больше.
при копировании таблицы, и запросе из новой таблицы, записи выводятся нормально
function fn_get_filters_products_count($params = array(), $lang_code = CART_LANGUAGE)
{
$filters111 = db_get_hash_array("SELECT * FROM ?:product_filters", "filter_id");
fn_print_r($filters111);die;
Кто нибудь, может объяснить? может это какое то кеширование о котором я не знаю...
Посмотрите ответ в другой теме
Доброе время суток.
Не работает загрузка файла. Пробовал "в лоб":
Storage::instance('assets')->put('C:\xampp\htdocs\cscart\upgrades', array( 'file' => $upload_file ));
$upload_file - путь к файлу на диске (переменная не пустая - проверял)
файла в директории нет, но и никаких нотисов тоже нет, тишина :-(
Подскажите куда копать? Может ->put это не загрузка файла, хотя очень похоже?
И что такое type в function instance($type, $options = array())? Я выбрал 'assets'.
Добрый день.
Подскажите, как лучше решить задачу. Надо в одной категории на всех товарах выводить один дополнительный блок (видоизмененный блок "похожих товаров"). Таких товаров в этой категории около 75000. На всех остальных товарах во всех остальных категориях этот блок не нужен, буду выводить обычный блок "похожие товары". Этих товаров в остальных категориях будет около 50000.
Я нашел следующие способы реализации:
1. В настройках макетов, в настройках блока указать, для каких товаров его показывать. Но я предполагаю, что если ввести туда список из 75000 товаров, то и вывод страницы товара для посетителей существенно замедлится, и редактировать этот список будет сложно при добавлении/удалении товаров. Так ли это?
2. Создать новую страницу макета товаров, и для этой страницы указать список из 75000 товаров, для которых эта страница макета актуальна. Но здесь те же опасения, что и в первом пункте. Не знаю, какой из вариантов будет работать быстрее - первый или второй?
3. Создать smarty блок на странице макета товара, в котором указать, что если товар находится в заданной категории, то надо отображать новый созданный блок с "похожими товарами". Мне кажется, что в этом случае не должно быть проблем со скоростью открытия страниц товаров. Поправьте, если я ошибаюсь. Но я не смог разобраться, как с помощью smarty вывести на экран нужный блок. И возможно ли это вообще, или smarty выводит только переменные, но не может вывести готовый блок?
Я задаю в smarty блоке:
{if $product.seo_path == 1}
надо вывести блок с "похожими товарами". Подскажите, что надо тут прописать, чтобы вывести нужный мне блок, id блока 49
{else}
не надо ничего выводить
{/if}
4. Предполагаю, что можно в шаблонах создать новый шаблон для вывода "похожих товаров" и задать в нем условия на отображение только в одной категории, включая подкатегории. Но не знаю какой код там прописать.
Подскажите наиболее правильный способ решения исходной задачи. Если это можно сделать с помощью smarty или изменения кода движка, то подскажите код. Если только как описано в 1 и 2 пункте, то подскажите, какой лучше выбрать и будет ли заметно увеличение времени открытия страницы товара.
Спасибо.
Доброго всем дня!
Столкнулись с тем, что в модуле прайс-листы очень не хватает расширенного поиска по товарам, например, как во вкладке Товары-товары, а именно поиск по фильтрам. Скажите, это возможно реализовать своими силами, по типу скопировать код и вставить в нужное место или нужны более серьезные доработки модуля?
Доброго всем дня!
Столкнулись с тем, что в модуле прайс-листы очень не хватает расширенного поиска по товарам, например, как во вкладке Товары-товары, а именно поиск по фильтрам. Скажите, это возможно реализовать своими силами, по типу скопировать код и вставить в нужное место или нужны более серьезные доработки модуля?
app/controllers/common/products.post.php
После строки
if ($mode == 'picker') {
добавьте
if (!fn_allowed_for('ULTIMATE:FREE')) { $filter_params = array( 'get_variants' => true, 'short' => true ); list($filters) = fn_get_product_filters($filter_params); Tygh::$app['view']->assign('filter_items', $filters); unset($filters); }
app/controllers/common/products.post.php
После строки
if ($mode == 'picker') {добавьте
if (!fn_allowed_for('ULTIMATE:FREE')) { $filter_params = array( 'get_variants' => true, 'short' => true ); list($filters) = fn_get_product_filters($filter_params); Tygh::$app['view']->assign('filter_items', $filters); unset($filters); }
Большое спасибо за оперативную помощь :-)