Content to Commerce in Magento

by Ryan Gellis

Ryan is the founding partner of Robofirm and is responsible for leading the company’s growth, strategy, and vision. His experience includes almost a decade of enterprise-level systems architecture, digital marketing, and eCommerce strategy for clients including Sally Beauty Holdings, Hearst Corporation, and Charming Charlie. When he’s not working, you can find him playing piano, guitar, or cheering for the Blackhawks.

Many successful eCommerce sites today began as blogs, fan sites, or other content-rich media platforms that looked to expand their reach in the market and offer innovative experiences to their users. Much like the television industry, digital brands understand their viewers and how to create content that appeals to them. Those same brands tend to have some intuition about what their users would like to purchase, too. First, brands have to determine what products they want to sell that they can relate back to the content they distribute.

 

The next big question becomes what technologies do they use to implement content to commerce?

 

Magento is an industry-leading eCommerce platform and obvious choice (especially for us!) to hit the ground running. Unfortunately, the content management system (CMS) in Magento is subpar when compared with platforms that focus primarily on managing content. The most common CMS platforms to try to integrate into Magento are Wordpress and Drupal. Let’s take a look at integrating a behemoth system like Drupal first.

Drupal + Magento

In a configuration running Drupal and Magento, the mindset of achieving content to commerce tends to look like this.

Content to Commerce in Magento

In the above diagram, we can see traffic from the internet being routed through one of the two systems based on whether the user is trying to access CMS content or the store. Because the systems are run through two completely separate databases that have their own user management and access control, a single sign-on solution (SSO) must be implemented to make sure users only have to login once to access a global account. Single sign-on solutions make development much more complex, since we have to first choose which system will “own” information such as customer data and then make sure that data gets replicated based on which system is trying to update the information. In the case of running Drupal alongside Magento, Drupal tends to own customer data and access control, and all operations on the eCommerce end are facilitated by tying updated data (like a user entering a new billing address) back to Drupal.

 

The related but independent data layer quickly becomes problematic for simple tasks such as displaying the number of items in a user’s cart at the top of every page or displaying a page of the customer’s order history. By having Drupal act as the system of record, the solutions to solve these problems can be complicated and expensive, and the more things we try to connect between the two systems the more we have to worry about performance degradation and backwards compatibility.

 

If we flip the problem on its head and make Magento the system of record, we can now begin to postulate a viable solution. We need to have a tight integration with the database running Drupal content to make sure it is pulled into Magento’s frontend (effectively replacing the Magento CMS with Drupal), but if we do so we can have Magento run everything on the frontend and only use Drupal for the backend CMS editing.

 

Our only problem is that no such integration to Drupal exists, mostly because Drupal is a very extensive system and tying only its CMS management capabilities into Magento would be a heroic effort with little return on investment.

 

But what if we replaced Drupal with Wordpress, a lightweight but user-friendly CMS system that we could easily tie into Magento acting as the system of record?

Enter Wordpress

The fact of the matter is this integration has already been built and has been actively developed and supported for the past several years. The Fishpig Magento Wordpress Integration built by Ben Tideswell (http://fishpig.co.uk/magento/wordpress-integration/) works with Magento Community and Enterprise and mimics the functionality of Wordpress while being fully integrated into Magento and the Magento theme.

 

In a configuration running Wordpress and Magento, the mindset of achieving content to commerce now looks like this.

Content to Commerce in Magento

The above diagram illustrates how much simpler the Wordpress and Magento configuration can be than other massive CMS platforms such as Drupal. Since we have defined our goal of handling content to commerce by allowing the eCommerce platform to be the system of record, in this setup what we are really doing is supplementing Magento’s poor out-of-box CMS features with those of Wordpress without the need to have an SSO complicate things.

 

Many clients worry that Wordpress is not an enterprise-grade system and cannot withstand the traffic of an enterprise-grade website, but the actual architecture here is to only use Wordpress for its backend CMS functionality and actually pull that content into the frontend of Magento. The beauty of doing this is we are now naturally allowing the caching mechanism on the frontend of Magento to also pull in the CMS content we are trying to synchronize via Wordpress.

 

For the purposes of this article, we setup a fresh Wordpress install to demonstrate the concept of content to commerce. Our Wordpress homepage looks like this with a couple of test blog posts:

Content to Commerce in Magento

In the backend, we still manage posts (from the Wordpress admin) the same way we would handle them if we were just running Wordpress by itself:

Content to Commerce in Magento

The difference now is these posts will actually be pulled into the Magento theme and run through the Magento architecture. If we go to the frontend of our fresh Magento install, we can see these blog posts mirrored on the eCommerce system:

Content to Commerce in Magento

With Fishpig, the integration between the two systems is so tight-knit we can even associate our blog posts and categories in Wordpress to products, categories, and CMS pages in Magento. Here is an example of associating a specific blog post to the Magento homepage:

Content to Commerce in Magento

And here is it displaying on the frontend of our unified system:

Content to Commerce in Magento

By tying Wordpress and Magento together in this fashion, we have set ourselves up on a unified architecture that simplifies extending the system with custom functionality. The level of complexity remains the same as if we are just developing the Magento eCommerce system by itself, with the added features in the Wordpress admin panel to enhance backend users’ CMS editing capabilities.

Content to Commerce in Magento

Content to Commerce in Magento

by Ryan Gellis

Ryan is the founding partner of Robofirm and is responsible for leading the company’s growth, strategy, and vision. His experience includes almost a decade of enterprise-level systems architecture, digital marketing, and eCommerce strategy for clients including Sally Beauty Holdings, Hearst Corporation, and Charming Charlie. When he’s not working, you can find him playing piano, guitar, or cheering for the Blackhawks.

Many successful eCommerce sites today began as blogs, fan sites, or other content-rich media platforms that looked to expand their reach in the market and offer innovative experiences to their users. Much like the television industry, digital brands understand their viewers and how to create content that appeals to them. Those same brands tend to have some intuition about what their users would like to purchase, too. First, brands have to determine what products they want to sell that they can relate back to the content they distribute.

 

The next big question becomes what technologies do they use to implement content to commerce?

 

Magento is an industry-leading eCommerce platform and obvious choice (especially for us!) to hit the ground running. Unfortunately, the content management system (CMS) in Magento is subpar when compared with platforms that focus primarily on managing content. The most common CMS platforms to try to integrate into Magento are Wordpress and Drupal. Let’s take a look at integrating a behemoth system like Drupal first.

Drupal + Magento

In a configuration running Drupal and Magento, the mindset of achieving content to commerce tends to look like this.

Content to Commerce in Magento

In the above diagram, we can see traffic from the internet being routed through one of the two systems based on whether the user is trying to access CMS content or the store. Because the systems are run through two completely separate databases that have their own user management and access control, a single sign-on solution (SSO) must be implemented to make sure users only have to login once to access a global account. Single sign-on solutions make development much more complex, since we have to first choose which system will “own” information such as customer data and then make sure that data gets replicated based on which system is trying to update the information. In the case of running Drupal alongside Magento, Drupal tends to own customer data and access control, and all operations on the eCommerce end are facilitated by tying updated data (like a user entering a new billing address) back to Drupal.

 

The related but independent data layer quickly becomes problematic for simple tasks such as displaying the number of items in a user’s cart at the top of every page or displaying a page of the customer’s order history. By having Drupal act as the system of record, the solutions to solve these problems can be complicated and expensive, and the more things we try to connect between the two systems the more we have to worry about performance degradation and backwards compatibility.

 

If we flip the problem on its head and make Magento the system of record, we can now begin to postulate a viable solution. We need to have a tight integration with the database running Drupal content to make sure it is pulled into Magento’s frontend (effectively replacing the Magento CMS with Drupal), but if we do so we can have Magento run everything on the frontend and only use Drupal for the backend CMS editing.

 

Our only problem is that no such integration to Drupal exists, mostly because Drupal is a very extensive system and tying only its CMS management capabilities into Magento would be a heroic effort with little return on investment.

 

But what if we replaced Drupal with Wordpress, a lightweight but user-friendly CMS system that we could easily tie into Magento acting as the system of record?

Enter Wordpress

The fact of the matter is this integration has already been built and has been actively developed and supported for the past several years. The Fishpig Magento Wordpress Integration built by Ben Tideswell (http://fishpig.co.uk/magento/wordpress-integration/) works with Magento Community and Enterprise and mimics the functionality of Wordpress while being fully integrated into Magento and the Magento theme.

 

In a configuration running Wordpress and Magento, the mindset of achieving content to commerce now looks like this.

Content to Commerce in Magento

The above diagram illustrates how much simpler the Wordpress and Magento configuration can be than other massive CMS platforms such as Drupal. Since we have defined our goal of handling content to commerce by allowing the eCommerce platform to be the system of record, in this setup what we are really doing is supplementing Magento’s poor out-of-box CMS features with those of Wordpress without the need to have an SSO complicate things.

 

Many clients worry that Wordpress is not an enterprise-grade system and cannot withstand the traffic of an enterprise-grade website, but the actual architecture here is to only use Wordpress for its backend CMS functionality and actually pull that content into the frontend of Magento. The beauty of doing this is we are now naturally allowing the caching mechanism on the frontend of Magento to also pull in the CMS content we are trying to synchronize via Wordpress.

 

For the purposes of this article, we setup a fresh Wordpress install to demonstrate the concept of content to commerce. Our Wordpress homepage looks like this with a couple of test blog posts:

Content to Commerce in Magento

In the backend, we still manage posts (from the Wordpress admin) the same way we would handle them if we were just running Wordpress by itself:

Content to Commerce in Magento

The difference now is these posts will actually be pulled into the Magento theme and run through the Magento architecture. If we go to the frontend of our fresh Magento install, we can see these blog posts mirrored on the eCommerce system:

Content to Commerce in Magento

With Fishpig, the integration between the two systems is so tight-knit we can even associate our blog posts and categories in Wordpress to products, categories, and CMS pages in Magento. Here is an example of associating a specific blog post to the Magento homepage:

Content to Commerce in Magento

And here is it displaying on the frontend of our unified system:

Content to Commerce in Magento

By tying Wordpress and Magento together in this fashion, we have set ourselves up on a unified architecture that simplifies extending the system with custom functionality. The level of complexity remains the same as if we are just developing the Magento eCommerce system by itself, with the added features in the Wordpress admin panel to enhance backend users’ CMS editing capabilities.