1С-бітрікс розробникам - прес-реліз модуля доставки b2cpl (для клієнтів і розробників)

Компанія B2C Платежі та Логістика звернулася до мене з проханням зробити модуль (сторінка в Маркеті) інтеграції їх сервісу з магазинами на Бітрікс. У цьому міні-кейсі я опишу і як його використовувати, і з якими труднощами довелося зіткнутися, працюючи на кінцевого клієнта (користувача модуля), а не для галочки. Проект виконаний у співпраці з Олександром Гусєвим.

Більшість особливостей з'явилося в новій версії 2.0, так що, якщо у кого-то версія стара - будь ласка, оновіться.

1. Модуль максимально лояльний до користувача. Пропонує варіанти доставки за індексом. А якщо він не введений, то за назвою міста.

2. Дозволяє розраховувати вартість доставки не тільки по вазі, але і за обсягом (нове).

3. Дозволяє включити ПочтуУкаіни в варіанти доставки (нове).

4. Замовлення для доставки компанією B2Cpl автоматично вивантажуються на сервер компанії і надходять в обіг (нове).

5. Присутній зворотний зв'язок, що показує в адмін.часті внутрішній статус B2Cpl (нове). При бажанні це може бути винесено і в публічну частину (не входить в даний модуль):

1С-бітрікс розробникам - прес-реліз модуля доставки b2cpl (для клієнтів і розробників)

6. Відправлений на сервер B2Cpl замовлення повертає файл стікера, який можна зручно завантажити та роздрукувати щоб потім наклеїти на посилку для передачі кур'єру B2Cpl (нове):

1С-бітрікс розробникам - прес-реліз модуля доставки b2cpl (для клієнтів і розробників)

1С-бітрікс розробникам - прес-реліз модуля доставки b2cpl (для клієнтів і розробників)

Як правильно налаштувати модуль

1. Отже, ви ознайомилися зі службою. зрозуміли, що вас воно повністю влаштовує, укладаєте з компанією договір, і починаєте працювати.

2. Установлюєте модуль за допомогою кнопки "Встановити". У вас повинні бути активні оновлення вашої ліцензії Бітрікс, і наявність модуля Магазину обов'язково звичайно ж.

3. У розділі "Налаштування магазину / Автоматизовані служби доставки" після установки модуля з'явиться нова неактивна служба доставки.
(Шлях Робочий стіл / Магазин / Налаштування магазину / Служби доставки / Автоматизовані)

1С-бітрікс розробникам - прес-реліз модуля доставки b2cpl (для клієнтів і розробників)

4. Переходимо до Служби. Ми бачимо кілька вкладок. Пробіжить по важливим.

4.1. Базова конфігурація. Включають назву, опис, сортування в списку доставок і (в останніх версіях Бітрікс) ще й зображення Служби.

4.2. Налаштування доставки. Це вже обов'язкові налаштування, які вам необхідно внести.

1С-бітрікс розробникам - прес-реліз модуля доставки b2cpl (для клієнтів і розробників)

Не забудьте активувати Службу після внесення змін для початку роботи!

Ну і нарешті. Вам потрібно переконатися, що у вас є властивість замовлення Індекс. зазначене відповідної галочкою:

І звичайно ж Місцезнаходження, також зазначене відповідної галочкою:

Частина для розробників

Про тонкощі і плюси модуля можете почитати нижче. В які складнощі ми вперлися, і які питання для вирішення перед собою поставили

1. Клієнт повинен ставити однією кнопкою і забивати всього кілька опцій.

2. У нього може не бути бази індексів, або бути неповна. Він не повинен піклуватися про це.

3. Ми не повинні правити шаблони і позбавляти клієнта оновлень.

Перше питання було вирішене просто, так як модуль всього лише додавав автоматизовану службу доставки. А ось друге питання без третього вже вирішити складніше.

Але ми вирішили це спільно з самої компаній. Змалювавши їм ситуацію, що модулем (і сервісом) будуть користуватися тим охочіше, ніж менше він мороки доставить при установці. Таким чином, з їхнього боку було надано функціонал визначення індексу за назвою міста!

Ну все, здавалося б, проблема вирішена: є індекс - дізнаємося ціну доставки, немає індексу - дізнаємося по місту. Але встала ще одна проблема - місто може повернути кілька індексів. Відповідно, в такому випадку треба повідомити користувача

Якщо місто буде не знайдений, модуль теж послужливо відповість відвідувачеві

І навіть після цього знову зіткнулися зі складнощами - індекс після попередження введений користувачем, але як оновити форму замовлення, відправивши запит на сервер доставки? Але і це було вирішено автоматично і без редагування шаблону - шукається поле індексу і на нього вішається js-event blur.

Ось як-то так галопом по модулю завантажуйте користуйтеся, вивчайте, і робіть такі ж зручні модулі. Або звертайтеся до нас

Є декілька питань

1. У csv падає ціна "як є", без форматування. В адмінці ж, і в публічкою йде форматування відповідно до налаштувань валюти. Швидше за все у вас йде округлення для візуальних частин. Якщо це дійсно критично, буду обробляти таку ситуацію.

3. Оціночна вартість передається в CSV також, да.

4. Це краще теж уточнити з компанією.

До речі, "розрахувати вартість" доставки на етапі підтвердження замовлення не вдалося домогтися, щоб показувало

У одного клієнта схожа проблема, буду зараз розбиратися. Можливо, це і ваш випадок. Я повідомлю окремо і випущу фікс.

Дійсно помилка в налаштуваннях сервера була. До сих пір вирішую її з підтримкою хостингу.
Ще при установці Бітрікс проблема була в установці кодування UTF (включення mbstring.func_overload), але я благополучно про це забув.
З цим компонентом довелося повернутися знову до вирішення даного питання.

На локальній системі налаштував і перевірив сайт.
З'явилися такі питання.

В адмінці при формуванні замовлення вручну по кнопці "Додати замовлення" завантажуються НЕ ВСЕ способи доставки.
Встановлюю як годиться країну, область, місто, а також встановлюю індекс (з якоїсь причини, індекс автоматично не встановлюється).
Але в результаті пропонується завжди два стандартних способи:

1С-бітрікс розробникам - прес-реліз модуля доставки b2cpl (для клієнтів і розробників)

Другий, менш важливий недолік - це індекс при виборі міста.
Едуард правильно зауважив, є глюки з установкою індексу.
Саме при очищенні індексу, глюк пропадає.

Антон, перейшов по Вашій останній посиланню, теж не змінюється індекс при виборі міста.
Така ж ситуація і в адмінці. Вкрай незручно перевіряти індекс міста за іншими джерелами.
Поточний варіант рішення залишається тільки один? Запропонований варіант Едуарда?

Юрій. так як рецидив був, змушений оперувати тільки доступами, якщо у мене не моделюється прохання зрозуміти. В адмінці у мене все виводиться. потрібні доступи. (Ви до речі і самі можете подивитися в адмінки на test.d-it.ru, по доступам test / 111111).

Антон, перейшов по Вашій останній посиланню, теж не змінюється індекс при виборі міста

Тому що це проблема Бітрікс я не знаю як тут вчинити (я навіть не знаю як її піднести - то чи недоробка, то чи.). Впровадитися в шаблон, і вже тим більше в компонент, я не зможу. Спробуйте за способом Едуарда, наприклад.

Доступи не можу дати, тому що Зараз працюю тільки на локальній системі.
На сервері питання з помилками вирішується на рівні хостингу.

1С-бітрікс розробникам - прес-реліз модуля доставки b2cpl (для клієнтів і розробників)

Юрій. перепрошую, тепер зрозумів. Тут швидше надочет самої адмінки (не можу це записати на баг модуля тільки). Я це поставлю в план на наступні доопрацювання, щоб якось обійти це поведінка (доопрацювання ще повинні пройти схвалення компанією).

Шкодую, але поки тільки так.

А підкажіть відповідь на моє запитання. як краще організувати таку умову. допустимо виводити службу доставки B2CPL для всіх міст крім Києва. як краще вчинити. куди милицю вставити?

Едуард. з цим краще до розробника, або на форум. Я не зможу вам допомогти.

Едуард. відписав їм. Сервер не дивиться на параметр. Поправлять.

Наші перемогли. У найближчому релізі в оновленнях Бітрікс буде випущений фікс поведінки індексу - при зміні місця розташування, індекс буде змінюватися завжди теж. Так що проблеми такого роду повинні вирішитися.

Едуард. ваша проблема теж має вирішитись, поправили на сервері.

Антон. спасибі за приємну новину з приводу індексу! =)

Антон. помітив ще неточності при вивантаженні замовлення в особистий кабінет B2C.


1. Не подвоюється вага при експорті замовлення в особистий кабінет.

Якщо товар замовили в кількості двох штук, наприклад, то вага виставляється тільки для одного товару.

Антон, перевірте, будь ласка, дані пункти і повідомте мені про результати.

1. Спасибі, і правда загубилося кількість. Щоб не чекати фікси, внесіть, будь ласка, у себе самостійно: в файлі /bitrix/modules/b2cpl.delivery/include.php десь на 470 сходинці, після while ($ arBasket = $ rsBasket-> Fetch ()) вставте відразу
$ ArBasket # 91; 'WEIGHT' # 93; * = $ ArBasket # 91; 'QUANTITY' # 93 ;;

2. Такого не робилося. Якщо таке поле є (може бути присутнім) в вивантаженні, я додаю.

Важливо! внести зміни в код модуля.
Я прослухав розмови колл-центру з клієнтом по доставці.

Цей момент необхідно виправити в терміновому порядку.

Юрій. Дякуємо. Як не парадоксально і не банально, але "такого не було в ТЗ". Я заповню цю прогалину в найближчі пару днів.

Юрій. я випустив фікс.

І друге питання, Ви внесли додатково корективи з розрахунку ваги? Я писав вище, що вага не подвоюється при вивантаженні замовлення, вніс зміни тоді вручну в коді.

Юрій. пардон. Поправив. Так, розрахунок ваги скоректований.

Знайшов ще одну неточність. Не враховується округлення до цілих при вивантаженні замовлення в B2C.

Напишу на прикладі замовлення.

Ціна доставки в м Сміла:
265 руб.

У нас націнка коштує 10% на доставку.
У підсумку ціна доставки у нас на сайті:
291 руб 50 коп. (291, 5).

В налаштуваннях валюти встановлено кількість десяткових знаків = 0, тобто всі ціни на сайті вказані без копійок. Там де здійснюються розрахунки в копійках, йде округлення до цілих в рублях. Проблема в тому, що під час вивантаження замовлення в транспортну компанію відправляється точна сума до копійок, це неправильно.

Юрій. спасибі, проблему зафіксував, буде виправлено.

Сум. З останніми оновленнями Бітрікс, перестали завантажуватися настройки модуля.
Антон, ви не могли подивитися, чи відкриваються у Вас настройки?

Оновлення Бітрікс пов'язані з переходом на нове ядро ​​14.0.
Прикладаю скрін модуля з адмінки.

Не можу включити службу, так як не бачу жодної настройки, все вкладки порожні.
Включав лог помилок, теж не побачив проблем. З чим це пов'язано так і не зрозумів.

Проблема реально гостра, так як не можу використовувати службу доставки!

8-800-250-1860 Контакти Карта сайту
Дизайн сайту -