PHPackages                             oronts/asset-pilot-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. oronts/asset-pilot-bundle

ActivePimcore-bundle[Templating &amp; Views](/categories/templating)

oronts/asset-pilot-bundle
=========================

Intelligent rule-based asset organization engine for Pimcore 12 with expression language conditions, pluggable strategies, async processing, and Studio UI integration.

1.1.0(1mo ago)50AGPL-3.0-or-laterPHPPHP &gt;=8.4CI failing

Since Mar 15Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/oronts/pimcore-asset-pilot-bundle)[ Packagist](https://packagist.org/packages/oronts/asset-pilot-bundle)[ RSS](/packages/oronts-asset-pilot-bundle/feed)WikiDiscussions main Synced 4w ago

READMEChangelog (2)Dependencies (14)Versions (3)Used By (0)

 [ ![Asset Pilot — by Oronts](docs/images/asset-pilot-logo.svg) ](https://oronts.com)

 **`oronts/asset-pilot-bundle` — intelligent rule-based asset organization for Pimcore 12**

 [![License](https://camo.githubusercontent.com/c77148b2545a6460d987db4f36a4e1c7e4641c3d9f8ab7b25b0afbdfaddb2061/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4147504c2d2d332e302d626c75652e737667)](#license) [![Pimcore version](https://camo.githubusercontent.com/e3793943ba56af63c751a5501a4ec25b621384c0a31f659e1f8619296f5516b4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f70696d636f72652d25354531322e302d707572706c65)](https://www.pimcore.com/) [![PHP version](https://camo.githubusercontent.com/0751c5c7ed417028d6909f393af80b98d84b224db16e8307c3988e7eefc8ecdb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344382e342d626c7565)](https://www.php.net/) [![Symfony version](https://camo.githubusercontent.com/1b73dc6539eedd7a3e14765901a41e74c42fbca7d7d9ce4cd0007d0b53bd272a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73796d666f6e792d253545372e302d626c61636b)](https://symfony.com/)

 [Quick start](#quick-start) • [Example](#example) • [Documentation](#documentation) • [Full docs](docs/index.md)

---

 [![Asset Pilot — Studio UI dashboard](docs/images/dashboard.png)](docs/images/dashboard.png)

Asset Pilot automates how Pimcore assets are filed. When a DataObject is saved, it evaluates the object's asset fields against a priority-ordered rule set, resolves a target path from a Twig template, and moves the files into a structured folder hierarchy, handling localized fields, async processing, a full audit trail, and a Studio UI dashboard.

Features
--------

[](#features)

- **Rule engine** — priority-ordered rules with class and field targeting, ExpressionLanguage conditions, and type/size/extension filters.
- **Twig target paths** — full Twig templates with custom filters and functions, and per-locale paths for localized fields.
- **Safe under async** — Symfony Messenger + Lock, a loop guard, transport deduplication, and an already-at-target skip keep the move pipeline idempotent.
- **Audit &amp; revert** — every move is logged with source, target, duration, and trigger; CSV export and a loop-guarded revert are built in.
- **Unused-asset cleanup** — confidence-scored detection with bulk delete or archive, and per-asset or per-folder protection.
- **Studio UI** — a tabbed React dashboard (Dashboard, Rules, Operations, Audit, Unused, Duplicates, Integrity, Quarantine, Storage, Empty Folders, Drift, Asset Management) mounted in Pimcore Studio via Module Federation.
- **Built to extend** — an interface behind every seam (a service tag or a replaceable alias), plus a typed event on every mutation. See [Extending](docs/extending.md) and [Overriding](docs/overriding.md).

Quick Start
-----------

[](#quick-start)

```
composer require oronts/asset-pilot-bundle
```

Enable the bundle in `config/bundles.php`:

```
return [
    // ...
    Oronts\AssetPilotBundle\OrontsAssetPilotBundle::class => ['all' => true],
];
```

Install the database table and permissions, then build the Studio UI:

```
bin/console pimcore:bundle:install OrontsAssetPilotBundle

# Studio UI ships as source (Module Federation remote), not prebuilt
npm --prefix assets/studio ci
npm --prefix assets/studio run build

bin/console assets:install
bin/console cache:clear
```

Full setup, including the required Messenger and Lock configuration for async deduplication, is in [docs/installation.md](docs/installation.md).

Example
-------

[](#example)

Organize product images into a folder named by item number:

```
oronts_asset_pilot:
    rules:
        product_images:
            class: Product
            fields: [images, galleryImages]
            condition: 'object.getItemNumber() != null'
            target_path: '/Products/{{ object.getItemNumber() }}/Images'
            strategy: always
            priority: 100
            filters:
                types: [image]
                extensions: [jpg, png, webp]
```

Preview the moves, then run them:

```
bin/console asset-pilot:organize --class=Product --dry-run
bin/console asset-pilot:organize --class=Product --async --batch-size=100
```

More recipes (category hierarchies, multi-class setups, move strategies, asset protection, date-based organization) are in [docs/scenarios.md](docs/scenarios.md).

Documentation
-------------

[](#documentation)

Everything lives in **[docs/](docs/index.md)**.

- **Getting started** — [Installation](docs/installation.md) · [Usage](docs/usage.md) · [Configuration](docs/configuration.md) · [Scenarios](docs/scenarios.md)
- **Reference** — [Reference](docs/reference.md) · [Commands](docs/commands.md) · [REST API](docs/rest-api.md) · [Path Templates](docs/path-templates.md) · [Conditions](docs/conditions.md) · [Permissions](docs/permissions.md) · [Studio UI](docs/studio-ui.md) · [Architecture](docs/architecture.md)
- **Extending &amp; overriding** — [Developer Experience](docs/dx.md) · [Extending](docs/extending.md) · [Overriding](docs/overriding.md) · [Testing](docs/testing.md)

Requirements
------------

[](#requirements)

DependencyVersionPHP&gt;= 8.4Pimcore^12.0Symfony Expression Language^7.0Symfony Messenger^7.3Symfony Lock^7.3Contributing
------------

[](#contributing)

Issues and pull requests are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for the dev setup, the quality gates, and what a mergeable change looks like.

License
-------

[](#license)

Licensed under the [GNU Affero General Public License v3.0](LICENSE) (AGPL-3.0), the same license as Pimcore. Use, modify, and distribute it in private and commercial projects; if you distribute a modified version or run it as a service, your modifications must be available under the same license.

---

Built and maintained by Oronts
------------------------------

[](#built-and-maintained-by-oronts)

 [ ![Oronts](https://camo.githubusercontent.com/2cb3b0f79aec2adcbc15af45b590cb79bb44f244585a03d3eebb7130ec48c45e/68747470733a2f2f6f726f6e74732e636f6d2f5f6e6578742f696d6167653f75726c3d253246696d616765732532466c6f676f2532464c6f676f2d77686974652e706e6726773d32353626713d3735) ](https://oronts.com)

Asset Pilot is built and maintained by **Oronts**, an AI-first software company in Munich. We design and run commerce platforms, PIM and DAM systems, and the data automation around them for mid-market and enterprise teams, with Pimcore experience spanning versions 10, 11, and 12. This bundle is the asset-filing engine we run on our own client platforms; it is hardened in production and released as open source under AGPL-3.0. Use it freely. When you want it shaped to your data model or backed by an SLA, that is the work we do.

**Where we help:**

- **Production rollout.** Installation, rule design for your class and field model, async and multi-pod tuning, and migrating a messy asset tree into a clean, predictable structure without downtime.
- **Custom extensions.** Merge strategies, integrity checkers, condition functions, path-template context, notifiers, and rule providers, each behind a documented seam so your logic stays out of the core and survives upgrades.
- **The platform around it.** Pimcore and DataHub integrations, PIM and DAM rollouts, headless commerce, search on OpenSearch or MeiliSearch, and AI-assisted enrichment and classification.
- **Support and SLAs.** Code review, version upgrades, performance work, and on-call cover for business-critical Pimcore systems.

If your team files assets by hand, fights duplicates, or runs a DAM nobody trusts, we fix the workflow and the platform underneath it. Tell us what you run and we will scope it.

**Contact:**  · [oronts.com](https://oronts.com)

**Author:** Refaat Al Ktifan ()

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance92

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~98 days

Total

2

Last Release

47d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/84b6aaf8bd84ae14b9516d0b8565f9b303ebaadeb704db05edc168bc0937b107?d=identicon)[Oronts](/maintainers/Oronts)

---

Top Contributors

[![Refaat-alktifan](https://avatars.githubusercontent.com/u/23056891?v=4)](https://github.com/Refaat-alktifan "Refaat-alktifan (210 commits)")

---

Tags

asset-managementbundledamexpression-languagephppimcorepimcore-12pimcore-bundlepluginqueuereactreactjsrest-apisymfonytwigzipautomationassetspimcoreorganizationpimcore-12studio-ui

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/oronts-asset-pilot-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/oronts-asset-pilot-bundle/health.svg)](https://phpackages.com/packages/oronts-asset-pilot-bundle)
```

###  Alternatives

[pimcore/pimcore

Content &amp; Product Management Framework (CMS/PIM/E-Commerce)

3.8k3.9M532](/packages/pimcore-pimcore)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.2k18.1k](/packages/prestashop-prestashop)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9626.1k66](/packages/open-dxp-opendxp)[typo3/cms

TYPO3 CMS is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.

1.2k1.9M122](/packages/typo3-cms)[pimcore/skeleton

129202.6k](/packages/pimcore-skeleton)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.8M651](/packages/shopware-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
