Понял закономерность. Цена не выводится у тех товаров, у которых есть комплектации. У товаров без комплектаций все в порядке.
----
Что-то очень странное у Вас.
Конструкция $product->getCost('Розничные цены'), всегда возвращает цену у комплектации основной. Конструкция, что я привел работает.

Я так подозреваю, что вы пытаетесь у товара сменить комплектацию и Вам пишем 0 рублей на Розничные цены.
Так? А для нулевой комплектации всё в порядке.
Если да, то обратите внимание в файле шаблона на строки с

data-change-cost

Они отвечают как раз за смену комплектаций, а именно за смену на нужную цену при их переключении, у Вас там что написано? Я так полагаю у Вас там берётся не та цена.

Что-то очень странно... вверху у вас не выводится. А в конструкции с var_dump выводит. Т.к. var_dump всего лишь выводит значение и его формат. Могу предположить что где-то ошиблись с написании.
Попробуйте так:

{assign var=last_price value=$product->getCost('Розничные цены', null, false)}
{if $last_price>0}<div class="lastPrice">{$product->getCost('Розничные цены')}</div>{/if}

2,428

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

Как функционал  "покупки в 1 клик" из модуля Каталог перенести в модуль Магазин?
Все же покупка это покупка, а не свойства товара...
Пусть он падает как заказ но с пустыми полями (только с заполненным телефоном и используемыми полями).
По сути, заказ в 1 клик - это для тех клиентов, кому нужен звонок

Никак. Он будет в данном модуле, т.к. в редакции "Маркет" и "Гипермаркет" нет модуля "магазин". А для "Витрины" как раз и существует "Покупка в 1 клик", которая находится в модуле "каталог". Т.к. это единственная возможность в витрине купить товар.

Метод getCost('Наименование цены или ничего'), применяет точное соответствие названию цены. У Вас наименование цены совпадает с тем наименованием, что у Вас в системе заведено?
Если в этом методе наименование цены не использовать, а оставить пустым, то вернётся значение цены указанной в системе как по умолчанию.

{$product->getCost()}

У товара указана "Розничная цена"?
Вы можете проверить какой ответ возвращает метод так:

{var_dump($product->getCost())}

2,430

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

Кстати, фильтр по части наименования не работает? к примеру  если "bosch wlx20460" искать только по цифрам 20460?
----
Работает. У вас в настройках поиска тип поиска какой стоит?

Решение будет в ближайшем обновлении.

2,432

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

Сделал <a data-href="{$router->getUrl('shop-front-myorders')}" class="registrHeader inDialog" title="Мои заказы"></a> - при клике всплывает маленькое окошко в котором кроме крестика ничего нет. Похоже самому не получится, придется к вам обращаться.

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

Хорошо. Мы решим данную проблему.

2,434

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

Пути в системе определяют маршруты (грубо говоря маски). Они находятся в папках модулей в файлах
/config/handlers.inc.php в методе getRoute.
Маршрут для /my/orders/ находится в модуле магазина(shop). Вы можете посмотреть данные файлы, чтобы увидеть связь.
Для Вашего случая короткий алиас адреса будет shop-front-myorders .

Иван пишет:
admin пишет:

Изображения здесь не причем. мы все JS обновили. (менеджер изображений - имеется ввиду тот, что в визуальном редакторе)
В движке проблем с весом изображений никогда не было.

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

Эта "проблема" на данный момент не решаема из-за ограничений PHP, пока способа интеллектуально через PHP уменьшать фото не существует. Вы можете уменьшить фото, только уменьшив качество изображения в специальных настройках движка, больше никак.

2,436

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

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

Я думаю это будет наиболее правильно и красиво.

2,437

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

Юрий пишет:

При использовании многомерной комплектации, как назначить самому основную комплектацию?

Основная комплектация, это комплектация с сортировочным индексом равным 0 (ноль). Все комплектации имеют индекс начиная от нулевой.

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

Как это сделать?

У нас в Каталоге товаров есть в правом верхнем углу выгрузка в CSV. И там как раз есть выгрузка комплектаций. Выгрузите её и измените сортировочный индекс в получившемся файлике. После чего произведите импорт данного файла обратно.

Там же я думаю и будет удобнее делать цену разным комплектациям.

2,438

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

По товару такому как (Экран, карниз, смеситель врезной, подголовник, ручки хром или полеуритан, торцевой экран) да я согласен что можно внести в сопутствующие товары) хотя проще было бы находясь в позиции просто проставить галочки что им нужно и цена менялась.
А как мне предлагать комплектовать товар функциями такими как (гидромассажи, айромассажи, спинные массажи, подсветку, хромотерапию, датчик сухого пуска, кран спины, режим турбо, электронный пульт управления) это всё врезается на заводе по усмотрению клиента и отдельно не продаётся. На каждую ванну своё количество форсунок и разная цена одной и той же позиции.
А так бы просто находясь в товаре ставил галочки клиент что ему нужно, и видел сколько это стоит.
Пример я уже писал: http://www.confurn.ru/vanny/akrilovye-v … 38471.html

Тут надо наверное сделать многомерными комплектациями. Можно обойтись стандартными средствами и так как вы сделали. Но в идеале, конечно можно переделать на Ваш тип, ну тут надо переверстать шаблон товара (product.tpl) и разобраться с js которая отвечает за смену комплектаций (jquery.changeoffer.js).
Т.е. без программирования тут не как, т.к. у Вас не простой случай, надо подгонять под Вас. Вы можете обратиться к сторонним разработчикам, сделать самостоятельно, если Вы программист или заказать доработку нам на helpdesk.readyscript.ru

2,439

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

Остаётся понять. Вы вручную заводите товар, или у Вас есть база 1С из которой вы выгружаете, или Мой склад Вы подключили?

2,440

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

Сделать позицию: добавить ножки (цена изменится), добавить экран (цена изменится), добавить сифон (цена изменится)
просто ставить цену ножек и она будет прибавляться к цене ванны
Пробовал сделать больше комплектаций добавил гидромассаж, айромассаж, подсветку, гидромассаж спины, подголовник, ручки и т.д. Нажал кнопку создать комплектации и обалдел. Одна ванна а ценников нужно самому внести больше ста штук.
Взял калькулятор, каждый ценник складывал в одну цену и вписывал. А тут ещё такой подвох с обновлением вышел. У меня вообще руки опустились.
Подскажите неужели все так мучаются, или есть способ проще?

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

2,441

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

А вы из 1С обновляете товары с комплектациями?
У вас обновление чего прошло товаров?
Или обновление системы?

Аааа. Понял. У Вас сверстанная по сетке тема оформления. Поэтому форму обратной связи можно добавить через Веб-сайт->Конструктор сайта.
Просто добавив в нужную секцию блок. И там выбрать формы обратной связи.
У вас уже есть одна. Можно её использовать, а можно добавить свою форму в Разное -> Формы->Конструктор форм.
Справа сама форма, слева поля для этой формы.

Дам старенькую ссылку http://www.topexpert.pro/1.html

Интересная ссылка. А насколько старая там информация?

Нет. Меня интересует шаблон у Вас какой? (Веб-сайт->Настройка сайта). У нас просто есть по сетке и не по сетке. Там разные методы добавления.

По сути не важно какой у вас Чат. Главное, чтобы не раздражал. Я лично спокойно к чатам отношусь, т.к. человек хотя бы может быстро пообщаться. Я например ими пользуюсь.

Вам для какой темы оформления?

это id маршрута. У нас используется система маршрутов. Т.е. по маршрутам запрашивается определённый блок. Или фронт контроллер.
Маршруты в ReadyScript

shop-block-cart = /modules/shop/contoller/block/cart.inc.php

Вы же когда ссылку на купить товар подставляете у Вас используется

{$router->getUrl('shop-front-cartpage', ["add" => $product.id])}

shop-front-cartpage = /modules/shop/controller/front/cartpage.inc.php
Просто для фронт контроллер есть свои псевдонимы, иначе бы в ссылке оказалось бы shop-front-cartpage

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

Как запросить данный блок контроллер?

url на блок контроллер корзины будет такой:

{$router->getUrl('shop-block-cart')}

Соответственно его надо записать в шаблоне. Я предлагаю записать его в атрибут data-url у оборачивающего контейнера Вашего блока с краткой корзиной. Например:

<div id="cartBlockWrapper" data-url="{$router->getUrl('shop-block-cart')}">
...
</div>

Вот из этого дива можно будет потом взять значение из data-url
За отправку запроса на добавление товара отвечает скрипт с именем common.js. Как только запрос с добавлением корзины будет успешно выполнен, Вам надо будет отослать запрос на получение корзины.
Самая последняя функция которая срабатывает в данном скрипте это updateCartBlock. Она как раз ловит ответ от корзны с краткими сведениями. Вот в конце неё надо будет Вам вызвать этот ajax запрос. Адрес можно взять из оборачивающего контейнера, для приведённого нашего случаю это будет так:

var url = $("#cartBlockWrapper").data('url'); 

Отработать его и заменить содержимое оборачивающего контейнера блока корзины Вашей (cartBlockWrapper как оговаривалось выше).
Для того, чтобы увидеть, что приходит от сервера воспользуйтесь командой console.log(); и панелью консоли в FireFox например.

Sergey T. пишет:

Теперь все работает как надо! Благодарю за помощь!

Не за что! smile

Все текстовые данные перед сохранием проходят через htmlspecialchars(экранируются). А это значит, что Вам надо вызвать htmlspecialchars_decode, чтобы разэкранировать для того, чтобы текст превратился в HTML.
Т.е.:

{$product.is_root|htmlspecialchars_decode}

или

{htmlspecialchars_decode($product.is_root)}

Как Вам приятнее.