Inline-edit every column
text, number, URL key, SKU, select, yes-no, searchable multiselect, date, datetime, price, cost, special price, weight, tier price - all without leaving the grid
Turn the Magento 2 admin catalog grid into a spreadsheet. Inline-edit every column - text, select, multiselect, date, price, image, tier price - auto-discover every EAV attribute, add 20+ extra columns (thumbnail, categories, availability, qty sold, tier prices, storefront URL...
Key Features:
Additional Services
Built-in from day one. No add-ons, no upsell, no licence keys to renew.
text, number, URL key, SKU, select, yes-no, searchable multiselect, date, datetime, price, cost, special price, weight, tier price - all without leaving the grid
update many products across many cells in one batch, with an unsaved-changes guard so you never lose work
new attributes appear in the grid the moment you enable them, zero XML required, auto-bound to attribute sets on first save
thumbnail with hover overlay, categories color chips, product type, attribute set, visibility, availability tri-state, backorders, low stock, qty, salable qty per MSI source, special price From / To, cost, tier price ...
Turn the Magento 2 admin catalog grid into a spreadsheet. Inline-edit every column — text, select, multiselect, date, price, image, tier price — auto-discover every EAV attribute, add 20+ extra columns, manage visibility / rename / reorder / filter from one tabbed panel, and ship a smarter CSV / XML export. Built for catalog managers who live inside the product grid.
Panth Advanced Product Grid rewrites the admin product listing experience. Instead of clicking into each product to update one field, your team edits cells directly in the grid, applies changes across many rows with mass edit, opens rich modal editors for textareas / multi-selects / image galleries / tier prices, and filters by any attribute — including custom EAV attributes you create tomorrow. The grid auto-discovers attributes from your EAV setup, so you never need to declare a single XML column for new fields, and every save passes through a per-attribute strategy that handles category sync, image roles, URL keys, stock, tier prices, and more without losing data.
The module overlays Magento's standard product_listing UI component instead of replacing it, so it stays compatible with every other extension that touches the grid (MSI, ConfigurableProduct, Amasty, etc.). Performance is engineered for 2,000+ row stores with batched queries, an indexed qty-sold table, and a bookmark-aware data provider that only loads the attributes you actually display.
Get a free quote for your project in 24 hours — custom modules, Hyva themes, performance optimization, M1→M2 migrations, and Adobe Commerce Cloud.
Kishan SavaliyaTop Rated Plus on Upwork 100% Job Success • 10+ Years Magento Experience Adobe Certified • Hyva Specialist |
Panth Infotech AgencyMagento Development Team Custom Modules • Theme Design • Migrations Performance • SEO • Adobe Commerce Cloud |
Visit our website: kishansavaliya.com | Get a quote: kishansavaliya.com/get-quote
| Standard tab | Pricing tab | Attributes tab (auto-discovered EAV) |
|---|---|---|
![]() |
![]() |
![]() |

| Multiselect editor (searchable + select-all / clear-all) | Thumbnail / image editor |
|---|---|
![]() |
| Hover state | Storefront preview modal |
|---|---|
![]() |
![]() |

INDEX,FOLLOW)$ prefix in the editor)is_used_in_grid = 1 shows up automaticallyAttributeSetAssigner quietly attaches an attribute to a product's set on first inline edit, so writes never silently no-op at the EAV layer| Column | What it shows |
|---|---|
| Thumbnail | Product image with hover overlay (View / Edit) |
| Categories | Colored chips per category with a quick "remove from category" link |
| Type | Bag, Top, Bottom, Configurable, Bundle, Downloadable, etc. |
| Attribute Set | Set name (not just ID) |
| Visibility | Catalog, Search, Catalog+Search, Not Visible |
| Availability | Tri-state — In Stock / Out of Stock / Manage Stock Disabled |
| Backorders | No Backorders / Allow Qty Below 0 / Allow Qty Below 0 + Notify |
| Low Stock | Boolean derived from a configurable threshold |
| Quantity | Editable, with optional integer-only display |
| Salable Quantity | Per-source breakdown when MSI is installed |
| Special Price From / To | Editable date range |
| Cost | Editable numeric |
| Tier Prices | Count chip ("4 tiers") that opens a full tier-price modal |
| Qty Sold | Indexed total over a configurable date range and order-status set |
| Storefront URL | Click-through link to the live product page |
| Meta Title / Keywords / Description / Robots | Full SEO column set, editable inline |
FIND_IN_SET lookup so picking one option matches rows storing manypanth_product_grid_qty_sold mview keeps a denormalized total12,34,56 in the output)Catalog managers spend hours every week opening, editing, and saving products one at a time. The native Magento grid only allows editing a handful of fields, and only for the columns Magento decided to make editable. Anything custom requires going into the product edit form, scrolling, saving, waiting for cache, going back.
Panth Advanced Product Grid removes that friction:
| Requirement | Versions Supported |
|---|---|
| Magento Open Source | 2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8 |
| Adobe Commerce | 2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8 |
| Adobe Commerce Cloud | 2.4.4 — 2.4.8 |
| PHP | 8.1.x, 8.2.x, 8.3.x, 8.4.x |
| MySQL | 8.0+ |
| MariaDB | 10.4+ |
| Hyva Admin | 1.0+ (native support) |
| Luma Admin | Native support |
| Required Dependency | mage2kishan/module-core ^1.0 |
| Optional | magento/module-inventory-api, magento/module-configurable-product |
composer require mage2kishan/module-advanced-product-grid
bin/magento module:enable Panth_Core Panth_AdvancedProductGrid
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f
bin/magento cache:flush
bin/magento indexer:reindex panth_product_grid_qty_sold
app/code/Panth/AdvancedProductGrid/ in your Magento installationPanth_Core is installed (required dependency)bin/magento module:enablebin/magento module:status Panth_AdvancedProductGrid
# Expected output: Module is enabled
Navigate to Admin → Stores → Configuration → Panth Extensions → Product Grid to configure the module.
| Setting | Default | Description |
|---|---|---|
| Enable | Yes | Master toggle — when off, the grid reverts to standard Magento behavior. |
| Editing Mode | Multi Cell | Single Cell (save on blur) or Multi Cell (Save / Cancel banner). |
| Confirm on Navigation | Yes | Prompt before discarding pending edits when paging / filtering / sorting. |
| Linked Products Qty | 3 | How many related / upsell / cross-sell SKUs to preview in the cell. |
| Low Stock Threshold | 5 | Qty at or below which a product is marked low-stock. |
| Qty Sold Enabled | Yes | Master switch for the qty-sold indexer. |
| Qty Sold Date From | -90 days | Strtotime-style anchor for the rolling window. |
| Qty Sold Date To | now | End of the rolling window. |
| Qty Sold Order Statuses | complete, processing | Which order statuses count toward qty sold. |
| Qty Sold Include Refunded | No | Whether to subtract refunded units. |
| Auto-flip Stock on Qty Change | Yes | Setting qty to 0 marks the product out of stock automatically. |
| Show Qty as Integer | No | Round qty for display; storage stays decimal. |
| Export Visible Columns Only | Yes | CSV/XML export honors the bookmark's visible columns. |
Renders the product's base image (or small_image / thumbnail / swatch_image if available) with a hover overlay that exposes View (storefront link) and Edit (modal upload) actions.
Colored chips, one per assigned category, with the full path resolved (e.g. Bags › Travel › Duffles). Click a chip × to remove the category from the product directly from the grid.
A tri-state derived from manage_stock, use_config_manage_stock, and is_in_stock:
Standard backorders attribute exposed as a select column with editable options: No Backorders / Allow Qty Below 0 / Allow Qty Below 0 and Notify Customer.
Boolean derived from the configurable threshold. Quick filter to surface near-empty SKUs without writing a report.
Total units sold over the configured window. Uses an mview-indexed table (panth_product_grid_qty_sold) — even on stores with hundreds of thousands of orders the column loads in milliseconds.
Computed <base>/<url_key> link that opens in a new tab. Resolves correctly under multi-store and category-aware URL setups.
Shows the count of active tier-price rows ("4 tiers"). Clicking opens a modal where the admin can add / remove tiers, switch between Fixed Price and Discount Percentage, and assign each tier to a specific website + customer group.
Each attribute type routes through a dedicated strategy class in Model/InlineEdit/Strategy/:
| Attribute | Strategy | What it handles |
|---|---|---|
qty |
QtyStrategy |
Writes to stock_item, auto-flips is_in_stock based on config. |
category_ids |
CategoryIdsStrategy |
Diff-based add + remove via CategoryLinkManagementInterface. |
tier_price |
TierPriceStrategy |
Normalizes website + group + price + qty payload. |
weight |
WeightStrategy |
Numeric validation, strips currency / commas. |
visibility |
VisibilityStrategy |
Validates against the 4 standard visibility states. |
url_key |
UrlKeyStrategy |
Generates URL rewrites + handles duplicates. |
panth_availability |
AvailabilityStrategy |
Translates the tri-state back into stock_item fields. |
panth_backorders |
BackordersStrategy |
Updates the standard backorders value. |
image / small_image / thumbnail / swatch_image |
ImageRoleStrategy |
Direct DB inserts into the media gallery tables (bypasses the noisy product-save validator). |
| Everything else | GenericAttributeStrategy |
Plain setData with __empty__ / __use_default__ sentinels. |
All saves go through Model/InlineEdit/Processor which:
_origData and writes always persist).AttributeSetAssigner to ensure the attribute is bound to the product's set.ProductRepository.Click the Columns button (top-right of the grid) to open the centered popup. Inside:
panth_product_grid_column_config and reloads the grid.Double-clicking a column header in the grid also opens a quick-rename prompt for that single column.
Filtering works automatically for every column the data provider knows about:
frontend_input so multiselect attributes use FIND_IN_SET (otherwise picking "Red" on a multi-color attribute would never match rows storing 12,34,57).panth_categories (with a "No Categories" sentinel), panth_availability (manage-stock aware), panth_qty_sold (numeric range), panth_thumbnail (added / missing).Filterable toggle in the Manage Columns panel — turn it off to hide the filter from the toolbar.When Export Visible Columns Only is enabled (default), CSV / XML exports:
INDEX,FOLLOW value exports as INDEX,FOLLOW, not 15)Disable the toggle in Stores → Configuration to fall back to Magento's stock export behavior.
Magento product_listing UI overlay
├─ Ui/Component/Listing/Columns ← extends Magento_Ui Columns, auto-discovers EAV attributes
├─ Ui/Component/Listing/ColumnFactory ← builds a Column from an attribute (type, filter, options, editor)
├─ Ui/Component/Listing/AttributeRepository ← caches is_used_in_grid attributes + on-demand lookups
├─ Plugin/Catalog/Ui/DataProvider/
│ ProductDataProviderPlugin ← bookmark-aware addAttributeToSelect + row enrichment
│ ProductDataProviderFilterPlugin ← rewrites condition types per frontend_input
└─ Model/InlineEdit/
Processor ← per-product save loop
StrategyResolver ← attribute_code → strategy
AttributeSetAssigner ← auto-binds attribute to product's set
Strategy/* ← one class per non-trivial attribute
view/adminhtml/
├─ ui_component/product_listing.xml ← overlay (no class replacement on existing columns)
├─ templates/rename-header-init.phtml ← inline JS bootstrap for Manage Columns + popup editors
├─ web/js/mixin/*-mixin.js ← Magento UI mixins for unsaved-changes guard
└─ web/js/grid/columns/select-no-split.js ← legacy fallback for old browsers
isTableExists() / module-list checks — disabling sibling modules is safe.Plugin/Mview/SalesConnectionPlugin.| Resource | Purpose |
|---|---|
Panth_AdvancedProductGrid::product_grid |
Top-level resource — gate the whole grid feature. |
Panth_AdvancedProductGrid::inline_edit |
Required to save inline cell edits. |
Panth_AdvancedProductGrid::tier_price |
Required to open the tier-price modal. |
Panth_AdvancedProductGrid::manage_gallery |
Required to open the image-role modal. |
Panth_AdvancedProductGrid::config |
Required to access System Config → Product Grid. |
Use these in System → User Roles to give catalog managers exactly the privileges they need without giving away the whole admin.
| Issue | Cause | Resolution |
|---|---|---|
| Custom attribute cell shows empty after save | Attribute not in product's attribute set | AttributeSetAssigner now handles this on save automatically; if you still see it, re-flush cache. |
| Filter chip shows but row count doesn't change | Stale cache after upgrade | Run bin/magento cache:flush and hard-refresh the admin (Cmd/Ctrl+Shift+R). |
| Save Edits button stays disabled | No actual change in any cell | Touch a cell value — the button enables once at least one field is dirty. |
Price input shows $ prefix |
Theme override re-introduced the price editor | Confirm setup:static-content:deploy -f re-ran after install. |
| Grid 404s on render | Inventory-Sales-Admin-Ui maximumStocksToShow DI bug |
Run bin/magento setup:di:compile again after cache:clean config. |
| Manage Columns popup off-center | Stale compiled styles.css |
Run a full static deploy without --no-css. |
No — it overlays it. The standard product_listing.xml and ProductDataProvider stay in place; the module adds columns and plugins. Disabling the module reverts to the native grid with zero data loss.
No. All integrations are guarded by isTableExists() and module-list checks. MSI per-source columns appear when MSI is installed; the Parent SKU column appears when ConfigurableProduct is installed.
Yes. Enable it in the Columns panel and the column appears with a filter, an editor, and option labels. On first save, AttributeSetAssigner auto-binds the attribute to the product's set so the write persists.
Yes. The module is admin-only (front-end stores aren't affected). The admin grid runs on Magento's stock UI components, which Hyva inherits.
Yes. Use Manage Columns → Edit chip to toggle inline edit on/off per column. For richer customization, override ColumnFactory::EDITOR_TYPE_BY_INPUT via class preference.
Yes. All UI strings are translatable via __(). Per-store edits use the standard Magento store scope.
Yes. Every save controller checks Panth_AdvancedProductGrid::inline_edit and individual modals check their own resources.
Yes. mage2kishan/module-core is a required dependency and is pulled in automatically by Composer. It provides shared services (config helpers, install reporter, system messages).
Model/Indexer/QtySold walks sales_order_item over the configured date range and statuses, sums qty_ordered minus qty_refunded (if enabled), and writes to panth_product_grid_qty_sold. The mview observer keeps it incrementally up-to-date after each order save.
| Channel | Contact |
|---|---|
| kishansavaliyakb@gmail.com | |
| Website | kishansavaliya.com |
| +91 84012 70422 | |
| GitHub Issues | github.com/mage2sk/module-advanced-product-grid/issues |
| Upwork (Top Rated Plus) | Hire Kishan Savaliya |
| Upwork Agency | Panth Infotech |
Response time: 1-2 business days.
Looking for custom Magento module development, Hyva theme customization, store migrations, or performance optimization? Get a free quote in 24 hours:
Specializations:
Panth Advanced Product Grid is licensed under a proprietary license — see LICENSE.txt. One license per Magento installation.
Built and maintained by Kishan Savaliya — kishansavaliya.com — a Top Rated Plus Magento developer on Upwork with 10+ years of eCommerce experience.
Panth Infotech is a Magento 2 development agency specializing in high-quality, security-focused extensions and themes for both Hyva and Luma storefronts. Our extension suite covers SEO, performance, checkout, product presentation, customer engagement, and store management — over 34 modules built to MEQP standards and tested across Magento 2.4.4 to 2.4.8.
Browse the full extension catalog on the Adobe Commerce Marketplace or Packagist.
Ready to turn your admin product grid into a spreadsheet?
SEO Keywords: magento 2 advanced product grid, magento 2 inline edit grid, magento 2 mass product edit, magento 2 catalog grid extension, magento 2 column manager, magento 2 grid editor, magento 2 product grid customization, magento 2 spreadsheet editor, magento 2 grid filters, magento 2 EAV grid, magento 2 tier price grid, magento 2 grid export, magento 2 multi-cell editor, magento 2 product grid columns, magento 2 product attributes grid, magento 2 admin productivity, magento 2 attribute set grid, magento 2 categories grid, magento 2 thumbnail grid, magento 2 qty sold indexer, magento 2 stock grid, magento 2 availability grid, magento 2 backorders grid, magento 2 low stock grid, magento 2 salable qty grid, magento 2 MSI grid, magento 2 SEO meta grid, magento 2 meta robots grid, hyva admin grid, luma admin grid, magento 2.4.8 admin grid, magento 2 PHP 8.4 grid, mage2kishan advanced product grid, panth infotech product grid, kishan savaliya magento, hire magento developer upwork, top rated plus magento freelancer, custom magento development, adobe commerce admin grid, magento 2 grid plugin
Talk to Kishan directly — written quote, scope and timeline within 24 hours. No sales call.
Panth Advanced Product Grid