Компания B2C Платежи и Логистика обратилась ко мне с просьбой сделать модуль (страничка в Маркете) интеграции их сервиса с магазинами на Битриксе. В этом мини-кейсе я опишу и как его использовать, и с какими сложностями пришлось столкнуться, работая на конечного клиента (пользователя модуля), а не для галочки. Проект выполнен в сотрудничестве с Александром Гусевым.
Особенности модуля
Большинство особенностей появилось в новой версии 2.0, так что, если у кого-то версия старая - пожалуйста, обновитесь.
1. Модуль максимально лоялен к пользователю. Предлагает варианты доставки по индексу. А если он не введен, то по названию города.
2. Позволяет рассчитывать стоимость доставки не только по весу, но и по объему (новое).
3. Позволяет включить Почту России в варианты доставки (новое).
4. Заказы для доставки компанией B2Cpl автоматически выгружаются на сервер компании и поступают в оборот (новое).
5. Присутствует обратная связь, показывающая в админ.части внутренний статус B2Cpl (новое). При желании это может быть вынесено и в публичную часть (не входит в данный модуль):
6. Отправленный на сервер B2Cpl заказ возвращает файл стикера, который можно удобно скачать и распечатать чтобы потом наклеить на посылку для передачи курьеру B2Cpl (новое):
Как правильно настроить модуль
1. Итак, вы ознакомились со службой, поняли, что вас оно полностью устраивает, заключаете с компанией договор, и начинаете работать.
2. Устанавливаете модуль посредством кнопки "Установить". У вас должны быть активны обновления вашей лицензии Битрикс, и наличие модуля Магазина обязательно конечно же.
3. В разделе "Настройки магазина / Автоматизированные службы доставки" после установки модуля появится новая неактивная служба доставки. (путь Рабочий стол / Магазин / Настройки магазина / Службы доставки / Автоматизированные)
4. Переходим в Службу. Мы видим несколько вкладок. Пробежимся по важным.
4.1. Базовая конфигурация. Включают название, описание, сортировку в списке доставок и (в последних версиях Битрикс) еще и изображение Службы.
4.2. Настройки доставки. Это уже обязательные настройки, которые вам необходимо внести.
ID клиента и ключ вам выдают при заключении договора. Для тестирования можете использовать тестовые доступы: test / test. (new) Символьный код для объема. Это код свойства инфоблока товаров, где содержится объем каждого товара. Требуется на случай, если вы работаете с объемными товарами и расчет стоимости будет зависеть от объема. Подробности уточняйте в компании. Если объем не используете, оставьте поле пустым. (new) Включить Почту России. В вариантах доставки появится почта России, простая посылка. За деталями обращайтесь в компанию. (new) ПВЗ (пункты выдачи) из окрестностей. Если опция указана, то в вариантах доставки будет указываться ПВЗ столичных городов для данного города. К примеру, для пригорода Новосибирска будет выведен ПВЗ Новосибирска. Если опцию убрать, то ПВЗ для данного пригорода указан не будет вовсе. (new) Статус заказа для выгрузки. Чтобы вам вручную не выгружать заказы сайта в кабинет B2Cpl, введена данная опция. Как только статус заказа поменяется на указанный, информация о заказе улетит в кабинет, и сотрудники B2Cpl возьмут его в оборот.
4.3. Привязка к свойствам заказа. Собственно здесь, вам нужно прописать в каком свойстве заказа содержится телефон (требуется, если вы будете использовать выгрузку на сайт B2Cpl) и где будет содержаться уже упомянутый внутренний статус B2Cpl.
Не забудьте активировать Службу после внесения изменений для начала работы!
Ну и наконец. Вам нужно убедиться, что у вас присутствует свойство заказа Индекс, отмеченное соответствующей галочкой:
И конечно же Местоположение, также отмеченное соответствующей галочкой:
Часть для разработчиков
О тонкостях и плюсах модуля можете почитать ниже. В какие сложности мы уперлись, и какие вопросы для решения перед собой поставили
1. Клиент должен ставить одной кнопкой и вбивать всего несколько опций.
2. У него может не быть базы индексов, или быть неполная. Он не должен заботиться об этом.
3. Мы не должны править шаблоны и лишать клиента обновлений.
Первый вопрос был решен просто, так как модуль всего лишь добавлял автоматизированную службу доставки. А вот второй вопрос без третьего уже решить сложнее.
Но мы решили это сообща с самой компаний. Обрисовав им ситуацию, что модулем (и сервисом) будут пользоваться тем охотнее, чем меньше он мороки доставит при установке. Таким образом, с их стороны был предоставлен функционал определения индекса по названию города!
Ну все, казалось бы, проблема решена: есть индекс - узнаем цену доставки, нет индекса - узнаем по городу. Но встала еще одна проблема - город может вернуть несколько индексов. Соответственно, в таком случае надо уведомить пользователя
Если город будет не найден, модуль тоже услужливо ответит посетителю
И даже после этого опять столкнулись со сложностями - индекс после предупреждения введен пользователем, но как обновить форму заказа, отправив запрос на сервер доставки? Но и это было решено автоматически и без правки шаблона - ищется поле индекса и на него вешается js-event blur.
Вот как-то так галопом по модулю скачивайте пользуйтесь, изучайте, и делайте такие же удобные модули. Или обращайтесь к нам
1. Спасибо, и правда потерялось количество. Чтобы не ждать фиксы, внесите, пожалуйста, у себя самостоятельно: в файле /bitrix/modules/b2cpl.delivery/include.php где-то на 470 строчке, после while ($arBasket = $rsBasket->Fetch()) вставьте сразу $arBasket['WEIGHT'] *= $arBasket['QUANTITY'];
2. Такого не делалось. Если такое поле есть (может присутствовать) в выгрузке, я добавляю.
1. Спасибо, поправлю у себя. 2. Честно говоря, точно не могу сказать - какой состав полей допускается для выгрузки. В формате xls данного поля нет. В документации API B2C описания состава полей для выгрузки - не нашел. Но в специальном файле .csv, в личном кабинете, под названием "Коды" есть заголовок "Комментарии", помимо остальных данных заказа. Поэтому я и подумал, может быть должна работать выгрузка и по комментарию тоже. Это необязательный пункт, для меня во всяком случае.
Важно! внести изменения в код модуля. Я прослушал разговоры колл-центра с клиентом по доставке.
Крайне недоволен остался тем, что у сотрудника колл-центра нет информации об адресе доставки. Это отражается клиентами на отзывах о доставке. Ошибка сохраняется, начиная с первого заказа. Я думал вначале, что проблема на их стороне. Связался с управляющим в компании, они выслали мне в подтверждение пример шаблона, загруженный автоматически. Ни в одном из заказов, загруженных автоматически, не было адреса доставки.
Оказывается, модуль не выгружает адрес доставки?
Этот момент необходимо исправить в срочном порядке.
Антон, а где исправления были внесены? Просто я сейчас смотрю, версия модуля 2.1.4 обновлена у меня еще 17.07.2013. И последняя версия тоже 2.1.4. Соответственно, обновить не могу, т.к номер версии тот же.
И второй вопрос, Вы внесли дополнительно коррективы по расчету веса? Я писал выше, что вес не удваивается при выгрузке заказа, внес изменения тогда вручную в коде.
Нашел еще одну неточность. Не учитывается округление до целых при выгрузке заказа в B2C.
Напишу на примере заказа.
Цена доставки в г. Владимир: 265 руб.
У нас наценка стоит 10% на доставку. В итоге цена доставки у нас на сайте: 291 руб 50 коп. (291, 5).
В настройках валюты установлено количество десятичных знаков = 0, т.е. все цены на сайте указаны без копеек. Там где производятся расчеты в копейках, идет округление до целых в рублях. Проблема в том, что при выгрузке заказа в транспортную компанию отправляется точная сумма до копеек, это неправильно.
Антон, здравствуйте, пытаюсь протестировать модуль с учеткой test - при оформлении заказа не предлагает ПВЗ почему-то, тестовый аккаунт имеет какие-то ограничения?
Андрей, здравствуйте. Нет, test полноценный аккаунт. Причина, по которой ПВЗ может не появляться: в указанном местоположении (индексе) его попросту нет или у товаров не указан вес.
Печаль... С последними обновлениями Битрикс, перестали загружаться настройки модуля. Антон, вы не могли посмотреть, открываются ли у Вас настройки?
Обновления Битрикс связаны с переходом на новое ядро 14.0. Прикладываю скрин модуля из админки.
Не могу включить службу, т.к не вижу ни одной настройки, все вкладки пустые. Включал лог ошибок, тоже не увидел проблем. С чем это связано так и не понял.
Проблема реально острая, т.к не могу использовать службу доставки!
Антон , написал на сайте. Там проблемы у Вас с регистрацией пользователей. Задал вопрос по быстрой форме.
Я проверил, проблема с загрузкой профилей в bitrix/modules/b2cpl.delivery/include.php Если закомментировать 'PROFILES' => self::GetProfiles(), то загружаются настройки, но без вкладки профили и платежные системы.
Антон , я создал заявку с вопросом. Но никаких уведомлений не получил о том, что заявка в рассмотрении. Закрыл вкладку, а теперь и вовсе не могу найти свой вопрос, где задавал.
Юрий, заявка поступила, она в работе в порядке очереди. Уведомление на почту вам придет при ответе (хотя и сама копия тикета должны была прилететь).
Может дело в спаме. Как вариант - вы можете создать еще один тикет с другой почты. Ну и самое главное - максимально опишите проблему в тикете, чтобы решить максимально оперативно все. Может сразу доступ предоставьте.
К сожалению, я вырос тот период, когда смогу каждого из вас обслуживать персонально. Прошу понять.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».