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

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

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

- статистика появилась 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,881

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

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

1,882

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

Этот Вариант в шаблонах  не предусмотрен. Но это вполне реально. Вам нужно изменить шаблон категорий и сделать соответствующий вывод. Вот как пример, как можно выводить изображения у категорий 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,883

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

{$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,884

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

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

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

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

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

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

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

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

1,885

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

Ну в шаблоне доступен объект роутера, и у каждого типа страницы, есть свой  идентификатор маршрута. Вы можете посмотреть маршруты в
/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,886

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

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

1,887

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

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

1,888

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

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

1,889

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

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

1,890

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

Например

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

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

Не должен.

1,893

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

Андрей пишет:
Александр пишет:

Всё просто:) Обращение к полям, как к массиву.

{$dir.title}

Подскажите как получить значение "Заголовка категории" в блоке, который не имеет соответствующей переменной?

Что это за блок и на какой странице?

У Вас есть 2 варианта на сегодняшний день.
1. На странице карточки товара, дополнительным яваскриптом отформатировать как Вам нравится.
2. Дополнительным модулем, повеситься на  окончание выгрузки и всем комлпектациям проставить сортировочный индекс в том порядке в котором он Вам нужен. (Более правильный вариант).

Вся проблема заключается в том, что Вам нужно выводит по алфавиту, а кому-то нет. Поэтому при загрузке из базы сортировочный индекс проставляется в том порядке в котором дала 1С. Т.е. в конце загрузки пороядок можно поменять как Вам нравится.

Комплектации ОБЫКНОВЕННЫЕ(не многомерные) выводят в порядке сортировочного индекса. Вы можете его поменять в админ панели на вкладке комплектации (ползунок со стрелками слева от каждой комплектации).

1,895

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

Ну нужно перегрузить шаблон который выводит эту строку. Все шаблоны также доступны в модуле shop.
Вам нужен шаблон:
/modules/shop/view/order_user_cell.tpl
Вам надо его скопировать себе в тему
/templates/ВАША ТЕМА/moduleview/shop/order_user_cell.tpl

Там и можете вывести данные

1,896

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

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

<input type="hidden" name="user_type" value="noregister"/>

Чтобы проверялся определённый тип пользователя.

1,897

(16 ответов, оставленных в Вопросы по созданию тем оформления)

Так Вы же сами в первом ссобщении написали как

Никак можно либо в конец. Либо в отдельную вкладку.

1,899

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

конечно. Пишем в нужном месте:

{moduleinsert name="\Article\Controller\Block\Article" article_id="Сюда вставить идентификатор статьи"}

Можно после вставки данного кода в публичной части слева вверху нажать на режим правки. И потом навестись на нужный блок. Там появится опция для редактирования.

1,900

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

Надо шаблон будет редактировать и закомментировать ненужные строки.