1. Introduction to Advanced Content Manager
Developed and supported by the Blackbird agency in Strasbourg, France, Advanced Content Manager (ACM) is an extension designed to expand Magento’s CMS capabilities so that a variety of content types can be hosted and administered directly from the Magento admin. Blackbird offers fairly comprehensive documentation for ACM that is well worth the time to peruse, but we found that there was a considerable learning curve in making the most of its functionality nonetheless.
The goal of this article is not to publish an in-depth explanation of all ACM’s capabilities. Rather, we hope to provide Magento website administrators with a useful overview of some of the extension’s key features, along with an honest assessment of a few of its current shortcomings, to help you determine if ACM can help to solve the Magento content management challenges you are facing. The Extension exists for both Magento 1 and Magento 2; this article uses the Magento 2 version as an example.
A Note on Magento Page Builder
The Winter 2018 release of Magento 2.3 EE includes the Page Builder module, which aims to simplify and improve Magento’s rich content capabilities. Does this update overrule ACM’s functionality? Our current understanding is that it does not. While Page Builder’s purpose is to make content easier to compose, ACM is designed to make content easier to organize and present. It seems more likely that Page Builder will be complimentary to ACM, adding a more robust set of WYSIWYG tools to ACM’s content editing fields. We won’t know for certain, though, until the two modules can be tested together.
2. The Structure of ACM Content
When ACM is installed, it creates several new content functions in the Content tab of the Magento admin. The functions are as follows:
- Content Types: Defines templates for presenting articles of specialized types; for example, Blog Entries and Testimonials.
- Repeater Fields: Defines groups of fields that can be reused between Content Types. Repeater fields are not covered in this article.
- Content Lists: Defines pages that are used as an index for a single Content Type. For example, a blog archive.
- Store Flags: Defines flag icons associated with language-specific content entries on multi-store Magento sites.
It isn’t immediately obvious how the content functions relate to each other, so it can help to remember that they are nested inside each other:
- Repeater Fields can contain multiple fields and can be reused between multiple Content Types.
- A Content Type can contain multiple Repeater Fields.
- A Content List displays articles from a single Content Type.
3. Setting Up a Content Type
In ACM, a Content Type is a group of articles or entries that share a common layout. As we’ll see later, a Content List can only display a single Content Type. It can be tempting to think of a Content Type as a method of grouping content by category or subject, but this will cause problems if you hope to create a Content List (for example, an archive) that displays multiple Content Types. In a word, you can’t.
Instead, think in terms of how the content is organized. For example, a blog article might include the following fields:
- A Title
- A Timestamp
- A Category
- An Excerpt or Summary
- A Thumbnail Image
On the other hand, a case study might include something like:
- A Title
- A Timeframe or Launch Date
- A Thumbnail Image
- An External Link
In this case, Blog Articles and Case Studies would be two separate Content Types. The individual article pages have different content layouts, and they probably don’t share a common index or archive. However, if you have “News” and “Product Feature” articles that both share most or all of the same fields, it’s probably a good idea to group these under the same Content Type.
When creating a new Content Type, you’re really defining the layout structure for a type of content. In other words, you’re defining what fields you will see when you create an entry for that Content Type as an admin, and you’re defining how that data will be presented to a visitor on the frontend. ACM is very powerful in this regard. When creating a Content Type, you can choose from a variety of data fields, from text areas to image uploads, checkboxes to associated content selectors. There are also fields related to other Magento features, such as products, categories and attributes. Fields can be separated into multiple field groups for complex Content Types. Tip: When adding a field, give it an identifier that is absolutely unique. You’ll be glad you did when you create a Content List.
Fields include a useful array of options, including default values.
Additionally, you will be able to define a layout for each Content Type, specifying how the article will be presented on the frontend. ACM comes with a few useful layout templates, and these can be extended by developers if needed. The layout area isn’t limited to ACM fields—it also allows you to include Magento CMS static blocks, so something like a “related products” sidebar is totally possible. Another great feature of the Layout area is that not all fields in the Content Type need to be included. In other words, you can reserve certain fields as metadata that do not appear on the frontend. Finally, classes and IDs can be associated with the fields, facilitating easy style customization. Tip: When assigning classes to a field, include a space before the first class name. This will separate it neatly from the default classes assigned by ACM.
In this layout, a sidebar is included with a Static Block and links to related articles.
Finally, each Content Type can be assigned its own URL and breadcrumb structure. While the interface takes a little getting used to, it would be difficult to overstate how much capability ACM has packed into this core feature. With a little bit of trial and error, there are very few content presentation requirements that can’t be conceivably handled within a Content Type.
4. Setting Up a Content List
As mentioned previously, a Content List functions like an archive or index page, outputting a structured feed of entries from a single Content Type. The most important thing to remember is that there is (currently) no such thing as a Content List that can display multiple Content Types.
However, while a List can’t broaden out beyond a single Type, it can narrow down to only display certain articles within a Type. This is possible thanks to a Conditions tab that functions similarly to the conditions used when creating a pricing rule in Magento.
For example, if you’ve created a Categories dropdown selector in your Content Type, you can specify that only articles with a specific selection are displayed in your Content List. Multiple conditions can be mixed and matched to narrow or broaden the output as desired. The resulting output can also be sorted based on any given field—for example, alphabetically by title or chronologically by date.
Like a Content Type, each Content List can be given its own custom layout. There are actually two layouts to consider: The General Layout and the Content Layout. The General Layout defines the structure of the Content Type page itself using Magento templates (1 column, 2 columns with left sidebar, etc). The Content Layout works the same as the Layout area in the Content Type. In it, you select fields from the Content Type you’ve selected and define their layout in the article feed. For example, you might specify the the title, timestamp and thumbnail, plus a summary field here that isn’t used when the article itself is viewed. Tip: In a Content List, nearly every element automatically links to the source article on the frontend. In most cases, this is helpful, but it can cause trouble if you want to link to external content or don’t want to link to anything at all.
In general, we found Content Lists to be quite flexible, capable of more than we initially thought possible once we’d subjected its feature set to some experimentation. Since each Content List can be assigned a unique URL structure, they can be surprisingly useful for outputting curated and styled content for a variety of purposes. That being said, we’ve also noticed that they don’t do everything we could wish for, so we’ll touch on a few of ACM’s limitations next.
5. Linking Related Content
When you think of a blog, what probably comes to mind is timestamped content, interrelated by subject. Blog articles are given categories, tags and keywords so that content can be grouped, sorted and searched by subject matter.
Unfortunately, Advanced Content Manager doesn’t provide any method of relating content dynamically. For example, it’s easy to give a Content Type a category dropdown or a keyword field, but you won’t find any options for automatically linking an article’s displayed category to a larger category archive. To us, this prevents ACM from succeeding in adding true blog functionality to Magento.
However, ACM isn’t entirely without options for filtering content. For one thing, one of the fields available in a Content Type is Content Relation, which allows the content administrator to manually select other articles that are related to the article being edited. Interestingly, unlike Content Lists, the content relation field isn’t limited by Content Type; it can be set to allow related content of any Type or multiple Types at once. The manual selection of related articles isn’t the same as linking back to a parent category, but it can help to create a sense of continuity that wouldn’t otherwise exist. ACM provides a variety of options for how this related content can be displayed.
An example of the Content Relation selector
When displaying a Content List, ACM doesn’t have any options for creating a category list or a tag cloud. It does provide a method of filtering, though. This is possible using an XML block that can be added to the Layout Update XML area of the ACM’s Content List layout tab. It creates a filtering menu that can be anchored to any field in the List’s selected Content Type. This is another reason why it is wise to keep Content Types organized more by field sets than by subject matter: Using a filter, visitors can narrow down subjects of interest in a Content List, but only if all subjects are contained within a single Content Type.
An example of the filtering XML block and its result on the frontend
6. Interacting with Magento’s Native CMS
As we’ve seen, ACM layouts have the ability to include Magento static blocks alongside ACM fields. This is especially useful if you want to include something like a featured products slider or contact form. You can also customize the XML of Content Types or Lists to include Magento blocks in the layouts.
For doing things the other way around, the ACM Documentation details various methods of pulling its data into templates and layout files, which is useful for developers, but don’t expect any admin-friendly tools for incorporating ACM content into other areas of your site. You may find this especially relevant as you try to incorporate ACM content into your nav menu, which is only possible by creating product categories that manually link to the content.
Another interesting problem we came across was that of creating a category menu for ACM content. The simplest solution that we found using only the admin dashboard itself was:
- Create a Content Type that included articles in all categories.
- Create a Content List for each category, using conditions to select a single category for each.
- Create CMS static block with absolute links to each of the Content Lists
- Use an XML override to include the static block in the layout of each Content List
…If that sounds convoluted to you, we agree. Which leads us to a short but frank discussion of ACM’s limitations.
7. Current Limitations of ACM
Advanced Content Manager does a few things very, very well. Its comprehensive set of available fields, field options and layout tools open a new world of possibilities for managing and presenting content within the Magento framework. There are some things, however, that it doesn’t do:
- ACM doesn’t have any core support for categories, keywords or tags across Content Types.
- Within Content Types, categories, keywords and tags can be filtered, but there is no support for any kind of dynamic aggregation into archives or indexes.
- The only content relation capabilities within ACM are completely manual, at least without custom development.
- ACM Content Lists can only display a single Content Type, which limits the way that content can be organized and presented.
All this to say, if you’re looking for a way to turn your Magento site into a full-featured blog, ACM isn’t it. But to be fair, ACM might be the closest that you’re going to get for the moment, since we don’t know of any secure and reliable method of extending Magento’s capabilities in exactly that way.
8. Conclusion: Is ACM Worth the Price Tag?
As with anything, the value of Advanced Content Manager depends on what you want to do with it. If you’re looking for an extension that will combine all the eCommerce capabilities of Magento with all the CMS features of WordPress or Drupal, you may need to lower your expectations a bit. On the other hand, if you’re frustrated by Magento’s native content management capabilities and are looking for something more flexible, we think that ACM will meet and probably exceed your expectations. It especially rewards administrators that are willing to read through the documentation and engage in some creative experimentation.
At about $400 USD, Advanced Content Manager is in the upper-middle range of extension costs. It’s an investment, but it is likely to be a worthwhile one as long as you understand what it can and can’t do. If it sounds like ACM might be a good fit for your Magento site, we strongly encourage you to peruse its documentation to learn about the many capabilities it has that aren’t specifically mentioned in this article. Speaking for ourselves, we’ve used Advanced Content Manager effectively for certain clients, and will definitely recommend it again to meet certain robust content management needs.