Repository navigation
Features
YAP provides a full CRUD API for interacting with its resources.
For a complete reference of the available API endpoints and their details, see the YAP API Documentation.
Product Type Templates allow you to define reusable structures for your products. Each product type specifies which fields are available for products of that type and how these fields are configured.
Create and manage product types by defining a unique code and a title.

Add fields to a product type and configure each field individually:
-
Field Types: Select the field type that determines how the field is represented and handled, such as text, number, checkbox, or select.
-
Default Values: Define a default value for each field.
-
Default Translations: Provide default translated values for fields in the configured locales.
-
Selection Options: For select and multi-select fields, define the available options.
-
Required Fields: Specify whether a field is required.
-
Field Ordering: Arrange fields in the desired order using drag and drop.
-
Sections: Group related fields into sections to organize the product form.
These templates provide a consistent structure for products of the same type while allowing you to customize field configurations to meet your requirements.


YAP provides a central place to manage product information, combining product master data, identifiers, and configurable fields in a single interface.
Manage essential product information such as the product type, identifiers, and timestamps. Identifiers such as GTIN and INT can be maintained alongside the product's other data.

The Fields tab displays the fields defined by the selected product type. This allows different product types to have their own product data structures without requiring a separate form for each type.
Fields can include text, descriptions, colors, checkboxes, and other supported field types. Related fields can be organized into sections, making product data easier to navigate.

YAP supports translations of product fields for different locales. Select a locale to view or edit the corresponding translated values alongside the default field values.
This helps you manage product information for multiple languages in one central interface.
YAP provides a flexible plugin system that allows you to extend the application with additional functionality and integrate custom components.
Plugins can provide their own services.yaml to register services, Twig template directories for custom templates, translation directories for localized messages, and assets for their frontend components.
The Plugin Manager provides an overview of installed plugins, including their versions and activation status. Plugins can be enabled or disabled, and assets can be compiled when required.

The following plugins demonstrate how YAP's plugin system can be used to extend the application:
JsConsumer Plugin — Provides JavaScript consumer functionality.
Scheduler Plugin — Integrates scheduled task functionality.
These examples illustrate how plugins can integrate additional functionality into YAP while keeping their implementation organized in separate plugin directories.
YAP allows you to manage locales and define which languages are available for content translations.
For each locale, you can configure whether it is used for content translations. This lets you control which languages are available when translating product data, while maintaining a single, centralized product information management system.

YAP supports multiple languages for its administration interface. Users can change the interface language independently of the languages configured for product content translations.
The administration interface includes translations for field labels, navigation items, buttons, and other UI elements. Product types and field names can also be translated, allowing their localized names to be displayed throughout the interface.

YAP provides administration interface translations in the following languages:
- Arabic
- Basque
- Bulgarian
- Catalan
- Chinese (Simplified)
- Chinese (Traditional)
- Croatian
- Czech
- Danish
- Dutch
- English
- Finnish
- French
- Galician
- German
- Greek
- Hebrew
- Hungarian
- Armenian
- Indonesian
- Italian
- Luxembourgish
- Lithuanian
- Macedonian
- Norwegian
- Polish
- Portuguese (Brazil)
- Portuguese (Portugal)
- Romanian
- Russian (ru_UA)
- Serbian
- Slovak
- Slovenian
- Spanish
- Swedish
- Turkish
- Ukrainian
The available interface languages are provided through translation files in the application.

YAP allows you to define custom product identifiers to match your business requirements.
Examples include GTIN (Global Trade Item Number), EAN (European Article Number), and internal article numbers. You can configure the identifiers that are relevant to your products instead of being restricted to a fixed set of predefined identifiers.
YAP provides advanced filtering capabilities that allow you to combine multiple criteria when searching for products.
Filters are organized into categories, including identifiers, product fields, translations, and general product properties. Depending on the field type, different filter operators and input controls are available.
Examples include:
- Identifiers: Filter products by identifier values, such as GTIN, or check whether an identifier is set.
-
Product fields: Filter by field values using supported operators, such as
contains. - Translations: Search for products based on translated field values.
- Boolean fields: Filter by enabled or disabled states, such as whether a product is active on eBay.
- Product types: Select products of a specific product type.
- Date and time fields: Filter products based on creation or update timestamps.
You can select multiple filters, configure their criteria, and apply them together to narrow down the product list. This makes it easier to find specific products, even in large product catalogs.

YAP allows each user to customize their product list view according to their individual needs.
Users can choose which columns are displayed in the product overview and arrange them in their preferred order. Available columns depend on the product fields and data supported by the application.
These personal column settings make it easier to focus on relevant product information and tailor the overview to different workflows without affecting other users' views.

YAP places a strong emphasis on making software updates as simple and reliable as possible. Our goal is to enable users to keep their installations up to date while minimizing maintenance effort and reducing the risk of disrupting existing workflows.
We continuously strive to make the update process straightforward and predictable, helping users benefit from improvements, bug fixes, and new features with minimal overhead.
YAP is extensively tested using automated tests to help ensure software quality, reliability, and maintainability.
Automated tests help detect regressions early, verify expected behavior, and provide confidence when introducing new features or modifying existing functionality. This supports continuous development while helping maintain a stable and reliable application.
YAP provides role-based access control to manage user permissions and restrict access to administrative functions according to each user's responsibilities.
The application distinguishes between three roles:
- Editor: Can edit product data.
- Admin: Can manage product types, including identifiers, fields, and products, as well as manage locales.
- Super Admin: Can manage users and access the Plugin Manager.
This separation of responsibilities helps ensure that users have access to the functionality they need while keeping sensitive administrative operations restricted to authorized roles.
Digital Asset Management
YAP allows you to upload and manage digital assets such as product images and documents, including technical data sheets.
Assets can be assigned to translatable product fields, allowing different files or images to be maintained for different languages. This makes it possible to provide localized product images and documentation for different markets.
YAP automatically cleans up field values and translations that are no longer associated with the corresponding product type. This helps maintain data consistency when product type configurations change and prevents obsolete field data from accumulating.
The cleanup is handled by the Scheduler plugin.
For more details, see the [Scheduler plugin documentation].
YAP monitors important system conditions and displays warnings on the dashboard when potential configuration issues or operational problems are detected.
These checks help administrators identify configuration problems and operational issues before they interfere with everyday use of YAP.

YAP processes batch product updates asynchronously using Symfony Messenger. This allows bulk changes to be handled in the background rather than requiring all updates to be completed during the initial request.
Asynchronous processing helps keep the application responsive when updating large numbers of products.
The following features are currently under development and are not yet generally available:
- Product Variants & Inherited Attributes — Support for product variants and inherited product attributes.
- External File Storage — Integration with external storage systems for files and assets.
- Real-Time Update Notifications — Notifications when product data changes.
- Event-Driven Updates — Event-based processing of product updates.
- Flexible Data Import & Export — Configurable import and export of product data.
- Configurable Product Feed Generator — Generation of product feeds with configurable settings.
- Channel-Specific Exports — Export product data tailored to specific sales channels.
- Custom Data Entities — Support for defining additional data entities.
- Scalable Search & Caching — Improvements to search performance and caching for larger catalogs.
- Rich Demo Data — More comprehensive sample data for demonstrations and evaluation.
- AI-Powered Enrichment & Translation — AI-assisted enrichment and translation of product information.
Yet Another PIM (YAP) — A self-hosted Product Information Management system.
Official Website · GitHub Repository · Wiki
Made in EU 🇪🇺