Skip to content
@unopim

UnoPim

A free and open-source Laravel-based PIM system to help businesses organize, manage, and enrich their product data centrally.

UnoPim logo

Total Downloads Latest Stable Version License Tests Lint

GitHub Stars GitHub Forks

Follow on X YouTube @UnoPIM Facebook unopim

🌐 Website  ·  📘 Documentation  ·  🚀 Installation  ·  🐳 Docker Installation  ·  🎯 Live Demo

🇦🇪 🇪🇸 🇩🇰 🇩🇪 🇦🇺 🇬🇧 🇳🇿 🇺🇸 🇪🇸 🇻🇪 🇫🇮 🇫🇷 🇮🇳 🇭🇷 🇮🇩 🇮🇹 🇯🇵 🇰🇷 🇲🇳 🇳🇱 🇳🇴 🇵🇱 🇧🇷 🇵🇹 🇷🇴 🇷🇺 🇸🇪 🇵🇭 🇹🇷 🇺🇦 🇻🇳 🇨🇳 🇹🇼

UnoPim is an open-source Product Information Management (PIM) system built on Laravel 13. It helps businesses organize, manage, and enrich their product information in one central repository — now with built-in AI agent capabilities for conversational product management.


🎥 Watch & Learn

Introducing Open Source PIM — UnoPim
Introducing Open Source PIM — UnoPim
Can an Open Source PIM Handle 10M Products? — Meet UnoPIM
10M Products? Meet UnoPim
UnoPim CSV Import Optimization — 10x Faster
CSV Import 10x Faster

Upgrading from an older version? See the Upgrade Guide and CHANGELOG for full release notes.

⚙️ Scalability

UnoPim is engineered for high-volume catalogues. Read how UnoPim scales to handle over 10 million products.

UnoPim scaling to 10 million products

✨ Features

  • AI Agent Chat Manage products through natural language — search, create, update, bulk edit, export, categorize, and generate content via conversational AI with multi-step tool calling.

    AI Agent Chat

  • Magic AI with Multi-Platform Support Generate product content, images, and translations using 10+ AI providers. Configure and manage AI platforms with encrypted credential storage, connection testing, and dynamic model selection.

    Magic AI with Multi-Platform Support

  • Advanced AI-Powered Product Management Create compelling product content, generate high-quality images, and gain actionable insights with intelligent automation. Leverage customizable dashboards, seamless multi-user collaboration, and smart reporting tools to streamline workflows and boost productivity across your entire platform.

    AI-powered Product Content Generation

  • Centralized Product Management Manage all your product data in one place.

    Centralized Product Management Interface

  • Data Enrichment Enhance your product information with detailed attributes and descriptions.

    Data Enrichment Interface

  • Dashboard with Analytics Monitor channel readiness, product trends, recent activity, and items needing attention at a glance.

    Dashboard with Analytics

  • User Management Control user access and permissions.

    User Management Interface

  • API Integration Seamlessly integrate with other systems via RESTful APIs. Import our official Postman collection or browse the full API documentation.

    API Integration Interface

  • Localization Support for 33 languages and locales out of the box.

    Localization Support

  • Multi-Channel Support for multiple sales channels.

    Multi-Channel Support

  • Multi-Currency Support for multiple currencies.

    Multi-Currency Support

  • Import/Export with Real-Time Tracker Import and export product data using CSV, XLSX, and ZIP formats with real-time step-by-step progress tracking, pipeline visualization, and job-specific logging. Optimized for high-volume data handling with eager loading, increased batch sizes, and deferred indexing.

    Data Import/Export Interface

  • Themes UI compatible with both Light and Dark themes.

    Light/Dark Theme Interface

  • Version Control Track the history of changes in your product data.

    Version Control Interface

  • Digital Product Passport Build DPP templates, attach QR carriers, and publish per-product passports to a public tier — with the publish path gated behind its own permission and queue.

  • Publication Channels Push enriched product payloads to downstream destinations on a queue, with per-channel payloads and delivery records.

  • Product Completeness Score every product against the attributes a family marks required per channel, and surface what is missing before it ships.

  • Measurement Families Define units and conversions once, then let measurement attributes capture an amount and a unit together.

  • Configurable Products & Associations Model variant structures with multi-level axes, and relate products through configurable association types.

  • Webhooks Notify external systems on product events over an asynchronous webhooks queue, so subscriber HTTP calls never block a save.

🚀 Installation

Requirements: Nginx/Apache2, PHP 8.4.1+, Node 20 LTS+, Composer 2.5+, and MySQL 8.0.32+ or PostgreSQL 16+.

PHP extensions: calendar, curl, intl, mbstring, openssl, pdo, pdo_mysql, tokenizer — these are hard composer.json requirements and composer install fails without them. The upgrade preflight additionally checks json, xml, gd, zip and fileinfo.

On PostgreSQL: ext-pdo_mysql is currently required by composer.json regardless of the database you run, so it must be installed even on a PostgreSQL-only host. Install ext-pdo_pgsql as well and set DB_CONNECTION=pgsql.

Full Installation Guide on devdocs — or pick a quick path below.

Composer

composer create-project unopim/unopim
cd unopim
php artisan unopim:install
php artisan serve

Open http://localhost:8000 in your browser. To execute imports/exports, AI agent tasks, completeness jobs, webhook deliveries, and Digital Product Passport publishing, start the queue worker:

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

Note: The webhooks queue is required for outgoing webhook delivery. The Webkul\Webhook\Listeners\Product listener is dispatched asynchronously to this queue so product save/update requests are not blocked by HTTP calls to subscribers. If you omit webhooks from the --queue list, webhook events will queue up but never be processed.

Note: The publication queue processes Digital Product Passport publish jobs (single and bulk). Omit it and passports will queue but never publish. If you run a process manager such as Supervisor, add publication to your worker's --queue= list and restart it (e.g. sudo supervisorctl restart unopim-worker).

Docker

Requires Docker + Docker Compose v2+. See the full Docker guide for advanced configuration.

Run UnoPim — pre-built images, no checkout, no configuration:

curl -O https://raw.githubusercontent.com/unopim/unopim/master/compose.yaml
docker compose up -d

Open http://localhost:8000/admin. Set the admin credentials before the first docker compose up, in a .env file next to compose.yaml:

INSTALLER_ADMIN_EMAIL=you@example.com
INSTALLER_ADMIN_PASSWORD=<a password you choose>

If you leave them blank, the seeder generates a random 20-character password and writes it to storage/app/admin-credentials.txt inside the container:

docker compose exec unopim cat storage/app/admin-credentials.txt

Change it after the first login. Every other setting has a working default; override any of them by exporting it or putting it in that same .env file.

MySQL instead of PostgreSQL:

curl -O https://raw.githubusercontent.com/unopim/unopim/master/compose.mysql.yaml
docker compose -f compose.yaml -f compose.mysql.yaml up -d

Switching engines on an existing install needs a fresh database — data is not migrated between them.

Develop UnoPim — builds from your checkout and bind-mounts it, so edits are live:

git clone https://github.com/unopim/unopim.git
cd unopim
cp .env.docker .env
docker compose -f compose.dev.yaml up -d

First boot installs Composer dependencies into ./vendor. The stack defaults to Nginx + PHP-FPM and PostgreSQL 16; for Apache use -f compose.dev.yaml -f compose.dev.apache.yaml, and for MySQL set COMPOSE_PROFILES=mysql, DB_CONNECTION=mysql, DB_HOST=unopim-mysql, DB_PORT=3306 in .env before the first up.

Port conflicts? If you already have MySQL, Redis, or Elasticsearch running locally, edit the FORWARD_* ports in .env and restart. See .env.docker for details.

Deploying? Inject APP_KEY as a secret rather than letting the container generate one, and set UNOPIM_SKIP_MIGRATIONS=true where the schema is managed by the deployment itself — a Kubernetes Job or a release step — so scaled replicas do not race each other.

☁️ Cloud Hosting (Managed — no setup)

Deploy UnoPim on cost-effective cloud hosting

☁️ AWS Marketplace

Launch UnoPim on AWS Marketplace

🤝 Contributing

Found a bug or want to add a feature? Open an issue or submit a pull request — see CONTRIBUTING.md for the full flow.

👥 Community

Website Documentation YouTube X / Twitter Facebook

Have questions, feedback, or want to contribute? Reach out through any of the channels above — we're always happy to hear from fellow PIM builders.

🔒 Security

If you discover any security vulnerabilities, please follow our Security Policy and report them to support@webkul.com.

📝 License

UnoPim is open-source software distributed under the MIT License.

Pinned Loading

  1. unopim unopim Public

    Open source Product Information Management (PIM) and Digital Asset Management (DAM) platform built on Laravel — manage, enrich, and scale product data and digital assets beyond 10 million products.…

    PHP 10.8k 164

Repositories

Showing 10 of 15 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…