Когда нужно выбрать фреймворк вместо готового CMS при создании интернет-магазина
Руководитель диджитал-продакшн Creonit Антон Макаров рассказывает, чем фреймворк отличается от CMS-конструкторов и каким интернет-магазинам он подходит
В чем отличие фреймворка от CMS?
Давайте с порога разберемся в терминологии.
CMS — это система управления сайтом с готовым функционалом. Самая популярная CMS в российском ecommerce — 1С-Битрикс, также часто используются CS-Cart, OpenCart, PrestaShop, Magento. Среди востребованных CMS, на которых делаются не только интернет-магазин, но и другие сайты: WordPress (с модулем WooCommerce), Joomla, Drupal, Tilda, Modx, UMI и другие.
CMS можно купить или даже скачать бесплатно. Дальше все просто: развернул на хостинге, сверстал дизайн или просто загрузил логотип, установил цвета, шрифты в админке и работаешь с тем функционалом, который есть в рамках бизнес-логики CMS. А там есть решения на все случаи жизни небольшого ecommerce проекта. Все работает "из коробки", и это удобно. Но для больших интернет-магазинов с огромным ассортиментом CMS – не самый оптимальный вариант.
Framework — совсем другая история. По сути, это набор инструментов для разработки функционала сайта. Мы используем Symfony, еще есть Laravel, Yii, The Laminas Project (бывший Zend) и другие.
Если сравнивать CMS и фреймворк в осязаемых вещах, то CMS — это мебель из Икеи. Она простая и симпатичная, ее можно купить в магазине, собрать самостоятельно и комфортно пользоваться. А когда износится, то купить другую такую же. Но если размеры квартиры не стандартные, мебель из Икеи может не подойти или смотреться "криво". Конечно, можно что-то где-то подпилить, но бывает когда этот вариант не подходит.
Фреймворк — это мебель на заказ, которая создается специально под интерьер конкретной квартиры и запросы конкретной семьи. Скорее всего, качеством она будет выше, чем в Икее, но для ее создания нужны специальные материалы, крепежи и, конечно, индивидуальные чертежи, по которым мебель изготовит профессиональный плотник.
Этот вариант подходит для более сложных случаев, например, когда нужно разработать интернет-магазин с ассортиментом в сотни тысяч товаров, сложный маркетплейс с зашитыми внутри многоуровневыми бизнес-процессами. Или, допустим, когда офлайн-бизнес с давно сложившейся инфраструктурой выходит в онлайн. Бывает, что у CMS нет интеграции именно с той системой учета, которую использует заказчик. Менять систему учета, на которой компания работает уже 10 лет в 50 филиалах по России и миру только из-за сайта слишком сложно. В некоторых случаях при желании можно "допилить" интеграцию с новой системой учета, проще говоря, добавить в "коробку" CMS то, чего там нет. Но на это придется потратить много времени и есть риск, что система будет давать сбои при каких-то изменениях. Любой грамотный продакшн в таком случае советует делать сайт на фреймворке, потому что в итоге это выйдет качественнее и надежнее.
Зачем нужен фреймворк?
Фреймворк используют тогда, когда проекту нужна производительность, гибкость, бесконечно масштабируемый функционал и подстройка под бизнес-процессы.
Есть множество кейсов, которые показывают, что на фреймворке можно реализовать любое кастомное решение. Допустим, можно разделить информацию по одной сущности в админке с привязкой к пользователю. Например, отклики на вакансию грузчика будет видеть HR-менеджер Даша, а отклики на вакансию продавца — HR-менеджер Виктор.
Или вот другой пример. Представьте, что у компании работают 500 филиалов по всей стране. Нужно собирать остатки на каждом филиале, отслеживать их перемещение и дать пользователям возможность заказывать товары в конкретный филиал. То есть торговать не только тем, что есть в наличии в конкретном магазине, но также реализовать заказ товара "в пути", из другого магазина или с центрального склада. Или вообще даже не со своего склада, а со склада поставщика-партнера. И при этом не вводить пользователя в заблуждение, что товар уже на месте, а спрогнозировать приход товара и сориентировать покупателя. Именно для решения таких задач и нужен фреймворк, потому что такого в "коробках" нет.
По сути он позволяет реализовать любой бизнес-процесс, любой полет фантазии, любую интеграцию чего угодно с чем угодно. Поэтому все топовые магазины работают на фреймворках или самописных системах: Wildberries, Citilink, МВидео, Pleer.ru.
Кстати, фреймворк подходит не только для классических интернет-магазинов, но и для сайтов услуг. Возьмем для примера заказ еды. Обычной доставке блюд из одного ресторана подойдут и простые "коробочные" решения, но если задачи сложные, то и систему лучше использовать более гибкую. Например, с помощью фреймворка можно реализовать возможность заказа еды одновременно из разных ресторанов с доставкой в разное время на разные адреса. Так пользователь сможет за раз заказать обед на работу днем, торт на день рождения ребенка к вечеру и пиццу к друзьям на выходные.
В принципе, все что делается на фреймворке, можно сделать и на CMS, но стоить такая разработка будет дороже, делать ее дольше и она точно будет сложнее в поддержке.
Когда же стоит выбрать фреймворк?
Тогда, когда у проекта есть большие амбиции и инвестиции. Да, разработка сайта на фреймворке — штука недешевая, и уж точно не бесплатная. Но если есть перспективные планы на масштабирование, лучше сразу делать сайт на фреймворке. Или однажды придется на длительное время полностью остановить развитие продукта, чтобы вместо одной системы можно было разработать и запустить другую. Более ресурсоемкую и масштабируемую.
А если нет большого бюджета, товарный каталог скромный, хочется протестировать нишу и иметь небольшой доход, а не становиться вторым Wildberries, PayPal, AirBnb или Twitter — смело берите CMS.