1,951

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

Для того, чтобы поправить шаблон уведомления купить в один клик Вам надо скопировать шаблон:

/modules/catalog/view/notice/toadmin_oneclick.tpl

в

/templates/Ваша тема/moduleview/catalog/notice/toadmin_oneclick.tpl

Далее делайте всё что Вам необходимо В уведомлениях.
Сами адреса в поле "ОТ" подставляются из раздела. Веб-сайт->Настройка сайта->E-mail администратора.
Пока у нас нет возможности подставлять E-mail пользователя, но Вы можете добавить предложение нам в helpdesk.readyscript.ru

Тему оформления тоже прописывается как есть. Т.е. тоже пишем предложение.

1,952

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

Вы можете кстати зачеркнутую цену получать так:

{$product->getOldCost()}

А сама она назначается в настройках модуля "Каталог товаров".

1,953

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

А почему вы просто не подгрузите промо цену через:

{$product->getCost('ПРОМО ну или как там она называется')}

?

1,954

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

Конечно. При помощи static_call можно вызвать любую статическую функцию у любого класса.
http://readyscript.ru/dev-manual/dev_sm … tatic_call

1,955

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

Мы со временем сделаем модуль который позволит, всё делать из админки без программирования. В части добавления полей. Но это не скоро.

1,956

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

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

1,957

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

Только отдельным модулем. Вам надо изменить тип ORM объекта с Text на RichText перегрузив это поле из своего модуля.
Смотрим видео:
https://www.youtube.com/watch?v=KoF2IyG … L4X2UTC6Aw

Читаем документацию:
http://readyscript.ru/text-blog/Kak-pra … adyScript/
http://readyscript.ru/dev-manual/dev_orm.html

1,958

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

Подключить визуальный редактор вы сможете только из отдельного модуля, перегрузив тип поля с краткой информацией.  У товара там сейчас текст. А Вам надо поменять на RichText

/form/catalog_model_orm_product_273934082.auto.tpl
- это шаблон, который генерируется автоматически при компиляции шаблонов (смотрите окончание). С ним Вы ничего не сможете сделать.

Как работать с типами ORM объектов можно посмотреть здесь:
https://www.youtube.com/watch?v=BqQ_ulw … L4X2UTC6Aw

Ну т.е. статистика есть и возможность реализации такого блок-контроллера своими силами имеется?

Конечно. Апи статистики же есть. Моно сделать нужную выборку.

Дмитрий пишет:

Появился еще одни вопрос, близкий по теме, как раз по поводу карточки товар.
Можно ли в карточке товар, вывести блок "с этим товаром так же покупают" - на основе статистики заказов, смотрю документацию по блок-контроллерам каталога, но там то ли ошибка, то ли что, для большинства блок-контролеров в подробном описании написано "Блок-контроллер Список категорий"

В аннотации? Скорее всего очеПятка.

- статистика появилась 2 недели назад и пока такого блока тоже нет пока ещё. У нас есть сервис пожеланий на helpdesk.readyscript.ru

Обсудим.

Ну на данный момент могу из стандарта предложить, только блок "товары из категории", но там нет сортировки в рандомном порядке.
Вам надо будет сделать свой блок контроллер. За основу можно взять уже существующий блок. Руководство по созданию блок-контроллера находится здесь:
http://readyscript.ru/dev-manual/dev_articles.html

1. При добавлении в корзину (на карточке товара) товара без комплетаций или с простой комплектацией показывается всплывающее окно с содержимым корзины. При добавлении в корзину товара с многомерной комплектацией - происходит переход на страницу корзины. Как сделать, чтобы и во 2 варианте тоже открывалось всплывающее окно?

Всплывающее окно отрабатывает благодаря наличию у ссылки класса inDialog. Поставьте его у нужной ссылки и будет Вам окно.

2. Вывод многомерных комплектаций, часть сочетаний которых отсутствует. На примере телефона Apple из демо данных. Скажем, есть следующие комплектации:
- 16 Gb - WiFi+3G
- 16 Gb - WiFi+3G+4G
- 32 Gb - WiFi+3G
- 64 Gb - WiFi+3G

Т.е. телефон WiFi+3G+4G есть только с 16 Gb. Но на карточке товара выводятся 2 списка - один с размерами памяти, второй - с модулями. И при выборе в первом списке, например, варианта 32 Gb, во втором списке по-прежнему будут доступны оба варианта (WiFi+3G и WiFi+3G+4G). При этом вариант 32 Gb WiFi+3G+4G можно будет положить в корзину и пройти на чекаут. (По крайней мере, именно так происходит у меня на локально развернутом магазине).

Возможно, я что-то делаю неверно. Подскажите, пожалуйста, что именно.

По дефолту скртыя у нас нет. Но мы подсказываем, когда комплектации нет и не даём положить в корзину, если включена соответствующая опция.
Зайдите в Веб-сайт->Настройка модулей->Магазин->Опция - Запретить оформление заказа, если товаров недостаточно на складе
и Разрешить предварительный заказ товаров с нулевым остатком - Нет (если даже заказать надо скрыть)

Вероятно Вам нужно вот это - Модуль аналогичные товары. Угадал?

1,965

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

Вероятно вы имели ввиду категории.
Такая вещь случается обычно, если у категорий поле сортировочный индекс одинаковый. Вы вроде визуально меняете его. Но запрос который уходит на сервер не может поменять местами его. Поэтому надо выгрузить в CSV категории и проверить Сортировочный индекс. Он у всех категорий должен быть разный.
Если есть одинаковый просто поменяйте, чтоб с другими не совпадал. И загрузите категории обратно. Я думаю всё получится.

1,966

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

Этот Вариант в шаблонах  не предусмотрен. Но это вполне реально. Вам нужно изменить шаблон категорий и сделать соответствующий вывод. Вот как пример, как можно выводить изображения у категорий http://forum.readyscript.ru/topic/177/i … kategorii/. Вам нужно сделать также для своих переменных в шаблоне.

Ну или вот пример как я делал у себя:

{if empty($query) || (count($sub_dirs) && $dir_id != $one_dir.id)}
            {if $sub_dirs && empty($query) && $paginator->page<2 && (empty($smarty.get.p)) && (empty($smarty.get.bfilter)) && (empty($smarty.get.f))}
                
                <nav class="catalogCont">
                       <ul class="folders">
                            {foreach from=$sub_dirs item=item key=i}                                   
                                    <li>
                                        <a href="{$item->getUrl()}">
                                            <div class="folderImage">
                                                {if $item.image}
                                                    <img src="{$item.__image->getUrl(250, 220, 'axy')}" alt="{$item.name}"/>
                                                {else}
                                                    <span class="noImage"></span>
                                                {/if}
                                            </div>
                                            <div class="folderTitle">
                                                {$item.name}
                                            </div>
                                        </a>
                                    </li>
                            {/foreach}
                       </ul>
                </nav>
            {/if}
        {/if}

У Вас какая тема оформления?

1,967

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

{$category=$router->getCurrentRoute()->category}
{$category=$router->getCurrentRoute()->listproducts}
{$category=$router->getCurrentRoute()->catalog}

Так у Вас ничего не получится, т.к. во фронт контроллере категории товара этот объект не записывается в объект текущего маршрута, я поэтому ничего и не писал по этому поводу.
Надобности в записи объекта этого не было поэтому, мы его и не добавляли.

{$category} должен быть доступен т.к. поскольку первым отрабатывае фронт контроллер который рендерит результат, а уже потом к "Середине" оборачивается внешняя оболочка. И в шаблоны внешние также уходят переменные из фронт конроллера и там же доступны. У Вас не получилось видимо потому, что в каком-то блок контроллере видимо $category переназначается. Тогда можно сделать так:

{$category_alias=$this_controller->request('category','string')} {* Получает alias категории из запроса *}
{static_call var=category callback=['\Catalog\Model\Orm\Dir', 'loadByWhere'] params=[['alias'=>$category_alias]]} {* Подгрузим категории *}
{var_dump($category)}

Я думаю должно получиться.

1,968

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

Андрей пишет:

Теперь... Объект товара содержится в самом роутере

{$product=$router->getCurrentRoute()->product}

СПАСИБО! Вот этих строчек мне не хватало, не нашёл в документации

Этого в документации нет и не будет, т.к. это результат отработки фронт контроллера /modules/catalog/controller/front/product.inc.php (страница товара). Там в объект текущего маршрута заносится сам объект товара. Вот через эту строчку:

$this->router->getCurrentRoute()->product = $item; //Прикрепляем к маршруту загруженный объект товара

А $this->router доступен уже во всех шаблонах в качестве переменной $router

1,969

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

Ну в шаблоне доступен объект роутера, и у каждого типа страницы, есть свой  идентификатор маршрута. Вы можете посмотреть маршруты в
/modules/catalog/config/handlers.inc.php в методе getRoute

У категории это catalog-front-listproducts
У товара это catalog-front-product

Соответственно в шаблоне мы можем проверить:

{$route_id=$router->getCurrentRoute()->getId()}
{if $route_id=="catalog-front-product"}
    //Мы на странице товара
{/if}

Аналогично с каталогом.
Теперь... Объект товара содержится в самом роутере

{$product=$router->getCurrentRoute()->product}

А категорию можно получить так:

{$category}

1,970

(6 ответов, оставленных в Вопросы по разработке модулей и API системы)

Если никто другой, то мы. В планах на этот год записано.

1,971

(6 ответов, оставленных в Вопросы по разработке модулей и API системы)

Планируется.

1,972

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

Просто у ссылки ставите класс inDialog

1,973

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

Готовых цифр нет. Это нужно программировать для каждого Вашего пользователя. Вы можете с помощью доп. модуля получить данную цифру и вызвать в шаблоне static_call. Сам код который подсчитывает находится в
/modules/shop/controller/admin/orderctrl.inc.php в методе actionOrdersReport и в АПИ
/modules/shop/model/orderapi.inc.php в методе getReport.
Вы можете из своего модуля правильно вызвать данный метод и получить все необходимые цифры.

1,974

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

Например

{$item.product->getMainImage()->getUrl(200, 200, 'axy')}

Это проблема. Но она решается через, импорт-эскпорт комплектаций через CSV. Там нужно менять местами значение в поле сортировочный индекс. А вообще потом мы в будущем добавим кнопку сделать основной комплектацией.