Метка: Magento

Как добавить контактную форму на страницу в Magento

Довольно часто при разработке интернет-магазина на Magento нужно выводить форму обратной связи на произвольной странице. В этой краткой статье мы рассмотрим практическое решение данного вопроса. Чтобы выводить форму для обратной связи практически на любой странице в магазине, у вас есть два возможных решения. В первом случае вам нужно добавить специальный код в статическую страницу, которая была создана из панели администрирования (через меню CMS -> Pages). Во втором случае вам нужно вставить специальный код вызова формы...

Как провести тест скорости загрузки вашего сайта

Скорость вашего сайта имеет прямое отношение к коэффициенту конверсии и впечатлению от пользовательского интерфейса. Современные посетители не привыкли ждать, пока сайт долго загружается, и они уходят либо обратно в поисковую систему, либо на сайт к конкуренту. Чем дольше загружается ваш сайт, тем больше вероятность потерять посетителя. Максимально допустимое время загрузки страницы сейчас составляет всего 2 секунды. Если вы не вкладываетесь в это время, вы потеряете почти половину своих потенциальных пользователей. Следовательно, время загрузки сайта имеет...

Основные трюки при работе с коллекцией товаров в Magento

Любой разработчик, который работает с Magento, рано или поздно столкнется с коллекциями товаров. Практически для любого интернет-магазина на CMS Magento крайне важно правильно и эффективно использовать выборку, фильтрацию и сортировку товаров. В этой статье мы попробуем собрать основные сниппеты, которые будут полезны разработчикам Мадженто любого уровня при работе с коллекциями товаров.     Загрузка коллекции товаров Существует два основных способа загрузки коллекции товаров. Вы можете вызывать метод getCollection() в экземпляре модели товара, либо загружать класс...

Краткие замечания по процессу обновления сайта на Magento

В данной статье мы рассмотрим основные моменты, на которые следует обратить свое внимание при обновлении движка Мадженто с одной версии на другую (в пределах версий 1.4 – 1.9.x). Цель этой статьи заключается в том, чтобы показать ручной способ обновления, а также обратить внимание на некоторые проблемы, которые могут произойти при попытке обновления.     Процесс ручного обновления Перед обновлением интернет-магазина на Magento вам необходимо проверить кастомные модули, а также качество кода. От этого зависит не...

Модели в Magento – краткий обзор

Работа с данными в Magento основана на трех принципах: Модели, Ресурсы модели и Коллекции. Модель – это буква «M» в аббревиатуре MVC (Model-View-Controller, Модель-Представление-Контроллер). Модели отвечают за бизнес-логику любого PHP приложения, и это не является исключением для Magento. Поскольку Magento использует архитектурный шаблон MVC, Модели в движке используются для инкапсуляции бизнес-логики (т.е., совокупности правил, принципов и зависимостей поведения объектов). Главной задачей для Модели в Мадженто является обработка данных из базы данных, поскольку она управляет всеми...

Контрольные заметки для сертификационного экзамена Мадженто-разработчика – ч.10

Расширенные возможности – доля в экзамене: 13%.   Виджеты Виджеты – это настраиваемые блоки интерфейса, которые могут быть включены и настроены в блоках или на CMS страницах. Архитектура виджетов в основном руководствуется моделью Mage_Widget_Model_Widget, тогда как блоки интерфейса, используемые виджетами, реализуют интерфейс Mage_Widget_Block_Interface.   Виджеты определяются в файле конфигурации widget.xml модуля, используя следующий синтаксис: <widgets> <{widget_identifier} type="{grouped_class_name}" translate="{fields}" module="{module_name}"> <name>{widget_name}</name> <description>{widget_description}</description> <parameters> <{parameter_identifier} type="{type}" translate="{fields}"> <visible>{0|1}</visible> <required>{0|1}</required> <label>{parameter_label}</label> <type>{parameter type}</type> <value>{value}</value> <values>{possible_values}</values> <helper_block>{helper_block_definition}</helper_block> <sort_order>{order}</sort_order> </{parameter_identifier}>...

Контрольные заметки для сертификационного экзамена Мадженто-разработчика – ч.9

Продажи – доля в экзамене: 11%.   Важные классы   Mage_Sales_Model_Order Модель заказа в Magento. Она обрабатывает все, что связано с самим заказом, некоторые из важнейших из которых – цены, адреса доставки и оплаты, способ доставки, скидки, статус, клиент и другие. Длина файла составляет 2000+ строк, поэтому вы можете представить себе, какова другая магия в нем.     Mage_Sales_Model_Quote Это то, чем является заказ, прежде чем он превращается в полноценный заказ. Квота создается клиентом во...

Контрольные заметки для сертификационного экзамена Мадженто-разработчика – ч.8

Оформление заказа – доля в экзамене: 16%.   Квоты Magento использует модель квот для хранения информации о заказе, прежде чем клиент завершит его. Сюда входит: Информация о потребителе Позиции для заказа Платежный адрес Адрес доставки Метод доставки Способы оплаты Общая цена   Платежный адрес и адрес для доставки используют одну модель Mage_Sales_Model_Quote_Address. Тип адреса устанавливается в качестве поля в модели. Адрес доставки (или платежный адрес, если продукт является виртуальным или загружаемым) используется для расчета общей...

Использование обсервера контроллера для отправки события в Мадженто

При разработке в Мадженто вам могут понадобиться свои собственные события, и вы столкнетесь с тем, что система не имеет нужного для этого наблюдателя (обсервера). Вы начнете думать, что вам придется переписывать блок или что-то подобное. Однако существует и другое решение – вы можете использовать наблюдатель контроллера для отправки своих собственных событий. Обычно события отправляются (происходит их диспетчеризация) в блоках и моделях – каждый из которых вызывается конкретным контроллером (в зависимости от того, где вы находитесь...

Как ограничить доступ к сайту на Мадженто (режим обслуживания)

Иногда бывают моменты, когда нужно внести изменения в код на сайте Мадженто, который уже функционирует в сети Интернет. Другими словами, перевести его в режим технического обслуживания, пока вы редактируете функционал сайта. И здесь важно, чтобы клиентам вашего интернет-магазина показывалось информационное сообщение о режиме обслуживания, а у вас был полный доступ к функциям сайта для его тестирования. Самым идеальным для этого решением будет ограничение доступа к сайту по IP посетителя. Начиная с версии Мадженто 1.4 стала...

Контрольные заметки для сертификационного экзамена Мадженто-разработчика – ч.7

Catalog – доля в экзамене: 10%.   Товары Есть 6 различных типов товаров, которые поддерживаются в дефолтной установке Magento: Простой (simple): Простая единица физического товара Настраиваемый (configurable): Первый тип композиционных товаров. Позволяет клиентам настроить свой товар и добавить один простой товар в корзину Сгруппированный (grouped): Второй тип композиционных товаров – сгруппированный товар, который состоит из простых товаров и предоставляет клиентам возможность выбрать необходимое количество каждого товара Привязанный (bundle): Третий тип композитного товара – это совокупность...

Как проверить, что пользователь залогинился в Magento

Довольно часто при работе с модулями в Мадженто возникает задача определить, вошел ли пользователь в систему (залогинился) или нет. Т.е., определять пользователя как авторизованного, или как гостя. Например, затем эту информацию можно будет использовать, чтобы давать залогиненому пользователю доступ к дополнительному функционалу в интернет-магазине или перенаправлять на определенную страницу на сайте (к примеру, страницу входа или регистрации). Получить информацию о входе в систему Мадженто можно довольно просто, используя данные сессии пользователя. Для этого мы будем...

Контрольные заметки для сертификационного экзамена Мадженто-разработчика – ч.6

Adminhtml – доля в экзамене: 7%.   Конфигурация Области конфигурации, которые загружаются для панели администрирования: <menu> <acl> <admin> <adminhtml>     Контроллер Adminhtml Контроллер adminhtml расширяет Mage_Adminhtml_Controller_Action. В отличие от контроллеров frontend, которые расширяют Mage_Core_Controller_Front_Action. Его экшен (action) проверяет, разрешено ли пользователю получить доступ к запрашиваемой странице и проверяет формы и секретные ключи перед отправкой.     Маршрутизация В Mage_Core_Controller_Varien_Front::dispatch() Magento осматривает каждый из маршрутизаторов и проверяет запрашиваемый путь, чтобы увидеть, зарегистрировано ли какие-либо модули...

Контрольные заметки для сертификационного экзамена Мадженто-разработчика – ч.5

EAV – доля в экзамене: 10%.   Основные понятия Сущность (Entity): сохраняет информацию о типе данных. В случае с Magento это клиент, товар, категория и тому подобное. Атрибут (Attribute): индивидуальные свойства каждой сущности, например, название, вес, адрес электронной почты. Значение (Value): значение определенной сущности и атрибута. Например, мы можем указать сущность клиента и атрибут электронной почты и предоставить ему значение hello@example.com.     Схема базы данных eav_entity: таблица сущностей eav_entity_attribute: таблица атрибутов eav_entity_{type}: таблицы значений....

Контрольные заметки для сертификационного экзамена Мадженто-разработчика – ч.4

Базы данных – доля в экзамене: 13%.   Модели, Ресурсы модели и Коллекции Основные понятия Модель используется для хранения и обработки данных отдельного объекта. Модели, как правило, содержат бизнес-логику приложения. Ресурсы Модели используются для взаимодействия с базой данных от имени модели. Ресурсы Модели непосредственно выполняют CRUD операции. Коллекция Модели (Collection) работает с группой моделей и выполняет (CRUD) операции для групп моделей.   Есть два типа Модели Magento: простые и EAV. Простые модели взаимодействуют с одной таблицей базы данных,...