Ярослав пишет:
   /**
     * Возвращает подготовленную для поиска likePlus строку
     *
     * @param string $query
     * @return string
     */
    protected function prepareLikePlusString($query)
    {
        $config = ConfigLoader::byModule('search');
        $dis = preg_split('//u', html_entity_decode($config['search_type_likeplus_ignore_symbols']), -1, PREG_SPLIT_NO_EMPTY);

        return str_replace($dis, ' ', mb_strtolower($query));
    }

Уважаемые разработчики, подскажите, пожалуйста, почему замена идет на пробел, а не просто вырезается символ?
У меня с пробелом артикулы, маркировку не ищет. В поле indextext данные идут слитно, но при поиске тире, например, заменетс на пробел и поиск не работает.
Ставлю

   return str_replace($dis, '', mb_strtolower($query));

все замечательно работает


Суть опции - search_type_likeplus_ignore_symbols, указать символы, которые будут считаться разделителями слов. Поиск like+ все равно идет по всем словам.

Эта опция не должна формировать новые слова. В случае разделителя ''[пустая строка], Редискрипт будет заниматься формированием новых слов из кусочков других слов.

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

Уважаемые клиенты!

Публикуем график работы на майских праздниках 2020.

С 1 по 5 мая - мы уходим на выходные дни.
С 6 мая мы работаем как обычно с 10:00 до 19:00 по МСК.

риза пишет:

здравствуйте.как могу заказать пряжу в казахстан

Мне кажется вам быстрее ответят, если вы спросите на сайте mybobbin, а не тут.

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

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

Джордж пишет:

Здравствуйте. Так получается вывести количество товаров на странице категории.

{$category.fields.itemcount}

А как сделать, чтобы там же, при изменении фильтров, количество товаров менялось?

-------

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

Я бы не рекомендовал вам этого делать. Обычно делают расчет количества товаров с учетом фильтров только в рамках текущей категории и выводят это число возле фильтров.

131

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

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

-----------

Если имеется ввиду другая задача. Формировать фильтр по значениям характеристик комплектаций - логически невозможно.

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

Если товар бывает в размерах S,M,L,XL.
То должна быть списковая характеристика "Размер товара" со значениями S,M,L,XL.

А у каждой комплектации задана хар-ка "Размер товара" только с одним значением S или M или L или XL

132

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

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

Про push в каком приложении идет речь, кто и где изменил статус.
Распишите весь сценарий подробнее пожалуйста. Кто меняет статус и кто уведомляется?

Алексей пишет:
admin пишет:

В css есть order, дописывайте произвольные стили к секциям и все.
В вашем css предусмотрите media query для применения нужного order при необходимых разрешениях.

Спасибо!
тогда за что отвечает поле "порядок" в конструкторе?


Хороший вопрос.
Сейчас проверили - это поле имеет смысл только при использовании bootstrap4. Наша стандартная тема Flatlines сделана на bootstrap3, в bootstrap3 классов для reordering еще не было.

135

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

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

------

Например:
В Классической теме, отображается картинка спецкатегории в качестве стикера.
В Детской теме идет заранее заложенная дизайнерами картинка "Новинка", а выводится она, когда товар состоит в спецкатегории с алиасом "new".
В Современной теме выводится просто название спецкатегории, если у спецкатегории установлен флаг "Показывать как ярлык у товаров"

В css есть order, дописывайте произвольные стили к секциям и все.
В вашем css предусмотрите media query для применения нужного order при необходимых разрешениях.

137

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

Воспользуйтесь бесплатным модулем в маркетплейсе "Редактор ORM объектов".
http://marketplace.readyscript.ru/addons/ormeditor/

Добавьте к объекту Catalog\Model\Orm\Dir поле Картинка (Например с именем banner_image). Так вы сможете загружать картинку в любую категорию.

А затем задействуйте данную картинку в нужном месте шаблона, обращаясь к ней так:

<img src="{$category.__banner_image->getUrl(1024, 500)}">

В итоге, вам не нужен модуль "баннеры" вообще.

138

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

Вы абсолютно некорректно используете конструкцию $router->getUrl(), в первом аргументе должен идти ID маршрута (route).
https://readyscript.ru/dev-manual/dev_routing.html

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

У нас есть механизм, запоминающий путь попадания пользователя в карточку товара.

Логика этого механизма следующая:
1. Если пользователь попал в карточку товара через одну из категорий товара, то выбирается она
2. Если пользователь попал в карточку товара напрямую (из поисковика, например), то выбирается основная категория

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


{$bc = $app->breadcrumbs->getBreadCrumbs()}
{$last = end($bc)}
<a href="{$last.href}">Назад</a>

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

Для этого добавьте в шаблон product.tpl:

<a href="{$product->getmainDir()->getUrl()}">Назад</a>

Добрый день!

Напишите в нашу платную поддержку, разработаем.
Нужна будет ссылка на тех.документацию от ВТБ.

Menu\Controller\Block\Menu - потомок RS\Controller\StandartBlock, значит он принимает параметры, которые принимает StandartBlock. Смотрим какие параметры принимает StandartBlock в методе getParamObject, видим:

$controller_param_object = new ControllerParamObject(
            new PropertyIterator(array(
                'indexTemplate' => new Type\Template(array(
                    'description' => t('Шаблон'),
                    'attr' => array(array(
                        'placeholder' => $this->default_params['indexTemplate']
                    ))
                ))
            ))
        );

Соответственно можно добавить параметр indexTemplate и указать в нем шаблон для рендеринга:

{moduleinsert name="\Menu\Controller\Block\Menu" hideAutoComplete=true indexItemplate="........"}

В системе представлена одна реализация пагинатора. Готовой кнопки "переключить пагинатор" - нет.

Нужно очистить кэш в браузере ctrl+shift+del

Да, согласен, логичнее было бы писать данную информацию в БД до оформления заказа
Наш модуль из этих только СДЕК, рассмотрим данную доработку в новых версиях.

Опубликовали функциональность, связанную с маркировками.
Ждем первые отзывы от продавцов обуви.

Выбранный пункт самовывоза отображается в заказе в административной панели в разделе "Информация о заказе" в поле "Выбран пункт забора" http://joxi.ru/zANkaDbUvO3v4r

Этого достаточно для информирования и отправки, больше он нигде не должен быть выбран.

А что значит устанавливать случайного менеджера? Если их 5 человек и они в разных городах. Система ведь не определит из какого города сделан заказ и не назначит его менеджеру из этого города?

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

Чтобы добавить данное уведомление, просто откройте к редактированию шаблон Модуль:Магазин/view/notice/touserorderchange.tpl

И добавьте там строки:
    {if ($order_before.manager_user_id != $order.manager_user_id)}
       - Назначен новый менеджер<br>
    {/if}

Сохраните шаблон с другим именем и выберите его в разделе Веб-сайт -> Уведомления

Информация по выбранному ПВЗ сохраняется строкой в виде адреса.

 if (isset($extra_info['code'])){ //Если есть место забора товара
                    $sxml->Order->Address['PvzCode'] = $extra_info['code']; //Уходит в заказ CDEK
                    $order->addExtraInfoLine(t('Выбран пункт забора'),      $extra_info['addressInfo'],null,'pvz',Order::EXTRAINFOLINE_TYPE_DELIVERY); //Уходит строкой в базу RS

                }

150

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

Если знакомы с PHP и HTML версткой, укажите про какое конкретно уведомление идет речь, подскажем из какой переменной можно достать ссылку на фото.

Если не желаете этим сами заниматься, просто напишите задачу в платную поддержку, все сделаем за вас.