Shopify Commerce
Package docs status
Section titled “Package docs status”This page is generated from package source documentation in the Capell packages repository and the checked-in manifest. Source documentation is not distribution status. Before running a Composer command, verify that the exact package and compatible 1.x release are available through public Packagist or the authenticated marketplace account.
| Field | Value |
|---|---|
| Composer package | capell-app/shopify-commerce |
| Package slug | shopify-commerce |
| Product group | Capell Commerce |
| Tier | premium |
| Bundle | commerce |
| Runtime contexts | admin, console |
| Capell version | ^1.0 |
| Catalogue role | extension |
| Release channel | Labs |
| Source repository | capell-app/packages |
| Source path | packages/shopify-commerce |
| Docs source | packages/shopify-commerce/docs |
| Manifest | capell.json |
What This Plugin Adds
Section titled “What This Plugin Adds”Shopify Commerce is an Available, Schema-owning Capell package in the Capell Commerce product group. It ships as capell-app/shopify-commerce and extends these surfaces: admin, console.
Shopify Commerce stores site-scoped Shopify OAuth connections and syncs products, variants, and customers into local records for Capell-side use.
Admins connect a Shopify store, inspect sync state, search the cached catalogue, and re-sync products from the Shopify Commerce page.
Evidence: src/Actions/OAuth/ConnectShopifyStoreAction.php, src/Actions/Catalog/SyncShopifyProductsAction.php, src/Actions/Customers/SyncShopifyCustomersAction.php, src/Models/ShopifyConnection.php, src/Filament/Pages/ShopifyConnectionPage.php, src/Actions/Catalog/SearchShopifyProductsAction.php, tests/Feature/Filament/ShopifyConnectionPageTest.php, docs/overview.admin.md.
Status details:
- Status: Available
- Tier: premium
- Bundle: commerce
- Composer package:
capell-app/shopify-commerce - Namespace:
Capell\ShopifyCommerce - Theme key: not applicable
Why It Matters
Section titled “Why It Matters”For developers: Dedicated Actions own OAuth, Admin GraphQL, product persistence, webhook verification, and scheduled synchronization behind typed data objects.
For teams: Teams can find Shopify catalogue data inside Capell and see when the local copy was last synchronized.
Evidence: src/Actions/Graphql/ExecuteShopifyAdminGraphqlAction.php, src/Actions/Catalog/PersistShopifyProductAction.php, src/Actions/Webhooks/ValidateShopifyWebhookHmacAction.php, tests/Feature/Webhooks/ShopifyWebhookSecurityTest.php, docs/overview.admin.md, src/Actions/Catalog/SearchShopifyProductsAction.php, tests/Unit/Actions/SyncShopifyProductsActionTest.php.
Screens And Workflow
Section titled “Screens And Workflow”Screenshot contract: docs/screenshots.json.
- Shopify connection page (admin, required).
- Shopify catalog sync state (admin, optional).
- Shopify product search (admin, optional).
- Shopify OAuth callback state (admin, optional).
- Shopify sync error state (admin, optional).
- Shopify product detail (admin, optional).
Technical Shape
Section titled “Technical Shape”- Service providers:
Capell\ShopifyCommerce\Providers\ShopifyCommerceServiceProvider,Capell\ShopifyCommerce\Providers\AdminServiceProvider. - Config files:
packages/shopify-commerce/config/capell-shopify-commerce.php. - Migrations:
packages/shopify-commerce/database/migrations/2026_05_22_000001_create_shopify_connections_table.php,packages/shopify-commerce/database/migrations/2026_05_22_000002_create_shopify_oauth_states_table.php,packages/shopify-commerce/database/migrations/2026_05_22_000003_create_shopify_products_table.php,packages/shopify-commerce/database/migrations/2026_05_22_000004_create_shopify_product_variants_table.php,packages/shopify-commerce/database/migrations/2026_06_01_000001_create_shopify_customers_table.php,packages/shopify-commerce/database/migrations/2026_06_18_000001_create_shopify_webhook_events_table.php,packages/shopify-commerce/database/migrations/2026_07_12_000001_add_processing_state_to_shopify_webhook_events.php. - Settings migrations:
packages/shopify-commerce/database/settings/2026_05_22_000001_create_shopify_commerce_settings.php. - Settings classes:
ShopifyCommerceSettings. - Models:
ShopifyConnection,ShopifyCustomer,ShopifyOAuthState,ShopifyProduct,ShopifyProductVariant,ShopifyWebhookEvent. - Filament classes:
ShopifyConnectionPage,ShopifyCommerceSettingsSchema. - Route files:
packages/shopify-commerce/routes/oauth.php. - Events:
ShopifyCustomerSynced. - Actions:
BuildShopifyCatalogThemeDataAction,ContinueShopifyProductBulkSyncAction,FetchShopifyProductAction,ImportShopifyProductBulkSyncAction,InvalidateShopifyProductSearchCacheAction,PersistShopifyProductAction,PollShopifyProductBulkSyncAction,SanitizeShopifySyncErrorAction,SearchShopifyProductsAction,StartShopifyProductBulkSyncAction,SyncShopifyProductsAction,SyncShopifyCustomersAction,and 18 more. - Data objects:
ShopifyCallbackQueryData,ShopifyCatalogProductThemeData,ShopifyCatalogSummaryThemeData,ShopifyCatalogThemeData,ShopifyCatalogVariantThemeData,ShopifyProductData,ShopifyProductOptionData,ShopifyProductVariantData,ShopifyTokenExchangeResponseData. - Jobs:
ProcessShopifyWebhookJob. - Command signatures:
capell-shopify-commerce:install,capell-shopify-commerce:prune-oauth-states,capell-shopify-commerce:sync,capell-shopify-commerce:sync-customers. - Manifest action API:
ingestShopifyWebhook: Capell\ShopifyCommerce\Actions\Webhooks\IngestShopifyWebhookAction,install: Capell\ShopifyCommerce\Actions\InstallShopifyCommercePackageAction,persistShopifyProduct: Capell\ShopifyCommerce\Actions\Catalog\PersistShopifyProductAction,pruneExpiredShopifyOAuthStates: Capell\ShopifyCommerce\Actions\OAuth\PruneExpiredShopifyOAuthStatesAction,syncShopifyCustomers: Capell\ShopifyCommerce\Actions\Customers\SyncShopifyCustomersAction,upsertShopifyCustomer: Capell\ShopifyCommerce\Actions\Customers\UpsertShopifyCustomerAction. - Scheduled commands:
capell-shopify-commerce:prune-oauth-states (hourly),capell-shopify-commerce:sync --all (everyFifteenMinutes). - Console command classes:
InstallShopifyCommerceCommand,PruneExpiredShopifyOAuthStatesCommand,SyncShopifyCustomersCommand,SyncShopifyProductsCommand. - Manifest contributions:
admin-page: Capell\ShopifyCommerce\Manifest\ShopifyConnectionPageContribution,console-command: Capell\ShopifyCommerce\Manifest\ShopifyCommerceConsoleCommandsContribution,health-check: Capell\ShopifyCommerce\Manifest\ShopifyCommerceHealthContribution,model: Capell\ShopifyCommerce\Manifest\ShopifyCommerceModelsContribution,route: Capell\ShopifyCommerce\Manifest\ShopifyCommerceRoutesContribution,scheduled-job: Capell\ShopifyCommerce\Manifest\ShopifyOAuthStatePruneScheduleContribution,scheduled-job: Capell\ShopifyCommerce\Manifest\ShopifyProductSyncScheduleContribution,setting: Capell\ShopifyCommerce\Manifest\ShopifyCommerceSettingsContribution. - Health checks:
Capell\ShopifyCommerce\Health\ShopifyCommerceHealthCheck. - Blade views:
packages/shopify-commerce/resources/views/filament/pages/connection.blade.php. - Cache tags:
shopify-commerce.
Data Model
Section titled “Data Model”- Required tables:
shopify_connections,shopify_oauth_states,shopify_products,shopify_product_variants,shopify_customers,shopify_webhook_events. - Protected tables:
shopify_connections,shopify_oauth_states,shopify_products,shopify_product_variants,shopify_customers,shopify_webhook_events. - Models:
ShopifyConnection,ShopifyCustomer,ShopifyOAuthState,ShopifyProduct,ShopifyProductVariant,ShopifyWebhookEvent. - Core record references in migrations:
sites via site_id,users via user_id. - Migration files:
2026_05_22_000001_create_shopify_connections_table.php,2026_05_22_000002_create_shopify_oauth_states_table.php,2026_05_22_000003_create_shopify_products_table.php,2026_05_22_000004_create_shopify_product_variants_table.php,2026_06_01_000001_create_shopify_customers_table.php,2026_06_18_000001_create_shopify_webhook_events_table.php,2026_07_12_000001_add_processing_state_to_shopify_webhook_events.php. - Migration impact: run host migrations through the package install flow before opening package surfaces.
- Deletion/retention behaviour: migrations declare cascade-on-delete relationships and null-on-delete relationships; retention is scheduled through
capell-shopify-commerce:prune-oauth-states(hourly).
Install Impact
Section titled “Install Impact”- Required packages:
capell-app/admin,capell-app/core. - Admin navigation: declares
admin-page: ShopifyConnectionPageContribution; each Filament page or resource controls its own navigation visibility. - Admin/editor extensions: none declared.
- Permissions:
shopify-commerce.manage. - Public routes: loads
routes/oauth.php; registersShopifyCommerceRoutesContribution. - Database changes: package migrations are declared.
- Config:
config/capell-shopify-commerce.php. - Settings:
Capell\ShopifyCommerce\Settings\ShopifyCommerceSettings. - Queues or schedules: scheduled commands
capell-shopify-commerce:prune-oauth-states (hourly),capell-shopify-commerce:sync --all (everyFifteenMinutes); queue jobsProcessShopifyWebhookJob. - Cache tags:
shopify-commerce. - Commands:
capell-shopify-commerce:install,capell-shopify-commerce:prune-oauth-states,capell-shopify-commerce:sync,capell-shopify-commerce:sync-customers.
Common Pitfalls
Section titled “Common Pitfalls”- Keep required Capell packages on compatible v4 releases:
capell-app/admin,capell-app/core. - Run migrations before opening package resources or public routes.
- Review package configuration before production-like verification:
config/capell-shopify-commerce.php,Capell\ShopifyCommerce\Settings\ShopifyCommerceSettings. - Review middleware, throttling, signatures, and public-output safety in
routes/oauth.phpbefore exposing routes. - Register the host scheduler so these declared commands run at their documented frequencies:
capell-shopify-commerce:prune-oauth-states (hourly),capell-shopify-commerce:sync --all (everyFifteenMinutes). - Custom write integrations must preserve invalidation for
shopify-commercecache tags.
Troubleshooting
Section titled “Troubleshooting”| Symptom | Likely cause | Check | Fix |
|---|---|---|---|
| Package surface is missing after install | Provider or manifest is not loaded | Confirm capell.json, package composer.json, and provider registration |
Reinstall the package, refresh Composer autoload, and clear host caches |
| Admin screen or command fails on missing table | Package migrations have not run | Check the tables listed in Data Model |
Run host migrations and rerun the focused package test |
| Route returns unexpected output | Route cache, middleware, or signed URL setup does not match the package route file | Check the route files listed in Technical Shape |
Clear route cache and verify middleware before exposing public routes |
| Background work does not run | Queue worker or declared schedule is not active | Check the jobs and scheduled commands listed in Technical Shape |
Start the queue worker or host scheduler, then run the focused command or package test |
Quick Start
Section titled “Quick Start”- Install the package:
composer require capell-app/shopify-commerce. - Run the required setup:
php artisan capell-shopify-commerce:install. - Open the Shopify connection page and confirm the admin workflow loads.
Next Steps
Section titled “Next Steps”- Package docs
- Overview
- Admin guide
- Configuration files:
config/capell-shopify-commerce.php. - Troubleshooting
- Screenshot contract
- Marketplace assets
- Capell content language plan
- Capell documentation design system
- Capell and package ERD notes
- Related packages: Contacts, Diagnostics, Media Library, Payments, Search.
- Focused tests:
vendor/bin/pest packages/shopify-commerce/tests --configuration=phpunit.xml.