@modernstyle
Code GOD

Какой ecommerce плагин с возможностью масштабируемости для Wordpress выбрать?

Клиент (не СНГ) хочет добавить е-коммерц к своему сайту на WordPress. Количество товаров - 30 000 штук. Я никогда не имел дела с таким объемом товаров на WP, поэтому сразу же посоветовал портировать сайт на Magento или Rails + Spree, т.к. не знаю, как себя поведет WooCommerce на таких объемах, однако получил отказ по причине того что WP сайт только-только сдали и в него достаточно много вложили времени и денег.

Кто-то посоветовал поставить плагином Shopify, и мне эта идея показалась неплохой - хоть за это и надо платить помесячную мзду, база товаров будет всегда доступна через их сервера и Вордпресс, в теории, не должен захлебнуться. Главное условие клиента - не менять стек в ближайшие года полтора-два. Максимальная нагрузка которую я вижу - 50 транзакций/минуту. Два сервиса (magento + wordpress) не рассматриваю.

Отсюда вытекают следующие вопросы:

- Как ведет себя WooCommerce/WP на количестве товаров более нескольких десятков тысяч?
- Стоит ли пробовать плагином Shopify вместо Woo, хороший ли выбор в плане масштабируемости?
  • Вопрос задан
  • 298 просмотров
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
WordPress + WooCommerce сам по себе из коробки не сильно scalable, но решается достаточно просто:

1. Использовать ElasticSearch и плагин ElasticPress для поиска + интеграции во всех WP_Query. Потому что работа с wp_*meta в WP не рассчитана на такие объемы и сложные запросы.
2. Использовать внешний email service для транзакционных писем. Например, Amazon SES.
3. Не использовать Cron встроенный в WP. Его надо отключить, использовать либо на уровне OS сервера (обычный cron), либо использовать Cavalcade.
4. Понимать как работает WooCommerce изнутри, не ставить десятки говноплагинов (особенно от YITH и русскоязычных разработчиков, в основной своей массе говно редчайшее).
5. По минимуму использовать Ajax, если уж прям совсем надо - не использовать стандартные обращения на admin-ajax.php, а делать кастомные обработчики по REST API.
6. Не использовать встроенную в WooCommerce фичу геолокации, если она нужна. Использовать geoip модуль на уровне сервера (Nginx) и дальше ловить их из серверных данных.

И еще много шагов и нюансов, которые позволят интернет-магазину на WC шуршать быстро и стабильно хоть со 100к товаров. Если же надеяться просто собрать магаз с кучей наворотов на базе 3х десятков плагинов, и это все держать на одном VPS за $10/месяц, то не вариант.

ЗЫ: 50 транзакций в минуту - это количество "заказов" или просмотров вообще?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
maxxannik
@maxxannik
Сайты на WordPress + Интернет магазины WooCommerce
Вы не туда копаете :)

Надо понимать что если есть 30 000 товаров, нет сложных запросов и будет нагрузка 1000 чел в день то пофиг. Хватит обычного файлового кеша.
Если будет 1 товар и нагрузка 100 000 чел в день то придется делать мемкеш в обход php через прокси nginx.
Если будет 30 000 товаров или 300 000 товаров и будут сложные механики фасетного поиска, то придется прикручивать Elastic или Algolia. Причем не важно Woo это или что то самопальное.

Большие нагрузки подразумевают что придется грамотно настраивать кеширование. В этом случае мало что вообще будет долетать до Woo. Задача Woo будет лишь грамотно управлять кешем и микросервисами типа Algolia. А эта грамотность зависит от компетенций команды разработки. От Woo это слабо зависит :)

При очень больших данных и нагрузках конечно же придется использовать REST API, React/Angular, AJAX, объектное кеширование и т. д. Все это есть в WP/Woo. Но не всегда есть команда которая это все понимает и умеет настраивать. От сюда возникают разные гипотезы типа "а вот нам яица мешают, давайте яица пересадим, но потом оказывается что и другие яица мешают, птм что такие танцоры". Потому тут надо выбирать танцоров, а не яица :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы