Напишите абсолютный путь до sitemap-1.xml в robots.txt:

Sitemap: http://{ВАШ_ДОМЕН}/sitemap-1.xml

ReadyScript - платформа мультисайтовая, поэтому в конце подписывается ID сайта.
Но не понятно чем это мешает. Жесткое имя SITEMAP.XML - нигде не регламентировано. Файл sitemap.xml может называться абсолютно как угодно, хоть karta_saita.xml.

Путь к нему нужно прописывать в robots.txt в директиве
User-agent: *
Allow: /
Sitemap: /sitemap-1.xml

https://help.yandex.ru/webmaster/contro … ml#sitemap

Или если говорить о google, yandex, то там в кабинете вебмастера можно также указывать путь к sitemap на вашем сайте.

В конструкции, выводящей комплектации в файле product.tpl, вы можете добавить условие:

<select name="offer">
    {foreach from=$product.offers.items key=key item=offer name=offers}
         {if $offer.num} {* - это проверка общего остатка комплектации на всех складах  *}
               <option value="{$key}" ....>{$offer.title}</option>
         {/if}
    {/foreach}
</select>

Нет. Описанием служат названия файлов и их структура относительно корня темы. Этого вполне достаточно.
Крайний случай - вы всегда можете воспользоваться поиском по содержимому файлов, чтобы найти нужный шаблон в теме.

Обратите внимание, Александр пишет:

Если это тема "Классическая", то копируем файл ....

У вас судя по всему тема не классическая, а fashionzet,  наверное это ваша вариация темы - fashion ?
Если так, то в теме fashion - эта надпись в других файлах хранится.

/wrapper.tpl
/wrapper_checkout.tpl
/exception.tpl

Уточните, кэш очищали? (иконка стрелки в правой части верхней черной панели администратора)

В системе работает одинаковый принцип для подключения шаблонов из любого места.
%shop%/orderview.tpl - означает, что шаблон сперва будет искаться в папке с текущей темой, а лишь потом в модуле.

783

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

Те показатели, что вы привели не дадут большую нагрузку, поэтому можете разместить сайт на любом шаред хостинге (очень желательно , чтобы там был PHP акселератор APC  или OpCache).

Выбирайте по месту на диске, чтобы у вас поместились фотографии для всех ваших товаров. На один товар ориентировочно нужно рассчитывать, что будет 500 Кб фото со всеми миниатюрами.

Вы можете добавить

<input type="text" name="amount" value="1"> 

в шаблон карточки товара /templates/{ВАША ТЕМА}/moduleview/catalog/product.tpl перед кнопкой "Заказать", JavaScript подхватит значение из данного поля.

В каждой теме оформления есть файл со стилями - \templates\ВАША_ТЕМА\resource\css\style.css

С помощью главного инструмента верстальщика - это плагина fireBug для браузера Mozilla FileFox или штатными средствами отладки любого браузера (появляются по нажатию на F12 в Chrome, IE9+), вам необходимо определить какой стиль задает отображение того или иного блока на странице. (шапка, подвал или любой другой блок)

Далее идете в CSS и правьте соответствующий стиль. За фон отвечает свойство background.

Да, папки moduleview/main/blocks/logo нужно создать, если речь идет о классической теме. Далее нужно сделать все, как написал Александр. Иначе изменения затрутся после обновления.

В админ. панели можно всегда включить колонку - Цены в разделе Каталог товаров. Отсортировать по цене и увидеть товары с нулевой ценой.

Оставьте пустое поле "папка сайта", адрес - http://ВАШ_ДОМЕН/sitemap-1.xml - корректный.

Поле "папка сайта" - необходимо заполнять у дополнительных сайтов (в рамках мультисайтовости), если вы хотите, чтобы другой сайт был в виртуальной подпапке. Например:

http://site.ru - основной сайт
http://site.ru/en - другой сайт в рамках мультисайтовости.

Для построения абсолютных адресов на сайте используется "Главный домен сайта".
Главный домен сайта - это первый домен, указанный в поле Доменные имена в разделе Управление->Сайты->Ваш сайт.

Проверьте, что у вас указано в данном поле. Должно быть доменное имя без http://

Вы можете сделать простейший контроллер.

<?php
namespace ВАШ МОДУЛЬ\Controller\Front;

class Compare extends \RS\Controller\Front
{
    function actionIndex()
    {
           $compare = \Catalog\Model\Compare::currentCompare();
           $compare->removeAll();

           return $this->result->setSuccess(true);
    }
    
}     

Задать маршрут для контроллера

<?
namespace ВАШ МОДУЛЬ\Config;

class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this
            ->bind('getroute');
    }
    
    public static function getRoute($routes) 
    {
        $routes[] = new \RS\Router\Route('ВАШ МОДУЛЬ-front-compare', array(
            '/resetcompare/',
        ), null, t('Удаление всех товаров из сравнения'));
        return $routes;
    }

}

после этого дернуть URL /resetcompare/ из jQuery, чтобы удалить все товары из сравнения одним запросом к серверу.

Ну либо в JavaScript просто последовательно эмитировать click на крестики у товаров в сравнении, если не хотите создавать простой контроллер.

т.к. блоки вертикальные, то более оптимально конечно будут смотреться вертикальные фото. Но а в случае, если у вас фото только квадратные, то возможно вам подойдет другой тип масштабирования (с cropping'ом).

в шаблоне list_products.tpl вместо этой строки:

<img src="{$product->getMainImage()->getUrl(141, 185, 'xy')}" class="middlePreview">

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

<img src="{$product->getMainImage()->getUrl(181, 185, 'cxy')}" class="middlePreview">

Познакомиться  с типами масштабирования можно здесь

792

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

Мы отказались от такого варианта, по многим причинам:

Учитывая то что пропускная способность загружающего обычно ограничена, то нет смысла загружать 10 фото в параллельно за 5 мин, или загрузить те же 10 фото последовательно за 5 мин.

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

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

793

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

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

Либо вообще можете сперва создать все товаров, а потом в конце разом загрузить фото ко всем товарам.
http://readyscript.ru/text-blog/zagruzk … dyscript-/

Попробуйте отключить опцию в разделе Управление->Настройка системы "Отображать администратору спецблок на сайте в режиме отладки". т.к. шапка администрирования подключает собственную версию jquery.

Краткое описание у товара можно получить двумя способами:

Можно так: {$product.short_description} - будет возвращать исключительно поле "Короткое описание"

А можно так: {$product->getShortDescription(300)} //где 300 - это требуемое количество символов. Данный метод вернет значение поля short_description, а если оно не задано, то вырежет заданное количество символов из обычного описания.

796

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

В настоящее время есть только скидки по купонам. Индивидуальные скидки, т.е. вы определенному пользователю можете поставить отдельный тип цен со скидкой. Напишите, пожалуйста, развернутое пожелание (с описанием всех деталей, которые вам бы хотелось видеть) в наш сервис, мы обязательно сделаем такой модуль.

А попробуйте просто добавить необходимую вам версию jQuery в файле layout.tpl (вместо подключаемой стандартной 1.8.x) вашей темы оформления, вполне вероятно, что все пройдет успешно.

Обновление версий всех сторонних компонентов(Smarty, jQuery, плагины jQuery) есть в планах.

Да, для данной задачи в ReadyScript есть уникальное решение. Разработчику - никогда не нужно лезть в базу, чтобы добавлять или обновлять какие-либо поля в базе.

Вы просто изменяете описание Orm объектов.
Например с помощью обработки необходимого события в вашем модуле
http://readyscript.ru/dev-manual/dev_or … orm_events

Потом заходите в раздел Веб-сайт->Настройка модулей. Выбираете ваш модуль и нажимаете "Переустановить модуль". Установщик сам найдет все ORM объекты модуля и приведет структуру БД в соответствие с описанием ORM объекта.

То есть для синхронизации локальной версии сайта и удаленного сайта,
нужно просто перекинуть файл с классом ORM объекта, например product.inc.php на боевой сервер и "Переустановить модуль", описанным выше образом.

Для переноса данных с другого магазина, можно воспользоваться внешними инструментами, доступными в админ. панели (CSV). Если вы хотите произвести перенос данных на низком уровне (БД), то вам необходимо написать скрипт переноса данных. В фреймворке ReadyScript есть 2 уровня, на котором можно работать со вставками - БД:

1. Это уровень SQL запросов - класс \RS\Db\Adapter

\RS\Db\Adapter::sqlExec("INSERT INTO table(a,b) VALUES('#a', '#b')", array('a' => 'значение А', 'b' => 'значение B'));

2. Это уровень ORM объектов.(рекомендуемый уровень). в данном случае вы будете оперировать понятием объект.
Например, если необходимо вставить товар, то вставка должна происходить так:

$product = new \Catalog\Model\Orm\Product;
$product['title'] = 'Название товара';
$product['alias'] = 'URL имя товара';
$product['xdir'] = array('ID категории', 'ID другой категории, если нужно');
$product['xcost'] = array(
   'ID типа цен' => 'Цена',
   'ID типа цен2' => 'Цена2'
);
$product['maindir'] = 'ID главной категории';
//...
if ($product->insert()) {
     //Товар добавлен, ID товара - $product['id'];
}

Да, скорее всего именно из-за этого (что слова в индексе не встречаются именно в такой последовательности). Точно посмотреть всегда можно в таблице ..._search_index как составлен поисковый индекс для конкретного товара.

Вы можете обойти эту проблему, просто добавив точную фразу "Toyota Surf", например в ключевые слова товара, на вкладке мета-теги.