Magento is the fastest growing open source e-commerce platform in the world. According to a survey of Alexa’s top one million sites in February 2013, Magento powers 26% of all e-commerce sites, and is three times more popular than other platforms in the survey. Now is the time to truly master the Magento platform, as the demand for Magento developers is on the rise.
Mastering Magento will help you take Magento’s core offerings to the next level. Even though you may find that Magento fits most of your e-commerce needs out-of-the-box, there are often circumstances that require custom functionality in your Magento store. The materials in this course will expose you to a variety of ways in which you can extend the Magento platform and bend it to your will. By the end of this course you will be capable of writing almost any type of extension in order to accomplish the custom functionality that you need.
You will start building your foundational knowledge of the Magento architecture by following along with a step-by-step installation guide. For those experienced with Magento, this will be more of a refresher. With these basic requirements under your belt, we will move on to module development, including how to customize the admin, catalog, and checkout interfaces.
As you delve deeper into setting up your development environment, you will learn about the basic structure and skeleton of a Magento module. Since Magento’s Model-View-Controller (MVC) structure is well-documented on the Internet, we will cover more advanced techniques rather quickly. By the time you’re through the first half of this course, you will have mastered the art of extending Magento’s admin interface. In the second half, you will learn how to extend the Magento catalog and checkout process by creating your own custom product types. As an example, you will be following along with the author in creating an event registration product type, similar to selling tickets online. Finally, we will close with some advanced techniques that will teach you how to leverage Magento’s command-line interface, dataflow profiles, and advanced debugging tools such as Xdebug for PHP.
Mastering Magento will give you great exposure to a variety of ways in which you can extend the Magento platform and truly leverage its power.
Installing Magento
We're getting our system ready to run the most powerful open-source e-commerce system.
We need to place the Magento code on our server and run the wizard to set up the basic configuration parameters for our store.
Sometimes, installation needs to be automated, or perhaps the installation wizard is timing out. In most cases, a command-line prompt installation can solve these issues.
Having multiple storefronts in Magento allows you to manage all of your orders and catalogs for multiple eCommerce domains in a single database and administrative interface.
Extending Magento
The Magento codebase is massive, containing over 10,000 files. Using the right tools will allow you to quickly navigate the source code to truly harness the power of the Magento core.
Modules allow you to totally customize Magento with your own functionality.
Frontend controllers allow you to add new URL patterns to your Magento storefront.
Layouts control the view of your Magento pages.
While layouts control the arrangement of an entire page, blocks and templates encapsulate different chunks of the rendered content
Extending the Admin
Without the ability to add admin menu links, others will not be able to use your Magento extension.
Adding fields to the System Configuration is the easiest way to save information to the Magento database.
Model classes provide an interface for reading and writing from the Magento database.
Often times, newer versions of your extensions may require a change to the database. Using module installation scripts, you can make changes to the Magento schema automatically.
Observers allow you to inject your own business logic into the core of Magento.
Mastering the Admin
Creating a form in the Magento admin.
Processing form data in your admin controllers.
Rendering lists of model data in a grid or table view.
Making your grids interactive so that you can edit each row.
Enabling mass actions on your grid so that you can delete multiple rows with a single click.
Using grid data to generate reports in the CSV and Excel formats.
Programming the Catalog
Creating a custom product type in Magento.
Adding attributes to your custom product type.
Adding your own tab to the product edit page in the Magento admin.
Setting up any necessary models to process data that is submitted on product save.
In order to sell the example product, we must modify the behavior of the product page.
Programming the Shopping Cart
Our product needs to display the proper pricing when added to the cart. This video will show you which events to observe in order to add custom price logic.
For our ticket sales product, we need to be able to sell multiple quantities. Luckily, Magento allows us to customize how product options are parsed when a product is added to the cart.
If we want to force registration only for our product type, we will need to disable the guest checkout function by observing a Magento event.
Magento supports a handful of payment types out of the box, but adding your own is simple.
We want to collect information about each ticket being sold during checkout. In Magento, we can combine layout updates with custom blocks to add a step in the checkout process.
Our checkout isn't fully functional until we process the form data that was added in the previous video.
Importing and Exporting Data
Since this is your first time with dataflow, we are going to start off with a quick tour.
Out of the box dataflow profiles work for importing customers or products, but if you're going to be working with other Magento entities, advanced profiles are a necessity.
Custom adapters allow you to plug in your own functionality to a dataflow profile.
One of the entities that Magento doesn't provide an import profile for is orders. In this video, I will show you how to create a custom adapter for orders so that they can be imported into the system.
Advanced Techniques
If you're a developer, you may find that Magento's web interface can slow you down. Luckily, we are able to write shell scripts using some Magento core functionality.
Sometimes, external programs need to access Magento data. This can be done in PHP by loading the correct sequence of Magento files.
When it comes down to it, things will break as you're developing your Magento extensions. A tool like Xdebug will allow you to step through your code line by line in real time.
Before you can use Xdebug properly, you need support for the Xdebug client in your editor.
Now that Xdebug is supported by your editor, you can pause the execution of your script and inspect variables as you proceed through the code line by line.