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

Попробуйте

{{ p.discount*p.amount }}
1 лайк

Спасибо большое, работает

1 лайк

А на странице оформления заказа можно такой трюк сделать? В массиве products я не нашёл ни базовой цены, ни скидки.
Скидки на отдельные товары не отображаются и это странно.

Только у меня на странице оформления заказа не выводится информация во вкладках дебаггера?

Зависит от промо-акции (каталог или корзина). Посмотрите еще массив $cart_products

В нём для цены куча переменных: [price], [base_price], [original_price], [raw_price], [display_price], [display_subtotal].
Но они все имеют одинаковые значения - 329. Проверяю товар со скидкой

image

Всем привет! Подскажите, пожалуйста, как поменять хелбные крошки из php кода?
Возможно есть хук какой-то или функция через которую можно установить?

Есть такая функция fn_add_breadcrumb, но она добавляет надпись, а не изменяет её.

Ситуация вот в чём:
У меня товары в МойСклад и в качестве дополнительных полей указаны названия товаров на разных языках, но основное название у товара на Русском. Я сделал модуль который при смене языка сайта из Характеристик вытягивает название на нужном языке и подставляет его на карточке товара и в каталоге, но не могу найти хук, как поменять в хлебных крошках.

$bc = Tygh::$app['view']->getTemplateVars('breadcrumbs');
... меняем данные....
Tygh::$app['view']->assign('breadcrumbs', $bc);
1 лайк

Спасибо! Как-то не сообразил что надо было переменную через assign передать.
Для тех кто возможно столкнётся с этим вопросом хочу дополнить
$bc - это массив. Проверяйте куда будете записывать значение

1 лайк

Подскажите, как передать в файл text_links.tpl массив уже существующего меню? Где взять ссылки для переменной меню? ID нужного меню знаю. Или как-то через $smarty? Но как? В дебагере не нашел…

{assign name=menu value=???}
{include file="blocks/menu/text_links.tpl" items=$menu}

Так не получится. Как вариант, сформировать нужный вам блок в шаблоне меню и обернуть его в capture, чтобы он сразу не отобразился. Потом в вашем блоке просто вывести этот capture

1 лайк

Подскажите переменную с именем пользователя для отправки письма о регистрации на сайте.

Нашёл.
user_data.firstname

1 лайк

Имени пользователя в cs-cart по умолчанию вроде бы нет?

Вот весь массив переменной $user_data:

Array(
[user_id] => 16
[status] => A
[user_type] => A
[user_login] => user_16
[referer] => 
[is_root] => N
[company_id] => 
[last_login] => 
[timestamp] => 
[password] => 
[salt] => 
[firstname] => 
[lastname] => 
[company] => 
[email] => 
[phone] => 
[fax] => 
[url] => 
[tax_exempt] => N
[lang_code] => ru
[birthday] => 
[purchase_timestamp_from] => 
[purchase_timestamp_to] => 
[responsible_email] => 
[password_change_timestamp] => 1
[api_key] => 
[janrain_identifier] => 
[external_id] => 
[usergroups] => Array
    (
        [4] => Array
            (
                [link_id] => 14
                [usergroup_id] => 4
                [status] => A
                [type] => A
            )

    )

[profile_id] => 15
[profile_type] => P
[b_firstname] => 
[b_lastname] => 
[b_address] => 
[b_address_2] => 
[b_city] => 
[b_county] => 
[b_state] => MOW
[b_country] => RU
[b_zipcode] => 
[b_phone] => 
[s_firstname] => 
[s_lastname] => 
[s_address] => 
[s_address_2] => 
[s_city] => 
[s_county] => 
[s_state] => SVE
[s_country] => RU
[s_zipcode] => 
[s_phone] => 
[s_address_type] => 
[profile_name] => Основной
[profile_update_timestamp] => 
[fields] => Array
    (
        [38] => 
    )

[b_country_descr] => Россия
[s_country_descr] => Россия
[b_state_descr] => Москва
[s_state_descr] => Свердловская область)

При использовании {capture} меню дублируется в нужном месте. Но при кэшировании не выводится.

При использовании: ?cc&ctpl&debug появляется, и при $config['tweaks']['disable_block_cache'] = true в local_conf.php тоже.

Изначально код такой:

{assign var="text_links_id" value=$block.snapping_id}
{capture name="text_menu_{$text_links_id}"}
    ...
{/capture}

{assign var="text_menu" value="text_menu_{$text_links_id}"}
{$smarty.capture.$text_menu nofilter}

В нужном месте вывожу вот так:

{assign var="text_menu" value="text_menu_167"}
{$smarty.capture.$text_menu nofilter}

Пробовал обернуть в {nocache}, результат тот же. Без кэша работает, с кэшем нет.

Есть какая-то особенность работы {capture} с кэшем?

Возможно, у вас они в профиле пользователя не заполнены.

По сообщению не понял. Думал нашли user_data.firstname, а ищите что-то вроде user_data.user_login.

это атавизм из древних версий карта, забудьте о нем и не вспоминайте ))

1 лайк

Здравствуйте! Подскажите, как реализована страница Товары со скидкой?
Демо сайт

На сайте есть ссылка с адресом index.php?dispatch=products.on_sale, но в админке не могу найти соответствующий макет. Сделал отдельный макет с типом “Другое” и указал dispath=products.on_sale
на странице макета разместил блок “распродажа”, но он всё равно ничего не отображает и решение явно не такое как на демо. Подскажите пожалуйста

1 лайк

кэш очистили?
с макетом всё правильно поступили. Решение завиесит от темы, на demo - юнитема

Да, вы правы. О кэше я не подумал

1 лайк