Нет, не будут. Пробелы вначале и в конце убираются специально. По другому пока никак.

Во первых надо включить отображение ошибок на период разработки:
Включение отображения ошибок


Все файлы и классы в системе обладают своим namespace в самом начале файла. Если вы укажите свой namespace то они не пересекутся. Т.е. для своей папки используется свой уникальный namespace.

В формате:
Папка модуля\путь к файлу

Также там прописаны маршруты обрабатываемых страниц для брендов. Они находятся в файле handlers.inc.php в методе getRoute. Их надо либо убрать, либо заменить на свои.
Документацию по маршрутам можно взять здесь:
Маршруты в ReadyScript

Следующий шаг. Нужно классы, которые отвечают за ORM объекты(записи в БД) изменить таким образом, чтобы они использовали другие таблицы, чтобы они не пересекались. Они находятся в папках /modules/НУЖНЫЙ МОДУЛЬ/model/orm/.
Например в объекте брендов это будет строка:

protected static
        $table = 'brand'; //Имя таблицы в БД

Вот описание ORM объектов в системе.
А вот, то что я приводил на форуме по полям ORM объектов.
Описание по полям

Если останутся вопросы, то говорите.

Ну вообще сортировка становится в таком порядке в котором её отдала 1Ска. Можно например у этого товара переставить комплектации в админке и всё будет нормально. Но для одного товара это понятно.
Если у вас пачка товаров, то лучше выгрузить в CSV. Задать им порядок(индекс сортировки) и загрузить обратно.
Обратите внимание, что у каждого товара есть и должна быть 0(нулевая) комплектация. Она отвечает за сам товар.
Остальные комплектации идут на увеличение.
Т.е. для одного товара должно быть
0 комплектация
1 комплектация

и т.д.

Не за что. smile Надеюсь, Вам это пригодится.

2,380

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

Sergey T. пишет:

Попробовал, работает, класс добавляется. Вопрос в следующем, а как сделать условие, если не больше нуля, а равно нулю? Если я добавляю вот так, то не работает.

{if $product.num=0}
    мой класс
{/if}


Всё правильно. В php =(равно) является равно. Т.е. вы присвоили 0. Если Вам надо проверить на ноль, то нужно писать двойное равно(==):

{if $product.num==0}
    мой класс
{/if}

2,381

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

Всё просто.
Если вы посмотрите в файл /modules/catalog/model/orm/product.inc.php
То там есть описание полей класса \Catalog\Model\Orm\Product, который является объектом товара.
Общее количество товара хранится в поле num. Т.е. нам нужно просто проверить положительное значение этого поля.

{if $product.num>0}
    //Ваш класс
{/if}

Пробуйте.

Подскажите, пожалуйста, а как быть с многомерными комплектациями?
Пробовал по аналогии с кодом из файла product.tpl, вывод по var_dump показал, что у $product нет multioffers.
Многомерные комплектации используются, в корзине выбор есть, в карточке товара аналогично.

p.s. Подсмотрел в контроллере: $product->fillMultiOffers()

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

{$product->fillMultiOffers()}

После этого к товару будут дописаны многомерки если они есть и проверить это можно так:

{if $product->isMultiOffersUse()}
   //Многомерки используются
{else}
   //Иначе
{/if}

После того как добавятся многомерки, то они будут ключе массива объекта \Catalog\Model\Orm\Product. А именно в

   <pre>
   {var_dump($product.multioffers)}
   </pre>

Т.е. перебрать многомерки можно как в карточке товара

{foreach $product.multioffers.levels as $level}
    
{/foreach}

Следующим шагом, нужно добавить информацию о комплектациях, которые соответствуют одной из выбранных многомерных комплектаций.

{if $product->isOffersUse()}
                {foreach from=$product.offers.items key=key item=offer name=offers}
                    <input value="{$key}" type="hidden" name="hidden_offers" class="hidden_offers" {if $smarty.foreach.offers.first}checked{/if} id="offer_{$key}" data-info='{$offer->getPropertiesJson()}' {if $check_quantity}data-num="{$offer.num}"{/if} {if $catalog_config.use_offer_unit}data-unit="{$offer->getUnit()->stitle}"{/if} data-change-cost='{ ".offerBarcode": "{$offer.barcode|default:$product.barcode}", ".myCost": "{$product->getCost(null, $key)}", ".lastPrice": "{$product->getCost('Зачеркнутая цена', $key)}"}' data-images='{$offer->getPhotosJson()}' data-sticks='{$offer->getStickJson()}'/>
                {/foreach}
                
      <input type="hidden" name="offer" value="0"/>
{/if}

Соответственно нужно обеспечить выбор нужной комплектации которая соответствует выбраной многомерной комплектации. Если посмотреть на input'ы, то там видно, что подгружаются сведения о многомерках в data-info.
Т.е. нужно javascript.
Посмотреть как взять нужную комплектацию можно в /templates/ВАША ТЕМА/resourse/js/jquery.changeoffer.js, в методе changeMultiOffer.

Для javascript просмотра используйте firebug и console.log(переменная);

В этом методе смотрится, что выбрана многомерка, смотрится соотвествие комплектациям, и если такая есть, то в input с name="offer" ставится нужная комплектация.

При нажатии на кнопку купить. Скрипт смотрит что у нас находится в этом input в рамках контейнера который обёрнут с data-id="id товара", как приведено выше.

По идее, Вам надо просто добавить скрипт jquery.changeoffer.js на эту страницу и он сам поймёт всю структуру. И при смене многомерки будет выбиратся нужная комплектация. Главное чтобы была обёртка с data-id (как было описано в предыдущем посте).

Есть ещё другой момент. Вы работаете со списком товаров, а каждый раз подгружать многомерки накладно. Поэтому вместо:

{$product->fillMultiOffers()}

Вам нужно использовать конструкцию

{$list=$this_controller->api->addProductsMultiOffers($list)}

Подробнее данный метод можно посмотреть в файле /modules/catalog/model/api.inc.php. Данный метод позволит подгрузить многомерки сразу многим товарам.

Пробуйте.

2,383

(9 ответов, оставленных в Предложения по улучшению системы)

Так же не совсем понятно как именно работает подсчет остатков в таблицах - при просмотре категории в админке.

Поясните пожалуйста, что конкретнее Вам пояснить? Ато не совсем понятен вопрос.

2,384

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

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

{$product->getCost()}

и

{$product->getCost('Зачеркнутая цена')}

Т.е.

{$product->getCost('Название нужной цены')}

2,385

(4 ответов, оставленных в Предложения по улучшению системы)

Мы обязательно проверим работу js на страницах редактирования товаров, если проблема будет найдена, она обязательно будет решена в следущих версиях.

Единственное, не появляется значение $offer.title в случаях если у меня 1 вариант комплектации. Если их 2 и больше, то все выводиться нормально.

Если у товара 1 комплектация, то она не выводится, т.к. это и есть сам товар.
Вам надо поставить проверку на наличие комплектаций(Если больше двух). Сделать это просто:

{if $product->isOffersUse()}
    //Если есть комплектации и их больше 1
{else}
    //Иначе просто сам товар.
{/if}

Насчёт цены для комплектаций, то вы верно подсмотрели решение. В вашем случае нужна конструкция:

{$product->getCost('Имя цены или null','номер комплектации начиная от 0')}

{*Например*}
{$product->getCost(null,2)} {*Получение цены основной для третьей комплектации*}

Всё просто.
Цену можно получить в шаблоне следующей конструкцией:

{$product->getCost('Имя цены или ничего')}

Если имя цены не указано, то возвращается значение цены по умолчанию.
Для вашего случая цену можно вывести так:

{*Цена по умолчанию*}
{$product->getCost()}

{*Цена зачеркнутая*}
{$product->getCost('Зачеркнутая цена')}

Т.к. {$product} является объектом \Catalog\Model\Orm\Product, то Вам будут доступны все фунукции класса Product в файле /modules/catalog/model/orm/product.inc.php
Пробуйте и отпишитесь smile

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

Категория
      Подкатегория1
                     Бренд1
                     Бренд2

Хотелось бы видеть когда заходишь в Категория->Подкатегория->Бренд1   в теге H1 видеть "Подкатегория1 Бренд1", а не "Бренд1". Либо в некоторых случаях вообще самому прописать. Если бы было такое поле, его например можно было бы использовать и при выводе брендов. Тогда и там бы мы видели "Подкатегория1 Бренд1 ()", "Подкатегория2 Бренд1 ()" ..., а не "Бренд1 ()", "Бренд1 ()", "Бренд1 ()" ...

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

Можно расширить программно объект категории и добавить ей поле - "короткое название". В шаблоне проверять если есть короткое название, то выводить его, ну или наоборот.

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

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

Что касается того, что у Вас выводится BTL не сколько раз, то всё верно. В данном шаблоне выводятся категории, в которых лежат Ваши товары данного бренда. Видимо они называются "BTL" все. Вам нужно наверно либо программно в шаблоне подгружать к названию категории ещё название её родителя беря название родителя. Либо что на мой взгляд будет более правильно переименовать "BTL" категории в более подробные. Например "Станки BTL".

2,392

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

Ну тогда Вам надо править шаблон и выводить описание. Закажите программистам доработку или нам в платную поддержку обратитесь. http://helpdesk.readyscript.ru

2,393

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

Надо smile По другому никак) Либо придумайте проще характеристики. Подсмотрите у конкурентов.

2,394

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

А как же нестандартные товары, где характеристики вообщем описательного характера?

Не получится сравнить программно два текста корректно. Это у меет, только человеческий глаз и мозг.
И что означают характеристики описательного характера?

2,395

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

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

Напишите пожелание в http://helpdesk.readyscript.ru

2,396

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

В шаблоне страницы сравнения, вверху выводятся по колонкам товары для сравнения. Вверху колонки картинка и название товара, ниже характеристики товара. Если характеристики не выводится, то значит их нет у данных товаров. Вывод описания в данном шаблоне не предусмотрен, т.к. он служит для сравнения характеристик товара, а не текста описания и другим текстом.
Что касается вывода на печать, то пока такой функции нет. Вы можете добавить такую кнопку и в шаблоне проверять приходящую из GET переменную скажем "print=1". И если она указана, то в if идти по другой ветке генерации шаблона.

Отлично!

2,398

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

Для закупочных цен. Применяется своя цена из "Справочника цен". А цена может быть в любой валюте.

2,399

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

Не за что. smile Дело в том, что курс считается по формуле:

Базовая валюта (умножить на) курс ЦБ = курс

Надо будет добавить, чтобы была проверка установки только одной базовой валюты.

2,400

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

У вас стоит 3 базовых валюты. А базовая должна быть одна. Оставьте базовую одну валюту.