Download the PHP package smart-till/core without Composer

On this page you can find all versions of the php package smart-till/core. 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 core

smart-till/core

smart-till/core is the shared business/domain layer for SMART TiLL Server and SMART TiLL POS.

This package centralizes:

The goal is one implementation for both projects so behavior stays aligned.

What This Package Actually Does

When installed in a host Laravel app, this package:

  1. Registers SmartTill\Core\Providers\CoreServiceProvider
  2. Loads package migrations from database/migrations inside this package
  3. Loads package views (resources/views)
  4. Loads package routes from routes/web.php (only if public.receipt route is not already registered)
  5. Registers Livewire component: product-search
  6. Registers morph-map compatibility for core/app aliases
  7. Attaches core observers to core models
  8. Provides installer commands to bootstrap required data

Compatibility Matrix

From package composer.json:

Host App Requirements

Before installation:

  1. Host app has App\Models\Store
  2. stores table exists
  3. Host app uses Filament tenancy with Store tenant model
  4. Host app has a Store panel that discovers package resources/pages

If these are missing, install command will fail fast with explicit errors.

Installation

Option A: VCS (Recommended for staging/production)

In host app composer.json:

Then:

Option B: Local Path (development only)

In host app composer.json:

Then:

Installer Commands

php artisan core:install

Runs on default DB connection and does:

  1. Validates App\Models\Store
  2. Validates stores table exists
  3. Runs php artisan migrate --force --no-interaction
  4. Bootstraps countries/currencies/timezones
  5. Bootstraps store settings defaults
  6. Bootstraps universal units
  7. Bootstraps core permissions and super-admin role mapping

php artisan native:core:install

For NativePHP sqlite runtime:

  1. Validates App\Models\Store
  2. Validates native:migrate command exists
  3. Runs php artisan native:migrate --force --no-interaction
  4. Validates stores exists on nativephp connection
  5. Runs same bootstrap services on nativephp connection

Host Panel Wiring (Required)

Your Filament Store panel must discover package resources/pages.

Example pattern:

Without tenant timezone middleware, created_at/updated_at can render in wrong timezone.

Config

The package reads:

If true:

Recommended host config file:

Save as: config/smart_till.php

Migrations Included In This Package

Current package migrations:

  1. 2026_02_25_000002_create_core_tables.php
  2. 2026_02_26_000003_add_store_user_cash_columns.php
  3. 2026_03_02_000010_add_local_id_to_sync_tables.php
  4. 2026_03_02_104300_add_reference_to_sync_tables.php

These migrations are idempotent-style guarded with Schema::hasTable/hasColumn checks where appropriate.

Important: Existing Projects With Legacy Data

This package ships foundational schema. Project-specific data correction/backfill migrations may exist in host app (for example polymorphic type normalization and reference backfills).

If your host app already has production data, you should:

  1. Run package install/migrations
  2. Run host app custom backfill/fix migrations
  3. Verify key datasets (transactions, payments, references, dashboard stats)

Do not assume package migration alone backfills historical data.

Morph Map / Polymorphic Compatibility

Core provider registers compatibility map for both app and core class names:

This is required because historical records can contain either alias.

Observer Behavior

Core provider wires domain observers, including:

Because this is centralized in package boot, behavior is shared between Server and POS when both consume the same core version.

Versioning / Release Policy

For production:

  1. Tag this repository (vX.Y.Z)
  2. Pin host apps to that tag/range
  3. Avoid dev-main in production

Recommended:

Not recommended for production:

Upgrade Procedure

  1. Update package version in host app
  2. composer update smart-till/core --with-all-dependencies --no-interaction
  3. php artisan core:install --no-interaction
  4. php artisan optimize:clear
  5. Run smoke tests:
    • Sales create/print
    • Purchase order flows
    • Payment flows
    • Customer/supplier transaction links
    • Dashboard widgets
    • Tenant timezone rendering

Testing This Package

From package root:

Or single file:

Troubleshooting

Missing required model: App\Models\Store

Create host model:

Missing required table: stores

Run host migrations that create stores, then rerun installer.

Package installed but resources/pages not visible

  1. Ensure panel discoverResources/discoverPages includes core namespace/path
  2. Clear cache:

Wrong timezone display in Filament dates

  1. Ensure tenant middleware includes SetTenantTimezone
  2. Ensure store has valid timezone_id and related timezone row
  3. Ensure date columns call ->timezone(fn () => Filament::getTenant()?->timezone?->name ?? 'UTC')

Notes For Contributors


All versions of core with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
barryvdh/laravel-dompdf Version ^3.1
filament/filament Version ^5.0
laravel/framework Version ^13.0
laravel/sanctum Version ^4.0
league/iso3166 Version ^4.3
livewire/livewire Version ^4.0
pragmarx/countries Version ^1.0
simplesoftwareio/simple-qrcode Version ^4.2
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 smart-till/core contains the following files

Loading the files please wait ...