/plugins/ directory without touching core files (a drop-in plugin). Both approaches implement the same DisplayPlugin interface.
The DisplayPlugin Interface
Every display plugin must implement the following contract:
The
$params array carries any inline shortcode attributes, and the $plugin model gives you access to the persisted plugin settings configured in the admin panel.
Creating a Built-in Plugin
Built-in plugins live inside the application source tree and are registered through the service provider.1
Create the Plugin Class
Add your class to
app/Plugins/Display/, implementing DisplayPlugin:2
Register in PluginServiceProvider
Open
app/Providers/PluginServiceProvider.php and register your class inside the boot() method:3
Add the Database Record and Options
Add a seeder entry for your plugin in This inserts the plugin record and its configurable option fields into the
database/seeders/PluginSeeder.php, then run:plugins, plugin_options, and plugin_settings tables.Creating a Drop-in Plugin
Drop-in plugins live in the root/plugins/ directory and require no changes to application source files. The PluginManager discovers them automatically on boot.
Directory Structure
plugin.json Schema
Theplugin.json manifest describes your plugin and declares its configurable options:
Plugin PHP Class
Place your class file alongsideplugin.json in the plugin directory:
Plugin Model Helper Methods
ThePlugin model injected into render() provides convenience methods for reading and writing plugin settings. All three are available to both built-in and drop-in plugins.
Database Tables
Site Store Pro uses three tables to manage plugin state:Live Search API
Site Store Pro exposes a public JSON endpoint that powers the storefront’s real-time search typeahead. You can call this endpoint directly from custom frontend components or headless integrations.
Example request: