Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
shopify-app-billing
kyon147/laravel-shopify
claude-code
api
sdk
driver
shopify
laravel
facade
webhook
laravel-package
shopify-api
laravel-shopify
callback-url
scripttags
shopify-app

Subscriptions, charges, and billable routes for a Laravel Shopify app using kyon147/laravel-shopify.

Install
php artisan boost:add-skill kyon147/laravel-shopify

Save this content to: .claude/skills/shopify-app-billing/SKILL.md

## When to use

You are in a **host Laravel application** with `kyon147/laravel-shopify` and you need **billing**: recurring or one-time charges, plan selection URLs, or gating **your** controllers until the shop has an active plan.

## Configuration (your published `shopify-app.php`)

Enable and tune billing via env + config keys such as:

- `SHOPIFY_BILLING_ENABLED` → `billing_enabled`
- `SHOPIFY_BILLING_FREEMIUM_ENABLED` → `billing_freemium_enabled`
- `SHOPIFY_BILLING_REDIRECT` → `billing_redirect` (where users land for the billing flow)

Confirm `route_names` for `billing`, `billing.process`, and `billing.usage_charge` if you override route names to avoid collisions with **your** app.

## Protecting routes

Apply the `billable` middleware (alias for `Osiset\ShopifyApp\Http\Middleware\Billable`) to **your** route groups or controllers that should only run for shops with a valid charge/plan per package rules.

Combine with `verify.shopify` when the route also requires an authenticated shop session.

## Extending billing in the app (don’t edit vendor)

- Package `BillingController` and `Traits/BillingController` show how billing endpoints are structured — **extend or wrap** from **your** `App\Http\Controllers` if you need custom UX, keeping the package’s config and charge flow intact.
- API calls for plans/charges typically go through the shop model’s integration with `apiHelper()` and related storage — reference `src/Services/ApiHelper.php` and models under `src/Storage/Models/` in vendor for behavior, implement app-specific logic in **your** namespaces.

## Do / Don’t

- **Do** test the full redirect loop (plan URL → Shopify approval → callback) in a dev store.
- **Don’t** bypass `billable` or charge checks in production routes for convenience.

When to use

You are in a host Laravel application with kyon147/laravel-shopify and you need billing: recurring or one-time charges, plan selection URLs, or gating your controllers until the shop has an active plan.

Configuration (your published shopify-app.php)

Enable and tune billing via env + config keys such as:

  • SHOPIFY_BILLING_ENABLED → billing_enabled
  • SHOPIFY_BILLING_FREEMIUM_ENABLED → billing_freemium_enabled
  • SHOPIFY_BILLING_REDIRECT → billing_redirect (where users land for the billing flow)

Confirm route_names for billing, billing.process, and billing.usage_charge if you override route names to avoid collisions with your app.

Protecting routes

Apply the billable middleware (alias for Osiset\ShopifyApp\Http\Middleware\Billable) to your route groups or controllers that should only run for shops with a valid charge/plan per package rules.

Combine with verify.shopify when the route also requires an authenticated shop session.

Extending billing in the app (don’t edit vendor)

  • Package BillingController and Traits/BillingController show how billing endpoints are structured — extend or wrap from your App\Http\Controllers if you need custom UX, keeping the package’s config and charge flow intact.
  • API calls for plans/charges typically go through the shop model’s integration with apiHelper() and related storage — reference src/Services/ApiHelper.php and models under src/Storage/Models/ in vendor for behavior, implement app-specific logic in your namespaces.

Do / Don’t

  • Do test the full redirect loop (plan URL → Shopify approval → callback) in a dev store.
  • Don’t bypass billable or charge checks in production routes for convenience.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle