Обратите внимание:
Товар на Юлмарте - https://www.ulmart.ru/goods/3556991
Товар на Сотмаркете - http://www.sotmarket.ru/product/benq-gw2760hs.html
И этот список можно продолжать бесконечно. Поверьте, это не спроста.

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

Уважаемые пользователи, 06.04.2016 в период с 19:00 до 22:00 запланированы работы по обновлению ПО на серверах ReadyScript, возможны кратковременные перебои в работе сайта.

Напишите, пожалуйста, в нашу поддержку. Нужно посмотреть более детально, что происходит на вашем сайте, как у вас настроены доставки.

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

580

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

Лицензия на продукт позволяет открыть 2 сайта в рамках мультисайтовости. Это означает, что оба сайта будут работать на одной физической копии платформы ReadyScript. Весь контент на мультисайтах будет разным - товары, новости, пункты меню, однако общими будут только пользователи.

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

В облаке - не существует мультисайтовости. Там 1 сайт = 1 облачный аккаунт. Соответственно если вы хотите открыть 2 сайта в облаке - вы это можете сделать. Они будут полностью независимы и отдельно тарифицированы.

Антивирус, CDN, Фильальная сеть, расширенная статистика продаж в новом нашем продукте - ReadyScript Мегамаркет.
Подробности здесь.

К сожалению, пока раздела документации по данному вопросу - нет. Постараюсь объяснить здесь, как это все работает.

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

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

Теперь о группах. В системе есть 2 особенные группы, которые назначаются автоматически системой.

1. Гости - эта группа присваевается абсолютно всем пользователям и не авторизованным тоже.  Любой посетитель вашего сайта - это точно Гость.

2. Клиенты - это авторизованный пользователь. Т.е. как только Гость авторизовался, он стал и Гостем и Клиентом.

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

Если вы предоставите все права Гостю, то вы не сможете отнять их у Клиента, именно поэтому права должны идти по нарастающей.

----------------------------------

Система по сути сейчас проверяет права на запись перед записью любого объекта
и на чтение при обращении к блок-контроллерам.

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

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

-----------------------------------

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

Пункты меню для админки формируются с помощью события getmenus.
Вы можете попробовать обработать данное событие в вашем модуле с более высоким приоритетом, например так:

namespace ВАШМОДУЛЬ/config;

class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this->bind('getmenus', null, null, 0); //0 - означает, что ваш обработчик будет вызван позже других и вы сможете переназначить пункт меню
    }

   public static function getMenus($items)
    {
        $items[] = array(
                'title' => 'Покупки в 1 клик',
                'alias' => 'oneclick',
                'link' => '%ADMINPATH%/catalog-oneclickctrl/',
                'sortn' => 16,
                'typelink' => 'link',                     
                'parent' => 'products',
                'count' => 100  //Здесь можно добавить ваш расчет количества.
            );
        return $items;
    }
}

затем просто скопируйте в вашу тему шаблон:
из  /modules/menu/adminmenu_branch.tpl
в /templates/{ВАША ТЕМА}/moduleview/menu/adminmenu_branch.tpl

В новом шаблоне добавьте отображение поля count с вашим расчетом.


Есть один нюанс. блок-контроллер админ панели \Menu\Controller\Admin\View использует кэширование списка пунктов меню, т.е. чтобы счетчик был "живым", вам нужно будет скопировать файл

modules/menu/controller/view.inc.php в modules/menu/controller/view.my.inc.php, и в нем подправить вызов:

$items = $this->api->getAdminMenu();

на

$items = $this->api->getAdminMenu(false, false);

Или разными комплектациями

ReadyScript, начиная с версии 2.0.2 (от 24.02.2016) полностью совместим с PHP 7. Средняя скорость формирования страниц на наших тестовых локальных магазинах снизилась с 180-240ms до 90-130ms. То есть в 2 раза!!!

586

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

В PHP - алгоритме транслитерации мягкий знак заменяется сейчас на -[тире], в следующей версии сделаем, чтобы он заменялся на пустое место, т.е. "настольный" будет - "nastolnyy"

587

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

Мы на днях изменили алгоритм обфускации, чтобы хостинги не ругались на данный файл.
Обновите файл licenser.inc.php на вот этот https://www.dropbox.com/s/ane1l10j9gzom … c.php?dl=1
Не нужно изменять расширение на php5.

Данный файл в ближайшие дни попадет в релиз.

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

Чем не устроили характеристики?

В сегодняшнем обновлении опубликовано

590

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

Добавление мета-тегов происходит с помощью конструкции addmeta
http://readyscript.ru/dev-manual/dev_sm … on_addmeta

Пример:

{addmeta property="og:image" content="http://мойсайт.com/logo.png"}
{addmeta property="og:image:type" content="image/png"}
...

Чтобы добавить на все страницы, добавьте конструкцию в файл layout.tpl или scripts.tpl, расположенный в корне вашей темы оформления.

Если хотите добавить на конкретную страницу, то добавьте в соответствующий шаблон. Например, если тема fashion, то за главную страницу отвечает index.tpl

Уточните на какой стадии возникает проблема.
1. Долгий ответ сервера
2. Вообще нет ответа от сервера (превышение лимита по памяти или времени)
3. или браузер такое количество HTML долго рендерит

Если долгий ответ от сервера, то можно посмотреть что именно в объекте \shop\model\cart  больше всего занимает времени и возможно отключить какие-то операции, например, начисление скидок (если у вас они не используются конечно), начисление налогов, разделение сопутствующих товаров на отдельные товары.

У нас есть 2 варианта генерации номера заказа: обычный - номер заказа увеличивается на 1 от предыдущего,
рандомный - номер заказа генерируется случайно по маске. (управляется в Веб-сайт -> Настройки модуля -> Магазин)

Судя по всему вам нужен первый вариант. Чтобы заказы начинались с 492, создайте заказ на сайте, затем поменяйте у вашего заказа значение в полях id, order_num на 491 в таблице {ваш префикс}_order , например через phpmyadmin. Следующий заказ будет уже с номером 492.

Есть 2 причины для этого:

1. Логическая. У нас в системе предусмотрен цикл системных (к которым запрограммированы действия) статусов:
a) Новый - в этом статусе заказ не получится оплатить у пользователя, система за этим следит.
б) Ожидает оплату - только в этом статусе система разрешает оплатить заказ, распечатать счет, квитанцию
в) В обработке - на тех. уровне ничего не происходит. Чисто информативный статус.
г) Другой или любой ваш статус - на тех. уровне ничего не происходит. Чисто информативный статус.
д) Выполнен и закрыт - дает системе понять, что заказ выполнен, это влияет на отображение в виджете и может использоваться многими другими модулями для выборки завершенных успешно заказов.
е) Отменен - в этом статусе остатки товаров возвращаются на склады, статус однозначно позволяет доп. модулям выбирать отмененные заказы, например для статистики или еще чего-либо.

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

Это первая причина.

2. Практическая. Многие наши пользователи делают длинные предложения в качестве статусов, например:
"Передано в службу доставки. По вопросам звоните 8-800-....." или "Некоторых позиций - нет на складе, в ближайшее время в сами свяжется наш менеджер".

Так вот такие длинные конструкции в кнопках - неудобны, поэтому визуально они оформлены в виде вертикального выпадающего списка "Другого статуса".

Нет, так не должно быть. Проверили на нашем тестовом магазине, не смогли обнаружить такое поведение.
Порядок действий такой:
1. Открыли оформленный ранее заказ
2. Добавили товар с другим типом цен
3. Сохранили заказ

Цена старых товаров не изменилась.

Насколько я помню у вас кастомный шаблон просмотра заказа в админке, попробуйте для теста загрузить стандартный шаблон orderview

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

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

если речь идет о JSON внутри атрибутов тега, то это не подходит.

data-change-cost='{ ".offerBarcode": "18 "GB"", ".myCost": "141 360 ", ".lastPrice": "0 "}'

если вы вместо " выведете "[обычную кавычку], JSON будет также сломан.

На удивление $(element).data('changeCost') - не может вернуть объект,
хотя если вы удалите " - будет возвращен объект. Вся проблема, в том, что в методе jQuery.data используется механизм примерно такого содержания: $.parseJSON( $(this).attr('data-change-cost') ), а $(this).attr('data-change-cost') - преобразует " в кавычки, тем самым ломает возможность дальнейшего парсинга JSON.

596

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

Да, пожелание - нужное. Напишите, пожалуйста, в сервис пожеланий. (helpdesk.readyscript.ru)

Это больше к 1С-никам вопрос.

Сортировочного индекса у статусов заказа - нет

Проблема, возникла потому что jquery не может корректно считать кавычку ("  из аттрибута dom элемента, чтобы затем распарсить json из него)
http://www.eq8.eu/blogs/12-json-array-i … -attribute

Решение:
Просто не используйте двойные кавычки в артикуле товара.

Вы можете в меню сделать иерархию:
Верхнее меню
-- пункт 1
-- пункт 2
Нижнее меню
-- пункт 1
-- пункт 2

Затем в настройках соответствующего блока Меню указать нужный корневой элемент для вывода. Таким образом на странице можно вывести разные меню, добавив сколько нужно блоков меню на странице. У каждого блока вы можете указать свой шаблон в настройках блока.

В системе категории товаров, меню, статьи - это абсолютно независимые сущности, в абсолютно независимых модулях, это придает простоту системе. Если вы хотите добавить ссылку к списку категорий, просто отредактируйте шаблон блока Категорий товаров.