• На рассмотрении

    0

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

    Павел С Обновлен 9 дней назад в категории CMS Админ. панель 0

    В разделе Магазин > Скидочные купоны у созданного купона в первой вкладке "Основные" есть выбор категорий или товаров на которые действует промокод.
    Если создатель промокода забыл указать товар или категорию, применение такого промокода может привести к сбою.
    Прошу доработать и добавить следующее правило: если у промокода не указаны продукты или категории, тогда по умолчанию он действует на все товары и категории.
  • На рассмотрении

    0

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

    Павел С Обновлен 13 дней назад в категории CMS Админ. панель 0

    В модуле Магазин есть пункт: Автоматически изменять статус заказа, который находится в статусе L более N дней
    Прошу доработать этот пункт, необходимо иметь возможность более тонко настраивать данный пункт, не в днях, а в минутах, или же дайте возможность настраивать как в днях, так и в минутах одновременно.
  • На рассмотрении

    0

    Вывод дополнительной информации в настройках групп пользователей

    Павел С Обновлен 19 дней назад в категории CMS Админ. панель 0

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

    + было бы удобно иметь возможность скопировать права какой либо существующей роли и на ее основе создать новую роль.
  • На рассмотрении

    0

    Поиск по товарам в админке (без категории)

    Андрей Викторов Обновлен 19 дней назад в категории CMS Админ. панель 15

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

    0

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

    Павел С Обновлен 19 дней назад в категории CMS Админ. панель 0

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

    +2

    Настройка прав на массовое редактирование объектов

    Павел С Обновлен 4 месяца назад в категории CMS Админ. панель 1

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

    0

    Адаптация модуля "Обмен данными с 1С" для интеграции с Saby

    Виталий Бурягин Обновлен 6 месяцев назад в категории CMS Админ. панель 0

    Адаптация модуля "Обмен данными с 1С" для интеграции по протоколу Commerce ML с сервисом Saby (СБИС).
    На данный момент обмен проходит с периодическими ошибками.

    Мануал Saby: https://saby.ru/help/roz/stores/comm
  • На рассмотрении

    -1

    Запрет регистрации с зарубежными ящиками

    Андрей Осипов Обновлен 10 месяцев назад в категории CMS Админ. панель 0

    Здравствуйте.

    Внесите пожалуйста правки на стороне RS, чтобы можно было через опцию "Запрет email на зарубежных сервисах" блокировать возможность регистрации


    Как я понимаю это возможно сделать правкой register.inc.php

    Ниже пример доработки контроллера так, чтобы при отправке формы регистрация блокировалась, если e‑mail относится к списку публичных доменов. Мы:

    Добавили список запрещённых доменов.
    Перед сохранением пользователя проверяем домен e‑mail.
    Если домен запрещён — добавляем ошибку к полю e_mail и не выполняем сохранение/автологин.
    Сохраняем текущую логику (очистка openpass, рендер шаблона и т.д.).

    Код с правками (комментарии меткой // NEW):
    <?php
    /**
    * ReadyScript (http://readyscript.ru)
    *
    * @copyright Copyright (c) ReadyScript lab. (http://readyscript.ru)
    * @license http://readyscript.ru/licenseAgreement/
    */
    namespace Users\Controller\Front;

    use RS\Application\Auth as AppAuth;
    use RS\Controller\Front;
    use RS\Helper\Tools as HelperTools;
    use RS\Orm\Type;
    use RS\Site\Manager as SiteManager;
    use Users\Model\Orm\User;

    class Register extends Front
    {
    /** Поля, которые следует ожидать из POST */
    public $use_post_keys = ['is_company', 'company', 'company_inn', 'fio', 'name', 'login',
    'surname', 'midname', 'phone', 'e_mail', 'openpass', 'openpass_confirm', 'captcha', 'data', 'subscribe_on'];

    // NEW: список запрещённых публичных доменов
    private array $blocked_public_domains = [
    'gmail.com',
    'yahoo.com',
    'ymail.com',
    'rocketmail.com',
    'outlook.com',
    'hotmail.com',
    'live.com',
    'msn.com',
    'icloud.com',
    'me.com',
    'mac.com',
    'proton.me',
    'protonmail.com',
    'zoho.com',
    'aol.com',
    'gmx.com',
    'gmx.net',
    'email.com',
    'consultant.com',
    'fastmail.com',
    'tutanota.com',
    'tuta.com',
    'yahoo.co.jp',
    'naver.com',
    'daum.net',
    'outlook.de',
    'outlook.fr',
    'gmx.de',
    'web.de',
    'orange.fr',
    'laposte.net',
    'seznam.cz',
    'walla.co.il',
    'rediffmail.com',
    ];

    function actionIndex()
    {
    $this->app->breadcrumbs->addBreadCrumb(t('Регистрация'));

    $this->app->title->addSection(t('Регистрация'));
    $this->app->meta->addDescriptions(t('На этой странице вы можете зарегистрироваться'));

    $referer = $this->url->request('referer', TYPE_STRING, SiteManager::getSite()->getRootUrl());
    $referer = HelperTools::cleanOpenRedirect(urldecode($referer));

    $user = $this->getUserForRegistration();

    if ($this->isMyPost()) {
    $user['changepass'] = 1;

    // NEW: Валидация домена e-mail перед сохранением
    $email = (string) $user['e_mail'];
    if ($email !== '') {
    $email_domain = strtolower(preg_replace('/^.+@/u', '', $email));
    if ($email_domain === '' || $this->isBlockedPublicDomain($email_domain)) {
    // Добавляем ошибку к полю e_mail
    $user->addError(t('Регистрация с публичными e‑mail доменами запрещена. Укажите корпоративный адрес.'), 'e_mail');
    }
    } else {
    // Пусть встроенные чекеры обработают пустой e-mail, здесь ничего не делаем
    }

    // Продолжаем только если нет ошибок (включая нашу)
    if (!$user->hasError() && $user->save()) {
    //Если пользователь уже зарегистрирован
    AppAuth::setCurrentUser($user);
    if (AppAuth::onSuccessLogin($user)) {

    return $this->result
    ->addSection('closeDialog', true)
    ->addSection('reloadPage', true)
    ->setNoAjaxRedirect($referer);
    } else {
    $user->addError(AppAuth::getError());
    }
    }
    }

    //Не передаем пароль в открытом виде в браузер
    $user['openpass'] = $user['openpass_confirm'] = '';

    $this->view->assign([
    'conf_userfields' => $user->getUserFieldsManager(),
    'user' => $user,
    'referer' => urlencode($referer)
    ]);

    return $this->result->setTemplate('register.tpl');
    }

    /**
    * Возвращает объект пользователя с включенными необходимыми чекерами для валидации при регистрации
    *
    * @param User $user
    * @return User
    */
    private function getUserForRegistration()
    {
    $user = new User();
    $user->usePostKeys($this->use_post_keys);

    //Включаем капчу
    if (!$user['__phone']->isEnabledVerification()) {
    $user['__captcha']->setEnable(true);
    }

    $user->enableOpenPassConfirm();
    $user->enableRegistrationCheckers();

    return $user;
    }

    // NEW: проверка домена на запрет
    private function isBlockedPublicDomain(string $domain): bool
    {
    // нормализуем IDN (если в проекте есть утилита для IDN — заменить на неё)
    $normalized = strtolower($domain);

    // Прямая проверка
    if (in_array($normalized, $this->blocked_public_domains, true)) {
    return true;
    }

    // Дополнительно: блокируем субдомены запрещённых доменов (редкий случай, но на всякий)
    foreach ($this->blocked_public_domains as $blocked) {
    if ($normalized === $blocked) {
    return true;
    }
    if (str_ends_with($normalized, '.' . $blocked)) {
    return true;
    }
    }

    return false;
    }
    }
  • На рассмотрении

    +1

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

    Денис Плотников Обновлен 10 месяцев назад в категории CMS Админ. панель 0

    При мультиредактировании товаров необходимо иметь возможность удалить товары из выбранной спецкатегории
    Сейчас возможно только отчистить все и назначить новые
    Пример необходимости: есть спецкатегории (со стикерами) для холодильников с функциями NoFrost, зона свежести . Которые были отфильтрованы по характеристикам
    И есть спецкатегория Скидка которая отфильтрована по цене.
    Необходимо пересмотреть (удалить и назначить по другим условиям) спецкат Скидка, не затрагивая при этом другие назначенные спецкатегории
  • На рассмотрении

    +12

    Уведомления и доработка существующих шаблонов уведомлений

    Павел С Обновлен 12 месяцев назад в категории CMS Админ. панель 3

    1. После каких либо изменений в заказе, каждый 10 клиент звонит в офис и каждый раз задает один и тот же вопрос: Что значит мой заказ был изменен? Возможно уведомление нужно изменить на: Обновление информации в заказе №номер_заказа
    2. На разные способы доставки нужны разные шаблоны e-mail и смс уведомлений. Например нужны разные шаблоны, когда клиент только оформил заказ, нужны разные шаблоны когда заказ закрывается, и.т.д.
    3. Писал ранее об этом! Сделайте нормальный редактор шаблонов уведомлений, чтобы обычный пользователь мог редактировать шаблоны. (все что нужно, это добавить текстовый редактор + описание переменных)