Magento: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Строка 323: Строка 323:


=== Интеграция с внешними [[ERP|учётными системами]] ===
=== Интеграция с внешними [[ERP|учётными системами]] ===
Magento способна работать как [[Веб-служба|веб-сервис]]<ref name="soap">[http://www.magentocommerce.com/api/soap/introduction.html Magento API]</ref>.
В стандартной комплектации Magento обладает [[Интерфейс программирования приложений|прикладным программным интерфейсом (API)]], который позволяет внешним системам использовать Magento как [[Веб-служба|веб-сервис]] и программно делать всё то, что способен сделать администратор Magento вручную посредством административного интерфейса:
Это позволяет внешним [[Информационная система|информационным системам]] через интернет подключаться к Magento и программно делать всё то, что способен сделать администратор Magento вручную посредством административного интерфейса:
* выборку учётных объектов (товары, заказы и т.п.) по заданным критериям
* выборку учётных объектов (товары, заказы и т.п.) по заданным критериям
* добавление и редактирование учётных объектов
* добавление и редактирование учётных объектов
Строка 329: Строка 330:
* изменение настроек интернет-магазина
* изменение настроек интернет-магазина
* и т.п.
* и т.п.
Веб-сервис Magento поддерживает следующие протоколы:
* [[REST]]<ref>[http://www.magentocommerce.com/api/rest/introduction.html Описание программного интерфейса Magento REST]</ref>
* [[SOAP]]<ref name="soap"/>
* [[XML-RPC]]<ref>[http://www.magentocommerce.com/api/soap/introduction.html#Introduction-XMLRPC Описание программного интерфейса Magento XML-RPC]</ref>


Использование прикладного программного интерфейса (API) требует квалификации программиста.
Использование прикладного программного интерфейса (API) требует квалификации программиста.

Версия от 16:46, 18 августа 2014

Magento
Логотип программы Magento
Скриншот программы Magento
Тип система управления интернет-магазинами
Разработчик Magento Inc.
Написана на PHP
Первый выпуск 2007
Последняя версия 1.9.0.1 (15 мая 2014)
Альфа-версия 2.0 (alpha 90) (12 августа 2014)
Репозиторий magento.com/tech-resourc…
Лицензия Open Software License 3.0
Сайт magento.com
Логотип Викисклада Медиафайлы на Викискладе

Magento — система управления интернет-магазинами. По данным Alexa, Magento — самая популярная система управления интернет-магазинами в мире на апрель 2014 года[1] (Magento также зняла первое место по популярности в предыдущем исследовании, в феврале 2013 г.[2]).

История разработки Magento

В мае 2007 года началась разработка.[3]

31 августа 2007 года вышла первая публичная ознакомительная версия (0.6.12383).[4]

21 марта 2008 года вышлп первая стабильная версия (1.0).[4]

В мае 2009 года вышла первая версия Magento Enterprise Edition.[4]

В 2010 году компания-разработчик сменила название с Varien на Magento, по имени своего единственного продукта.

В феврале 2011 года вышла первая версия Российской сборки Magento.[5]

В июне 2011 г. компания Magento Inc. была приобретена компанией eBay Inc..[6]

В настоящее время компания Magento ведёт активную работу (промежуточные релизы — каждую неделю[7]) над Magento 2.

История версий Magento Community Edition

Версия Дата выпуска Примечания
Preview B1 0.6.12383 31 августа 2007 г.
1.0 31 марта 2008 г.
1.1.1 24 июля 2008 г.
1.1.2 1 августа 2008 г.
1.1.3 13 августа 2008 г.
1.1.4 2 сентября 2008 г.
1.1.5 15 сентября 2008 г.
1.1.6 17 сентября 2008 г.
1.1.7 19 ноября 2008 г.
1.1.8 26 ноября 2008 г.
1.2.0 29 декабря 2008 г.
1.2.0.1 30 декабря 2008 г.
1.2.0.2 12 января 2009 г.
1.2.0.3 23 января 2009 г.
1.2.1 2 февраля 2009 г.
1.2.1.1 23 февраля 2009 г.
1.2.1.2 3 марта 2009 г.
1.3.0 30 марта 2009 г.
1.3.1 17 апреля 2009 г.
1.3.1.1 19 мая 2009 г.
1.3.2 29 мая 2009 г.
1.3.2.1 1 июня 2009 г
1.3.2.2 1 июля 2009 г.
1.3.2.3 22 июля 2009 г.
1.3.2.4 23 сентября 2009 г.
1.3.3.0 23 апреля 2010 г.
1.4.0.1 19 февраля 2010 г.
1.4.1.0 10 июня 2010 г.
1.4.1.1 26 июля 2010 г.
1.4.2.0 8 декабря 2010 г.
1.5.0.1 9 февраля 2011 г.
1.5.1.0 26 апреля 2011 г.
1.6.0.0 18 августа 2011 г.
1.6.1.0 19 октября 2011 г.
1.6.2.0 11 января 2012 г.
1.7.0.0 24 апреля 2012 г.
1.7.0.1 20 июня 2012 г.
1.7.0.2 5 июля 2012 г.
1.8.0.0 25 сентября 2013 г.
1.8.1.0 11 декабря 2013 г.
1.9.0.0 13 мая 2014 г.
1.9.0.1 15 мая 2014 г.
2.0 (alpha 90) 12 августа 2014 г.
 устаревшая версия
 текущая версия
 будущая версия

Базовые технологии

PHP — основной язык программирования Magento.

Magento — единственная из популярных систем управления интернет-магазинами, основанная на стандартном, общеупотребительном фреймворке (в случае Magento это — Zend Framework[8]). Разработка на основе общеупотребительного фреймворка снижает затраты на привлечение к проекту новых сотрудников[8], в том числе и при внедрении Magento.

Для хранения учётной информации Magento использует cистему управления базами данных MySQL[9].

Сильной стороной Magento, в отличие от некоторых других популярных систем управления интернет-магазинами (например, OpenCart[10]), является использование подсистемы хранения данных InnoDB, которая позволяет применять транзакции и внешние ключи для поддержания целостности данных.

Особенности реализации модульности

Magento — единственная из популярных систем управления интернет-магазинами, которая позволяет изменять реализацию любого класса (и метода) ядра без правок программного кода ядра. Эта функциональность обеспечивается несколькими ключевыми технологиями:

Виртуальные имена классов

Для создания экземпляров классов в Magento используется не реальное имя класса PHP, а виртуальное имя. Например, для создания объекта-товара вместо вызова

new Mage_Catalog_Model_Product()

используется вызов

Mage::getModel('catalog/product')

По умолчанию виртуальному имени «catalog/product» соответствует реальное имя класса PHP «Mage_Catalog_Model_Product», однако посредством файла XML сторонний модуль может привязать свой класс PHP к виртуальному имени «catalog/product», например:

<config>
    <global>
        <models>
            <catalog>
                <rewrite>
                    <product>Df_Catalog_Model_Product</product>
                </rewrite>
            </catalog>
        </models>
    </global>
</config>

Резервные области программного кода[11]

Вторая технология обеспечения модульности: поддержка резервных областей программного кода. В Magento 4 области программного кода: «lib», «core», «community», «local». В англоязычной терминологии Magento область программного кода называется «code pool».

  • Один и тот же класс может быть расположен в любой из указанных 4-х областей программного кода, и даже в нескольких областях программного кода одновременно.
  • Если файл с программным кодом класса расположен сразу в нескольких областях программного кода, то система загружает программный код класса из той области, которая обладает большим приоритетом.
  • Области программного кода перечислены выше в порядке увеличения их приоритета для системы.

Другими словами, если файл с программным кодом класса расположен одновременно в областях «core» и «local», то система будет использовать файл из области «local».

Наблюдение за объектами

Третья базовая технология обеспечения модульности в Magento — возможность наблюдения за объектами и классами объектов посредством подписки на определённые события, происходящие с этими объектами и классами объектов. Например, модуль «Накопительная программа» Российской сборки Magento наблюдает за событием размещения покупателем в интернет-магазине нового заказа, чтобы начислить покупателю бонусные баллы:

<config>
    <frontend>
        <events>
            <sales_order_place_before>
                <observers>
                    <df_reward>
                        <type>singleton</type>
                        <class>df_reward/observer</class>
                        <method>processBeforeOrderPlace</method>
                    </df_reward>
                </observers>
            </sales_order_place_before>
        </events>
    </frontend>
</config>

Когда покупатель размещает в интернет-магазин свой заказ, то перед обработкой этого размещения модуль ядра Mage_Sales оповещает наблюдателей о событии «sales_order_place_before»:

Mage::dispatchEvent('sales_order_place_before', array('order'=>$this));

В частности, будет вызван метод «processBeforeOrderPlace» класса «df_reward/observer».

Редакции Magento

Magento Community Edition

Magento Community Edition — основная, самая популярная редакция Magento. Это единственная бесплатная редакция.

Magento Enterprise Edition

Magento Enterprise Edition — это платная редакция, выпускаемая компанией Magento. Magento Enterprise Edition содержит в себе все функции Magento Community Edition и сверх этого содежит набор дополнительных модулей, которые, как правило, предназначены для крупных интернет-магазинов (в частности, инструменты маркетинга для крупных магазином).

Российская сборка Magento

Российская сборка Magento — это адаптированная для России и СНГ редакция Magento, выпускаемая сторонним разработчиком. Российская сборка Magento содержит в себе все функции Magento Community Edition и сверх этого содежит набор дополнительных модулей, которые, как правило, предназначены для интернет-магазинов России и СНГ (интеграция с 1С:Предприятие, местными службами доставки, банками, платёжными системами, сервисами Яндекса).

Устаревшие редакции

Magento Go

Magento Go — это бывшая редакция Magento, работавшая по модели SaaS. В настоящее время эта редакция прекратила существование[12].

Magento Professional Edition

Magento Professional Edition — это бывшая редакция Magento, выпускавшаяся компанией Magento и занимавшая промежуточное положение между Magento Community Edition и Magento Enterprise Edition: Magento Professional Edition содержала в себе все функции Magento Community Edition и сверх этого содежала часть модулей из Magento Enterprise Edition. В настоящее время эта редакция прекратила существование.

Возможности Magento

Многосайтовость[13]

Из единой административной части можно управлять торговой сетью интернет-магазинов на разных доменах, языках, с разным товарным ассортиментом.

Причём Magento допускает разные варианты реализации многосайтовости[13], например:

  • в рамках единой системы могут быть полностью независимые магазины: на разных доменах и с разным товарным каталогом
  • в рамках единой системы магазины могут иметь общий товарный каталог, но при этом использовать разные языки и интерфейсы витрины, разные цены, разную структуру каталога.

Многоязычность и локализация

Magento позволяет интернет-магазину иметь многоязычную витрину и административную часть. На витрине многоязычность может работать одним из следующих способов:

  • магазин автоматически определяет язык посетителя и отображает ему витину на данном языке
  • посетитель сам выбирает язык интерфейса
  • администратор создаёт несколько витрин на разных языках для одного и того же каталога товаров (благодаря возможности многосайтовости)

Локализация Magento обеспечивается совместным использованием следующих средств:

  • Языковые пакеты Magento. Содержат переводы всех текстовых строк, которые встречаются в стандартном интерфейсе витрины и административной части. На официальном сайте Magento опубликованы языковые пакеты для многих языков. Российская сборка Magento уже содержит свой индивидуальный языковой пакет для русификации.
  • Пакеты локализации из Zend Framework. Magento использует стандартные пакеты локализации из Zend Framework для настройки форматирования дат, валют и т.п.
  • Языковые пакеты оформительских тем. Содержат переводы нестандартных текстовых строк, которые встречаются только в данной конкретной оформительской теме.
  • Языковые пакеты модулей. Содержат переводы нестандартных текстовых строк, которые встречаются только в данном конкретном модуле.
  • Инструмент для интерактивного перевода витрины. Позволяет администратору временно включить для витрины специальный режим, в котором он, зайдя на витрину, может интерактивно переводить те или иные строкип ользовательского интерфейса. Magento сохраняет эти переводы в базу данных, и затем использует их при отображении витрины в обычном режиме.
  • Многосайтовость: возможность для каждой локали создать отдельную витрину со своими текстами, экранными блоками и административными настройками

Интеграция с внешними учётными системами

Magento способна работать как веб-сервис[14]. Это позволяет внешним информационным системам через интернет подключаться к Magento и программно делать всё то, что способен сделать администратор Magento вручную посредством административного интерфейса:

  • выборку учётных объектов (товары, заказы и т.п.) по заданным критериям
  • добавление и редактирование учётных объектов
  • получение аналитической информации
  • изменение настроек интернет-магазина
  • и т.п.

Веб-сервис Magento поддерживает следующие протоколы:

Использование прикладного программного интерфейса (API) требует квалификации программиста. В то же время имеются сторонние готовые модули для интеграции Magento с популярными учётными системами, в том числе с популярными в России и СНГ системами 1С:Предприятие[17] и МойСклад[18].

Панель администратора[источник не указан 3718 дней]

  • Маркетинговые инструменты
    • Многоуровневое ценообразование
    • Купоны
    • Правила ценообразования
    • Возможность организации распродаж
    • Настройка оптовых скидок
  • Отчеты
    • Отчеты продаж
    • Отчет по корзинам покупателя
    • Отчет о списке отмеченного товара
    • Отчет об Отзывах
    • Отчет по Тегам
    • Отчет по Поиску
  • Определение налоговых ставок
    • Определение правил для региона, страны или почтового кода.
    • Создание классов налога, например «Нормальный» или «Оптовый»
    • Определение правил налога, например «Налог на одежду», также можно связать различные группы товаров с классами налогов.
  • Продукты и каталог
    • Возможность задания различных атрибутов (свойств) для товара.
    • Группировка товара в комплекты.
    • Конфигурируемые продукты — продукты с выборочными свойствами (например цвет, размер и т. д.)
    • Сортировка товара по предопределенным атрибутам. Атрибуты доступные для сортировки определяются в панели администрирования.
  • Система управления контентом
  • Группы покупателей
  • Импорт/Экспорт (В данный момент импорт товаров работает в ограниченном варианте, возможно внесение товаров, но не обновление)
  • Система контроля доступа

Возможности фронт-энда[источник не указан 3718 дней]

  • Предложение покупателям товара в нагрузку (сross-sales)
  • Предложение покупателям сопутствующих товаров
  • Поисковая оптимизация (SEO)
  • Связь с покупателем
    • Сообщения по электронной почте
    • Новостная рассылка по электронной почте
  • Доставка по нескольким адресам
  • Поиск
  • Сравнение продуктов
  • Пошаговая фильтрация
  • Теги для продуктов
  • Отзывы покупателей о товарах
  • Список желаний
  • Оформление заказа
  • Корзина покупок
  • Аккаунты покупателей
  • Рекомендация товара одним покупателем другому
  • Проведение опросов среди покупателей
  • Предложение покупателям бесплатной доставки
Файл:Magento-currency-setup-russian.png
Управление валютными курсами в Magento
  • Можно вести учёт (складской и управленческий) в одной валюте, а цены на витрине показывать в другой
  • Можно назначить разным витринам разные валюты ценников
  • Можно дать посетителям возможность переключаться между валютами
  • Можно настроить обновление валютных курсов по расписанию
  • Настройки отображения валют определяются текущей локалью посетителя (используется библиотека Zend Locale[19]).

Стандартная сборка Magento:

  • Даёт полный контроль над разметкой HTML. Имеется возможность установки индивидуального шаблона HTML для конкретного товара или товарного раздела.
  • Позволяет для каждой страницы (товара, раздела или текстовой) задавать индивидуальные мета-теги description и keywords.
  • Позволяет для каждого товара и товарного раздела задавать индивидуальное и настраиваемое окончание адреса (URL Key).

По умолчанию адрес страницы товара (раздела) заканчивается на название товара (раздела) транслитом с символом дефиса в качестве разделителя слов. Существует сторонний модуль, который меняет стандартное поведение и даёт страницам товаров короткие адреса. Это упрощает продвижение сайта в социальных сетях.

Magento при создании страниц витрины описывает товарные изображения атрибутом ALT тега IMG. Администратор для каждого товарного изображения может либо вручную указать описание, либо позволить Magento описать товарное изображение автоматически, используя название товара.

Импорт и экспорт данных[источник не указан 3718 дней]

Файл:Magento-import-attribute-options.png
Импорт производителей и других справочников посредством Magento DataFlow

Для импорта и экспорта данных предназначена технология Magento DataFlow. Стандартная сборка Magento включает несколько стандартных профилей Magento DataFlow:

  • Импорт и экспорт товаров
  • Импорт и экспорт товарных остатков на складах
  • Импорт и экспорт покупателей

Для программиста Magento DataFlow - удобная объектно-ориентированная библиотека, которая позволяет программисту писать собственные модули импорта и экспорта. В частности, имеются сторонние модули Magento DataFlow для импорта товарных разделов (товарной иерархии), импорта производителей, импорта произвольных справочников.

См. также

Примечания

  1. Распределение рынка между системами управления интернет-магазинами на апрель 2014 г.
  2. Распределение рынка между системами управления интернет-магазинами на февраль 2013 г.
  3. Интервью с компанией Varien (Magento)
  4. 1 2 3 Архив версий Magento
  5. Архив версий Российской сборки Magento
  6. eBay Agrees to Acquire Magento
  7. https://github.com/magento/magento2/commits/master История версий Magento 2
  8. 1 2 Magento™ creates huge success with enterprise e-commerce platform & community built on Zend Framework
  9. http://magento.com/resources/system-requirements Официальные системные требования Magento
  10. http://www.techchattr.com/never-use-opencart Why you should never use opencart
  11. http://magento-forum.ru/topic/4579/ Как найти класс Magento по его имени?
  12. Important announcement about Magento Go and ProStores
  13. 1 2 Overview: How Multiple Websites & Stores Work
  14. 1 2 Magento API
  15. Описание программного интерфейса Magento REST
  16. Описание программного интерфейса Magento XML-RPC
  17. Обмен данными Magento с 1С:Управление торговлей
  18. Обмен данными Magento с МойСклад
  19. Zend Framework: Documentation: Zend_Locale - Zend Framework Manual

Ссылки


Шаблон:Системы управления содержанием