Meloncart v1.2.0 - Global Option Sets & Faceted Navigation

We’ve just released v1.2.0 with two features that have been frequently requested.

Global Option Sets

Options and extras can now be managed globally and linked to products. Previously, loading an option set into a product created a snapshot copy - changes to the set didn’t propagate. Now, when you load a global set, the product stores a lightweight reference back to the template. Editing the option in the global set automatically updates every product using it.

  • Products show a “Global” badge next to linked options/extras
  • Linked records open in read-only mode to prevent accidental edits
  • You can still add manual options alongside global ones on the same product
  • Variants, cart, and checkout all work transparently with linked options

Faceted Navigation

Products can now be filtered by their properties and options on category pages. The system builds a sidecar filter index from your existing product data - no changes to how you manage products.

  • Filter definitions are auto-discovered from property and option names
  • Toggle which filters appear on the frontend via Shop Settings > Product Filters
  • Supports AND logic across different filters, OR logic within the same filter
  • Full translation support - filter codes, labels, and values are all locale-aware
  • Rebuild the index anytime with php artisan shop:rebuild-filters

To display filters on your theme, call category.availableFilters() for the sidebar facets and pass a filters array to Product::listFrontEnd() (or your category component) to apply them.

Updating

Run php artisan october:migrate after updating. If you have existing products with properties and options, run php artisan shop:rebuild-filters to populate the filter index.