Перейти к содержанию

v2.3.0 обновление от 06-Дек-2022


ab.support.serhii

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

  • Администраторы
Post #2388 Опубликовано

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

Расширенные meta теги и плейсхолдеры v2.3.0 от 06-Дек-2022

Новые возможности и улучшения:
[+] В управление шаблонами добавлена настройка "Вкл.", позволяющая включать или отключать шаблон для конкретного тега.
[+] Добавлен принудительный выбор кодировки UTF-8 при обработке плейсхолдеров (при определённых конфигурациях сервера могла возникать ошибка).

Обновления доступны всем пользователям с активной подпиской, производятся через Центр обновлений CS-Cart.


Хотите, мы оповестим Вас о следующем обновлении? Подпишитесь на наши каналы для анонсов:
Telegram
WhatsApp
YouTube

  • 4 месяца спустя...
Post #4038 Опубликовано

Добрый день.

Очень не хватает плейсхолдера компании, который задаётся в настройках витрины.

Есть плейсхолдер названия витрины [storefront], но мне его неудобно использовать, т.к. название витрины - это одно, а название компании - это другое.

Например, витрина у меня называется Компания филиал KZ , а при этом сама компания называется ТОО "Компания" . И когда я задаю мета-тег товара, например:

[{fvalue_2661}] [{fvalue_2662}] [product_brand] [{fvalue_59}] по цене [product_price_nocurrency] [currency_nohtml] с доставкой по [ГОРОД_ДП] и Казахстану.
Описание, характеристики, фото в каталоге на сайте компании [storefront]

то мне нужно, чтобы в конце подставлялось ТОО "Компания", а не Компания филиал KZ.

 

Можете добавить какой-нибудь плейсхолдер [company], например? Сильно поможет.

  • Like 1
Предложение На обсуждении

Добавить плейсхолдеры полей из настроек компании

Добрый день.

Очень не хватает плейсхолдера компании, который задаётся в настройках витрины.

Есть плейсхолдер названия витрины [storefront], но мне его неудобно использовать, т.к. название витрины - это одно, а название компании - это другое.

Например, витрина у меня называется Компания филиал KZ , а при этом сама компания называется ТОО "Компания". И когда я задаю мета-тег товара, например:

[{fvalue_2661}] [{fvalue_2662}] [product_brand] [{fvalue_59}] по цене [product_price_nocurrency] [currency_nohtml] с доставкой по [ГОРОД_ДП] и Казахстану.
Описание, характеристики, фото в каталоге на сайте компании [storefront]

то мне нужно, чтобы в конце подставлялось ТОО "Компания", а не Компания филиал KZ.

 

Можете добавить какой-нибудь плейсхолдер [company], например? Сильно поможет.

  • 2 месяца спустя...
Post #4661 Опубликовано

@ab.support.serj

Добрый день. Использую данный модуль, с настройкой перезаписать пустые.

Соответственно у мены все мета теги пустые в товарах. Все подтягивается на основе модуля правильно.

Но тут есть задача выгрузить файлом экспорт эти метатеги. Вытягиваются пустые поля.

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

Конечная цель - выгрузка фида в гугл мерчант.

  • Администраторы
Post #4662 Опубликовано
1 час назад, Konrad сказал:

Можно ли как то подправить

Подправить можно то, что сломано или работает не совсем так, как хотелось бы.

Здесь же импорт-экспорт в принципе не предусмотрен.

Можете выдвинуть предложение, будем смотреть на спрос.

  • 3 месяца спустя...
Post #5731 Опубликовано

Добрый день.

В вашем модуле есть возможность задавать кастомные шаблоны мета-тегов для конкретных категорий.

Но проблема в том, что шаблон срабатывает только для выбранной категории, а мне хочется, чтобы срабатывал и для подкатегорий тоже.

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

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

Post #5732 Опубликовано

Ещё обнаружил неприятную особенность: в поле description дополнительного шаблона текст обрезается до 255 символов. Причём, в основном шаблоне такого ограничение нет (см. скрин).

 

Спойлер

image.thumb.png.a2c68638e45268765f85dda47f3cce15.png

 

Баг Подтверждено, в работе

Ограничение в 255 символов для дополнительного шаблона description

В поле description дополнительного шаблона текст обрезается до 255 символов.

Причём, в основном шаблоне такого ограничение нет (см. скрин).

image.png

  • 2 года спустя...
Post #16491 Опубликовано

Дорогие разработчики.

Не пытаюсь вас заспамить. Лишь пробую ускорить Карт. В меру своих познаний.

Все эти предложения тестировались Клавдией на девкопии сайта по нескольку раз и с кучей допзапросов.

Поэтому надеюсь, что ее выводы таки верны.

Прошу вас перепроверить и внедрить.

Спасибо.

 

Extended Metadata — запрос диапазона цен выполняется всегда, даже когда не нужен (когда переменные с ценами НЕ используются в метатегах)

Файл: app/addons/ab__extended_metadata/func.php (две правки: стр. ~205 и ~114)

Почему это проблема: хук fn_ab__extended_metadata_get_products безусловно выполняет SELECT MIN/MAX(prices.price) (проход по тысячам строк) на каждой странице с JOIN цен — даже когда плейсхолдеры [min_price]/[max_price] в meta-шаблонах не используются (а это большинство магазинов). Причём meta генерируются на каждом запросе (хуки dispatch_before_display и ab__sf_category_preparing_data_post не кешируются) — то есть запрос идёт постоянно, а его результат чаще всего просто выбрасывается.

Решение — ленивое вычисление: считать только когда плейсхолдер реально найден в финальной строке meta. В get_products сохранять параметры выборки (только для основного листинга), а сам запрос с кешем — в блоке type === 'price' функции fn_ab__emd_replace_placeholders:

 

 

// get_products:
$current_dispatch = Registry::get('runtime.controller').'.'.Registry::get('runtime.mode');
if (!empty($params['dispatch']) && $params['dispatch'] === $current_dispatch && in_array($params['dispatch'], $allowed_dispatches)) {
    Registry::set('runtime.ab__emd_price_query', ['join'=>$join, 'condition'=>$condition]);
}
// replace_placeholders, блок 'price':
$search_obj = Tygh::$app['view']->getTemplateVars('search');
if (!isset($search_obj['ab__min_price']) && ($pq = Registry::get('runtime.ab__emd_price_query'))) {
    $key = 'ab__emd_price_range_'.md5($pq['join'].$pq['condition']);
    Registry::registerCache(['ab__extended_metadata',$key], ['product_prices','products','ult_product_prices'], Registry::cacheLevel('user'), true);
    $range = Registry::get($key);
    if (!is_array($range)) {
        $range = db_get_row('SELECT MIN(prices.price) as ab__min_price, MAX(prices.price) as ab__max_price FROM ?:products as products ?p WHERE prices.price > 0 ?p', $pq['join'], $pq['condition']);
        Registry::set($key, $range);
    }
    Tygh::$app['view']->assign('search', array_merge((array)$search_obj, (array)$range));
}

 

 

 

Почему так: заранее определить «нужен ли запрос» нельзя — плейсхолдер может быть в трёх источниках (настройки/индивидуальные meta/паттерны). А в момент замены строка уже финальная — это единственное надёжное место. Ключ кеша включает выборку (для SEO-страниц учитывает фильтр и категорию).
Эффект: на страницах без плейсхолдеров цены запрос исчезает полностью; с ними — один раз + кеш.

 

 

  • Like 1
  • OK 1

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

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

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...