Здравствуйте! Возникла проблема с оформлением, причем не особо кастомизированным компонентом (буквально правки только по стилям). Если пользователь не зарегистрирован, то при выборе доставки или оплаты блок с информацией не изменяется. В консоли пишет битриксовский дебаг, id доставки верный (который я совсем не понимаю как читать( ) http://prntscr.com/eukqvs На editActiveDeliveryBlock, например, вызывается editDeliveryInfo. console.log() в этих функциях не срабатывает (может я его не вижу из-за аякса)
Может кто-то сталкивался с проблемой или есть догадки о ее природе? (и если не сложно, расскажите, как понимать BX.debug?)
PHP7, штатный компонент. При нажатии кнопки "оформить заказ" выводит сообщение что заказ успешно создан, вроде всё нормально, НО: Открываем админку, идём в заказы и видим что заказа 2, причём часть товаров в первом, часть во втором. Срабатывает это не всегда, выявить закономерность по такой ошибки, а также по какому принципу делятся товары на 2 заказа не получилось. Техподдержка заявила что ошибок нет.
Никто с таким не сталкивался? Нет ли у кого рецепта как это победить?
Олег Максименко написал: Осмелюсь предположить — срабатывает «двойное» нажатие на кнопку «Оформить заказ». Либо случайно нажимаете несколько раз, либо ошибка в коде.
Лечится это «задизейблиеванием» или установкой флага нажатия на кнопку и последующей проверкой на установленный флаг.
Это не все прелести: выяснилось что если заказ от незарегистрированного пользователя - то могут быть созданы 2 пользователя вместо одного. Ну и двойное нажатие не может порвать заказ на 2 части.
Думаю стоит посмотреть в сторону служб доставки или оплаты. Что то из них разбивает заказ на несколько частей. Например разные способы фасовки товара, но в целом такого не должно происходить.
Перед оформлением заказа используется регистрация. Поля формы регистрации задаются в order_ajax.js. Добавил обязательное поле Отчество по аналогии с именем и фамилией. В результате поле не проверяется на обязательность, текст валидации полей задан в классе компонента, после регистрации значение поля не попадает в профиль. Можно ли кастомизировать форму регистрации при оформлении заказа не изменяя компонент? Цель всех телодвижений проста: при оформлении доставки почтой России требуется указание отчества. Для этого планируется перед оформлением заказа регистрировать пользователя с полным именем фамилией и отчеством, чтобы после регистрации на странице оформления заказа в блоке пользователя подхватывалась полное ФИО пользователя.
Денис Иванов, не надо добавлять в регистрацию обязательным "Отчество". Добавьте свойство заказа. Которое будет зависимо от службы доставки "Почтой" и обязательное для заполнения. Естественно, укажите, что оно входит в профиль. Это позволит не заполнять каждый раз при оформлении заказа.
Не очень изящно, конечно, для имени и фамилии давать на заполнение одно поле, а для отчества отдельное. Но если задавать отдельно поля для имени, фамилии и отчества через свойства заказа, возникают проблемы с подтягиванием этих данных из профиля при первичном оформлении заказа (пробовал через событие OnSaleComponentOrderResultPrepared изменить данные в $arUserResult - не подхватились).
В любом случае спасибо за совет, ваш вариант является рабочим и решает основную проблему.
Денис Иванов, вставьте компонент обычной регистрации и проверяйте если не авторизованный - выводим регистрацию. Если авторизированные пользователя - sale.order.ajax.
Роман Павленко, была такая мысль. Но создание профиля покупателя подразумевает получение данных из полей регистрационной формы. А с ее кастомизацией в sale.order.ajax, как получается, проблемы. Т.е. максимум, что я смогу - подтянуть имя и фамилию в соответствующие свойства заказа, а отчество все равно придется заполнять при оформлении заказа. Был бы это какой-нибудь main.register, я бы добавил в форму регистрации поле отчество и после регистрации пользователя создал профиль покупателя с заполнением необходимых свойств заказа (фамилия, имя, отчество). А так все равно получается недоработанный вариант, плюс нужно еще заморачиваться с платежными системами типа счета сбербанка и передачей имени пользователя в 1С (использовать составное ФИО).
Здравствуйте! Коллеги, никому не приходилось сталкивался с функционалом частичных оплат?
Т.е. при оформлении заказа, у пользователя должна быть возможность указать, например, "Хочу разделить на 2 платежа по 50%" (в дальнейшем можно интегрировать слайдер с выбором процента платежа) и разделить стоимость заказа на 2 оплаты.
Тут нюанс будет - если выбрали какую-то дату и вдруг внезапно)) решили поменять что-то из вышестоящих полей (тип доставки, тип платежа), то дойдя еще раз к полю с датой, ваш вариант вставит ОПЯТЬ текущую. В решений от Александр Павлов дата сохраняется.. В принципе мелочь, нефиг туда-сюда менжеваться - решил-покупай!!))) Сейчас ищу решение - передать в sale.order.ajax переменную из init.php - подскажете?
Здравствуйте! Есть задача к весу заказа добавлять фиксированное значение веса упаковки (например 300 г) независимо от количества товаров в заказе. Итоговый вес заказа используется для расчета стоимости доставки почтой России. Пытался завязаться на событие OnSaleComponentOrderJsData и через него задать $arResult['JS_DATA']['TOTAL']['ORDER_WEIGHT'] и $arResult['JS_DATA']['TOTAL']['ORDER_WEIGHT_FORMATED'], но в оформленном заказе (в админке) вижу общий вес, состоящий из веса товаров заказа без учета моего веса упаковки. Судя по всему и доставка рассчитывает стоимость без дополнительного веса упаковки. Может есть еще какие-нибудь варианты решения задачи или может нужно пилить обработчик службы доставки?
Денис Иванов написал: Здравствуйте! Есть задача к весу заказа добавлять фиксированное значение веса упаковки (например 300 г) независимо от количества товаров в заказе. Итоговый вес заказа используется для расчета стоимости доставки почтой России. Пытался завязаться на событие OnSaleComponentOrderJsData и через него задать $arResult['JS_DATA']['TOTAL']['ORDER_WEIGHT'] и $arResult['JS_DATA']['TOTAL']['ORDER_WEIGHT_FORMATED'], но в оформленном заказе (в админке) вижу общий вес, состоящий из веса товаров заказа без учета моего веса упаковки. Судя по всему и доставка рассчитывает стоимость без дополнительного веса упаковки. Может есть еще какие-нибудь варианты решения задачи или может нужно пилить обработчик службы доставки?
Добавляйте какой-то скрытый товар с нулевой ценой и весом 300 грамм. Другого способа как то и невижу честно говоря.
Александр Павлов написал: BX.Sale.OrderAjaxComponent.init в шаблоне компонента найдите такой вызов класса, добавьте в эту инициализацию свою переменную.например так:
Да? Поможет? Дело в том, что в init.php я создавал переменную и она не видна. А тут получается почему так? Перекрытие что-ли какое?
Александр Павлов написал: Добавляйте какой-то скрытый товар с нулевой ценой и весом 300 грамм. Другого способа как то и невижу честно говоря.
И его скрывать на всем процессе формирования заказа? И в счета на оплату? Я бы, если такую добивку надо делать ВСЕГДА, то в скрипт бы залез, там где-то есть же отправка для подсчета.
Александр Павлов написал: BX.Sale.OrderAjaxComponent.init в шаблоне компонента найдите такой вызов класса, добавьте в эту инициализацию свою переменную.например так:
Да? Поможет? Дело в том, что в init.php я создавал переменную и она не видна. А тут получается почему так? Перекрытие что-ли какое?
А почему не должно помочь? Переменную вы передали. Единственное что переменная в init.php должна быть определена глобальной, чтобы вы ее могли получить из любого места. Я просто не понимаю сути вашей задачи, что за переменная у вас получается в init.php?
Цитата
Сергей Вольвич написал: И его скрывать на всем процессе формирования заказа? И в счета на оплату?Я бы, если такую добивку надо делать ВСЕГДА, то в скрипт бы залез, там где-то есть же отправка для подсчета.
Ну тут уже на ваше усмотрение. Это просто самый очевидный способ (например через подарок), чем лишний раз колупать скрипт.
А я вот не понимаю такой момент: если клиент при оформлении заказа вводит местоположение, к которому не привязана ни одна служба доставки, то блок доставки не выводится, но заказ, тем не менее, принимается с нулевой стоимостью доставки. И где логика? Или я каких-то настроек не вижу?
Ребят, кто подскажет, как скрыть блок Платежных систем из формы заказа. Пока беру блок Платежных систем в <div style="display:none"></div> но это не очень красиво. Может у кого-то был опыт?