Cloud HostingLaunch UnoPim on fully-managed cloud hosting — fast, secure and cost-effective plans.
Skip to content

CLI Commands

UnoPim provides a set of Artisan commands for managing your PIM installation. This page is the complete v3.0 reference. For deep dives, follow the links to each feature's documentation.

Installation & System

CommandDescription
php artisan unopim:installInteractive installer (--skip-env-check, --skip-admin-creation, --with-demo-data)
php artisan unopim:upgrade --dry-runUpgrade advisor — reports which v3.0 breaking changes apply to this installation. Run without --dry-run to execute the upgrade tasks
php artisan unopim:install:demo-dataSeed the sample catalog (--force to re-seed, --scale=large for a 2,000-product performance dataset)
php artisan unopim:versionDisplay the current UnoPim version
php artisan unopim:publishPublish UnoPim assets and config (--force to overwrite)
php artisan unopim:user:createCreate an admin user (--name, --email, password, UI locale, timezone, admin flag)
php artisan unopim:images:purge-unusedRemove unused images from storage (--dry-run to preview)
php artisan unopim:translations:checkAudit translation files across all packages against the en_US canonical set (--locale=, --package=)

Search Indexing (Elasticsearch)

CommandDescription
php artisan unopim:product:indexIndex all products into Elasticsearch
php artisan unopim:category:indexIndex all categories into Elasticsearch
php artisan unopim:elastic:clearDelete this project's Elasticsearch indexes

Catalog Maintenance

CommandDescription
php artisan unopim:completeness:recalculateRecalculate product completeness (--family=, --product=, or all)
php artisan unopim:variants:strip-redundant3.0 Remove child attribute values that duplicate an inherited ancestor value. Dry-run by default — pass --apply to write, --product= to scope
php artisan unopim:variants:resync3.0 Rebuild derived data (completeness, search index) for variant subtrees (--product=, --all)
php artisan measurement:recalculate3.0 Rebuild the stored base value of every product measurement from current family definitions (--family=, --chunk=200)
php artisan unopim:dashboard:refreshRefresh the dashboard statistics cache

Digital Product Passports

CommandDescription
php artisan unopim:passport:install-preset3.0 Install ready-made passport templates (ESPR, EU Battery Regulation) from the passport_presets config. Idempotent — existing templates are never overwritten. --preset= may be repeated

See Digital Product Passport for the preset config shape.

Webhooks

CommandDescription
php artisan webhook:logs:prune3.0 Delete webhook delivery logs older than the retention window (--days=)

Data Transfer & Queues

CommandDescription
php artisan unopim:queue:work {jobId} {userEmailId}Process a specific import/export job on the queue
php artisan unopim:data-transfer:reap-stalledFail import/export jobs whose worker died without reporting back

API

CommandDescription
php artisan unopim:passport:clientCreate a password-grant OAuth client (--user_name=<admin email>, --name=, --provider=). Despite the name, this is the REST API client command, unrelated to Digital Product Passports

AI Agent

CommandDescription
php artisan ai-agent:embeddings:index3.0 Queue (re)indexing of product embeddings into the AI vector store (--since=, --batch=)
php artisan ai-agent:quality-monitorScan the catalog for data-quality issues (--channel=, --locale=)
php artisan ai-agent:cleanupClean up temporary AI files (--days=7, --dry-run)

Scheduled Commands

The scheduler (bootstrap/app.php) runs these automatically — all onOneServer(), withoutOverlapping(), runInBackground():

CommandSchedule
unopim:product:indexTwice daily (00:01, 12:01)
unopim:category:indexTwice daily (00:01, 12:01)
unopim:completeness:recalculate --allDaily at 02:00
unopim:dashboard:refreshEvery 10 minutes
unopim:data-transfer:reap-stalledEvery 5 minutes

Make sure the scheduler is running:

bash
* * * * * cd /path/to/unopim && php artisan schedule:run >> /dev/null 2>&1

Queue Workers

Most heavy work is queued. A production worker should listen on every queue in use:

bash
php artisan queue:work --queue="system,completeness,publication,default"

The publication queue (new in 3.0) carries all Digital Product Passport publishing, bulk transitions, and view-count aggregation. See Queue Management for Supervisor configuration.

Released under the MIT License.