Magento 2's admin paginates custom option values, making it impossible to drag-and-drop sort across pages. PrivateDevops_CustomOptionsFix is a lightweight, upgrade-safe module that loads all option values on a single page so you can reorder them instantly.
The Problem: Pagination Breaks Sort Order
If your Magento 2 catalog includes products with many custom options -- think colour swatches, sizes, or add-ons -- you have probably hit this frustrating admin bug. Magento paginates the option-values grid in the product editor, so drag-and-drop reordering stops at the page boundary.
For example, with 100 option values displayed 20 per page, you cannot move an item from page 2 to page 1. Bulk reordering becomes a tedious, error-prone chore.
Bottom line: The default grid pagination prevents catalog managers from reordering all option values in one go, which is a major productivity killer for stores with configurable products.
The Solution: PrivateDevops_CustomOptionsFix
PrivateDevops_CustomOptionsFix is a lightweight, upgrade-safe Magento 2 module that lets you configure how many custom option values are displayed at once (default 200, adjustable to 50, 300, 1000, or more). All values load on a single page -- no more pagination, no more drag-and-drop headaches.
- Displays every custom option value in one sortable grid
- Zero core code changes -- 100 percent upgrade-safe
- Compatible with Magento 2.4.8 and earlier (Magento 2.4.9+ ships a native fix)
- Developed and supported by Private DevOps LTD
Why Does This Matter?
Sorting option values is not just cosmetic. The order affects how options appear to customers, can influence conversion rates, and may even break product logic (for example, default option selection or price ordering).
Without the fix:
- You cannot control the exact display order when more than 20 values exist.
- Option management is tedious and error-prone.
- Bulk-updating sort orders is virtually impossible.
With PrivateDevops_CustomOptionsFix:
- All option values load on one page -- easy, visual, drag-and-drop sorting.
- A single configuration field frees your admin from pagination limits.
- No hacks required -- just a future-proof module with open-source code.
Tip: This is especially valuable for stores that sell car mats, apparel, customisable gifts, or anything else with large option sets.
Installation Guide
- Download the module from GitHub (link below).
- Copy the files into your Magento installation:
app/code/PrivateDevops/CustomOptionsFix
- Enable the module:
php bin/magento module:enable PrivateDevops_CustomOptionsFix
php bin/magento setup:upgrade
php bin/magento cache:flush
If you are running in production mode, also execute:
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy -f
Configuration & Usage
Once installed and enabled, set the maximum number of option lines at:
Stores > Configuration > Catalog > Catalog > Edit Product MAX Option Lines
- Default: 200
- Change to any value you need: 50, 500, 1000, etc.
When you edit a product (Catalog > Products > Edit), all option values will load in a single grid, ready for instant sorting and bulk editing.
Tip: Setting very high values (1000+) may slow the admin for products with massive option sets. Test with your real data.
Troubleshooting Tips
- If changes do not appear, clear the browser cache and run:
php bin/magento cache:flush
- Check the current configuration value:
php bin/magento config:show catalog/customoptions/pagesize
- To uninstall:
php bin/magento module:disable PrivateDevops_CustomOptionsFix
rm -rf app/code/PrivateDevops/CustomOptionsFix
php bin/magento setup:upgrade
php bin/magento cache:flush
Download & More Info
Ready to eliminate custom option pagination in your Magento 2 admin?
Download PrivateDevops_CustomOptionsFix from GitHub
Developed and supported by Private DevOps LTD. We offer custom solutions and Magento optimization -- contact us for support.
Or read how we handle it in Magento 2 Speed Optimization.
Related Articles
How to Configure Varnish for Magento So It Stops Caching the Wrong Thing
Varnish in front of Magento serves anonymous pages without touching PHP. The wrong Varnish in front of Magento serves one shopper's cart to everybody, which is worse than having no cache at all. Magento generates its own configuration and most of the work is using that rather than something copied from a forum. This covers what the generated file refuses to cache and why, how invalidation actually works as a ban rather than a purge, the two ways it silently fails, and how to prove a page came from cache.
MagentoMagento 2 EU-Compliant Invoice Date PDF
By default, Magento 2 omits the invoice creation date from PDF invoices and ignores store-level locale settings. Our open-source PdfOverride module adds legally required dates, translates invoice text per store view, and ensures EU VAT Directive compliance out of the box.
MagentoHow to Disable OpenSearch Security in Magento 2 While Keeping It Private on Ubuntu
OpenSearch ships with SSL and authentication enabled by default, which can complicate Magento 2 integration in development or internal environments. This guide explains how to safely turn off OpenSearch security while restricting access to localhost using Ubuntu's firewall.