Приветствую вас, читали Хабра. Давненько я ничего не писал здесь, надо исправить эту досадную ситуацию.
Итак, небольшая предистория. За последние 2 года я запустил 5 интернет магазинов(ИМ) и помог запустить около десятка других.
Я не являюсь представителем какой-либо веб студии, и не являюсь исполнителем каких либо проектов на сторону. Моя помощь в запуске других (не моих) интернет магазинов — это было консультирование знакомых и коллег, которые хотели сделать нечто похожее, и использовали мой подход.
В этом посте хотел бы поделиться опытом создания технической части интернет магазина. Хочу сразу предупредить «правильных» специалистов: я сознательно в статье не использую очень «правильную» терминологию, потому что в первую очередь хочу объяснить все людям, которые в этой узкой сфере не совсем компетентны, и постараюсь выражаться человеческим языком.
Начну с самого начала. Два года назад я решил сделать интернет магазин для своей жены. Она решила продавать одежду. Начал я со своего любимого WordPress. WooCoomerce — вполне адекватный движок для небольшого магазина с сотней позиций. Но когда я решил как-то это все связать с бухгалтерией и учетом на 1с — все оказалось очень неудобно. Есть модуль, который позволяет сделать какую-то синхронизацию, но он очень примитивный и мало-функциональный.
После этого я попробовал стартануть на Magento. Две недели экспериментов закончились ничем. Эта система мне тоже не подошла.
По дороге я перебрал еще с десяток разных движков, но понял, что Вордпресс и то круче :)
В конечном итоге я обратил свое внимание на Битрикс. Попробовал его установить на свой привычный хостинг, получил кучу ошибок, много танцев с бубном и через несколько часов у меня хоть админка заработала. Когда я её увидел — подумал «что за извращенец все это писал». Админка битрикса — просто монструозна. Такого количества непонятного для себя функционала, который не так просто использовать я раньше не видел, куча терминов типа «инфоблоки», «компоненты», «модули» — никак не соответствовали моему предыдущему опыту. И это с учетом моего технического бекграунда (а он у меня очень приличен). Да и еще никаких нормальных шаблонов нигде не найдешь, чтобы хотя бы попробовать — все за деньги, и не самые маленькие, как для «попытки».
И я уже был готов остановиться, но тут случайно нашел на одном из софтовых сайтов шаблон, старенький, но рабочий. И у меня наконец-то получилось что-то запустить. Каково было мое удивление, когда я смог за часик настроить выгрузку из своей 1С-ки всей номенклатуры, и она начала там отображаться, и даже изменения стали синхронизироваться. Это была победа.
В конечном итоге я решил разбираться с Битриксом.
И в этом посте я хочу в вами поделиться теми лучшими практиками, которые я для себя определил за время использования ИМ на базе движка 1С-Битрикс.
Битрикс
Итак, давайте разберемся, что такое Битрикс. Из-за жесткого маркетинга в СМИ, телевидении, который проводит компания 1С-Битрикс, многие обыватели, особенно предприниматели, когда слышат слово «Битрикс» но, как правило, не имея должной технической подготовки, ложно понимают, что речь идет о CRM системе, то есть о Битрикс24. На основе этого заблуждения я тоже не особо понимал разницы. И в своих первых экспериментах пытался поднять Интернет магазин на скаченной демо-версии коробочной «Битрикс24: Корпоративный портал». И удивлялся, почему все так сложно :)
Битрикс — это фреймфорк (в народе «движок») на котором можно построить самые различные веб-приложения (сайты): лендинги, интернет-магазины, корпоративные сайты и CRM-ки (Битрикс24 — это по сути шаблон для движка Битрикс, в котором реализована вся бизнес логика и взаимодействие с пользователем).
То есть, для того, чтобы построить свой Интернет Магазин на базе Битрикс нужен сам движок, и какой-то шаблон, в котором реализована бизнес-логика магазина.
И есть два пути:
- использовать фреймворк Битрикса и добавить к нему самописные модули, на которых будет реализована вся визуальная часть сайта и бизнеслогика.
- использовать Битрикс и к нему приобрести готовый шаблон Интернет магазина или сайта (лендинг, корпоративный сайт, сайт услуг, и т.п.)
Первый путь предпочтителен для больших проектов, где бизнес-логика достаточно сложная. Хотя вы можете возразить сразу: зачем мне битрикс, если можно сразу проект писать с ноля. На самом деле можно, но сам битрикс — это не просто фреймворк, а очень широкая и функциональная CMS система, в которой из коробки доступно огромное количество функций, на реализацию которых ушло бы несколько лет. Если ваш проект требует такого подхода — то оптимальный вариант — это обратиться в какую-то серьёзную веб-студию и быть готовым платить суммы от 300 000 рублей и выше.
Второй путь очень подходит для нашего кейса «интернет магазин за неделю». У Битрикса есть свой Маркетплейс, где можно приобрести самые различные шаблоны и модули. На одном движке (его называют «ядро»), как правило стоит устанавливать 1-2 шаблона (например, 1 шаблон Интернет магазина, и 1 шаблон генератора лендингов). И какое-то ограниченное число модулей (это число не особо ограниченное, но не стоит этим злоупотреблять, потому что количество модулей влияет на скорость работы сайтов). И тогда правильный рабочий интернет магазин на базе 1с-Битрикс выглядит так:
- 1с-Битрикс: управление сайтом (в народе БУС).
- шаблон интернет магазина (например, Аспро Некст или Digital Web Deluxe, это самые популярные шаблоны в маркетплейсе);
- шаблон генератор лендингов (используется для создания качественных посадочных страниц для перехода из поисковых систем);
- несколько модулей для реализации бизнес логики (например, модули платежных систем, модуль экспорта в Яндекс Товары, модули загрузки прайсов поставщиков, модули интеграции со сторонними CRM системами);
Такой комплект в конечном итоге потянет приблизительно на 50-120 тыс. рублей. В принципе, есть еще разные легальные, полулегальные и не особо легальные способы удешевить это дело, но это не предмет этого поста. Их можно по-гуглить, если что.
Это все было вступление. :)
Теперь переходим к сути.
Идеальная схема работы (IMHO)
Если ваш бизнес предусматривает хоть какую-то перспективу — то учет в нем должен быть построен по-взрослому. Никакие тетрадки-эксели-гуглдоксы вам не помогут вести качественный учет, выдавать адекватную аналитику, и следить за всеми ключевыми показателями бизнеса. Поэтому, самый адекватный вариант, который я видел для своих проектов, и который вам, читатели, рекомендую это начитать онлайн магазин не с движка и дизайна, а с учета.
Товары
Для связки с ИМ на битриксе идеально подходит 1C: Предприятие в конфигурациях: «Управление торговлей», «Управление небольшой фирмой», «Управление торговым предприятием» и еще некоторые. Конфигурацию стоит подбирать по специфике своего бизнеса.
И первым шагом для создания своего онлайн магазина — это наполнить товарами свою конфигурацию 1C. Это очень важный шаг, потому что на нем будет основываться вся дальнейшая логика учета, выгрузки товаров на сайт и т.д. Не стоит спешить и сразу наполнять сайт товарами, лучше качественно заполнить номенклатуру в 1с.
Существует множество способов как загнать номенклатуру в 1с. Если погуглить, для каждой из конфигураций есть свои методы, вполне доступные по цене. Как правило это импорт из экселя или csv файла от поставщика товаров, то есть импорт из прайса. На этом этапе рекомендую по-взаимодействовать со специалистом по 1С: Предприятие. Также на этом шаге стоит сразу правильно и логично разбить товары по базовым категориям, в которых вы бы хотели в будущем увидеть товары на своем сайте.
Хостинг интернет магазина
Битрикс — это достаточно требовательная к ресурсам система. Поэтому, не стоит её использовать, если вам нужен одностраничный сайтик, и вы хотите сэкономить на хостинге. Но для интернет магазина нужен хостинг посерьезнее. Для корректной работы сайта на базе 1С-Битрикс нужен либо специализированный хостинг для Битрикса, либо выделенный сервер (виртуальный или физический) с установленной на нем Centos(6 или 7) с пакетом веб-окружения Битрикс.
Я лично предпочитаю второй вариант. Для адекватной работы магазина в с посещаемостью до 20 клиентов в час вполне хватает VPS с конфигурацией: 2 ядра CPU, 4gb RAM, и 20gb SSD. Такую конфигурацию можно приобрести за 15-20 долларов в мес. на Digital Ocean, Vultr или Hetzner. Установка и настройка всей системы, человеком без особых навыков в администрировании серверов займет максимум минут 30. Это с ожиданиями установки. Веб окружение ставится одним скриптом, и на выходе вы получаете вполне вменяемый веб сервер с кучей примочек для оптимизированной работы сайта. Конечно, опытные админы будут вам рассказывать, что лучше самим скомпилировать и сделать свою сборку, но в 95% случаев точно хватит и стандартного решения.
Когда у вас на виртуальном сервере установлено веб-окружение для Битрикса, вы просто заходите в браузере по айпишнику на свой веб сайт, и сразу запускается скрипт установки.
НЕ НУЖНО НИЧЕГО ДОПОЛНИТЕЛЬНО НИГДЕ СКАЧИВАТЬ. :)
Установка Битрикса
Это самый простой шаг. Если вы все сделали корректно установщик вам предложит на выбор какую именно редакцию вам установить. Есть два базовых варианта:
- Если вы уже приобрели лицензию 1С-Битрикс — то просто вводите свой лицензионный ключик, и устанавливается та версия, которую вы ранее купили.
- Если вы хотите потестить — выбираете себе нужную редакцию для установки в демо-режиме. В дальнейшем «демку» можно очень легко сделать полноценной версией, просто введя лицензионный ключик в админ-панели. Битрикс для тестирования выделает целый месяц, что как правило достаточно для базовой настройки.
Очень важно на этапе установки битрикса проследить, чтобы установка была в кодировке utf-8. А то иногда бывает установится в windows-1251, а потом куча приколов с кодировкой.
Установка шаблона
Если вы уже приобрели шаблон для своего сайта, то просто следуете инструкции по установке этого шаблона. А если еще нет, по после установки битрикса можно в админке в маркетплейсе установить какой-нибудь шаблон в демо-режиме. Жаль, многие разработчики шаблонов не позволяют свои шаблоны «пощупать» перед тем как покупать, но есть некоторые шаблоны, которые можно скачать для теста на несколько дней. Например, шаблоны компании Сотбит. Устанавливаете шаблон. И можно переходить к этапу наполнения магазина.
Резервное копирование
Наверное, самое приятное в пользовании CMS на основе 1С-Битрикс — это очень крутая система резервного копирования. В своих предыдущих проектах я привык к самым разным самописным системам бекапов, поэтому, когда я разобрался с битриксовой системой резервного копирования, я просто был приятно удивлен. Например, переезд с одного хостинга на другой, магазина с 45 000 товаров, с резервной копией размером около 12 гигабайт — у меня занял около 1 часа и несколько кликов мышки. При этом никаких танцев с бубном совершать вообще не пришлось.
Поэтому на этапе настроек, если вы сделали какую-то серию шагов и вам понравился результат — сделайте «сейв», как в любом шутере перед входом в комнату с «Биг Боссом». В последствии, это вам сэкономит много времени. Потому что из бекапа восстановление сайта в автоматическом режиме происходит буквально за несколько минут.
Выгрузка товаров
Во многих последних конфигурациях 1С: Предприятие поддержка синхронизации с битриксом уже есть встроена, но в некоторых её нету. Соответственно её стоит туда добавить. Специалист это сделает минут за 15-20. В принципе, есть адекватная инструкция от 1С, и даже не специалист это сможет повторить, если внимательно будет ей следовать.
После чего можно приступать к связке 1С с магазином на Битриксе. Это все достаточно простые действия, которые детально описаны в инструкции к модулю.
В результате, после того, как вы завершите выгрузку товаров на сайт, вы получите на сайте полностью заполненную карточку товара, с названием, описанием, свойствами, ценами и остатками на складе(ах) и даже картинкой, если вы все это внесли в 1С-ку. И вся дальнейшая работа с названием товара, или описанием будет производиться не на сайте, а в 1С. А после синхронизации все изменения будут отображаться на вашем сайте.
Обогащение карточки товаров.
1С: Предприятие — это прежде всего система учета, а сайт должен «продавать». И в 1с-ке часто нету всех необходимых данных, которые для товара нужны. Например, может не быть таких штук, как «вместе с этим товаром покупают», или таких дополнительных данных, как ссылки на видео, или вам нужно, чтобы у товара было больше картинок, чем вы храните в базе 1С-ки. Тогда на помощь приходят различные модули.
Лично у меня самый любимый и часто используемый модуль на этапе наполнения магазина — это «Экспорт/Импорт товаров в Excel» (esol.importexportexcel). Как правило, после выгрузки товаров из 1С, я делаю экспорт всех товаров в эксель таблицу.
В ней вношу все необходимые дополнительные данные, и потом импортирую эти данные обратно. И за несколько часов работы сайт может быть уже полностью корректно наполнен.
Правка всего лишнего
Как правило все шаблоны поставляются с уже предзаполненными страницами магазина, такими как оферта, правила покупки, адреса магазинов, услуги и т.п. Не спешите удалять все лишние страницы. Возможно они вам очень пригодятся в будущем. Просто их деактивируйте, и они исчезнут из публичной части сайта. Практически все данные на статических страницах сайта редактируются очень легко, если включить режим правки.
Обратите внимание! Не стоит оставлять какие-то страницы со стандартным текстом от разработчика. Это грозит так званным «слипанием» сайтов — это очень не хорошо для SEO продвижения вашего проекта. Поэтому, если вы все это проделываете на «боевом домене», сразу после развертывания системы по-отключайте ненужные страницы, чтобы поисковые пауки не успели вас проиндексировать. А лучше всего, на время настройки отключите доступ к публичной части сайта для неавторизованных пользователей. Это делается в настройках главного модуля в самом низу страницы.
Интеграции
Современный ИМ без адекватной CRM системы — с большой вероятностью будет просто тратой времени. Поэтому важно интегрировать какой-то CRM-кой. Интеграция и выгрузка заказов в Битрикс24 (облачной версии или коробочной) поднимается с пол-пинка, минут за 10. Интеграция с AmoCRM, МойСклад, и другими более-менее крупными системами поднимается за 15-20 минут.
Для настройки выгрузок в разные каталоги, прайс-агрегаторы как правило использую модуль «Экспорт на порталы» (acrit.exportpro) компании «Акрит». Настройка даже достаточно извращенной выгрузки занимает до 1 часа включая тестирование.
Для интеграции с SMS сервисами есть несколько модулей в маркетплейсе, которые позволяют связать магазин с большинством крупных провайдеров отправки СМС.
Итоги
В результате, вы получаете полноценный интернет магазин с кучей возможностей, которые вы сможете использовать в своих бизнес-процессах и не тратить время на дополнительное общение с программистами, и не держать у себя в штате «того парня» который умеет поправить пару буковок в html, или изменить номер телефона на сайте. Все это сможет сделать любой «гуманитарий» без специального образования.
Теперь поговорим о плюсах и минусах.
Плюсы:
- Надежность. Когда я изучал для себя тему, я увидел, что есть реально огромные ИМ, которые построены на этом движке. И они прилично работают.
- Легкая (сравнительно с остальными) интеграция с учетом.
- Практически любые нужные бизнес-инструменты сразу в коробке(не надо придумывать очередной велосипед).
- Множество приличных шаблонных решений. Некоторые есть даже достаточно дешевые.
- Легкая интеграция со всевозможными сторонними сервисами. (Например, на работающем магазине интеграция с google merchant у меня заняла минут 40 без единой дополнительной строчки кода, интеграция с провайдерами СМС занимает 10-15 минут)
- Крутая система бекапов.
- Гибкая система распределения прав для разных категорий менеджеров, контент менеджеров, сеошников и прочих специалистов компании.
- Проактивная защита, довольно эффективно защищает от вторжений снаружи. Я не слышал о взломах систем основанных на битриксе.
- Не обязательно продлять лицензию, чтобы сайт работал. То есть можно купить лицензию, запустить сайт, и если его не нужно обновлять — то на «просроченной» лицензии сайт будет работать неограниченное время. Просто обновления системы не будут загружаться. Но большинство проектов этого и не требуют.
Минусы:
- Цена. Во времена повальной халявы и open source проектов платить за софт на каждом шагу как-то непривычно. Но в совокупности, если бы я попытался повторить самописной системой даже приблизительно похожий функционал — на это ушли бы миллионы рублей.
- Требовательность к ресурсам. Вордпресс движок и на 5-ти долларовом сервере вполне себе прилично работает. Битрикс на сервере за 5 долларов скорее всего не с первого раза установится. А может даже не установится. Работать будет очень медленно.
- Меньше специалистов и они дороже, чем привычные программисты на PHP. Если вам нужно будет что-то доделывать «свое» то специалисты на битриксе немного (на 20%-50%) дороже чем аналогичной квалификации программист PHP.
- Если шаблон куплен, то со своими правками в код лезть не стоит, и всё же если решились на изменения, то обновлять шаблон нужно с осторожностью.
- Огромное количество файлов модульной системы, но компенсируется тем, что это используется не всё сразу, а только при отдельно взятых страницах и очень эффективно кешируется.
- Если что-то сделать не так и не сделать резервную копию перед этим, можно на ровном месте получить белый экран и без специалиста никуда…
- Чтобы получать обновления, нужно продлять лицензию каждый год. Это не очень дешево.
Немного опыта
Если передаете доступ в свою систему незнакомым разработчикам, удалите из настроек свой лицензионный ключ. Если разработчикам не нужно будет там ничего устанавливать, а только что-то править, они без проблем смогут это сделать, но при этом ваш ключик никуда не «улетит». Это может быть чревато тем, что нерадивый разработчик будет пытать воспользоваться вашим ключиком, и его заблокируют. Имел такой опыт — пришлось службе поддержки доказывать, что я не верблюд :)
Не рекомендую обращаться в большие веб-студии, особенно «золотые партнеры» :) Точнее не так: если у вас небольшой проект — лучше к ним не идите. Как правило они получают статус золотых за продажи. Но это не значит, что за качество. Если у вас большой проект — то фрилансер не потянет. Но если у вас сравнительно стандартный магазин, то нормальный специалист сделает вам его быстрее, дешевле, чем студия — и не хуже, а может и лучше.
Конечно, могут возникнуть холивары и споры, что лучше использовать что-то бесплатное или менее дорогое, но если я хочу запустить магазин уже через две недели, это просто самый идеальный вариант. В силу загруженности в бизнесе, больше не имею времени заниматься бесплатными/недорогими системами — нужное подчеркнуть.
Нанимать специалиста для попыток чего-то родить из пальца и платить огромные зарплаты в конечном итоге несут бОльшие потери уже за два-три месяца. Другими словами, это как с техникой компании Apple: в начале требует значительных инвестиций (по сравнению с PC), но в конечном итоге стоимость владения значительно ниже за счет надежности, предсказуемости, продуманности инструмента и минимального времени простоев.
У меня прямо получился хвалебный пост битриксу. Еще раз уточню — я никакого отношения к этой компании не имею, и даже не имею статуса партнера, и не зарегистрирован как разработчик. Просто за время, проведенное в недрах системы, разобрался с очень многими вопросами и захотелось поделиться своими инсайтами.
P.S. Если будут вопросы — пишите в комментах, пишите в личку.
P.P.S По поводу «удешевления» есть разные сервисы «складчин».
Комментарии (13)
x893
16.11.2018 09:22+2Проблема не в коде для магазина (nopcommerce + два дня), а в наполнении.
Фото товаров, описания, какие то отзывы вразумительные, статьи (лучше оригинальные), поддержание этого всего в актуальном состоянии, доставка, возврат и т.д. и т.п…
Код самого магазина от 0.1 до 2% от всего остального. Если конечно не ворованными лицензиями/вирусами торговать за битки.
himch
16.11.2018 10:01Извините за дилетантский вопрос, вот это:
"шаблон генератор лендингов (используется для создания качественных посадочных страниц для перехода из поисковых систем)"
как используется? Всегда думал что по поиску попадаешь на главную страницу сайта, а дальше ищешь необходимый товар. Ну, скажем, если я хочу купить что-то на АлиЭкспресс, я захожу на его главную страницу, нет?
Jouretz
16.11.2018 10:26Это если вы хотите купить что-то на АлиЭкспресс. А вот если вы хотите купить красные-трусы-в-горошек-где-нибудь-лишь-бы-быстрее то выгоднее вас сначала закинуть на лендинг который будет выше в поисковой выдаче чем сам каталог магазина. А уже с лендинга перевести в каталог.
Forxxx
16.11.2018 13:29Из поиска вы попадаете не на главную страницу, а на наиболее релевантную страницу сайта соответствующую вашему запросу, которую определяет поисковая система
dmxrand
16.11.2018 11:23Вот именно поэтому я для вот этого tkugtrans.ru/static/wshop_huge/index.html#!grp934 zepter-rnd.ru/ru использую ПРОСТОЙ csv. Тупо выгрузил из 1С и на входе в 1С тоже CSV (иногда просто в экселе правят). Хостинг 150 р в месяц…
tvr
16.11.2018 13:36Ой, Zepter, эти волшебники трансмутирующие обычную нержавейку в мифрил с соответствующим ценником ещё живы?
peresada
Битрикс, вордпрессы, опенкарты и прочие CMS (кроме Magento, пожалуй) — это бич нашей сферы. Они были сделаны давно, и как правило, плохо (и никто из создателей не планирует улучшать качество этих продуктов), тем не менее они работали и были понятны простым пользователям, которым не приходилось лезть под капот.
Единственный их серьезный успех — это маркетинг, так как они заставили поверить простых пользователей, что программисты не нужны для создания веб-сайтов. В итоге мы имеем интернет полный мусора и программистов, которые вынуждены этот мусор поддерживать.
А все из-за того, что люди (особенно нашего менталитета) привыкли все делать своими руками, а не платить профессионалам, типичное «И так сойдет»
yarric
Исходя из типичных сроков ваш программист возьмёт тот же шаблонизатор, или достанет аналогичный проект интернет-магазина из своих загашников. Лучше шаблонизатор, потому как самописный ещё непонятно кем и как писался и отлаживался.
peresada
Если речь идет о «Создать магазин за 20 000 рублей, срок неделя», то скорее всего так и будет. Мне кажется, что маленьким порталам, маленьким магазинам следовало бы пользоваться лендинг сервисами, а не на любую прихоть пилить свой «сайт». Если бы не было такого количества сайтов на вышеописанных CMS, тогда бы программисты развивали и те же самые лендинги и в принципе сервисы, которые упрощают жизнь конечным заказчикам, а не пилили бы каждый день одинаковые модули для устаревших технологий.
yarric
Так таких заказов — большинство. Если бы остались только крупные сервисы вроде Amazon, то специализация веб-программиста стала бы такой же экзотической, как программиста бортовых компьютеров самолётов.
cohe4ko Автор
Знаете, если я включу своего внутреннего программиста, то для меня все, что написано в другой парадигме мышления будет «говнокодом». Магазин — это утитилитарная штука. И главная задача — это то, что он выполняет свою функцию. И я согласен, что у всех систем, которые со временем становятся монструозными есть минусы, и даже большие жирные минусы, Но код — это не самоцель, а только инструмент. И я помню времена, когда писал на ассемблере, и там было все изящно и предельно быстро.