Самое сложное - найти человека или студию, которая сделает качественно, а не соберет монстра из готовых частей за стоимость индивидуальной разработки. Поэтому заказчику нужно знать какие есть возможности и как система в целом функционирует.
С точки зрения скорости работы (не создания) самописная система может выйти самой шустрой и легкой, но дальнейшая работа будет множить проблемы и ошибки, требовать рефакторинга и даже переписки всего заново. Развивающийся интернет-магазин постоянно требует внесений каких-то изменений и наращивания функционала, интеграций, сервисов, поэтому самописка в какой-то момент начинает сильно ограничивать скорость развития.
Я начинала с продажи Битрикс, писала самописки, работала с MODx и UMI, а наконец остановилась на WordPress.
Считаю оптимальным вариант WordPress + Woocommerce. Можно еще рассмотреть BigCommerce, у них принципиально другой подход – хранение товаров в их системе с синхронизацией с WordPress и другими торговыми площадками, но с ним сама еще не работала, поэтому не могу их сравнить между собой.
Что касается 'криво, тормозит' и пр. Подход 'сделаем интернет-магазин под ключ за 3 дня' зачастую заканчивается тормозами - берется платная навороченная тема, к ней лепится куча плагинов, импортируются товары и потом все это пытается закешироваться, оптимизироваться в части размеров картинок и сжатия и доставиться через CDN.
WordPress не только бесплатный, но и достаточно быстрый и при этом весьма функциональный, 35% Интернета на нем. При этом в доработке WordPress участвует большое количество разработчиков со всего мира, более 600 в последней версии 5.3 (совместима с PHP 7.4 и все еще поддерживает PHP 5.6). Установленная система занимает примерно 60Мб.
При установке WooCommerce уже, конечно, скорость ниже, но все достаточно шустро. Я заметила, что PageSpeed гораздо хуже там, где большие картинки, например слайды на первом экране, загрузку которых не отложить, по сравнению с каталогом товаров, где картинки маленькие и загрузку отложить можно.
Сам WordPress, WooCommerce, другие плагины под WordPress, а также качественные темы (все темы и их обновления в официальном репозитории проходят проверку и тестирование) имеют богатый API, это значит, что с помощью хуков – add_action и add_filter можно подключиться практически к любой нужной точке и вставить / изменить все, что нужно, не изменяя сам плагин или тему (и тем более движок), т.е. сохраняя возможность нормальных обновлений. Использование API также гарантирует, что после обновления ничего не сломается. Естественно, есть deprecated functions and hooks и желательно не использовать их, однако как раз из-за необходимости сохранять обратную совместимость, такие функции сохраняются очень долго.
К готовой теме можно написать дочернюю тему, которая модифицирует родительскую, таким образом сохраняя обновления родительской. На практике, после обновления темы часто приходится вносить правки в дочернюю, но простые и минимальные.
Если серьезно подходить к вопросу скорости, тему нужно писать под конкретный проект, но нет смысла писать весь функционал интернет-магазина. У WooCommerce уже есть готовые шаблоны и необходимый функционал, поэтому он будет работать даже с темой, которая не заявляет, что поддерживает WooCommerce, хотя формально это декларация в одну строчку.
Плюсов у WordPress для долгосрочной работы много, вот несколько – удобная для редактора админка (после того, как немного разберется, так как возможностей много), встроенный визуальный редактор - The Block Editor (он же Gutenberg, еще несколько сырой, так как ему всего 2 года, но уже сейчас позволяющий делать красивый layout без знания html, активно развивающийся и дающий разработчику дополнительные возможности повышения удобства для редакторов за счет возможности создания блоков под проект), большое количество готовых решений (тут важно понимать зачем оно нужно и можно ли решить задачу проще), встроенный поиск (также с возможностью внесения собственных изменений в логику), мобильная адаптация картинок "из коробки", практически неограниченные возможности кастомизации и наращивания функционала, а также API для фронтенда - html или json (см. WP AJAX и REST-API).