34,79 €
Used by over eighty thousand companies worldwide, Pimcore is the leading open source enterprise-level content management system (CMS) solution. It is an impressive alternative to conventional CMSes and is ideal for creating e-commerce and complex enterprise websites.
This book helps developers working with standard CMSes such as WordPress and Drupal to use their knowledge of CMSes to learn Pimcore CMS in a practical way. You'll start by learning what Pimcore is and explore its various services such as PIM, MDM, and DAM. The book then shows you various techniques for developing custom websites in Pimcore based on the scale of your organization. You'll learn how to use Pimcore to improve the digital transformation of a company by implementing enterprise Pimcore features. As you advance, you'll discover Pimcore's capabilities and features that make it a faster and more secure alternative to traditional CMSes. As well as demonstrating practical use cases, Modernizing Enterprise CMS Using Pimcore can help you understand the benefits of using Pimcore as a CMS solution, sharing best practices and proven techniques for designing professional Pimcore sites.
By the end of this book, you'll be a trained Pimcore developer, able to create complex websites, and be well-versed in Pimcore's enterprise features such as MDM, PIM, and DAM.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 449
Veröffentlichungsjahr: 2021
Discover techniques and best practices for creating custom websites with rich digital experiences
Daniele Fontani
Marco Guiducci
Francesco Minà
BIRMINGHAM—MUMBAI
Copyright © 2021 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Publishing Product Manager: Pavan Ramchandani
Senior Editor: Hayden Edwards
Content Development Editor: Aamir Ahmed
Technical Editor: Shubham Sharma
Copy Editor: Safis Editing
Language Support Editor: Safis Editing
Project Coordinator: Manthan Patel
Proofreader: Safis Editing
Indexer: Tejal Daruwale Soni
Production Designer: Roshan Kawale
First published: July 2021
Production reference: 1090721
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-80107-540-4
www.packt.com
To the forests, which taught me the value of small things. To the climbs, which made me stronger. To everyone who told me it wasn't possible, because they gave me the motivation to go on.
– Daniele Fontani
This book is dedicated to my wife, who is the anchor that holds me steady, and who has always been by my side at all the important moments of my career. And to my son, who has just come to life, and who supported me in writing this book from the belly of his mother.
– Marco Guiducci
To Pongo, Pizzicottina, and the unforgettable Brina and Paco for bearing with me and making every day of my life special. I would be lost without you.
Finally, a special thanks to Daniele Fontani for his constant and priceless support and pulling me out of my comfort zone. A true friend and an immeasurable leader.
– Francesco Minà
More than ten years have passed since Pimcore's conception. During this time, thousands of companies have embraced the Pimcore data and experience management revolution. So far, Pimcore has helped over 100,000 businesses deliver digital solutions and successfully perform digital transformations. We are proud to be able to offer Pimcore's Open-Source Community Edition to our whole ecosystem free of charge, complemented by an optional Enterprise Subscription. Pimcore is the point of conjunction between the marketing department, the development team, and the partner agency. Using Pimcore helps all parties to share the same vision, without friction, without getting lost in technicalities. Choosing the right digital platform in the right moment of its digital evolution is essential to business success today. So, learning how to build and deliver modern applications with Pimcore means that you are following the right path.
In this book, you will get the foundation of being autonomous in Pimcore development, starting from scratch and without any additional requirements. You will be led through the pillars of building a Pimcore solution. It will make you able to implement any kind of digital solution for your project, or for any customer project. This book will take you step-by-step through Pimcore, from the user perspective and as a developer. You will learn how to create web pages, manage and distribute digital assets, create golden records of your master data, and develop custom code.
After reading this book, you will be ready to start your next digital project and, with Pimcore, you will discover that regardless of the complexity of the project, there is always a solution.
Dietmar „Dietz" Rietsch
CEO and co-founder of the Pimcore company
Daniele Fontani is the CTO in Sintra Digital Business and has worked as a senior developer, team leader, and architect in a very large set of enterprise projects. He has a master's degree in robotic science and another master's degree in project management. His experience in technology extends to many technologies (Java, PHP, and .NET) and platforms (SharePoint, Liferay, and Pimcore) other than techniques (Agile, DevOps, and ALM). He is interested in Agile techniques, project management, and product development. He implemented DXP platforms for banks and worked in the loan industry as a team leader and software architect. In the pharma industry, he designed and developed retail portals for training and for the social engagement of retailers.
Linkedin: https://www.linkedin.com/in/daniele-fontani/
Website: https://www.danielefontani.it/
Twitter: https://twitter.com/zeppaman
Blog: https://daniele-fontani.medium.com/
I want to thank the coauthors of this book, the reviewers, the editors, and all the staff for making this book possible. I never felt alone.
Marco Guiducci is a certified Pimcore expert, team leader, and software engineer. He earned a master's degree in information science in 2017 with a thesis on AI, focused on semantic text analysis. Since then, he has taken his first steps as a developer. He fell in love with PHP and Pimcore. Now, Marco has matured with long-term experience, documented by public speaking and contributions to the Pimcore code base. Inside the Pimcore ecosystem, he is focused on the PIM/DAM/MDM strategy and has delivered a broad set of enterprise projects across the world. He has designed and delivered a lot of PIM solutions for enterprises using Pimcore, integrating with major e-commerce solutions such as Shopify, Magento, and Shopware. He has also delivered B2B portals and websites using Pimcore and other technical solutions.
Linkedin: https://www.linkedin.com/in/marco-guiducci/
I want to thank the people who have been close to me and supported me, especially my wife and my parents.
Francesco Minà started programming in 1997 and, since that time, has followed the most important trends in digital innovation. He graduated with a degree in industrial automation in 2010 with a thesis on informatic science, in which he built a box for sending profiled marketing messages to customers on their devices, anticipating what would become the norm a few years later with modern social networks and tools. During his professional life, Francesco has worked as a senior developer on Magento, WordPress, Pimcore, and other CMS solutions. He is a solution architect and team leader in a digital innovation company, where he delivers a complete solution based on Pimcore. Francesco is active as a public speaker and an open source contributor. He developed an open source solution for delivering WordPress plugins and presented it as a best practice at many developer conferences. He developed erpselection.it, the first Italian software selection network. Throughout his career, he has delivered portals and B2B applications for the fashion and logistics industries.
Linkedin: https://www.linkedin.com/in/francesco-mina/
I would like to thank my mother and my father for having me. They have done their best to raise a perfect child and, even if the result is not the best, I cannot imagine what life would be like without them. I love you.
Christian Kemptner is the Marketing and Partner Manager at Pimcore. He has many years of experience in the successful online marketing of software products. In just 5 years, he has successfully helped Pimcore to build a global ecosystem of over 130 certified partner agencies and more than 100,000 customers.
Leonard Hirja is a father, husband, senior software architect, and Agile practitioner with over 6 years' active experience in the field. He's actively involved in e-commerce projects and automatic data integrations. He mostly specializes in backend architecture, and in the last couple of years he has also specialized in frontend technologies as a senior full-stack developer. His preferred technology stack is Laravel, Vue.JS, and Pimcore (with ShopCore).
Nowadays, digital innovation is a challenge for any medium-sized or large organization. This journey, also known as digital transformation, is not only related to technology but is guided by cultural and motivational pillars. Many managers or communication gurus will tell you that technology is not important and that it's just a commodity or a set of tools at the service of the company (marketing, sales, and suchlike). We believe that this approach is possible only if the technology you have chosen is genuinely able to support your business initiatives. In terms of starting to forget about technical issues and focusing on business only, we have to find a technical solution that works perfectly under all conditions that can scale and support the business as it grows. Following an extended period of research, we have found that this solution is called Pimcore.
Pimcore, in simple terms, is a technology facilitator that removes most of the operative friction between the mind and the hands of a company. Pimcore can act as a PIM (Product Information Management) system for distributing product information across the entire company or centralize essential data for the company (Master Data Management), allowing all other parties to consume it without any security risk.
Moreover, Pimcore is a powerful CMS engine that can manage a lot more than simple web pages. It is a very versatile solution that covers most of the problems you encounter every day. In this book, we will learn how to get the best out of Pimcore.
After reading this book, you will be able to do the following:
You will understand what Pimcore is and how it works. In fact, we believe that it isn't only a matter of which tool to use, but also to incorporate it perfectly into the big picture.You will be able to create websites and portals, using Pimcore as a digital experience platform. This includes using the CMS engine, but also creating custom web MVC pages and reusable components.You will be able to use the enterprise feature of Pimcore (PIM, DAM, MDM). You will learn how to collect data, incorporate it into a unified database, and share it with all potential consumers (apps, websites, legacy applications, and so on).You will be able to install, maintain, and deploy a Pimcore website.In simple terms, this book will lead you on a journey through theoretical and practical lessons to become a Pimcore developer!
This book is designed to encourage you to learn about Pimcore in a straightforward manner. We will cover all the important topics to enable you to initiate and complete a real-world project. To reach this goal, we have developed a book that's not only a set of information but something that combines theory and practice. This pragmatic approach will teach you how Pimcore works and how to put your knowledge into practice without getting annoyed or barely being able to follow tutorials by asking you why you need to do that. In fact, the first chapters will introduce you to a high-level vision of Pimcore so that you are aware of all of its benefits, and then we will embark on a journey that will progressively uncover all the details of Pimcore step by step without introducing any excessive complexity.
This book is designed for any developer, CTO, or any other kind of technician wanting to deliver Pimcore-based solutions or is willing to build digital platforms to support their customers or their business on the digital transformation journey.
This book gradually introduces the most important concepts, so you do not require any special background. All you need to know in order to understand the book is the basics of the PHP language and some practices involving HTML and CSS.
Chapter 1, Introducing Pimcore, explains what Pimcore is. It introduces the main characteristics and describes how it works. This chapter introduces the tool to the reader and reveals all the features from a wide-angle point of view.
Chapter 2, Setting Up Your Pimcore Development Environment, covers the installation of Pimcore with a deep dive into setting up a local environment compatible with a source code repository.
Chapter 3, Getting Started with Pimcore Admin UI, explains how the admin UI works and how to find UIs for basic commands. This is useful for navigating the Pimcore menus and functionalities.
Chapter 4, Creating Documents in Pimcore, explains how to create Pimcore's documents and how to handle basic settings. This is a useful resource when it comes to editing documents and creating web pages.
Chapter 5, ExploringObject and Classes, explains how to create and manage Pimcore objects and classes. This step constitutes the basis for the majority of Pimcore tasks, such as creating complex websites.
Chapter 6, Using Digital Asset Management, explains how to manage assets in Pimcore using the DAM feature. This is important for uploading assets and spreading or integrating them inside web pages.
Chapter 7, Administrating Pimcore Sites, covers administration and maintenance routing. It explains how to install Pimcore sites and how to manage third-party add-ons. This is what you need to keep Pimcore up and running.
Chapter 8, Creating Custom CMS Pages, explains how to implement themes and prepare templates for custom CMS pages. Doing this is important when it comes to mastering the basics of custom web page building.
Chapter 9, Configuring Entities and Rendering Data, explains how to present data to the user in terms of implementing web pages. This is a real-world use case that helps to put into practice what you have learned so far.
Chapter 10, Creating Pimcore Bricks, explains how to create reusable components that can be configured by the user. This is the way to save you from a lot of work and simplify maintenance.
Chapter 11, Finalizing the Website, contains tips and tricks that save time and provide assistance in reusing a component on multiple projects.
Chapter 12, Implementing Product Information Management, shows the PIM configuration of Pimcore. It explains how to tune it for managing it as a PIM system. With this chapter, you can start using Pimcore as a PIM system.
Chapter 13, Implementing Master Data Management, explains how to expose data using GraphQL APIs. With this, you can activate this feature and start data integration.
Chapter 14, Data Integration, covers the data integration feature of Pimcore. This helps to implement a standard way of integrating with other systems without any development effort.
Pimcore is a great platform, supported by many vendors and communities. This means that your application will always be hosted on an updated platform that will periodically release new features. This book is based on Pimcore X, and it is the latest version released at the time of publication, so by reading this book, you will be learning on the latest version available!
Pimcore X comes with many new features and an updated technology stack (Symfony 5, PHP 8, and ExtJS 7) that provides many performance improvements. Even though there are enormous changes between Pimcore X and the previous versions, most of the concepts you will learn reading this book will also be applicable to all the previous versions.
This book is designed for a seamless learning experience and doesn't require any relevant expertise other than basic PHP and HTML knowledge. In any case, any developer who has some experience with other platforms will be able to follow the instructions and understand the code. Moreover, we haven't introduced any paid or OS-related tools, and this makes this book available to all without any limitations:
All the items marked with (*) are only required if you do not choose to use Docker. In fact, we provide a Docker-based setup option that doesn't require anything other than Docker. All the dependencies will be managed automatically, so you won't have to worry about that. In any event, if you are going to follow the manual installation, you will also need all the tools marked with (*) installed on your local PC.
If you are using the digital version of this book, we advise you to type the code yourself or access the code via the GitHub repository (link available in the next section). Doing so will help you avoid any potential errors related to the copying and pasting of code.
You can download the example code files for this book from GitHub at https://github.com/PacktPublishing/Modernizing-Enterprise-CMS-using-Pimcore. In case there's an update to the code, it will be updated on the existing GitHub repository.
We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!
We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: https://static.packt-cdn.com/downloads/9781801075404_ColorImages.pdf.
There are a number of text conventions used throughout this book.
Code in text: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "Add a template to /bundles/BlogBundle/Resources/views/Areas called view.html.twig."
A block of code is set as follows:
<?php
use Pimcore\Bundle\BundleGeneratorBundle\PimcoreBundleGeneratorBundle;
return [
PimcoreBundleGeneratorBundle::class => ['all' => true],
];
When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
"autoload": {
"psr-4": {
"App\\": "src/",
"BlogBundle\\": "bundles/BlogBundle/",
"Pimcore\\Model\\DataObject\\": "var/classes/DataObject",
"Pimcore\\Model\\Object\\": "var/classes/Object",
"Website\\": "legacy/website/lib"
}
},
Any command-line input or output is written as follows:
docker-compose exec php bash
Bold: Indicates a new term, an important word, or words that you see on screen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "Fill the form with data (it is a contact form, so the field meanings should be self-explanatory) and then click Send."
Tips or important notes
Appear like this.
Feedback from our readers is always welcome.
General feedback: If you have questions about any aspect of this book, mention the book title in the subject of your message and email us at [email protected].
Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packtpub.com/support/errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.
Piracy: If you come across any illegal copies of our works in any form on the internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected] with a link to the material.
If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.
Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!
For more information about Packt, please visit packt.com.
If you bought this book, you probably already have a rough idea of what Pimcore is. Pimcore is an open source, enterprise-grade Digital eXperience Platform (DXP) solution that aims to be the leader in its market segment. But what does this definition really mean? It sounds very vague as, too often in the IT world, buzzwords are used as filler when describing something. And that's why we have to explain what Pimcore is properly, not just telling you what it does but drilling down into the problems it solves.
Understanding the scenarios where the tools we are going to study will be employed is always an excellent way to proceed, especially when you want to learn Pimcore, a platform that will revolutionize your development experience.
In this chapter, we will explore the Pimcore platform, learning about the benefits and opportunities it offers and how it differs from other solutions.
The chapter is organized as follows:
Why do you need more than a simple CMS?What is Pimcore?Discovering Pimcore's featuresLearning about Pimcore's benefitsLearning about the benefits of using open source softwareIn this section, we will learn about how the Content Management System (CMS) has evolved in recent years and what new requirements these changes have brought up. Understanding market trends and needs is fundamental to successfully adopting a CMS platform that will support our business or our customers' business for years to come. Learning about a tool such as Pimcore without fully understanding how it can be useful could be a waste of time, and you may lose a lot of technical opportunities that could solve your or your customers' problems.
So, let's introduce the problem that Pimcore solves. Then, it will be very easy to understand why Pimcore created this product in the way that it did and why we should adopt it.
The first thing to accept is that there has been an evolution in the market. We are no longer satisfied with a tool that only builds a website. That was okay 10 years ago, but now, most companies have a more holistic approach to digital communication and want more. You don't have to be scared by this change; since the birth of the internet, we've seen many evolutions and things have become better and better. We simply have to follow the trends, or better, anticipate the trends.
Think of what has happened in the last 20 years. We started with the internet just producing static text content. It literally meant manually writing every single page and uploading it using a File Transfer Protocol (FTP) link, if you were lucky. We still remember when we were fighting with scripting languages to mix HTML, data, and Flash content just to render two or three pages for a simple website.
CMS was a very big leap forward. Managing dynamic content from the browser unlocked the opportunity of letting the final user manage their data, reducing the development effort required. That was a revolution, and many CMS solutions spread across the web. WordPress, Drupal, and other products became a must for creating websites. They were (and probably still are) good solutions for most scenarios, but we are here to enhance our tool range and be ready for what the market will ask of us tomorrow.
Now it's time to push the user experience to the next level, and we need a good tool to support this digital evolution.
The main topic to learn about to understand the market's current needs in terms of digital innovation is DXP. This acronym was coined by Gartner and is a way to describe a technical solution that can support the digital experience of a company. What a company should do, nowadays, is put the customer at the center of everything and use technology to power the delivery of the right content to the right person. Most of the companies that wanted to expand their business online started their digital transformations years ago. They created e-commerce sites to sell online and reached all their customers with the right products. They have had websites since the beginning of the internet (some have had more than one). Corporations can have a single global website, one per brand, or different websites based on the target market. They also have a portal, to give agents or third-party vendors access Business-to-Business (B2B) information.
All this segmentation is a nightmare: we have too many platforms, we have to keep them communicating with each other, we have to manage content in different GUIs, and we need multiple logins to do all this. This solution is not optimal, so warrants change.
But there is a more important reason for this change – we forgot the most important element in all of this: we missed the customer. While grappling with technologies and their evolution, we lost our focus on the thing that's most crucial. That's why we need a unique software solution to effectively manage all those problems we just described: that solution is the Digital eXperience Platform.
In the following figure, we can see how a DXP includes e-commerce, websites, and portals to create a unique experience:
Figure 1.1: DXP diagram
As you can see in the preceding figure, the e-commerce and portal solutions have some things in common; for example, they share the same authentication system. We can also see that websites and portals create web content using the same CMS. Based on your experience, you may already understand that these three solutions need to share some features. Replicating them in separate platforms is redundant, but putting all the elements together in a single platform helps us to reduce complexity and avoid the duplication of data.
In simple terms, we are talking about having an integrated software framework that can implement a solution to all digital companies' needs. This will lead to engaging a broad set of users through all digital touchpoints.
Pimcore is that framework. The mission of Pimcore is to make technology an enabler for digital transformation and not an obstacle. The vision of Pimcore is very clear: using only one tool, we should be able to integrate all the other tools in the company and accelerate all processes.
Most companies have trouble finding data, or they have duplicated data across their system. This usually happens because, historically, these companies adopted many vertical solutions, and only later did they ask themselves how to integrate them. These isolated sets of data are called silos. A quick way to break down data silos is to create a central database with all the information that's needed and to facilitate delivery to the consumer through easy and transparent API protocols. This solution is called Master Data Management (MDM), and it's one of the features offered by Pimcore (we'll see this in Chapter 6, Using Digital Asset Management.
We always need to have central information, but often, this need becomes a pain point when we have to deal with product data. We might sell products across many channels, we might need to print information on them in physical catalogs, and we cannot have different information in different places about the same thing. The centralization of product management is called Product Information Management (PIM), and it is another feature of Pimcore. We will learn more about this later, but for now, keep in mind that growing companies have such needs.
Finally, we may want to centrally manage digital assets, such as videos, images, and other files. A system that collects and delivers digital assets is called a Digital Asset Management (DAM) system, and you have probably already guessed that Pimcore also covers this. We will learn more about this topic in the next section.
The Pimcore platform is the right tool for any company facing a digital experience transformation. Moreover, the digital experience transformation is not the only problem that such a company will face. That's why Pimcore is more than a PIM, CMS, MDM, and DAM put together. Pimcore is a solution to help us realize big changes in the digital experience of our customers.
In this section, you learned about the challenges that the most important companies are facing. Our duty, as technicians or consultants, is to help companies to look at their simple websites, come up with a more holistic vision of their digital communication, and support their needs with the right technical solution. In the next section, we will learn about what Pimcore is and why it is the right solution to this problem.
When defining what Pimcore is, the first thing to take into account is the name itself. The name suggests that the PIM is the main part, but you shouldn't be taken in by appearances. Pimcore is a lot more than a PIM product.
We can describe Pimcore as a framework because it gives us all the tools we need to implement our projects. This second definition is not much more intuitive to understand than the first, but it gives us an important hint. Pimcore is a set of tools, but we cannot think of it as a library or some snippets. Pimcore is a set of collaborative tools; each tool can solve its own problem. It is not a product but a suite of products. The combination of all of them helps to design a complete digital solution. In this sense, Pimcore is a true DXP: a platform that enables developers to implement digital projects. This definition is a little bit vague, but it tells us that Pimcore gives us a very wide range of opportunities. We cannot merely say "Pimcore does this or that" because Pimcore can do everything.
Pimcore is a Swiss Army knife that allows developers to create any software solution. We have been talking about websites here, but Pimcore has other applications, such as delivering digital assets to a company or being the central database for all of a company's information. Pimcore offers many features out of the box, such as DAM, PIM, MDM, and Datahub, in a single package. We have already had a brief overview of what DAM, PIM, and MDM are, but there will be time to go deeper into these topics, including Datahub, in the coming chapters. So, don't worry if these definitions still seem high-level.
The important thing to know right now is that Pimcore lets you manage most data-related applications without writing a single line of code, as well as providing an out-of-the-box solid e-commerce framework.
This is the point where you should ask whether all that power is actually required. Do you really need the overhead of managing a complex platform like Pimcore to build your simple website? There are much easier solutions on the market for implementing a website. You can find a super-cheap CMS hosting provider, or use a site builder. These solutions are probably good for small companies, but not for medium to large organizations. Enterprises need to do more, and in this first chapter, you will learn about the opportunities you would be missing by using a simple CMS solution to implement your website.
If you are reading this book, you are looking for a CMS solution that is able to manage all scenarios, from the simplest to the most complex. And you don't want to implement 10 different tools to satisfy all the needs of your marketing department. Moreover, you do not want to pay for the cost of continuous re-platforming as your business grows. The technical solution for building an application must be a boost, something that gives you more benefits than doing things from scratch, but also something that doesn't limit constant change. You need the option of customizing each part of a website without compromises such as adding thousands of plugins and slowly but steadily losing control of the solution.
You may still think that Pimcore is a platform with a lot of features that you don't really need – that's understandable. Having a super-powered platform just to realize a simple website may seem like overkill. Sometimes it can be scary. Anyway, if you read the first section of this chapter again, you will agree that, sooner or later, you will need something more than a simple CMS and at that point, you will want to be able to scale without having to change your platform.
In the following sections, we will learn about the most relevant Pimcore characteristics. This will help you to understand why Pimcore can support your development in all scenarios, from a simple website to a complex corporate portal. Such characteristics include the following:
Decoupling data from the UIRendering content properlyBeing ready for the cloudLet's take a look at these.
The first characteristic of a modern CMS is the separation of the presentation layer from the data structure. Put simply, you have to add data on one side and then draw it from the other, without there being any dependency between the two layers.
With Pimcore, we have two options:
Implement a fully decoupled solution (Decoupled CMS).Implement a headless CMS solution.In the detached model, the separation between the business logic and the presentation layer can be achieved by detaching the data generated from the rendering process. In Pimcore, we have a Model View Controller (MVC) model where the Twig templating engine cannot elaborate on business logic. For anyone who is not an expert on MVC and Twig, MVC is a pattern for separating business logic (controller) from presentation (view) and data (model), while Twig is a PHP template engine.
The other option is to adopt a fully headless solution. In this case, we expose data using APIs and then render it with a modern Single-Page Application (SPA), such as a React website made static with Gatsby. This headless solution gives a strong separation between the various aspects (such as data definition and data presentation), and data exposed to the app can be used by other applications too.
The market offers many headless CMS solutions, but Pimcore comes out of the box with both solutions, headless and detached. So, you can manage simple websites using a standard detached approach, and this lets you create templates as usual, but without any mutual dependency between presentation and business logic. This keeps the design simple, and you will benefit from the advantages of decoupling, so you can refresh your website with little effort just by reimplementing the template.
Anyway, if you want to create an edge solution, you can do so with Pimcore. In fact, it comes with an out-of-the-box solution for exposing data in GraphQL format, and this is enough to transform it into a headless content provider. For those unfamiliar with it, GraphQL is a query language for APIs that describes data and reduces friction between the data producers and consumers.
At the beginning of the CMS age, there was a division between interactive websites (also known as web portals) and institutional websites. That led to a division between CMS websites and portal solutions. As these CMS websites and portals had different needs, we became used to adopting different tools and maybe different teams of suppliers for each.
For example, in the past, creating a public website was quite simple, so having a simple CMS solution was okay. On the other hand, creating a portal was more complex, so we needed a highly customizable solution. But with the spread of digital technology, more and more companies started selling online, adding this new requirement. So, what was the solution? The companies simply took a tool from the market, installed it, and started to sell. This was a quick way to solve the problem of selling online, but it caused an issue: it added a third platform (e-commerce) to the CMS and portal. This often meant a new supplier, a new graphic interface, and a different user experience. In other words, it meant a situation where three systems were in different realms in terms of data and user experience. After a few years of fighting with data flows, integrations, and the replication of business logic across these environments, one day, advisors such as Gartner came up with a solution. They told us we had silos in our organization, that silos were bad, and that we should remove them. Moreover, the same advisors told us that commerce, portals, and content management are not different needs, but are all part of the same digital experience. The question is: if all those components are what the user wants, who can provide us with a tool to deliver them?
Pimcore does things differently from competitors. Its CMS engine manages public and private websites, so you can create reserved areas and portals as well as simple one-page company websites. Moreover, this solution keeps a link to the enterprise, adding some important components that help integration with all other pillars. This special configuration makes Pimcore an ideal platform for unifying the user experience by including in a single platform all the features you need to engage the user.
So, you can expand a website's functionality until you have encompassed the whole company, e-commerce included. In other words, you can adopt one tool and satisfy most of your digital needs.
The ancient times when we bought physical servers are forgotten. We are now in the cloud age, and we want to take advantage of all the opportunities that this new world offers. However, we live in a complex world where, for many reasons, the cloud is not always an option. We may have to deal with sensitive data that has to be kept secure in a private data center, or our budget may only allow a cheap hosting provider. Each company has different requirements, but they all need to have a website. Having data on the cloud or on-premises shouldn't be a reason to adopt a digital platform. It has to support both of them natively.
As a developer, you don't want to serve different client targets with different tools. This would lead you to have to learn many different tools and use them at the same time; that's always hard if you want to maintain a deep specialization in one technology.
To use different products to serve different segments of the market, you will probably need different technologies and be a double-specialist. For human developers that work for a finite time each day, using too many technologies means having less specialization. The more technology you use, the less time you have to learn it well. We could find a few exceptions to this, but generally speaking, that's how it is.
Pimcore is different. It can serve everything from the simplest website to the most complex corporate one, thanks to its flexibility and its open source code, which delivers a complete solution for free. This agility is also reflected in its hosting aspects. Pimcore can be deployed as a simple PHP application just by uploading files via FTP to a cheap hosting service or a regular virtual machine, and it supports containerization natively.
In other words, as a container, Pimcore can be deployed on most Platform as a Service (PaaS) solutions, Docker, or Kubernetes, in the cloud or on-premises. So, the cloud is an opportunity, but not a requirement. You can deploy Pimcore to the cloud, implementing a solution that scales and stands up without human effort for monitoring and maintenance. If you feel confident with a different solution, or you simply don't need to scale, an easier solution is still an option with Pimcore.
Learning what Pimcore is is essential to understanding its capabilities and following along with the coming chapters. In fact, in the next section, we will start a deep dive into Pimcore's features, which would have been impossible without having discovered what Pimcore is already.
As we said earlier in this chapter, Pimcore comes out of the box with some huge features that make it the ideal platform for implementing simple and complex projects.
In this section, we will present the main features:
Data managementCMS and DXPPIMMDMDAM E-commerceCustomer Data Platform (CDP)Let's take a look at each one.
Data management is the root of all features in Pimcore. The data management feature aggregates any kind of data and distributes it across multiple channels. Compared to other solutions, Pimcore has the best data management system. It allows you to define data using the UI, and this is very good because you don't have to write a single line of code. You can stop messing about with database tables, field lengths, and data queries; all you need to do is simply open your browser, create your entities, and pick the fields you want. This feature is very similar to what can be found on low-code platforms or headless CMS, but with a boost.
Most data management tools have, as their unique goal, the data model definition. Such a solution gives us the ability to quickly define a data model and APIs but produces a UI that's hard to use for the regular user. Basically, you are very much limited to the standard data entry interface, so in most cases, you have to write a user UI from scratch. This is what the purely headless principle aims for: delegating all the rendering aspects outside the system. This is a good principle when designing an application for the final user (such as customers or portal users), but what if we need to allow an administrator or editor to enter content on our platform? For such internal users, Pimcore offers an administrative interface that can be customized when you define the data model.
In other words, when you add a field to a collection of items, such as when adding an SKU field for a product entity, you don't just define how the data is stored (uniqueness, field length, type of date, and so on) but also how this field will be presented to the user. For example, you can group fields in tabs or panels, or simply reorder them to create a good user experience for back-office users, without touching a single line of code. Moreover, Pimcore supports multi-language, so you can select which field is translated just by modeling the fields. This feature transforms Pimcore into the perfect headless CMS because it combines the flexibility of an admin backend that's ready to go with the power of a data API for building custom applications.
The first time that back-office users see the admin interface, many might feel a little bit lost, what with the thousands of features that the Pimcore admin interface offers. Just after a few minutes of playing with Pimcore, it will be clear what level of freedom you can reach with this tool. Thanks to the multi-tab environment, you can open multiple data tabs in the same window, easily cut and paste data from one place to another, and import\export data in seconds.
If this doesn't shock you, what we will tell you next will. All that data is made available by REST APIs; this is a native feature that doesn't require any development effort. This means that each one of the entities you model with the Pimcore interface is available through a REST API without any additional effort (since PimcoreX this feature will be available only as an Enterprise Subscription feature). You can make an HTTP call to put a row into a database or query a list of entities without writing a single line of code.
If you are still not shocked, we can mention the DataHub module again – you can turn on and expose your data to an external system, using the GraphQL standard for API modeling.
It's easy to see that, when you have the data layer managed, everything else that comes later will be easier.
Pimcore is defined on its website as "The Most Adaptive DXP Platform." Ask any developer working with Pimcore and they will confirm that you can probably do everything with it. Using this CMS, you can – other than realizing cool web pages – deliver a personalized digital experience to every customer at every touchpoint. Thanks to its CMS engine, Pimcore enables companies to implement their digital strategy effectively and spend more time and money on what really matters.
From a developer's point of view, Pimcore's DXP is an integrated framework for implementing any type of digital solution, be it a website or a portal. Moreover, it combines all the tools for implementing e-commerce, and you can turn your website or portal into a complete DXP solution. It's an API-driven approach to make a platform integrable with every system, and it helps to break down silos.
From the user's point of view, Pimcore is a natural extension of their creativity. The rich What You See Is What You Get (WYSIWYG) interface shows content as it will appear when published. So, you can enter data and build pages without any doubt about what the final result will be. Furthermore, you can create page templates that will drive the user through an assisted page composition. This process asks the editor to write only the content that is relevant, without wasting time changing styles or text positioning.
The component model lets you use a ton of widgets, all ready to be placed on the page and fully configurable. These widgets are called bricks and – as the name suggests – they build the web page. With the powerful template engine, you can render entities, such as articles or products, or you can define a custom template to be used to build non-standard pages from scratch.
What else is there to say? Using the integrated tools, you can preview the website while editing, and with the publishing workflow, you can save without the fear of breaking anything.
Thanks to its powerful data engine, Pimcore manages any type and any amount of data. What if you model a collection of items called "product" and you add a price inside the data model? Well, this makes Pimcore a PIM. This is not a joke. That is how simple working with Pimcore is. You can add a PIM to your company using your browser within a few minutes. After this 5-minute task, you have a unique database for all the products of your company. Thanks to the data integration capabilities of Pimcore, you can ingest data from any CSV files without writing any lines of code, or in any case, with very little effort. Job done.
Any other system in the company can integrate with you, and the marketing team will manage all products in unique central administration. Here they will define what products go in which channel, what languages are enabled for which market, and so on. So, even in this case, Pimcore gives us simplicity and a complete solution.
If we haven't convinced you yet, we could tell you about workflows. When you have approval processes or some business logic to add to product management, you can model that using Pimcore workflows. In the next figure, we have an architectural diagram that explains a PIM in action:
Figure 1.2: PIM architecture
The preceding figure shows how Pimcore, acting as a PIM, is the single source of truth for products, delivering to many consumers, such as B2B e-commerce, B2C e-commerce, Amazon or eBay marketplaces, or a simple printed catalog. As you can see in the diagram, thanks to the data integration layer, the Pimcore solution can be linked to an existing platform such as Enterprise Resource Planning (ERP).
PIM is a feature that you cannot miss from modern companies, and it is needed for scaling with multiple user touchpoints without duplicating information. It lets you keep control of product data and speed up your software integration. Also, in this case, Pimcore enables you to do this without any headaches, because this is a native feature that comes ready to be activated.
All that we have told you about PIM is cool, but it has one big limitation: it is related to products only. In fact, looking at your company's needs, you will discover that many other kinds of data need to be shared across the company and managed centrally. Orders, customers, and probably tons of other data are used from all sorts of applications by a company, and each time a project starts, you have to know where data is. But the problem is not related only to these few entities.
Using Pimcore, we can make information unique and central for all the golden records (information that is central for a company). This ability is out of the box, free, and with limited effort. How? Just by defining the data model and integrating it with the data masters, such as the CRM, ERP, or whatever owns the entity you want to move. Then, you can define an access policy for data, implementing all the logic you want. This is not just cool...it is super cool! With one tool and a few minutes, you can be ready to expose important data to all the company applications you need. Such a solution enables you to dominate your data (this mission is often called data governance).
This whole configuration is what we called MDM in the first section of this chapter. The main benefits of Pimcore's MDM are that it can manage the structure, but also the validation, versioning, and enrichment of elements. In fact, most entities have different attributes based on their destination. To explain what the benefits of MDM are, we could use any entity, but we will talk again about products. This is just because it is the most common scenario and we can understand it best. When reading the next paragraph, you can replace the word "product" with any other kind of data without changing the meaning (orders, customers, invoices, and so on).