PHPackages                             inuar/attribute-group-readonly-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. inuar/attribute-group-readonly-bundle

ActiveSymfony-bundle

inuar/attribute-group-readonly-bundle
=====================================

Akeneo PIM bundle to flag attribute groups as read-only on the product edit form.

1.0.5(1mo ago)05↑2900%proprietaryPHPPHP &gt;=8.1

Since Mar 27Pushed 1mo agoCompare

[ Source](https://github.com/inuartech/AttributeGroupReadonlyBundle)[ Packagist](https://packagist.org/packages/inuar/attribute-group-readonly-bundle)[ RSS](/packages/inuar-attribute-group-readonly-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (2)Versions (7)Used By (0)

InuarAttributeGroupReadOnlyBundle
=================================

[](#inuarattributegroupreadonlybundle)

A Symfony bundle for **Akeneo PIM Community Edition** that allows you to mark attribute groups as read-only, preventing users from editing any attribute values belonging to those groups on the product edit form.

[![attribute group read-only](https://private-user-images.githubusercontent.com/145705249/570210742-7753c3ce-b906-43aa-b1c9-0ec22f894fc4.gif?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NzMyODAsIm5iZiI6MTc3NDY3Mjk4MCwicGF0aCI6Ii8xNDU3MDUyNDkvNTcwMjEwNzQyLTc3NTNjM2NlLWI5MDYtNDNhYS1iMWM5LTBlYzIyZjg5NGZjNC5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyOFQwNDQzMDBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02YzE3MmFmZTkyMzM0YzNlZWI1NGM1MGU5ODEzMTM5OGI4M2Y1Y2FhZjZjN2M5OTEwZWEwMGEzZTMzNGI2ZjBhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.KJyC16OF-Bzgy9ogqOjON52MS0DZ2FlNr7doyKFDNrk)](https://private-user-images.githubusercontent.com/145705249/570210742-7753c3ce-b906-43aa-b1c9-0ec22f894fc4.gif?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NzMyODAsIm5iZiI6MTc3NDY3Mjk4MCwicGF0aCI6Ii8xNDU3MDUyNDkvNTcwMjEwNzQyLTc3NTNjM2NlLWI5MDYtNDNhYS1iMWM5LTBlYzIyZjg5NGZjNC5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyOFQwNDQzMDBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02YzE3MmFmZTkyMzM0YzNlZWI1NGM1MGU5ODEzMTM5OGI4M2Y1Y2FhZjZjN2M5OTEwZWEwMGEzZTMzNGI2ZjBhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.KJyC16OF-Bzgy9ogqOjON52MS0DZ2FlNr7doyKFDNrk)

---

Features
--------

[](#features)

- Toggle any attribute group as **read-only** directly from the attribute group edit page (same UI pattern as Data Quality Insights activation).
- Read-only enforcement is **visual** (fields are disabled in the product edit form) and **backend** (values stripped before save, protecting against API and CLI writes).
- The read-only state is stored in a dedicated database table and survives cache clears.
- Automatically cleans up the read-only flag when an attribute group is deleted.

---

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

[](#requirements)

DependencyVersionPHP^8.1Symfony^5.4 / ^6.xAkeneo PIM CE^7.0Doctrine DBAL^3.x---

Installation
------------

[](#installation)

---

1. Install the bundle
2. Register the bundle

Add the bundle to config/bundles.php:

```
return [
    // ... other bundles
    Inuar\Bundle\AttributeGroupReadOnlyBundle\InuarAttributeGroupReadOnlyBundle::class => ['all' => true],
];
```

---

3. Register the routes

Add the following to config/routes/routes.yml:

```
inuar_attribute_group_readonly:
    resource: "@InuarAttributeGroupReadOnlyBundle/Resources/config/routing.yml"
```

---

4. Run the database migration

```
bin/console doctrine:migrations:migrate
```

This creates the inuar\_readonly\_attribute\_group table used to store which attribute groups are flagged as read-only.

---

5. Install assets and rebuild the frontend

```
bin/console assets:install --symlink
bin/console pim:installer:dump-require-paths
yarn run webpack
bin/console cache:clear
```

---

Usage

1. Go to Settings → Attribute Groups in the Akeneo UI.
2. Open any attribute group.
3. In the Properties tab, find the Read-Only section.
4. Toggle the switch to enable or disable read-only mode for that group.
5. All attributes belonging to that group will be immediately locked on the product edit form — visually disabled with a notice, and protected at the backend level.

---

How it works

Backend enforcement

The bundle decorates Akeneo's pim\_catalog.updater.product service. On every product save (UI, API, or import), it queries the read-only attribute groups, resolves all attribute codes belonging to those groups, and strips those values from the update payload before delegating to the original updater.

Frontend enforcement

A form extension listens to the pim\_enrich:form:field:extension:add event on the product edit form. For each field whose attribute belongs to a read-only group, it calls field.setEditable(false) and appends a footer note: "This attribute is read-only and cannot be edited."

Database

A single table inuar\_readonly\_attribute\_group stores the codes of read-only attribute groups:

```
CREATE TABLE inuar_readonly_attribute_group (
    attribute_group_code VARCHAR(100) NOT NULL,
    PRIMARY KEY (attribute_group_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
```

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance90

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 85.7% 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 ~0 days

Total

6

Last Release

46d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8104c8ab80e70e6e383abf961bed5e9502062e8ed2587dcaa7bd8152ab93378b?d=identicon)[inuar](/maintainers/inuar)

---

Top Contributors

[![nei](https://avatars.githubusercontent.com/u/33385?v=4)](https://github.com/nei "nei (6 commits)")[![nei-inuartech](https://avatars.githubusercontent.com/u/145705249?v=4)](https://github.com/nei-inuartech "nei-inuartech (1 commits)")

---

Tags

akeneo

### Embed Badge

![Health badge](/badges/inuar-attribute-group-readonly-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/inuar-attribute-group-readonly-bundle/health.svg)](https://phpackages.com/packages/inuar-attribute-group-readonly-bundle)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[contao/core-bundle

Contao Open Source CMS

1231.6M2.4k](/packages/contao-core-bundle)[shopware/storefront

Storefront for Shopware

684.2M148](/packages/shopware-storefront)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)

PHPackages © 2026

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