1С-бітрікс розробникам - прес-реліз модуля доставки b2cpl (для клієнтів і розробників)
Компанія B2C Платежі та Логістика звернулася до мене з проханням зробити модуль (сторінка в Маркеті) інтеграції їх сервісу з магазинами на Бітрікс. У цьому міні-кейсі я опишу і як його використовувати, і з якими труднощами довелося зіткнутися, працюючи на кінцевого клієнта (користувача модуля), а не для галочки. Проект виконаний у співпраці з Олександром Гусєвим.
Більшість особливостей з'явилося в новій версії 2.0, так що, якщо у кого-то версія стара - будь ласка, оновіться.
1. Модуль максимально лояльний до користувача. Пропонує варіанти доставки за індексом. А якщо він не введений, то за назвою міста.
2. Дозволяє розраховувати вартість доставки не тільки по вазі, але і за обсягом (нове).
3. Дозволяє включити ПочтуУкаіни в варіанти доставки (нове).
4. Замовлення для доставки компанією B2Cpl автоматично вивантажуються на сервер компанії і надходять в обіг (нове).
5. Присутній зворотний зв'язок, що показує в адмін.часті внутрішній статус B2Cpl (нове). При бажанні це може бути винесено і в публічну частину (не входить в даний модуль):
6. Відправлений на сервер B2Cpl замовлення повертає файл стікера, який можна зручно завантажити та роздрукувати щоб потім наклеїти на посилку для передачі кур'єру B2Cpl (нове):
Як правильно налаштувати модуль
1. Отже, ви ознайомилися зі службою. зрозуміли, що вас воно повністю влаштовує, укладаєте з компанією договір, і починаєте працювати.
2. Установлюєте модуль за допомогою кнопки "Встановити". У вас повинні бути активні оновлення вашої ліцензії Бітрікс, і наявність модуля Магазину обов'язково звичайно ж.
3. У розділі "Налаштування магазину / Автоматизовані служби доставки" після установки модуля з'явиться нова неактивна служба доставки.
(Шлях Робочий стіл / Магазин / Налаштування магазину / Служби доставки / Автоматизовані)
4. Переходимо до Служби. Ми бачимо кілька вкладок. Пробіжить по важливим.
4.1. Базова конфігурація. Включають назву, опис, сортування в списку доставок і (в останніх версіях Бітрікс) ще й зображення Служби.
4.2. Налаштування доставки. Це вже обов'язкові налаштування, які вам необхідно внести.
Не забудьте активувати Службу після внесення змін для початку роботи!
Ну і нарешті. Вам потрібно переконатися, що у вас є властивість замовлення Індекс. зазначене відповідної галочкою:
І звичайно ж Місцезнаходження, також зазначене відповідної галочкою:
Частина для розробників
Про тонкощі і плюси модуля можете почитати нижче. В які складнощі ми вперлися, і які питання для вирішення перед собою поставили
1. Клієнт повинен ставити однією кнопкою і забивати всього кілька опцій.
2. У нього може не бути бази індексів, або бути неповна. Він не повинен піклуватися про це.
3. Ми не повинні правити шаблони і позбавляти клієнта оновлень.
Перше питання було вирішене просто, так як модуль всього лише додавав автоматизовану службу доставки. А ось друге питання без третього вже вирішити складніше.
Але ми вирішили це спільно з самої компаній. Змалювавши їм ситуацію, що модулем (і сервісом) будуть користуватися тим охочіше, ніж менше він мороки доставить при установці. Таким чином, з їхнього боку було надано функціонал визначення індексу за назвою міста!
Ну все, здавалося б, проблема вирішена: є індекс - дізнаємося ціну доставки, немає індексу - дізнаємося по місту. Але встала ще одна проблема - місто може повернути кілька індексів. Відповідно, в такому випадку треба повідомити користувача
Якщо місто буде не знайдений, модуль теж послужливо відповість відвідувачеві
І навіть після цього знову зіткнулися зі складнощами - індекс після попередження введений користувачем, але як оновити форму замовлення, відправивши запит на сервер доставки? Але і це було вирішено автоматично і без редагування шаблону - шукається поле індексу і на нього вішається js-event blur.
Ось як-то так галопом по модулю завантажуйте користуйтеся, вивчайте, і робіть такі ж зручні модулі. Або звертайтеся до нас
Є декілька питань
1. У csv падає ціна "як є", без форматування. В адмінці ж, і в публічкою йде форматування відповідно до налаштувань валюти. Швидше за все у вас йде округлення для візуальних частин. Якщо це дійсно критично, буду обробляти таку ситуацію.
3. Оціночна вартість передається в CSV також, да.
4. Це краще теж уточнити з компанією.
До речі, "розрахувати вартість" доставки на етапі підтвердження замовлення не вдалося домогтися, щоб показувало
У одного клієнта схожа проблема, буду зараз розбиратися. Можливо, це і ваш випадок. Я повідомлю окремо і випущу фікс.
Дійсно помилка в налаштуваннях сервера була. До сих пір вирішую її з підтримкою хостингу.
Ще при установці Бітрікс проблема була в установці кодування UTF (включення mbstring.func_overload), але я благополучно про це забув.
З цим компонентом довелося повернутися знову до вирішення даного питання.
На локальній системі налаштував і перевірив сайт.
З'явилися такі питання.
В адмінці при формуванні замовлення вручну по кнопці "Додати замовлення" завантажуються НЕ ВСЕ способи доставки.
Встановлюю як годиться країну, область, місто, а також встановлюю індекс (з якоїсь причини, індекс автоматично не встановлюється).
Але в результаті пропонується завжди два стандартних способи:
Другий, менш важливий недолік - це індекс при виборі міста.
Едуард правильно зауважив, є глюки з установкою індексу.
Саме при очищенні індексу, глюк пропадає.
Антон, перейшов по Вашій останній посиланню, теж не змінюється індекс при виборі міста.
Така ж ситуація і в адмінці. Вкрай незручно перевіряти індекс міста за іншими джерелами.
Поточний варіант рішення залишається тільки один? Запропонований варіант Едуарда?
Юрій. так як рецидив був, змушений оперувати тільки доступами, якщо у мене не моделюється прохання зрозуміти. В адмінці у мене все виводиться. потрібні доступи. (Ви до речі і самі можете подивитися в адмінки на test.d-it.ru, по доступам test / 111111).
Антон, перейшов по Вашій останній посиланню, теж не змінюється індекс при виборі міста
Тому що це проблема Бітрікс я не знаю як тут вчинити (я навіть не знаю як її піднести - то чи недоробка, то чи.). Впровадитися в шаблон, і вже тим більше в компонент, я не зможу. Спробуйте за способом Едуарда, наприклад.
Доступи не можу дати, тому що Зараз працюю тільки на локальній системі.
На сервері питання з помилками вирішується на рівні хостингу.
Юрій. перепрошую, тепер зрозумів. Тут швидше надочет самої адмінки (не можу це записати на баг модуля тільки). Я це поставлю в план на наступні доопрацювання, щоб якось обійти це поведінка (доопрацювання ще повинні пройти схвалення компанією).
Шкодую, але поки тільки так.
А підкажіть відповідь на моє запитання. як краще організувати таку умову. допустимо виводити службу доставки 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 Контакти Карта сайту