Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
146 changes: 146 additions & 0 deletions doc/01_Pimcore_Overview/02_Pimcore_UI.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
# Pimcore Studio UI

Pimcore Studio is the browser-based administration interface for managing all data in Pimcore.
It is built as a React-based single-page application with a flexible, widget-driven layout
that adapts to different roles and tasks.

This page introduces the core UI concepts. Detailed configuration and extension options are covered in the
[Studio Frontend documentation](https://github.com/pimcore/studio-ui-bundle/blob/1.x/doc/).


## Layout: Editor Area and Widgets

The interface is built around two core elements: a central **Editor Area** and surrounding **Widget Sections**.

![Pimcore Studio: Editor Area surrounded by Widget Sections](img/studio-ui-layout.png)

### Editor Area

The Editor Area is the main workspace. It displays whatever item you are currently editing,
whether that is a product data object, an image asset, a website page, or any other element.
The editor provides the relevant editing tools for the item type: form fields for data objects,
a WYSIWYG editor for documents, image tools for assets.

### Widgets

Widgets are collapsible panels that surround the Editor Area on the left, right, and bottom.
Each widget serves a specific purpose:

- **Navigation trees** - hierarchical tree views for browsing Assets, Documents, and Data Objects
- **Detail panels** - metadata, versions, tags, dependencies, schedule, notes & events for the currently open item
- **Lists and galleries** - folder contents displayed as lists (for Data Objects) or thumbnail galleries
(for Assets)

Widgets are **context-sensitive**: they automatically update their content based on what is open
in the Editor Area. Open a product image, and the metadata widget shows that image's details.
Switch to a different image, and all widgets update accordingly.

![Widgets update based on the currently selected item in the Editor Area](img/studio-widgets-editor.png)

Widgets can be rearranged via drag-and-drop to fit your preferred working style.


## Multitab and Multiwindow

### Multitab

The Editor Area supports multiple open items as tabs. You can switch between products, images, and pages
without closing and reopening them, regardless of whether they are Documents, Assets, or Data Objects.

![Multiple items open as tabs in the Editor Area](img/studio-multitab.png)

### Multiwindow

The screen can be split into multiple Editor Areas, each showing a different item. This is useful for comparing
two products side by side, editing a page while viewing its images, or displaying a list alongside a detail view.

Multitab and Multiwindow can be combined: each window area supports its own set of tabs.


## Context Menus

Right-clicking any element or folder opens a **context-sensitive menu** with actions relevant to that specific item.
For example, right-clicking an asset folder offers options like upload, new folder, rename, copy, and delete.

![Context menu on an asset folder](img/studio-context-menu.png)

Context menus are available throughout the entire interface: in trees, in editors, and in lists.
They can be customized per role so that users only see the actions they need.


## Editors

When you open an item, it appears in the Editor Area. Although editors look different depending on the item type
(an image editor differs from a product form), they share a consistent structure.

#### Navigation and orientation:
- **Breadcrumb** - shows the full path and ID of the current item
- **Locate in Tree** - jumps to the item's position in the corresponding navigation tree

#### Editor tabs (Editor Console):

The Editor Console provides tabbed access to different aspects of the current item, for example View, Edit,
Properties, Versions, Schedule, Dependencies, Notes & Events, Tags, and Workflow.
Which tabs are available depends on the element type.
These tabs surface platform-wide features like versioning, scheduling, and workflow management
that apply to all element types.
For details, see [Shared Capabilities](./03_Pimcore_Data_Elements.md#shared-capabilities).

#### Sidebar:

A context-dependent panel with type-specific tools. For assets, this shows file details like resolution
and download options. For documents, it lists the available content areas (editables).
Data Objects typically do not have a sidebar.

#### Toolbar and saving:

The bottom toolbar contains key actions: **Save as Draft** stores changes without making them publicly visible,
while **Save & Publish** saves and makes the content live.
This draft/publish model applies to all element types and works together with versioning:
every save creates a new version that can be compared or restored.
The toolbar also includes Refresh and a More menu for less frequent operations
(Unpublish, Delete, Rename, Translation).

This shared layout ensures that once you learn one editor, you can navigate all others.


## Mega Menu

Functions that are not part of everyday operational work (system settings, user management, reports,
and similar tools) are accessible through the **Mega Menu**.
It is organized in multiple levels and keeps the main workspace uncluttered.

![Mega Menu with multi-level navigation and perspective switcher](img/studio-mega-menu.png)

The Mega Menu also provides **Quick Access**, a shortcut for opening specific assets, data objects,
or documents directly without navigating through the tree.


## Search

Pimcore's **Quicksearch** provides fast access to any element in the system:

- **General search** - enter a search term to find matching items across all element types
(Documents, Assets, Data Objects)
- **Typed search** - narrow results by element type (e.g., only Data Objects) and further refine by object type
(e.g., only products, only customers)
- **Sidebar filters** - additional options to refine both the search criteria and the display of results


## Perspectives

Perspectives allow you to preconfigure the entire Pimcore Studio layout for specific roles or tasks.
A perspective defines:

- Which widgets are visible and where they are positioned
- Which navigation trees are shown
- What content is displayed by default

For example, a product manager's perspective might show the product tree on the left and product categories
on the right, while an asset manager's perspective focuses on the image library with metadata panels
below the editor.

A single user can have multiple perspectives and switch between them. This is useful when one role performs
distinct tasks that require different tool arrangements.
Perspectives are configured centrally by administrators and assigned to roles,
ensuring that each user sees a clean, focused interface tailored to their responsibilities.
126 changes: 126 additions & 0 deletions doc/01_Pimcore_Overview/03_Pimcore_Data_Elements.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
# Pimcore Data Elements

Pimcore manages all data through three fundamental element types: **Documents**, **Assets**, and **Data Objects**.
These are the building blocks for all six domains.
Every piece of content, every digital file, and every structured record in the system is one of these three types.

![The three core data element types in Pimcore](img/data-elements.png)

Because all three types exist within the same system, they are natively connected.
Updating an image in one place updates it everywhere it is used,
whether on a website, in a product record, or in an export feed.


## Documents

Documents are the foundation of Pimcore's **DXP/CMS** capabilities.
They represent page-based content: websites, emails, newsletters, and other output rendered for end users.

Documents are organized hierarchically in a tree. The tree structure directly maps to the URL structure
of the website: a document at `/en/products/overview` in the tree becomes
`example.com/en/products/overview` in the browser.

Each document is backed by a Twig template that defines its layout and can contain editable content areas
(text, images, video, galleries) that editors fill through Pimcore Studio.

### Document Types

| Type | Purpose |
|------|---------|
| **Page** | A web page. Its path in the document tree corresponds to its URL. |
| **Snippet** | A reusable content fragment that can be embedded in pages or other snippets. |
| **Email** | A page-like document with additional functionality for transactional emails. |
| **Link** | A web link, typically used in navigation structures. |
| **Hardlink** | A reference to another document subtree, allowing content reuse in a different context. |
| **Folder** | Organizational container for grouping documents. |

### Key Capabilities

- **Multi-site** - manage multiple websites from a single Pimcore instance
- **Multi-language** - create localized content with built-in translation support
- **Web-to-print** - generate print-ready output (catalogs, brochures) from the same content
- **Single source publishing** - documents can pull data from Data Objects and Assets, so content is managed once
and reused across channels


## Assets

Assets are the foundation of Pimcore's **DAM** (Digital Asset Management).
They represent digital files: images, videos, PDFs, Office documents, and any other file type.

Assets are organized in a folder structure and can be enriched with custom metadata, tags, and classifications.
Pimcore also reads and displays embedded metadata (EXIF, IPTC, XMP) from files as read-only metadata.
Editable asset metadata is managed separately through custom metadata fields.
Format conversion and optimization are handled automatically: upload a single high-resolution image,
and the system generates all required output variants (thumbnails, web-optimized formats, specific dimensions)
on the fly.

### Key Capabilities

- **Preview** - view files directly in Pimcore Studio without downloading them
- **Custom metadata** - define and manage custom metadata fields to enrich files with project-specific
information
- **Embedded metadata** - read and display EXIF, IPTC, and XMP metadata from uploaded files
as read-only metadata
- **Versioning** - every change creates a new version; previous versions can be compared and restored
- **Thumbnails** - define thumbnail configurations once, and Pimcore generates the output automatically
for each asset
- **Permissions** - control access to individual files or entire folders through the role-based
permission system


## Data Objects

Data Objects are the foundation of Pimcore's **PIM**, **MDM**, and **CDP** capabilities.
They represent structured data: products, categories, customers, suppliers, orders, events,
or any other business entity.

The structure of a Data Object is defined by a **class definition**. Class definitions are created and maintained
through the visual class editor in Pimcore Studio, no coding required.
A class definition specifies which attributes (fields) an object has and what data types they use
(text, number, date, relation, select, and many more).
Once saved, Pimcore automatically generates the underlying database schema and PHP classes.

### Key Capabilities

- **Flexible data modeling** - define any entity with any combination of data types, from simple text fields
to complex relational structures
- **Localization** - fields can be configured as localized, allowing different values per language
- **Inheritance** - child objects can inherit field values from parent objects, reducing redundancy
- **Variants** - model product variants (e.g., sizes, colors) as lightweight children of a parent product
- **Classification store** - handle dynamic, category-specific attributes without changing the class definition
- **Bulk editing** - edit multiple objects at once through folder list views


## How the Three Types Work Together

The real power of Pimcore's data model emerges when the three element types are combined.
Consider a product detail page on a website: the page layout is a Document, the product's localized name
and description come from a Data Object, and the product images are Assets. All three are linked natively.
If the marketing team updates a product image, the new version automatically appears on the website,
in the product data export, and in any other channel that references it.

![Replacing an asset version automatically updates it across all references](img/asset-versioning.png)

This interconnection is what enables Pimcore's PXM approach: product data, digital assets,
and content experiences are managed as a connected whole rather than in isolated silos.
The same principle applies to commerce use cases, where Data Objects represent orders and carts,
Assets hold product media, and Documents render the shop frontend.


## Shared Capabilities

All three element types share a set of common features:

| Feature | Description |
|---------|-------------|
| **Versioning** | Every save creates a new version. Versions can be compared, and any previous version can be restored. |
| **Properties** | Key-value metadata that can be attached to any element. Properties support inheritance through the tree hierarchy. |
| **Scheduling** | Schedule publish and unpublish actions for a specific date and time. |
| **Dependencies** | Track which elements reference each other: see all items that depend on or are used by the current element. |
| **Tags** | Assign tags for flexible, cross-tree categorization and filtering. |
| **Notes & Events** | Attach notes or track events on any element for auditing and collaboration. |
| **Workflows** | Apply configurable workflow states, transitions, and actions to govern the lifecycle of any element. |
| **Permissions** | Control access at the individual element level through roles and user permissions. |

Detailed documentation on each data type is available in the Core Framework section of this documentation.
32 changes: 32 additions & 0 deletions doc/01_Pimcore_Overview/04_Pimcore_Community.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Pimcore Community

Pimcore is developed as an open-core project. The full source code of all modules is available on
[GitHub](https://github.com/pimcore), licensed under the Pimcore Open Core License (POCL).
Community contributions are an important part of the product's development.

## Contributing

Pimcore actively reviews and accepts pull requests from the community.
Contributions can range from bug fixes to feature improvements.

- **Bug fixes**: Fork the repository, fix the issue on the latest maintenance branch,
and submit a pull request
- **Features and improvements**: Submit PRs against the `main` branch. For larger changes,
reach out before starting implementation
- **Security issues**: Report via the
[dedicated security form](https://github.com/pimcore/pimcore/security), not through public issues
- **Contributor License Agreement (CLA)**: Must be signed before a PR can be merged

The coding standards are defined in `.php-cs-fixer.dist.php` and verified via PHPStan.
See the full [Contributing Guidelines](https://github.com/pimcore/pimcore/blob/2026.x/CONTRIBUTING.md) for details.

## Ecosystem Resources

| Resource | Link |
|----------|------|
| Source Code | [github.com/pimcore](https://github.com/pimcore) |
| Community Forums | [GitHub Discussions](https://github.com/pimcore/pimcore/discussions) |
| Academy & Learning Hub | [pimcore.com/en/resources/learning-hub](https://pimcore.com/en/resources/learning-hub) |
| Demo | [demo.pimcore.com](https://demo.pimcore.com) |
| Issue Tracker | [GitHub Issues](https://github.com/pimcore/pimcore/issues) |
| Professional Services | [pimcore.com/en/contact-us](https://pimcore.com/en/contact-us) |
Loading
Loading