- Навіщо передавати на сайт набори з 1С Компанія «Гольфстрім» - постачальник обладнання для хлібопекарських...
- Хід робіт по впровадженню опцій в каталог товарів
- Впровадження наборів на сайт і зв'язок з 1С
- Шліфування зовнішнього вигляду
- Сама трудомістка задача
- План тестування опцій і наборів
- Технічна частина
- Результат - працюючий сайт під конкретні b2b-завдання за 3 місяці
Навіщо передавати на сайт набори з 1С
Наша взаимовыгодная связь https://banwar.org/
Компанія «Гольфстрім» - постачальник обладнання для хлібопекарських та кондитерських виробництв. З 2007 року компанія є не тільки дистриб'ютором, а й виробником обладнання декількох власних торгових марок.
У 2017 році компанія вирішила замінити старенький неадаптівний сайт на HostCMS на новий на 1С-Бітрікс. Як дизайну використовували готове рішення від Аспро. Кілька порад по переносу сайту на 1С-Бітрікс в окремій статті.
Застарілий сайт на HostCMS.
Гольфстрім звернулися до нас за допомогою в складному завданні - доопрацюванні імпорту товарів з 1С в Бітрікс з метою впровадження наборів і опцій в каталог.
Кожне кондитерське і хлібопекарське виробництво індивідуально. Основний техпроцес випічки хліба не змінюється, але є особливості. Устаткування має відмінні характеристики. Їх називають «опції».
Приклад: є умовна хлібопіч за півмільйона рублів. До неї ще за 100 тисяч можна купити опції «Витяжний зонт» і «душірующего пристрій». Хтось бере піч без опцій. Кому-то потрібна їх комбінація. У деяких товарів буває до 15 різних опцій.
Число варіантів поставки вимірюється сотнями.
На сайті потрібно виводити назви і ціни опцій для кожної одиниці обладнання.
Схожа ситуація з наборами товарів. До печі відразу пропонується підставка і расстоечний шафа. Це окремі товари. Їх можна купувати окремо. Але зручніше - в наборі.
Основна складність завдання - в інтеграції з 1С. Типова вивантаження не транслюються дані по опціях і наборам з прив'язкою до обладнання. У співпраці з IT-відділом компанії «Гольфстрім», ми змогли налаштувати вивантаження і зв'язку, про структуру даних нижче.
Структура даних для інтеграції наборів і опцій між 1С і сайтом
Первісну установку і настройку готового сайту виконала компанія Аспро. До нас сайт прийшов «свіженький». Базова інтеграція з 1С налаштована. Можна працювати.
Завдання з доопрацювання опцій в каталозі виглядала так:
- У картці товару можна вибирати необхідні опції.
- Поряд з кожною опцією вказана її ціна.
- Вибір опцій змінює підсумкову вартість товару.
- В інтерфейсі картки товару повинні бути два типи опцій:
- Чекбокс (значення «так / ні»)
- Список, що випадає (кілька варіантів однієї опції)
- Кожна опція не пов'язана з іншими і може додаватися незалежно від них.
- У кошику в найменуванні доданого товару повинні вказуватися обрані опції.
- Відмінність від стандартних (SKU) в тому, що в 1С НЕ будуть зберігатися всі можливі торговельні пропозиції (характеристики), але буде інформація про всіх опціях конкретного товару.
Увага, «гуманітаріям» далі не читати. Можливі помутніння розуму від великої кількості технічних термінів і діаграм. Переходьте відразу до розділу про зовнішній вигляд .
Спільно із замовником ми придумали рішення для зберігання і інтеграції з 1С опцій, наборів і множинних зв'язків «товар - опція» і «товар - набір».
Товарів кілька сотень. Опцій кілька десятків на всій Директорії. Опції вивантажуються з 1С в окрему папку «Опції» (не активна). У товару-батька заведено 15 властивостей (максимальна кількість опцій у одного товару), в яких зберігається зовнішній код товарів-опцій. Тип даних: рядок.
Під час попереднього аналізу виявили кілька проблем і невизначеностей:
- Як бути, якщо одна і та ж опція для різних товарів має різну ціну? Рішення - заводити однакові опції з різною ціною.
- Як формувати список, що випадає список опцій? За якою ознакою «слепляю» опції в список? Рішення - в властивість товару передавати xml_id опцій через крапку з комою.
- Як дізнатися назву опції - списку? Його не можна взяти з назви товару. Рішення - в відповідне властивість першим виводити назву, далі через крапку з комою xml_id опцій списку.
- Як передавати замовлення, в яких зустрічаються товари з опціями, в 1С та Бітрікс24? Рішення - завести реквізит замовлення, в який у вигляді багаторядкового тексту передавати список товарів і обраних додаткових опцій.
Мало придумати механізм відображення опцій на сайті. Треба передбачити безліч пов'язаних областей - в 1С, в продажах, в SEO.
Багато речей в цьому проекті ще тільки належить зробити (наприклад, зміна url для кожної комбінації опцій). Ми не боїмося складних завдань і готові вигадувати інтеграційні рішення на стику веб-технологій, маркетингу і товарного обліку.
Початкова оцінка по завданню - 40+ годин. У підсумку, всі базові доопрацювання ми зробили за 38.
Ще близько 30 годин витратили на інтеграцію наборів і супутні нові завдання.
Хід робіт по впровадженню опцій в каталог товарів
Насамперед ми розгорнули власну копію сайту на сервері для розробки і налаштували git. Крім нас на проекті працювали хлопці з Аспро, нам знадобилася система контролю версій.
Другий важливий крок - настройка логування вивантаження з 1С. Це власна розробка ИнтерВолга. При будь-якому сеансі обміну між 1С і сайтом програма логування записує кілька десятків параметрів обміну. Допомагає розкопати проблеми, якщо вони є. Зробили вивантаження товарів на тестовий сервер, перевірили правильність. Отже, всі дані про опції є на сайті, можна займатися їх висновком.
Картка товару трохи змінилася:
- Додали опції-чекбокси.
- Додали опції-списки. Зробили перше значення списку обраних за замовчуванням. Для деяких товарів опції обов'язкові.
- Додали рядок з перерахуванням обраних опцій під заголовком товару.
- Додали іконки з інформаційними повідомленнями про призначення кожної опції.
- Навчили ціну змінюватися в момент вибору опцій.
- При додаванні товару з вибраними опціями в кошик є одна хитрість. Фізично, товару з конкретним набором опцій не існує, в корзину ми кладемо лише «згадка» про нього. Тому, якщо користувач з кошика клацне на товар з опціями, він побачить «порожній» товар.
Додавання опцій спричинило за собою одну неприємну проблему, над вирішенням якої довго билися.
При спробі передати в поштове повідомлення і рахунок на оплату замовлення інформації про опції, передавалися не тільки їх назви, а й супутні XML_ID.
Виглядало так:
Виправили, залишили тільки назви.
Результат зміни картки товару нижче.
Оригінальний вигляд картки товару
Картка товару з опціями
Впровадження наборів на сайт і зв'язок з 1С
1С не знає нічого про набори і різні типи товарів. Для неї вся номенклатура однакова.
Перед початком роботи по наборам ми перевірили, що 1С не скидати тип товару-набору при вивантаженні:
- створили тестовий товар в 1С;
- вивантажили на сайт;
- конвертували в набір;
- змінили назву і ціну в 1С, знову зробили вивантаження;
- товар залишився набором (!), у нього змінилися назва й ціна;
- видалили товар в 1С, зробили вивантаження;
- товар залишився набором і скасовано.
Висновок. Типовий обмін товарами з 1С не змінює «тип товару». Залишилося придумати, за якою ознакою перетворювати товари в набори. Це просто. Також, як і з опціями, ми завели властивість і передавали в нього xml_id складових набір товарів.
Набори передаються аналогічно. Є властивість «Товари набору». У ньому передаються xml-id.
Після перевірки гіпотези перейшли до основної частини завдання за розділами - Конвертація товарів в набори. Ми написали скрипт, який:
- перевіряє всі товари, у яких заповнений властивість «товари набору», є вони наборами чи ні;
- якщо не є, конвертує в набір;
- якщо є, нічого не робить.
Скрипт стоїть на cron о 4.30 щодня. Працює.
Типовий обмін товарами з 1С не змінює «тип товару». Головне - конвертувати товар в набір.
Друга частина завдання - зв'язка «товар - опції - набір». Ми зробили так, що при виборі будь-якої опції товару-набору, вона змінює ціну не тільки самого товару, але і ціну набору разом зі складовими товарами. Магія.
Шліфування зовнішнього вигляду
Вся бізнес-логіка працює. Можна займатися зовнішнім виглядом. Що зробили:
- збільшили висоту списку для відображення більшої кількості опцій;
- додали іконку і додатковий опис для опцій;
- трохи поправили шаблон набору;
- перенесли обрані опції в заголовок товару для невеликої нагадувалки користувачеві;
- до складових набір товарів додали короткий опис, виводиться при наведенні;
- додали на картку товару текстові блоки «Опис» і «Особливості». Текст беремо з додаткових властивостей в 1С.
Сама трудомістка задача
Дивно, але найбільш трудомісткою виявилася задача другорядної важливості. Спочатку вибір опцій в товарі не впливав на вартість набору з цим же товаром. Ми вирішили, що правильно при виборі опцій одночасно міняти ціну набору (на цій же сторінці нижче).
Так ось, завдання зайняла 10 годин. Причина - товар з опціями додається в кошик «кастомними» скриптом через AJAX, а товар з набором стандартних скриптом з перезавантаженням. Довелося написати щось середнє.
План тестування опцій і наборів
Перед тим, як здавати роботу замовнику, ми склали і здійснили план тестування.
Технічна частина
- Опції знаходяться в папці «Опції», які не виводяться в каталозі на публічкою.
- Назви для Опцій передаються з 1С на сайт.
- Ціни для Опцій передаються з 1С на сайт.
- Короткий опис для Опцій передається з 1С на сайт.
- Товар містить посилання на опції за допомогою вказівки xml_id у відповідному полі.
- На картці товару відображаються опції-прапорці.
- На картці товару відображаються опції-списки.
- Тип цін опції відповідає типу ціни товару для даного користувача.
- У кошику для товара виводяться назви опцій.
- При оформленні замовлення для товарів виводяться назви опцій.
- На детальної картці замовлення в ЛК виводяться назви опцій.
- Товар, який не можна купити, не можна купити ні з опціями, ні без опцій.
адміністративна частина
- Опцію можна додати до товару вручну, вона з'явиться в картці товару.
- На детальної картці замовлення в адмінці виводяться назви опцій.
Призначена для користувача частина
- При виборі опції ціна товару перераховується, це однозначно видно і зрозуміло на картці.
- Товар з опціями можна покласти в кошик.
- Можна покласти кілька однакових товарів з різним набором опцій в кошик. Товари «не йдуть».
- В кошику можна змінити кількість товарів з опціями, ціна перерахується коректно.
- Товар з опціями можна оформити в замовлення.
- Замовлення можна скасувати.
Після проведення тестування знайшли кілька дрібних багів. В цілому, робота виконана добре і з першого разу.
Результат - працюючий сайт під конкретні b2b-завдання за 3 місяці
Гольфстрім - хороший приклад проекту «швидкий запуск і поетапне нарощування функцій». У сучасному бізнесі швидкість впровадження змін відіграє велику роль. В інтернеті також.
Як ми пишемо в статті про итерационную веб-розробку , «Перфекціоністи програють».
Ми відмовляємося від довгих проектів з товстими ТЗ. Ми любимо проекти з швидким розгортанням нових функцій в публічному доступі, щоб замовник відразу отримав зворотний зв'язок від своїх клієнтів.
Що побачили клієнти та партнери компанії Гольфстрім на новому сайті:
- актуальний каталог з дилерськими цінами;
- доступні для кожного товару опції;
- комплектуючі для товара в вигляді наборів;
- замовлення однакових товарів з різними опціями;
- коректна передача опцій і наборів в рахунок для оплати.
Описані функції ми впровадили на сайт менше, ніж за 2 місяці роботи. Швидкість впровадження нових функцій - одна-дві на тиждень.
На даний момент в проекті 70 завдань, з них 4 в роботі. Решта закриті.
Висловлюємо подяку Андрію Щербаку, менеджеру з маркетингу компанії Гольфстрім за участь в проекті, постановку цікавих завдань і вироблення спільних рішень.
Ми готові взяти будь-який проект на супровід. Заповніть форму або напишіть на [email protected] .
Оцініть статтю:
Як формувати список, що випадає список опцій?За якою ознакою «слепляю» опції в список?
Як дізнатися назву опції - списку?
Як передавати замовлення, в яких зустрічаються товари з опціями, в 1С та Бітрікс24?