Кросспост моей статьи с хабрахабр.

Платформа Magento eCommerce уверенно завоевывает популярность. На habrahabr уже было несколько упоминаний о ней. В этой статье я хочу описать некоторые моменты когда Вам стоит выбрать платформу Magento.
Хостинг
Magento Commerce не будет работать на простом shared хостинге. Разработчики рекомендуют устанавливать 256Мб оперативной памяти доступной скрипту. Минимально желательным размером является 64Мб, но будьте готовы что без включенного кеша большая часть страниц грузиться не будет.
Так же обратите внимание на cpu лимит хостинга. В моей практике были случаи когда сайт отключили из-за нагрузки на процессор более 3%. При этом за день на сайт заходило не более 15-25 человек.
Хостинг который сможет вытянуть простой магазин на Magento, с посещаемостью 20-50 человек в сутки, стоит около 70$/год. Специализированные хостинг планы для Magento стоят в районе 20$/месяц. Магазин на таком тарифе работает достаточно шустро, без проблем вытягивает посещаемость порядка 300 человек/день.
Для примера приведу результаты простейшего нагрузочного тестирования некоторых хостингов, с которыми я работал.
hostmonster.com стоимость порядка 70$/год (25 пользователей, 30минут)


nic.ru тариф 201 – ~110$/год (50 пользователей, 30минут)


1gb.ru, тариф VZ-1 ~130$/год (50 пользователей, 30минут)


ngx.nl ~ 300$/год (25 пользователей, 30минут)


Рынок продаж
Magento разрабатывается украинской командой разработчиков, но методы оплаты и доставок рассчитываются на западный рынок (Европа, США и т.д.). Коробочная версия включает слейдующие методы оплаты: оплата через Credit Card, PayPal, Authorize.net, Payflow Pro, оплата чеком, банковский перевод. Кроме тогда интеграция с большинством западных платежных систем доступна в виде бесплатных расширений.
Если Вам необходима поддержка WebMoney придется покупать платное расширение (бесплатных аналогов нет). Для “Яндекс денег” расширения я не нашел.
Для русских магазинов реальная возможность использовать только методы оплаты: “Наличными при получении”, “Банковский перевод”. Но для этого придется дополнительно объяснять каждому клиенту как произвести оплату и периодически проверять поступление денег на счет.

По умолчанию доступны следующие методы доставки: Table rates, Flat Rate, Free shipping, UPS, USPS, FedEx, DHL. С данным вопросом ситуация чуть лучше, дополнительно можно установить бесплатные расширения – “Local Pickup”, “Multiple tables rate” – которые в большинстве случаев покрывают требования магазина. Например используя “Multiple tables rate” можно дать пользователю возможность выбора требуемого способа доставки и региона. В зависимости от выбора формировать стоимость. Например сформировать такую таблицу:

Так же следует отметить отсутствие интеграции с 1C, что для некоторых клиентов является достаточно необходимым фактором. В защиту можно сказать, что Magento не поддерживает(в коробочной версии), не одной подобной интеграции – имеется импорт/экспорт csv файлов с списком категорий и продуктов.
Локализация
Как и в предыдущем пункте, перевод на русский язык оставляет желать лучшего. Пакет локализации необходимо будет скачать с официального сайта, этот пакет находится в бете, процесс завершенности порядка 90%. Правда в недрах форума можно найти пользовательскую локализацию, тут ситуация немного лучше. Но в любом случае придется дополнительно производить замену ряда сообщений. Так же пользователю придется поменять все html шаблоны стандартных писем. Таких писем порядка 35.
Встроенный функционал
Одна из сильнейших сторон Magento это обширный встроенный функционал – то что Вы получаете после установки магазина. Установив магазин вы получите следующие возможности:
- Множество валют
- Многоязычность
- Множество сайтов на одной системы
- Скидки/купоны
- Отчеты
- Отмеченные товары
- Ограничение доступа
- И другое
Полных список возможностей можно посмотреть на wikipedia

В тоже время, это и недостаток. Если часть функционала на frontend не нужна, разработчику придется постараться что бы его отключить (об этом подробнее ниже)
Разработка
Magento является достаточно сложной системой основанной на базе Zend Framework. Для работы с динамическим содержимым используется фреймворк Prototype, а не знакомый большинству jQuery (для подключения которого придется неплохо постараться). Так же, Magento не используется классический патерн MVC. Для генерации страниц используется набор следующих элементов: Controller, Model, Block, View. Таким образом, загрузить напрямую страницу шаблона из контроллера у Вас не получится. Для генерации страниц помимо стандартных phtml файлов с шаблонами, используются xml файлы, определяющие какие блоки включаются в текущую страницу.
Исходя и вышесказанного – если Вам необходимо сделать уникальный шаблон для магазина, на базе разработанного дизайнером psd файла, необходимо будет привлекать помимо верстальщика еще и программиста. Будьте готовы заплатить серьезную сумму разработчику для привязки дизайна.
Для примера, когда я только начал знакомиться с Magento, передо мной стояла задача произвести привязку достаточно непростого дизайна. В общей сложности на создание темы (без дополнительных расширений) у меня ушло порядка трех недель. Сейчас сложную тему можно привязать за 1-2 недели. Простую тему в районе трех дней. Правда, были прецеденты что сверстанный дизайн простой темы привязался за один день. Конечно есть более простой вариант купить готовую тему на http://www.templatemonster.com/.
Рассмотрим простой пример. Нам необходимо отключить отображение блока “Compare Products”. Что бы убрать этот блок придется произвести изменение в приблизительно 5 различных xml файлах. В тоже время magento позволяет включить отладочную информацию – отображение пути к шаблонам для каждого блока, но увы не показывает в каком xml файле можно его отключить.

Но, в тоже время, используя лишь модификацию шаблонов можно реализовать магазин с уникальным требуемым функционалом.
Magento отличается очень высокой степенью расширяемости. Фактически любую возможность магазина можно переопределить, подменить файлами разработчика. И внимание, для этого не надо переписывать исходных код движка! Для любой модели, блока можно создать “rewrite” и заменить его собственным. Для контроллеров можно активировать перенаправление путей запроса. Кроме того используя event observer для большинства ключевых действий можно добавить произвольный функционал. Использование стороннего кода, не затрагивающего core файлы, позволяет осуществлять безболезненное обновление к новым версиям magento.
Суммируя пункт разработка – при создании дополнительных расширений для Magento, для привязки дизайна, будьте готовы выделить серьезную сумму. Разработчиков знакомых с этой системой, еще не очень много. А те кто работают с ней имеют много заказов и серьезную стоимость часа работы.

Юзабилити
По отзывам некоторых клиентов, magento имеет очень удобный интерфейс администраторской части. Я соглашусь с их мнением. Действительно backend у magento выполнен отлично. Потратив немного времени пользователь сможет произвести основные действия, не заглядывая в помощь. В тоже время некоторые моменты могут быть достаточно непрозрачными. Например управление налогам, создание рассылок, управление локализацией, несколькими валютами, различными видами магазина. Функционал Magento позволяет реализовать управление магазинами с различными доменными имен используя общий backend. При этом, пользователи даже могут не знать что эти магазины связаны.

С frontend частью стандартного магазина не все хорошо. Согласно большинству отзывов часть оформления заказа сложна для пользователя (придется пройти через 5 шагов).

Есть выход, купить готовое расширение которое упросит оформление заказа. Кроме того, за счет обширного функционала пользователи могут не добиваться поставленных целей. Но, как я уже говорил выше, можно весь не нужный функционал отключить и оставить непосредственно только часть магазина.
Похожие посты:
- None Found

нда, такая жесть эта Magento, я просто поражаюсь.
Начал читать статью потому что интересно было, что это за система такая, может стоит поюзать. Прочел статью и очень усомнился в том что это действительно то что надо для магазина. Куча функционала – это хорошо. Но править 5 файлов чтоюы убрать блок – это жесть. Да и системные требования у нее чересчур высоки.
Я думаю, что это они зря зделали столько xml-конфигов. Все равно кроме программиста никто не разберется, так что можно было сделать все пхп-массивами. Не так красиво, зато быстро работает. В любом случае, правки только программер вносить будет или опытный пользователь, а им все равно.
Далее, конфиги вместо кодинга – тоже сомнительное решение. Опять же, конфиги править будет только программер и только который разбирается в структуре, так что может стоило смотреть в сторону расширения через кодинг а не через конфиги?
Ну и привязываение темы на движок в течение недели – это жесть
В общем я для себя сделал вывод, что magento слишком тяжела для нормального использования. А для распальцованых заказчиков, которые могут оплатить дорогих программеров возможно лучше взять более дешевых, которые сделают модификации в том же ZenCart например и пользоваться shared-хостингом без проблем.
По поводу замены мне судить сложно, я не занимаюсь магазинами. Но системные требования очень настораживают… А что будет если на сайт заходит $10К в день? Очень, очень странно…
Спасибо за Ваш комментарий, Константин.
Насчет xml конфигов мне судить сложно. К Yii системе с массивами я пока не сильно привык. Мне кажется, что все таки xml более наглядно, но главная проблемы использования xml это:
а) производительность (парсить их все же необходимо)
б) более вероятна ошибка (например ошибся где то в структуре и выдается общая ошибка, пойди пойми где она именно)
2 недели на шаблон это для человека который вообще о magento ничего не знает. Если иметь хотя бы начальные сведенья и сверстанный не очень сложный magento-like дизайн справиться можно и за 1-2 дня.
Производительность это самая слабая стороная magento, с этим приходится только мирится. На специализированных хостингах скорость работы еще вменяемая, а подняв просто xampp magento будет тупить и медленно и верно убивать компьютер
Использовать ее для самого просто магазина это действительно совсем не вариант. А вот развернуть магазин на базе magento и подключить интеграцию c eBay (с импортированием ордеров, пользователей и т.д.) это весьма интерестный
шаг. Хотя я знаю проекты в каторых magento используется для совсем не сложных магазинов, с минимальным функционалом и количеством товара от 10 до 150.
По поводу XML, magento из парсит только один раз, в следующие берет из кэша.
Система расчитана в основном на серьезные магазины которым необходим обширный функционал, и сравнивать с ZenCart тут не совсем правильно.
По поводу производительности – APC + кэш + оптимизированный VPS за 1000/1300 в месяц – страница каталога генерируется за 0,8-0,9 секунд.
Интеграция с 1С Торговля есть http://www.rugento.ru/Интеграция_Magento_и_1С_Торговля.html Возможности описаны на форуме http://www.magentocommerce.com/boards/viewthread/72624/