На уровне sale.order.ajax я сомневаюсь что есть хоть какой-то вариант решения вашей задачи, потому что применится или нет, решается на уровне правил скидок. Задача "купон-скидка на первый заказ пользователя" насколько мне известно решается только 2 способами: 1. через добавление/удаление в группу для которой применяется скидка 2. написание своего условия для правил корзины
Но минус обоих решений - для проверки требуется авторизация, чтобы получить заказы(если они есть), так как заказ всегда привязан к какому-то пользователю
Была уже такая тема, поищите, там предлагалось решение чего-то в ядре подправить, но это подходит только если не планируете обновляться, иначе не выйдет. Не предусмотрено такого.
Почему перестали поддерживать не скажу(конкретно мне это не особо и нужно было, на проектах давно не ставил, так что не считаю это как потерю, меньше весить будет), так решили и всё. Ничем не заменили, возвращать не планируют.
Как продлить сессию для админа, Ваш сеанс работы с сайтом завершен из-за отсутствия активности в течение 24 мин. Введенные на странице данные не будут сохранены. Скопируйте их перед тем, как закроете или обновите страницу.
Тоже сталкивался с этой проблемой. Но основа кроется в настройках сервера. Не в самом битриксе, тут техподдержка не поможет, увы, типа это к битриксу не относится. Если на сервере установлено по умолчанию, то это максимум 24 минуты.
А есть еще кеш, который отрабатывает без запросов к БД, что тоже как простой походу считается(во всяком случае у меня подозрение такое).
Нам обновляли сервер когда, то мы просили сразу внести правки, чтобы не менее суток стояло, а дальше уже можно и в админке сколько нужно выставить. теперь для админов у нас в админке 180 минут, для группы менеджеров 25200. Работает.
Добавил проверку такую же как в Manager::getById чтобы не вызывалось, правда минус такой что информации о доставке в письме в этом случае может не быть, но это лучше чем ловить исключение и крики клиентов "Аааа, оно сломалось"
Я по похожему принципу Подарочные сертификаты делал. Ну а в целом - как вариант, если нет особых условий для применения. Потому что если на сайте постоянно используются по несколько скидок, то такой способ будет очень неудобен. Простой пример: скидка применяется если не применилась другая скидка(т.е. скидки ограничены на текущем уровне применимости) и получается вам нужно получить все скидки, вычислить и в случае когда не нужно отменить действия каких-то из них. И еще нужно учитывать что в 1С передается цена со скидкой, а у вас скидка идет как часть оплаты и соотвественно в 1С эта информация не идет. В 1С вообще только одна оплата передается, нужно допиливать еще передачу что есть вторая оплата и в 1С на основании этого допиливать скидку чтобы пробить чек. В общем не все так просто с вашим решением.
Но как и сказал если что-то простое на сайте, то вариант рабочий.
Перед этим шагом сохраняю в файл значение DELIVERY_ID и вижу в нем цифру, но при этом выводится ошибка. Делаю повторно создание заказа с теми же товарами, с той же доставкой - нет ошибки.
в Manager::getById есть проверка
Код
$id = intval($deliveryId);
if($id <= 0)
throw new SystemException("deliveryId");
По существу подсказать не могу, давно было, да и не долго с этим разбирался, но когда-то сталкивался с похожей реализацией, там ставили редис и через него делали фильтр и соответсвенно структуру каталога. Т.е. инфоблок товаров как был так и был, но структура в нем была тоже плоская. А отдельно шел справочник, настройки где формировали, что хотим увидеть такую-то структуру разделов и условия вывода товаров в таком разделе, так же отдельный справочник на вывод фильтра. Первоначальная настройка конечно была долгая, но каталог летал. Ну и если что-то нужно было допиливать, приходилось делать отдельные запросы в редис По времени у того прогера который это делал заняло около 4 месяцев все это настроить и допилить дополнительные правки в компонентах.
А разве не проще будет на событие отправки писем завязаться, например на OnBeforeEventSend, ведь в b_event попадают только события отправляемые через ::send.
И тот и другой вариант плох. Да и вообще если вы пришли к задаче такой как у вас где нужно или 10000 правил или внутри 100000 товаров, значит вы не правильно сформулировали задачу. В документации даже приведен пример что если нужно перечислить много товаров, то это делается другим путем - заводится свойство у товаров и в скидке не перечисляются все товары, а указывается что данное свойство должно равняться/не равняться/... и тогда вам не придется 10000 товаров в условие впихивать.
Ну и т.д. вплоть до того что создать нужное свое кастомное условие скидок.
Переданный нам от клиента архив содержит в себе полную копию сайта (и ядро, и публичную часть). Мы развернули сайт из архива на нашем хостинге, привязали наш домен
а так же
Цитата
Архив был нам передан как новому агенству, которое будет заниматься сайтом.
Очень странно как-то. Зачем-то вы свой новый домен привязали к существующему сайту. Ну да ладно. Обычно если меняется агенство для поддержки проекта передаются доступы к админке, к хостингу. После того как получены доступы они меняются на новые. В этом случае уже старое агенство не получит полный контроль, ну конечно если не осталось дыр/шелов. То что битрикс ломаный, опасно, но тут вопрос кто, как и для каких целей его ломал. Самый распространенный способ это грубо говоря заморозка срока, никаких вирусов, и тут опасность в том что любое обновление сделает его нерабочим. Запросить архив чтобы он не был взломанным у вас не выйдет. Чтобы это исправить ставите чистую установку с новой лицензией и также отдельно (можно локально, можно на отдельном домене) разворачиваете что вам дали и переносите шаблоны, информацию из БД через внутренние инструменты. Так вы избавитесь от всякого возможного мусора и получите чистый продукт, но это долгая задача, так как что там накручено это тот еще может быть квест.
по поводу многосайтовости почитайте https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=103&LESSON_ID=281&LESSON_PATH=8799.281 а если вкратце, то смысл такой что у одного ядра должна быть одна лицензия, а все дополнительные сайты должны подключать это ядро в виде ссылок на него и подключить его можно только в пределах одного хоста. Из-за того что одно ядро = одна лицензия, нельзя создавать 2 домена и на каждый ставить отдельно ядро с тем же ключом(исключение если отметить что это версия для разработки).
Цитата
3. И если я разворачиваю один сайт из уже существующего битрикс архива + хочу создать новый сайт на битриксе - как мне убедиться что я буду использовать одну копию программного продукта «1С-Битрикс: Управления сайтом»?
ну тут самое простое это - из админки вы будете видеть все файлы всех сайтов если правильно все настроили.
Такая ситуация встречается если у вас обмен с 1С есть или какой-то кастомный автоматический обработчик на его основе, такая ситуация может происходить когда происходят запуски следующего обмена при не законченном предыдущем. Т.е. у вас 3 инфоблока, значит минимум 3 выгрузки, запускается первый формируется таблица для обновления, идет само обновление и тут приходит новый файл и новый вызов, но прошлый ещё не завершен. Вот и происходит заполнение таблицы данными из нового файла и эти данные отправляются в другой инфоблок так как еще не закончил свое действие прошлый обработчик. Поэтому даже в документации где-то было написано что нельзя чтобы пересекались обмены если у вас несколько инфоблоков, время нужно выставлять так чтобы точно знать что предыдущий обмен завершен.
найти метод Webc\FieldCode1cHandler::setCode1cFromCmlTraits и прописать что он статический. У вас на событии подключается самопис или сторонний модуль для треслетирации кода
Вопрос по акциям в АСПРО - МАКСИМУМ, Нужна акция за оплату 2 одинаковых товаров, получить 3 шт, возможно ли выполнить на базе АСПРО - МАКСИМУМ, без дополнительных модулей?
Есть правила работы с корзиной, среди них есть предоставить подарок при условии таком-то. Человек сам должен в корзине при использвании такого правила добавить подарок или проигнорировать его. Это то что из коробки есть. Все остальное нужно дорабатывать. Но по опыту акция 3 по цене 2 - это отдельный геморой, так как каталог обычно это не 10 товаров, а тысячи и такую акцию не на 1 товар, а на сотни заводят и акция должна распростроняться на то как вы написали "Или кладет 10 одинаковых товаров, и еще 5", а этого из коробки не будет.
В первую очередь просто правила автоматических созданий пересохраните, потому как после перезда с обновлением все что угодно могло не отработать, потом можно проверить вообщее создаются ли бекапы в ручном режиме. Если в ручном создаются, а в автоматическом после пересохранения, нет, тогда нужно будет разбираться, можете написать в техподдержку раз лицензия продлена, они могут проверить что не так.
Если вам хватит тех модулей что идут с этой лицензией, то можно и старт. Только учтите что на старте нет модуля Форумы и Блоги, а так же Веб-формы, это минималка с возможностью сохранять информацию в Информационные блоки и Highload-блоки с выводом из них, все остальное вам придется самому реализовывать. Конечно если блог - это просто статья, без форм, комментов и прочего, или вы это сможете сами реализовать, то этой редакции за глаза хватит