Download the PHP package toadfix/minishop without Composer

On this page you can find all versions of the php package toadfix/minishop. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package minishop

Minishop

A drop-in ecommerce package for Laravel 13 applications. Ships with a Filament v5 admin panel, a Livewire storefront, Stripe payments, a Sanctum REST API, and Canadian tax/shipping support.


Requirements

Installation

Then run the install command:

This will:

  1. Publish the config file to config/minishop.php
  2. Publish and run the migrations (re-running the installer is safe — already-published migrations are skipped)
  3. Point AUTH_MODEL in your .env at Minishop\Models\User (the model carries the roles, Sanctum and Fortify traits the package needs)
  4. Seed the required roles and permissions
  5. Optionally create an initial admin user with the super-admin role (pass --no-admin to skip)

The admin panel is available at /dashboard and authenticates with Filament's built-in login.

Local package development

If you are working on the package itself, scripts/fresh-host.sh scaffolds a throwaway Laravel host app as a sibling directory, wires the package in via a Composer path repository (symlinked, so edits are live) and runs the installer:

Livewire storefront (optional)

The package ships a complete Livewire + Blade storefront (home, products, cart, checkout, and customer account). Publish it and enable the routes:

Add to your .env:

The storefront is styled with Tailwind v4. Build the assets with your app's Vite setup:

minishop:install --storefront publishes:

Until the assets are built, the layout falls back to the Tailwind Play CDN so the storefront is usable out of the box.

Email verification. Customer accounts must confirm their email before reaching the /account area — registration sends a verification link (via Fortify's email-verification feature, enabled by default) and the package ships the storefront notice page, so make sure your app has a working mail driver. The admin user created by minishop:install is marked verified automatically.

Upgrading: publishing copies the storefront views into your app, and your copies take precedence over the package's. After upgrading the package, the shipped views may have changed — re-publish to pick up the new versions:

--force overwrites the published views, so re-apply any local edits afterwards (or diff before publishing). If you haven't customised the views, deleting resources/views/storefront/ and re-publishing is the cleanest path.


Configuration

The published config file is at config/minishop.php. Key options:

Key Env variable Default Description
load_storefront_routes MINISHOP_STOREFRONT false Enable the built-in storefront routes
renderer MINISHOP_RENDERER blade Storefront renderer: blade (Livewire) or a custom FQCN
default_payment_gateway MINISHOP_DEFAULT_GATEWAY stripe Default payment driver
panel_path MINISHOP_PANEL_PATH dashboard URL path for the Filament admin panel
image_disk MINISHOP_IMAGE_DISK public Filesystem disk for product images
low_stock_notification_email MINISHOP_LOW_STOCK_EMAIL — Email address for low-stock alerts
analytics.ga4_measurement_id MINISHOP_GA4_ID — Google Analytics 4 Measurement ID (e.g. G-XXXXXXX)

Analytics

Set MINISHOP_GA4_ID to your Google Analytics 4 Measurement ID and the storefront injects gtag.js on every page and fires a GA4 purchase event on the order-confirmation page (with transaction_id, value, currency, shipping, tax, and line items). Leave it unset to disable tracking entirely. The snippets live in publishable Blade partials (resources/views/vendor/minishop/analytics/*) if you need to customise them or add another provider.

Product search

Product search (storefront, Livewire list, and the REST API) runs through Laravel Scout. It defaults to Scout's portable database engine — no external service required, works on SQLite/MySQL/ Postgres, and matches across product name, description, and SKU. To scale up, set SCOUT_DRIVER (e.g. meilisearch or algolia) and configure that engine; Minishop\Models\Product is already Searchable. Facet filters (category, tag, price range, stock) are applied on top of the search results.


Environment Variables

Add these to your .env as needed:


Admin Panel

The Filament admin panel is available at /dashboard (or the path configured in MINISHOP_PANEL_PATH).

Available panels:

Roles included:


Storefront Routes

When MINISHOP_STOREFRONT=true, the following routes are registered:

Method URI Name
GET / storefront.home
GET /products storefront.products.index
GET /products/{product} storefront.products.show
GET /cart storefront.cart.show
GET /checkout storefront.checkout.create
POST /checkout storefront.checkout.store
GET /order-confirmation/{order} storefront.order.confirmation
GET /checkout/pay/{order} storefront.checkout.payment.show
POST /checkout/pay/{order}/stripe storefront.checkout.payment.stripe
POST /webhooks/stripe webhooks.stripe
POST /webhooks/{gateway} webhooks.gateway

The cart is also driven by JSON sub-routes (storefront.cart.items.store, .items.update, .items.destroy, .clear, .sync) used by the Livewire components.

Account routes (require authentication):

Method URI Name
GET /account account.dashboard
GET /account/orders account.orders.index
GET /account/orders/{order} account.orders.show
GET /account/address account.address.edit
PUT /account/address account.address.update
GET /account/payment account.payment.index

REST API

The Sanctum API is available at /api/v1/. Catalog and cart endpoints are public; orders and the authenticated-user endpoint require a bearer token.

Authentication:

Catalog (public):

Product responses include each image's resolved url (and raw path).

Cart:

Orders (require a bearer token):

Example — register and fetch orders:


Payment Gateways

Minishop uses a driver-based payment system. The built-in drivers are stripe and cod (cash on delivery / no payment step).

Stripe setup

  1. Add your Stripe keys to .env (see Environment Variables above).
  2. Set MINISHOP_DEFAULT_GATEWAY=stripe or select Stripe in the admin Settings panel.
  3. Configure the webhook in the Stripe Dashboard to point at https://your-app.test/webhooks/stripe with the payment_intent.succeeded event.

Adding a custom gateway

Implement Minishop\Payments\Contracts\PaymentGatewayContract and register the driver in a service provider:

The contract requires:


Queues & background work

Minishop pushes outbound work onto the queue rather than blocking the request:

Out of the box

With Laravel's default QUEUE_CONNECTION=sync, these run inline — everything works with no worker, but checkout and webhook responses pay the cost of sending mail and rendering PDFs. Fine for local/dev and low volume.

In production

Use a real queue and run a worker:

Run the worker under a process supervisor (Supervisor, systemd, or your platform's worker process) so it restarts on failure and after deploys (php artisan queue:restart). Inspect and replay failures with php artisan queue:failed and php artisan queue:retry all.

Gotcha: on a non-sync connection, emails only send when a worker is running. If order confirmations aren't arriving in production, check that a queue:work process is up. Stripe webhook handling is idempotent (deduped on the Stripe event id), so retried deliveries never double-send.


Custom Storefront Renderer

To use your own frontend (Inertia, a custom Blade theme, an SPA API bridge, etc.) instead of the built-in Livewire storefront, implement Minishop\Rendering\StorefrontRendererContract and set the FQCN in your config:

The package no longer ships an Inertia renderer — the default (and only built-in) renderer is blade, which powers the Livewire storefront. A custom renderer is only needed if you are replacing that frontend entirely.


Seeders

To seed demo data (roles, categories, products, shipping methods, Canadian tax zones, coupons, sample orders), run the package's aggregate seeder — php artisan db:seed alone runs your host app's DatabaseSeeder, not Minishop's:

To seed only roles and permissions (required for the app to function):


Testing

The package ships with a full PHPUnit test suite. To run it from the package directory:

Or via the host app:


License

MIT


All versions of minishop with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
barryvdh/laravel-dompdf Version ^3.1
filament/filament Version ^5.0
laravel/ai Version ^0.2.8
laravel/framework Version ^13.0
laravel/sanctum Version ^4.0
spatie/laravel-permission Version ^7.2
stripe/stripe-php Version ^19.3
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package toadfix/minishop contains the following files

Loading the files please wait ...