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

    +2

    Заказ в 1 клик с выбором количества

    Владимир 1916 Бирич Обновлен 6 лет назад в категории CMS Общий функционал 1

    В одном ИМ увидел реализацию заказа в 1 клик, но там можно выбрать количество.
    Количество меняется в всплывающем окне и там же сразу меняется сумма.
    Считаю, это ИДЕАЛЬНО!
    Пользователи очень ленивые. Заходить в корзину, заполнять кучу полей никто не хочет.
    Но при этом, перезванивать каждому, чтобы уточнять наличие - занятие неблагодарное. А, например, у меня такой товар, который почти всегда по несколько штук заказывают.
    Хотелось бы увидеть такое в RS. Как вариант в качестве платного модуля в Маркетплейсе.
  • На рассмотрении

    +2

    Обнулять остаток комплектаций при импорте из 1С

    Сергей Токарев Обновлен 6 лет назад в категории CMS Общий функционал 1

    Здравствуйте. Очень не хватает функции "обнулять остаток" комплектаций после обмена



    Раньше не обращали внимания, когда люди заказывали товары, которых у нас нет в наличии.

    Если, например, вчера была выгружена какая-нибудь куртка с размерами S, M, L по 1 шт каждый, а сегодня в магазине продали размер L и он не попадет завтра в выгрузку, то соответственно остаток у комплектации L не обновится на сайте и она так и будет висеть на остатке.

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

    +2

    Пролистывание картинок без открытия карточки товара

    Роман Аникиенко Обновлен 4 месяца назад в категории CMS Общий функционал 0

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

    +2

    Остатки не корректируются при отмене заказа

    Олег Токарев Обновлен 8 лет назад в категории CMS Общий функционал 4

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

    Происходит путаница с остатками, которую трудно выявить, особенно тем магазинам, кто не работает с 1с.
    Необходимо возвращать остаток к предыдущему значению, если заказ не был исполнен (то есть произошла отмена заказа).
  • На рассмотрении

    +2

    Оформление заказа покупателем, покупатель раздражён и это плохо

    Андрей Акулов Обновлен 2 месяца назад в категории CMS Общий функционал 0

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

    +2

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

    Дмитрий Петухов Обновлен 9 лет назад в категории CMS Общий функционал 3

    Сделать для каждого статуса возможность настраивать индивидуальное уведомление. Сейчас эти уведомления вообще никак из админки не настраиваются, во всяком случае я не нашел.
  • На рассмотрении

    +2

    Снег на сайте

    Дмитрий Нагорный Обновлен 8 лет назад в категории CMS Общий функционал 1

    Сделайте пожалуйста простенький модуль чтобы шел снег на сайте. Мелочь, а приятно.
  • На рассмотрении

    +2

    Перевод сайта. Интернационализация контента

    Поло Арт Обновлен 5 лет назад в категории CMS Общий функционал 7

    Всем привет!

    Создаём новый проект и столкнулись со следующей проблемой

    https://readyscript.ru/dev-manual/dev_lang.html#dev_lang_initialization
    Идентификатором языка является двухсимвольное обозначение языка. Например: en,de,ru. Идентификатор языка получается с помощью метода RS::Language::getCurrentLang. Метод возвращает текущий язык системы по следующему правилу:

    Если это административная зона:
    попытка использовать язык, установленный в cookie
    попытка использовать язык браузера
    возвращается базовый язык

    Если это клиентская часть:
    попытка использовать язык, установленный в cookie
    попытка использовать язык текущего сайта
    возвращается базовый язык

    Вопрос. Для чего и зачем именно так сделано?!
    Если сайт на английском, то всё должно быть на английском по дефолту. Заходит в админку, допустим, наёмный сотрудник, у которого локаль польская - и что он получит? Админку на русском!

    Условие задано в файле /core/rs/language/core.inc.php в функции getCurrentLang() как:
    if (\RS\Router\Manager::obj()->isAdminZone()) {
    //Если это административная панель
    $sysLangs = self::getSystemLanguages();

    if ($request->cookie(self::COOKIE_ADMIN_LANG, TYPE_STRING)) {
    //Ищем установленный язык в cookie
    $current_lang = $request->cookie(self::COOKIE_ADMIN_LANG, TYPE_STRING);
    } else {
    //Ищем предпочтительный язык у браузера
    $accept_langs = explode(',', $request->server('Accept-Language'));

    ЗАЧЕМ?!

    Я создаю core.my.inc.php, где убираю это условие, оставляю лишь:
    if ($request->cookie(self::COOKIE_CUSTOMER_LANG, TYPE_STRING)) {
    //Читаем параметр из cookie
    $current_lang = $request->cookie(self::COOKIE_CUSTOMER_LANG, TYPE_STRING);
    } else {
    $site = \Setup::$INSTALLED ? \RS\Site\Manager::getSite() : null;
    $current_lang = ($site) ? $site->language : $request->cookie(self::COOKIE_CUSTOMER_LANG, TYPE_STRING, \Setup::$DEFAULT_LANG);
    }

    Но все эти my в ядре это так, на время... пока не обновится что-то. А с второй версии очень многое обновилось.

    Второй вопрос. Где взять полные файлы messages.lng.php и messages.js.php ?
    Сидеть по строчке выковыривать очень и очень долго.

    Третий вопрос. Что делать с тем, что строковые значения постоянно вместе с апдейтами, чуть-чуть, да изменяются?
  • На рассмотрении

    +2

    Вариант доставки самовывоз с оплатой

    Дмитрий Петухов Обновлен 9 лет назад в категории CMS Общий функционал 6

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

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

    +2

    Многомерные комплектации. Добавление CSS класса к характеристикам с 0 остатком.

    Денис Ефремов Обновлен 9 лет назад в категории CMS Общий функционал 0

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

    Ждал я долго, думал что вы напишете, но клиент потребовал реализации и пришлось писать. Заморочка, конечно, была та еще.

    В общем, вот 2 метода, которые нужно добавить в jquery.changeoffer.js, а затем вызвать первый метод в конце changeMultiOffer таким образом - checkEmptyOffers(selected):


    /**
    * Вычисляем характеристики, для которых нет в наличии товаров
    * @param {obj} selected Массив выбранных характеристик checkEmptyOffers
    */
    checkEmptyOffers = function(selected) {
    // Из массива выбранного делаем объекты данных для каждой хар-ки отдельно
    selected.forEach(function(el, i) {
    // Исключаем выбранное значение из возможных
    var t = selected.filter(function(v, idx) {
    return idx != i;
    });
    disableOptions({ // готовим объект и передаем его метод для изменения DOM
    name: el.title, // имя хар-ки по которой проходим
    activeValue: el.value, // выбранное значение хар-ки
    disabled: [], // сюда отфильтруются только нулевые остатки из всех siblings (ниже)
    // фильтруем компл, оставим только актуальные для выбранных значений
    siblings: data.options.multiOffersInfo.filter(function(v) {
    // здесь ишем чтобы не совпадало с выбранной по которой проходим но совпадало с
    return v.info.every(function(a) { // выбранными остальными
    return (a[0] == el.title && a[1] != el.value) || t.some(function(o) {
    return JSON.stringify(o) === JSON.stringify({ // объекты только так сравнивать)))
    title: a[0],
    value: a[1]
    });
    });
    });
    })
    });
    });
    },
    // @TODO перенести формирование disabled в метод checkEmptyOffers, тк disableOptions должен только DOM заниматься
    // @TODO избавиться от промежуточного siblings.


    /**
    * Зачеркиваем характеристики
    * @param {obj} data Массив данных
    */
    disableOptions = function(d) {
    var $listEl = $('[data-prop-title="' + d.name + '"]'),
    $items,
    getValueByName = function(name, info) { // хелпер. @TODO вынести объявление рядом с in_array()
    return info.filter(function(ar) {
    return ar[0] == name;
    })[0][1];
    };
    d.disabled = d.siblings.filter(function(s) { // сюда фильтруем только остатки 0
    s.title = d.name;
    s.value = getValueByName(s.title, s.info);
    return s.num < 1;
    }); // @TODO этот фильтр в checkEmptyOffers вместо siblings

    // Далее нужно получить набор $items $(jQuery(obj))
    $items = getItems

    // И само зачеркивание
    $items.removeClass('empty');
    d.disabled.forEach(function(val) {
    $items.each(function(i, el) {
    var _this = $(this);
    if (_this.text().trim() == val.value) {
    _this.addClass('empty');
    }
    });
    });
    },


    Конечно не круто, то что вложенных циклов много, но другого я не придумал пока. Что-то не лезет в голову ничего изящнее)
    Думаю, что после доработок, неплохо было бы его включить в коробку.