Точно заполнены. Аналогичный код с использованием MeasureRatioTable::update в функции BXIBlockAfterSave работает.
|
Алексей, спасибо за ответ!
У меня на сайте не предусмотрена возможность отправки товаров в корзину для неавторизованных пользователей. Соответственно необходимости в перецепке корзин от незалогиненого к залогиненому пользователю нет. Но как раз таки т.к. клиенты оптовые возможна ситуация, когда с одного компьютера несколько сотрудников фирм-клиентов могут оформлять заказы. Соответственно у них возможна ситуация с перецепкой корзин. Про манипуляции с браузером объяснить всем клиентам будет практически невозможно. Как можно выйти из данной ситуации? Не переписывать же логику присваивания FUSER_ID в ядре? Хотя я пока не вижу другого решения. |
|
|
|
|
|
Добрый день.
Обнаружил баг. Захожу на сайт под учеткой пользователя (условно - админ), добавляю товары в корзину. Затем закрываю браузер. После этого вновь открываю сайт и вижу, что у неавторизованного пользователя FUSER_ID остался тем же, что и у пользователя под учеткой которого я логинился ранее. Далее я захожу на сайт под ДРУГИМ пользователем и ему присваивается FUSER_ID 1го пользователя (т.е. админа). Соответственно в корзине уже лежат товары, которые я добавлял под первым пользователем. Также замечал, что если не закрывать браузер, а просто разлогиниваться и логиниться обратно под разными учетками пользователей, то порой пользователю присваивается новый FUSER_ID вследствие чего его корзина оказывается пустой. Кто-нибудь сталкивался с подобным? Что можно предпринять? FUSER_ID везде получаю стандартным api. |
|
|
|
|
|
Всем доброго дня! Тружусь сейчас над корзиной, дорабатываю ее логику. Задача состоит в том, чтобы каждый раз при открытии страницы с корзиной проверялись все товары в корзине на предмет активности, доступности, а также - наличия остатков на складах, доступных пользователю. На активность и доступность проверял товар в корзине с помощью метода $basketItem->canBuy(); Далее, если товар неактивен или недоступен или на остатках на складе его нет, то данный товар удаляется из корзины, его параметры (id, название, количество, ссылка на картинку) записываются в кастомную таблицу в БД и выводятся в отдельном блоке в корзине путем чтения данных из этой таблицы. Теперь мне необходимо реализовать обратный порядок действий. Т.е. при открытии страницы с корзиной мне надо прочитать данные в таблице удаленных товаров и проверить каждый товар на активность, доступность и остатки на складах. Если товар доступен к покупке, то необходимо вновь вставить его в корзину. Вопрос следующий: как правильно проверить товар на активность И доступность имея в кармане только ID товара? |
|
|
|
|
|
Доброго всем времени суток!
У меня на сайте есть группа "Менеджеры по продажам". Каждый менеджер регистрирует своего клиента, т.е. фактически ставит галочку в учетке пользователя, заполнившего форму регистрации в публичной части сайта, "Активен" и назначает ему группу "Зарегистрированные". Я хочу, чтобы менеджер после захода в админ-панель в списке пользователей видел только неактивированных пользователей и тех пользователей, которых он сам регистрировал. На деле все выглядит конечно немного иначе (а именно - каждому пользователю назначается менеджер из инфоблока "Справочник менеджеров", каждому элементу инфоблока соответствует учетная запись менеджера), но суть такова. Есть мысли о решении данной задачи в тупую, путем создания для каждого менеджера отдельной группы, в которую он будет назначать пользователей при регистрации. Затем каждый менеджер будет видеть только незарегистрированных пользователей и пользователей, принадлежащих к его конкретной группе. Однако такой подход выльется в кучу групп, т.к. менеджеров больше десятка, бардак и в принципе само решение топорное. Как будет правильно выполнить данную задачу? Думал в сторону обработчиков событий, но события построения списка пользователей в админке не нашел. |
|
|
|
|
|
Доброго всем дня!!
Кастомизирую 2 компонента: sale.order.ajax и sale.basket.basket. Не могу уразуметь причины следующего поведения: 1. В компоненте sale.order.ajax в функции initBasket получаем корзину с помощью $basket = $this->loadBasket(). Класс корзины - Sale\Basket. С помощью конструкции foreach ($basket as $item) { $item->setField('QUANTITY', 2); $item->save(); } не удается изменить количество товара!!! 2. В компоненте sale.basket.basket в функции refreshBasket входным параметром которой также является объект корзины класса Sale\Basket с помощью АНАЛОГИЧНОЙ конструкции удается изменить количество товара. В первом и втором случаях до и после попытки изменить количество товара я печатал результат в лог с помощью AddMessage2Log. Хелп нубасам!) |
|
|
|
|
|
Заказ отправится менеджеру в 1с, если ручек в наличии нет, то менеджер предложит приобрести аналог, например, карандаши)). Т.е. нам важно зафиксировать желание клиента купить какой-либо товар в определенном количестве. Дальше наш сотрудник работает с клиентом применяя принципы психологии, НЛП и такое прочее)
|
|
|
|
|
|
Здравствуйте, Уважаемые посетители форума!
Помогите пожалуйста разобраться совсем пока еще новичку в битриксе. В проекте интернет-магазина функционал корзины реализован с применением Vue JS для отрисовки товаров, характеристик, стоимости заказов и проч. Ежедневно из 1С происходит выгрузка товаров, цен и их остатков. В коде vue при первичной отрисовке корзины уходит запрос в компонент sale.basket.basket. В связи с особенностями проекта возникла острейшая необходимость хранить товары в корзинах клиентов без изменений количества товаров. Сейчас немного поясню: клиент может хранить товары в корзине месяцами, товаров в корзине может быть больше сотни. Необходимо сделать так, чтобы товар, который был деактивирован, либо стал неактивным из-за нулевых остатков, либо количество товара стало заведомо меньше, чем то, что лежит у кого-то в корзине, не менял своего положения (заказ/предзаказ), не удалялся из корзины, а также НЕ МЕНЯЛ ЗАКАЗАННОЕ КОЛИЧЕСТВО. Т.е. грубо говоря, если я положу в корзину 1000 ручек, то в моей корзине всегда должно быть 1000 ручек, не смотря на любые изменения в товаре! Я скопировал папку sale.basket.basket из папки bitrix в папку local в свое пространство имен, затем в VUE JS перенаправил отправку запроса по новому расположению компонента. Далее хочу менять логику работы этого компонента. Должен ли я сделать что-то еще? Возможно для достижения своей цели я должен работать с каким-то другим компонентом? Краем уха слышал про события и их обработчики. Должен ли я и их тоже переназначить? Надо ли связывать какие-то другие компоненты с грубо говоря новым?? Что еще я не учел? И не покатится ли все к хренам?)) Спасибо всем неравнодушным) |
|
|
|
|
|
Спасибо. Вроде бы сделал, как написано. Ошибка действительно больше не появляется. Тем не менее картинка все-равно не добавляется)) Т.е. в форме редактирования элемента она появляется, ее можно кадрировать и т.д., но после нажатия на кнопку сохранить ничего не меняется - картинки как не было, так и нет. При повторном заходе в форму на вкладке анонса/детального просмотра снова пусто.
Вероятно косяк с правами какой-то... |
|
|
|
|
|
Добрый вечер!
Итак, просмотрев курс "Быстрый старт разработчика", я решил, что готов врываться в дружные ряды разрабов. Все было неплохо, до того как возникла необходимость добавить новость в инфоблок)). В общем проявилась проблема следующего характера: при попытке добавить детальную картинку/картинку для анонса на вкладке редактирования элемента инфоблока новости возникает ошибка Mandatory directory has not been created. Все действия я выполняю от лица генерального админа сайта. Вопрос: как сие превозмочь? Сама картинка уже загружена в папку upload, но добавить ее к новости почему-то нельзя. Инфоблоки, насколько мне известно, работают напрямую с БД, посему никакие папки и т.д. создаваться не должны. Поидее в таблице в бд просто должна добавиться ссылка на картинку. Или я неправ? |
|
|
|
|
|
Всем доброго здравия!
После просмотра видеокурса "Быстрый старт разработчика" появилось лишь одно ярко выраженное желание - задать представителям компании 1с вопрос: "А Вы сами этот курс смотрели?". Данный материал позиционируется как средство для быстрого вхождения в тему разработки на битриксе. Цель достойная, однако реализация на мой взгляд сильно подкачала)) Начинающему разработчику необходимо иметь просто железные нервы, чтобы досмотреть всю серию видеороликов до конца. Прием с ускорением видео на мой взгляд в материале для НАЧИНАЮЩИХ разработчиков совсем не к месту! Повторить за Сергеем последовательность действий по разработке сайта местами просто невозможно из-за мгновенной смены видов интерфейсов с наполнением их данными! Не сильно помог даже просмотр видео на скорости 0,25)). Слишком часто я наблюдал картину с быстро меняющимися видами ПО Битрикс в полной тишине!!!!!! Автор курса не преследует цель что-либо объяснить тем несчастным, рискнувшим посмотреть данный материал. По большому счету все сводится к тому, что смотрите, что я делаю и делайте также. Однако разработчик курса вежливо практически полностью лишил нас возможности это сделать. В аннотации к курсу сказано: "В этом курсе развиваются мифы о сложности освоения системы" . РАЗВИВАЮТСЯ мифы, КАРЛ!!! Что же? Автор в полной мере воплотил данное стремление в видеокурсе "Быстрый старт разработчика"! В завершение всего я все-таки хочу поблагодарить Сергея Покоева за разработку данного курса, т.к. что-то все-таки лучше, чем ничего))). А представителей 1С со слезами на глазах и смирением в чреслах прошу рассмотреть возможность создания качественных, актуальных, дружелюбных к новичкам видеоуроков, раскрывающих суть технологии 1С-Битрикс. И пусть на этих курсах автор не создаст сайт за 3,5 часа, зато заложит прочный фундамент знаний будущих разработчиков. P.S. уже прошла неделя после просмотра курса, до сих пор нахожусь в глубоком шоке!!!! |
|
|
|
|