Polo Art пишет:

Здравствуйте, Павел
Просто используйте вот этот бесплатный модуль, в настройках установите код, и всё
https://marketplace.readyscript.ru/addons/jsscripts/

Спасибо большое Polo Art.

Добрый день.
Куда устанавливать код счетчика для яндекс метрики?
Яндекс рекомендует: "При установке счетчика в HTML-код сайта, разместите код как можно ближе к началу страницы. Например, в пределах тегов <head></head> или <body></body>."
В какой файл нужно установить код счетчика?
Заранее благодарен.

Сделал сайт https://llc-tssgroup.ru/ розница и оптовые продажи одновременно. Для приобретения товара по опту нужно пройти регистрацию на сайте или войдите в свою учетную запись.

Добавляю опцию : 'clients' => $product->getMinOrderQuantity(),
и к if : ($current_user->inGroup['clients']) &&

 $amount_step = $product->getAmountStep();
        $product_stock = $product->getNum($offer_id);
        $amount_add_to_cart = max($product->getMinOrderQuantity(), $amount_step);
        $is_cart_page = RouterManager::getCurrentRoute()->getId() == 'shop-front-cartpage';
        $cart_amount_options = [
            'productId' => $product['id'],
            'amountStep' => $amount_step,
            'minAmount' => $product->getMinOrderQuantity(),
            'clients' => $product->getMinOrderQuantity(),
            'forbidRemoveProducts' => $is_cart_page,
            'forbidChangeRequests' => $is_cart_page,
        ];
        
        
        
    if   ($current_user->inGroup['clients']) && ($shop_config['allow_buy_num_less_min_order'] && $product_stock < $product->getMinOrderQuantity()) {
            $break_point = ($shop_config['allow_buy_all_stock_ignoring_amount_step']) ? $product_stock : floor($product_stock / $amount_step) * $amount_step;
            $cart_amount_options['amountBreakPoint'] = $break_point;
            $amount_add_to_cart = $break_point;
        } elseif ($shop_config['allow_buy_all_stock_ignoring_amount_step'] && $product_stock > $product->getMinOrderQuantity()) {
            $cart_amount_options['amountBreakPoint'] = $product_stock;
            if ($product_stock < $amount_step) {
                $amount_add_to_cart = $product_stock;
            }
        }
    


Без изменений. Гость или клиент добавляет товар в корзину все равно - минимальное ко-во заказа работает "как часы" . Может я вообще не там копаю?

Нужно править код ( productamountincart.inc.php ) добавить {if $current_user->inGroup('clients')} в этом месте:

        
        $amount_step = $product->getAmountStep();
        $product_stock = $product->getNum($offer_id);
        $amount_add_to_cart = max($product->getMinOrderQuantity(), $amount_step);
        $is_cart_page = RouterManager::getCurrentRoute()->getId() == 'shop-front-cartpage';
        $cart_amount_options = [
            'productId' => $product['id'],
            'amountStep' => $amount_step,
            'minAmount' => $product->getMinOrderQuantity(),
            'forbidRemoveProducts' => $is_cart_page,
            'forbidChangeRequests' => $is_cart_page,
        ];
        
         if ($shop_config['allow_buy_num_less_min_order'] && $product_stock < $product->getMinOrderQuantity()) {
            $break_point = ($shop_config['allow_buy_all_stock_ignoring_amount_step']) ? $product_stock : floor($product_stock / $amount_step) * $amount_step;
            $cart_amount_options['amountBreakPoint'] = $break_point;
            $amount_add_to_cart = $break_point;
        } elseif ($shop_config['allow_buy_all_stock_ignoring_amount_step'] && $product_stock > $product->getMinOrderQuantity()) {
            $cart_amount_options['amountBreakPoint'] = $product_stock;
            if ($product_stock < $amount_step) {
                $amount_add_to_cart = $product_stock;
            }
        }


Я правильно понимаю?

Все хорошего дня. Тема современная.
Подскажите пожалуйста, как и где надо прописать, чтобы Минимальное количество товара для заказа (min_order) отрабатывало в корзине только для авторизованных пользователей  {if $current_user->inGroup('clients')}, а для гостей      (неавторизованные пользователи) это значение игнорировалось.

7

(4 ответов, оставленных в Вопросы по работе с системой)

Да это все так. Но кто мешает в начале страницы корзины добавить div, который дублируют кнопку "Продолжить покупки" , у меня она называется "вернуться в магазин" со стрелкой назад. Сам div делается видимым только для   @media (max-width:767px) И будет вам счастье! Посетитель сразу ее видит, а не ищет путь назад, читай кнопочку "Продолжить покупки", которая далеко внизу. Я так поступил.

Daniel пишет:

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

Ясно. Спасибо хоть Вы ответили. Ничего страшного - сам сделаю.

9

(0 ответов, оставленных в Форум ReadyScript)

Добрый день.

Не мешало бы добавить в темах линк "В ИЗБРАННОЕ" рядом с RSS и Подписаться, который будет потом доступен в личном кабинете. Я много времени штудирую форум, в каких-то темах нахожу что-то нужное для себя, а тему сохранить не могу. Через какое-то время опять начинаешь искать эту тему и как следствие тратишь кучу времени и бывает просто не находишь ее.

Реально нужно.

Добрый день.

Огромная просьба – помогите пожалуйста. Хочу реализовать выпадающий список меню выборки категорий. Как например очень удобно сделано на onitochki.ru .

Не могу разобраться куда добавить $node, чтобы у категорий  (.t-nav-catalog-list__dir .t-nav-catalog-list-block), у которых есть дочки вызывалось (.t-nav-catalog-list__dir .t-nav-catalog-list-block.node::after).

Пробывал с  {foreach $node->getChilds() as $sub_node}
                    {$sub_dir = $sub_node->getObject()}
Но увы.....

{* Список категорий из 3-х уровней *}
{nocache}
{addjs file="libs/jquery.mmenu.min.js"}
{addcss file="libs/jquery.mmenu.css"}
{/nocache}

{if $dirlist}
    <nav>
        <ul class="nav navbar-nav">
            {hook name="catalog-blocks-category-category:list-item" title="{t}Дополнительные пункты меню, в меню каталога{/t}"}
                {foreach $dirlist as $dir}
                    <li class="{if $dir->getChildsCount()} t-dropdown{/if}" {$dir.fields->getDebugAttributes()}>
        
    {* Первый уровень *}
    
            <a class="batmencat" {$dir.fields->getDebugAttributes()} href="{$dir.fields->getUrl()}"><span> </span>{$dir.fields.name}</a>
                {if $dir->getChildsCount()}
            
   {* Второй уровень *}
   
                <div class="t-dropdown-menu">
                    <div class="container-fluid drmen">
                        <div class="t-nav-catalog-list__inner">
                            <div class="t-close"><i class="pe-4x pe-7s-angle-left"></i></div>
                                <div class="t-nav-catalog-list__dir">
                                    {foreach $dir.child as $subdir}
                                        <div class="t-nav-catalog-list-block">
                                            <a {$subdir.fields->getDebugAttributes()} href="{$subdir.fields->getUrl()}" class="t-nav-catalog-list-block__header">{$subdir.fields.name}</a>

    {* Третий уровень *}
    
                    {if $subdir->getChildsCount()}
                        <div class="t-nav-catalog-sublist-block">
                            <ul class="t-nav-catalog-list-block__list">
                                {foreach $subdir.child as $subdir2}
                                    <li><a {$subdir2.fields->getDebugAttributes()} href="{$subdir2.fields->getUrl()}" class="t-nav-catalog-list-block__link">{$subdir2.fields.name}</a></li>
                                
                                                    {/foreach}
                                                </ul>
                                            </div>
                                        {/if}
                                    </div>
                                {/foreach}
                            </div>
                        </div>
                    </div>
                </div>
            {/if}
        </li>
        {/foreach}    
        
        <li class="second_item"><a href="http://tss.weberro.ru/">Главная</a></li>
        <li class="second_item"><a href="/delivery/">Доставка</a></li>
        <li class="second_item"><a href="/payment/">Оплата</a></li>
        <li class="second_item"><a href="/optovikam/">Оптовикам</a></li>
        <li class="second_item"><a href="/kontakty/">Контакты</a></li>
        
        {/hook}
    </ul>
</nav>


{* Мобильная версия каталога - 2 уровня *}
<nav id="mmenu" class="hidden">
    <ul>
        <li>
            {moduleinsert name="\Catalog\Controller\Block\SearchLine" hideAutoComplete=true}
        </li>
        {hook name="catalog-blocks-category-category:list-item-mobile" title="{t}Доплнительные пункты меню, в меню каталога - мобильная версия{/t}"}
        {foreach $dirlist as $dir}
            <li>
                <a href="{$dir.fields->getUrl()}">{$dir.fields.name}</a>
                {if $dir->getChildsCount()}
                    <ul>
                        {foreach $dir.child as $subdir}
                            <li>
                                <a href="{$subdir.fields->getUrl()}">{$subdir.fields.name}</a>
                            </li>
                        {/foreach}
                    </ul>
                {/if}
            </li>
        {/foreach}
       <li class="second_item"><a href="http://tss.weberro.ru/">Главная</a></li>
        <li class="second_item"><a href="/delivery/">Доставка</a></li>
        <li class="second_item"><a href="/payment/">Оплата</a></li>
        <li class="second_item"><a href="/optovikam/">Оптовикам</a></li>
        <li class="second_item"><a href="/kontakty/">Контакты</a></li>
        
    {*    <div class="gen_telo">
            <li class="up_telo"><a href="tel:89518468896">8-951-846-88-96</li>
            <li class="mid_telo"><a href="tel:89185220222">8-918-522-02-22</li>
            <li class="down_telo">пн-сб 10:00-20:00</li>
        </div>
     *} 
        {/hook}
    </ul>
</nav>


{else}
    <div class="col-padding">
        {include file="%THEME%/block_stub.tpl"  class="text-center white block-category" do=[
            [
                'title' => t("Добавьте категории товаров"),
                'href' => {adminUrl do=false mod_controller="catalog-ctrl"}
            ]
        ]}
    </div>
{/if}
admin пишет:

Внесу ясность в правки шаблонов. Дело в том, что различные методы расширения функциональности шаблонов появлялись со временем, а старые при этом продолжали работать. По этому есть множество вариантов на выбор:

1. Полное клонирование темы и изменение файлов уже внутри нее. Делается прямо через админ.панель
Управление -> Шаблоны -> Клонировать тему. (есть особенности с темой default, в клона нужно сперва копировать tpl файлы из модулей, а затем изменять.)

2. Для простого добавления своих скриптов мы придумали scripts.tpl, которого нет в дистрибутиве, но он подключается, если в корне лежит этот файл. Этот метод подходит только для добавления скриптов и стилей на все страницы шаблонов.

3. Частичная модификация темы с помощью .my.tpl, .my.css  .my.js. Отлично подходит если хочется, чтобы все в теме обновлялось, кроме измененных частей. Очень простой способ модификации с относительно небольшими потерями обновляемости.

https://readyscript.ru/dev-manual/dev_t … tends.html

4. Модификация шаблонов с помощью кастомного модуля и обработки хуков в шаблонах. Способ сложный для обычного пользователя, но позволяет изменять даже часть одного tpl шаблона, при этом сохраняя обновление других частей этого же tpl.
Это самый ювелирный способ модификации.
https://readyscript.ru/dev-manual/dev_t … hooks.html

 Для меня больше всего подходит п.3 Им и пользуюсь. Уже почти 20 файлов имеют .my ))

Ярослав пишет:

Здравствуйте! Все варианты верные.
Если хотите использовать обновляемый стандартный шаблон, то просто копируете файл, добавляя к расширению my
product.tpl -> product.my.tpl
даже custom.css лучше в custom.my.css переименовать

Понял. Спасибо большое!

Добрый день.

Вопрос банален! Как правильно править стандартные шаблоны, чтобы после обновления не слетели мои доработки.
На сайте разработчика информация противоречивая, как например «Ответы на вопросы» указывает, что необходимо создать свой шаблон обычным копированием содержимого папки /templates/default в /templates/custom, а уже в него вносить все изменения.
В видео-уроке предлагается только создать свой custom.css вносить в него изменения, а потом подключить его в созданный script.tpl файл.
А на просторах настоящего форума предлагают создавать свои файлы ххххххххх.my.css

Как правильно сделать, чтобы и шаблон обновился и изменения остались?
Заранее благодарен.

14

(4 ответов, оставленных в Вопросы по работе с системой)

admin пишет:

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

Вам нужно вносить изменения в шаблон /ВАША ТЕМА/moduleview/catalog/product.tpl
А еще правильнее, создавать на его основе  /ВАША ТЕМА/moduleview/catalog/product.my.tpl

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

Спасибо огромное! Все получилось.

15

(4 ответов, оставленных в Вопросы по работе с системой)

Ярослав пишет:

Здравствуйте! Кэш очищали?

да. кэш очищаю постоянно.

Добрый день.

Установил бесплатный модуль "Редактор ORM объектов", создал пару объектов в Catalog\Model\Orm\Product (ID свойста: opt_des  (тип VARCHAR) и  my_opt (тип INT) ).  В админке каталоге товара записи сохраняется, в phpMyAdmin запись присутствует, поля добавились и работают корректно для экспорта/импорта CSV.

Проблема в том, что не могу вывести эти поля непосредственно на сайт. Пытаюсь вставить в /modules/catalog/view/product.tpl запись <div> {$product.opt_des} </div > ничего не выводится.

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

Подскажите пожалуйста, что делать.

Заранее благодарен,
Павел