aiarmada/commerce-support

Core helper methods and foundation code for all AIArmada Commerce packages.
3,407
Install
composer require aiarmada/commerce-support
Latest Version:v0.1.34
PHP:^8.4
License:MIT
Last Updated:Sep 16, 2026
Links: GitHub  ·  Packagist
Maintainer: sairiz

AIArmada Commerce Support

Latest Version on Packagist Total Downloads

Core utilities, contracts, exceptions, and foundation code for all AIArmada Commerce packages.

Purpose

This package provides shared utilities, traits, and standardized patterns used across all AIArmada Commerce packages. It eliminates code duplication and ensures consistency across the ecosystem.

Requirements

Requirement Version
PHP 8.4+
Laravel 13.0+
akaunting/laravel-money 6.0+
spatie/laravel-package-tools 1.92+

Installation

This package is automatically required by all AIArmada Commerce packages. You don't need to install it directly unless building custom extensions:

composer require aiarmada/commerce-support

Features

  • Exception Hierarchy - Standardized exceptions for consistent error handling
  • Payment Contracts - Universal interfaces for payment gateway integrations
  • Configuration Traits - Runtime configuration validation helpers
  • Helper Functions - JSONB column type resolver for PostgreSQL support
  • Setup Command - Interactive wizard for configuring Commerce packages

Documentation

See the docs folder for detailed documentation:

Quick Start

Exception Handling

use AIArmada\CommerceSupport\Exceptions\CommerceException;

throw new CommerceException(
    message: 'Operation failed',
    errorCode: 'operation_failed',
    errorData: ['context' => 'value']
);

Payment Gateway

use AIArmada\CommerceSupport\Contracts\Payment\PaymentGatewayInterface;

class MyGateway implements PaymentGatewayInterface
{
    public function createPayment(
        CheckoutableInterface $checkoutable,
        ?CustomerInterface $customer = null,
        array $options = []
    ): PaymentIntentInterface;
}

Configuration Validation

use AIArmada\CommerceSupport\Traits\ValidatesConfiguration;

class MyServiceProvider extends PackageServiceProvider
{
    use ValidatesConfiguration;

    public function boot(): void
    {
        $this->validateConfiguration('mypackage', ['api_key']);
    }
}

Package Structure

commerce-support/
├── composer.json
├── LICENSE
├── README.md
├── docs/
│   ├── 01-overview.md
│   ├── 03-configuration.md
│   ├── 04-multi-tenancy.md
│   ├── 10-traits-utilities.md
│   └── 11-isolation-primitives.md
└── src/
    ├── SupportServiceProvider.php
    ├── helpers.php
    ├── Commands/
    ├── Contracts/
    ├── Exceptions/
    ├── Middleware/
    ├── Support/
    ├── Targeting/
    ├── Testing/
    ├── Traits/
    └── Webhooks/

License

The MIT License (MIT). See LICENSE for details.

Related Packages

doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

631,580,251 9,707
laravel/framework

The Laravel Framework.

580,311,802 34,925
laravel/tinker

Powerful REPL for the Laravel framework.

489,754,436 7,444
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

404,034,618 608
nunomaduro/collision

Cli error handling for console/command-line PHP applications.

384,821,166 4,658