Skip to main content
Estimated Upgrade Time: 5-10 minutes for most applications.

Updating Dependencies

Update your composer.json file to require Shopper 2.3:
"require": {
    "shopper/framework": "^2.3"
}
Then run:
composer update -W
After updating Composer dependencies, run the migrations:
php artisan migrate

New Features

Product Tags

Shopper 2.3 introduces Product Tags — simple, flat labels you can attach to products for cross-cutting organization. Unlike categories (hierarchical) or collections (rule-based), tags are flexible and ideal for seasonal labels, marketing campaigns, or storefront filtering. See the Product Tags documentation for full details.

New Permissions

New permissions have been added for tags. For existing installations, create them and assign to your admin role:
use Shopper\Core\Models\Permission;
use Spatie\Permission\Models\Role;

Permission::generate('tags', 'products');

$admin = Role::findByName('administrator');
$admin->givePermissionTo([
    'browse_tags',
    'read_tags',
    'edit_tags',
    'add_tags',
    'delete_tags',
]);
If you don’t create these permissions, users will not be able to access the Tags page or manage tags from the product form.

New Feature Flag

A new tag feature flag has been added to config/shopper/features.php. If you have a published config file, add:
use Shopper\Enum\FeatureState;

return [
    // ... existing features
    'tag' => FeatureState::Enabled,
];
Set to FeatureState::Disabled if you don’t need tags in your store.

Published Components

If you have published product components via php artisan shopper:component:publish product, add the new tag page to your config/shopper/components/product.php:
'pages' => [
    // ... existing pages
    'tag-index' => \Shopper\Livewire\Pages\Tag\Index::class,
],

Migration Checklist

1

Update dependencies

Update shopper/framework to ^2.3 in composer.json, then run composer update -W.
2

Run migrations

Run php artisan migrate to create the product_tags table.
3

Create new permissions

Run Permission::generate('tags', 'products') and assign the five generated permissions (browse_tags, read_tags, edit_tags, add_tags, delete_tags) to the administrator role.
4

Update published config files

If you have published config/shopper/features.php, add the tag feature flag. If you have published config/shopper/components/product.php, add the tag-index component entry.
5

Clear caches

Run php artisan optimize:clear.