# Technical Documentation: aimeos/aimeos-core

> ℹ️ **Provenance:** In-Tree Documentation (4 Chapters) · [CodeWiki Reference](https://codewiki.google/github.com/aimeos/aimeos-core) · Recency: Active (< 180 days)

## File: README.md

<a href="https://aimeos.org">
    
</a>

# Aimeos core - high performance e-commerce

[](https://packagist.org/packages/aimeos/aimeos-core)
[](https://circleci.com/gh/aimeos/aimeos-core)
[](https://coveralls.io/r/aimeos/aimeos-core?branch=master)
[](https://scrutinizer-ci.com/g/aimeos/aimeos-core/?branch=master)
[](https://packagist.org/packages/aimeos/aimeos-core)

:star: Star us on GitHub — it helps!

[](https://demo.aimeos.org)

## What is Aimeos core?

Aimeos is an Open Source
[e-commerce framework](https://aimeos.org/tips/ecommerce-framework/)
for online shops consisting of the e-commerce library, the administration interface
and different front-ends. It's a modular stack that offers an unmatched combination
of flexibility and speed.

Contrary to other shop systems, Aimeos is no monolithic application. Instead, you
have the choice between several user front-ends and you can adapt them to your
needs or write one of your own one.

## Who uses Aimeos?

Whether you (or your customer if you are a developer seeking for a solution)
would like to run a high performance online shop, wish to publish a product catalog
online or would like to create your own portal – you design your own individual
sales channel with Aimeos.

It's is suited for medium to large size businesses which needs a seamless
integration into existing systems, like content management, customer relationship
management or enterprise resource planning systems. Additionally, Aimeos perfectly
fits as base for portals or market places.

## Links

* [Web site](https://aimeos.org)
* [Documentation](https://aimeos.org/docs/)
* [Forum](https://aimeos.org/help/)
* [Issue tracker](https://github.com/aimeos/aimeos-core/issues)
* [Composer packages](https://packagist.org/packages/aimeos/aimeos-core)
* [Source code](https://github.com/aimeos/aimeos-core)
* [Translate](https://www.transifex.com/projects/p/aimeos-core/)

## License

Aimeos is licensed under the terms of the LGPLv3 Open Source license and is available for free.

---

## File: composer.json

{
	"name": "aimeos/aimeos-core",
	"description": "Full-featured e-commerce components for high performance online shops",
	"homepage": "https://aimeos.org",
	"license": "LGPL-3.0-or-later",
	"keywords": ["ecommerce", "shop", "portal", "marketplace", "gigacommerce", "B2B", "B2C"],
	"support": {
		"source": "https://github.com/aimeos/aimeos-core",
		"issues": "https://github.com/aimeos/aimeos-core/issues",
		"forum": "https://aimeos.org/help",
		"wiki": "https://aimeos.org/docs"
	},
	"prefer-stable": true,
	"minimum-stability": "dev",
	"require": {
		"php": "~8.1",
		"composer-runtime-api": "^2.1",
		"ext-curl": "*",
		"ext-dom": "*",
		"ext-fileinfo": "*",
		"ext-gd": "*",
		"ext-intl": "*",
		"ext-json": "*",
		"ext-mbstring": "*",
		"ext-pcre": "*",
		"ext-PDO": "*",
		"ext-zip": "*",
		"aimeos/aimeos-base": "dev-master",
		"aimeos/sanitizer": "~0.4",
		"aimeos/upscheme": "~1.0",
		"aimeos/macro": "~1.0",
		"aimeos/map": "~4.0",
		"nyholm/psr7": "~1.2",
		"psr/http-message": "~1.0||~2.0",
		"voku/portable-ascii": "~1.4||~2.0",
		"enshrined/svg-sanitize": "~0.22|^1.0",
		"intervention/image": "^3.0"
	},
	"require-dev": {
		"php-coveralls/php-coveralls": "~2.7",
		"squizlabs/php_codesniffer": "~3.0",
		"phpunit/phpunit": "~10.0||~11.0||~12.0",
		"phing/phing": "~3.0",
		"om/potrans": "^0.0.9||^1.0.1",
		"phpstan/phpstan": "^2.1"
	},
	"autoload": {
		"psr-4": {
			"Aimeos\\": "src"
		},
		"classmap": [
			"Bootstrap.php",
			"Setup.php",
			"src"
		]
	},
	"autoload-dev": {
		"psr-4": {
			"Aimeos\\": "tests"
		},
		"classmap": [
			"tests"
		]
	}
}

---

## File: misc/ext-template/composer.json

{
	"name": "aimeos-extensions/<extname>",
	"description": "Aimeos <extname> extension",
	"keywords": ["aimeos", "extension"],
	"type": "aimeos-extension",
	"license": "LGPL-3.0",
	"prefer-stable": true,
	"minimum-stability": "dev",
	"require": {
		"php": "^8.0.11"
	},
	"require-dev": {
		"phpunit/phpunit": "~10.0||~11.0"
	},
	"autoload": {
		"psr-4": {
			"Aimeos\\": "src"
		},
		"classmap": [
			"src"
		]
	},
	"autoload-dev": {
		"psr-4": {
			"Aimeos\\": "tests"
		},
		"classmap": [
			"tests"
		]
	}
}

---

## File: .circleci/config.yml

# PHP CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-php/ for more details
#
version: 2.1

jobs:
  "php81-mysql80":
    docker:
      - image: aimeos/ci-php:8.1
      - image: mysql:8.0
        environment:
          MYSQL_ROOT_PASSWORD: rootpw
          MYSQL_DATABASE: aimeos
          MYSQL_USER: aimeos
          MYSQL_PASSWORD: aimeos
    steps:
      - checkout
      - restore_cache:
          keys:
            - php81-{{ checksum "composer.json" }}
      - run: composer update -n --prefer-dist
      - save_cache:
          key: php81-{{ checksum "composer.json" }}
          paths: [./vendor]
      - run: for i in `seq 1 10`; do nc -z 127.0.0.1 3306 && echo OK && exit 0; echo -n .; sleep 1; done
      - run: echo "<?php return array( 'db' => array( 'adapter' => 'mysql', 'host' => '127.0.0.1', 'port' => 3306, 'database' => 'aimeos', 'username' => 'aimeos', 'password' => 'aimeos', 'limit' => 3, 'opt-persistent' => false, 'stmt' => array( \"SET SESSIOn sort_buffer_size=2097144; SET NAMES 'utf8'; SET SESSION sql_mode='ANSI'\" ) ), 'fs' => array( 'adapter' => 'Standard', 'basedir' => '.' ), 'mq' => array( 'adapter' => 'Standard', 'db' => 'db' ) );" > config/resource.php
      - run: ./vendor/bin/phing setup test

  "php82-mysql80":
    docker:
      - image: aimeos/ci-php:8.2
      - image: mysql:8.0
        environment:
          MYSQL_ROOT_PASSWORD: rootpw
          MYSQL_DATABASE: aimeos
          MYSQL_USER: aimeos
          MYSQL_PASSWORD: aimeos
    steps:
      - checkout
      - restore_cache:
          keys:
            - php82-{{ checksum "composer.json" }}
      - run: composer update -n --prefer-dist
      - save_cache:
          key: php82-{{ checksum "composer.json" }}
          paths: [./vendor]
      - run: for i in `seq 1 10`; do nc -z 127.0.0.1 3306 && echo OK && exit 0; echo -n .; sleep 1; done
      - run: echo "<?php return array( 'db' => array( 'adapter' => 'mysql', 'host' => '127.0.0.1', 'port' => 3306, 'database' => 'aimeos', 'username' => 'aimeos', 'password' => 'aimeos', 'limit' => 3, 'opt-persistent' => false, 'stmt' => array( \"SET SESSIOn sort_buffer_size=2097144; SET NAMES 'utf8'; SET SESSION sql_mode='ANSI'\" ) ), 'fs' => array( 'adapter' => 'Standard', 'basedir' => '.' ), 'mq' => array( 'adapter' => 'Standard', 'db' => 'db' ) );" > config/resource.php
      - run: ./vendor/bin/phing setup test

  "php83-pgsql":
    docker:
      - image: aimeos/ci-php:8.3
      - image: postgres:latest
        environment:
          POSTGRES_PASSWORD: aimeos
          POSTGRES_USER: aimeos
          POSTGRES_DB: aimeos
    steps:
      - checkout
      - restore_cache:
          keys:
            - php83-{{ checksum "composer.json" }}
      - run: composer update -n --prefer-dist
      - save_cache:
          key: php83-{{ checksum "composer.json" }}
          paths: [./vendor]
      - run: for i in `seq 1 10`; do nc -z 127.0.0.1 5432 && echo OK && exit 0; echo -n .; sleep 1; done
      - run: echo "<?php return array( 'db' => array( 'adapter' => 'pgsql', 'host' => '127.0.0.1', 'port' => 5432, 'database' => 'aimeos', 'username' => 'aimeos', 'password' => 'aimeos', 'limit' => 3, 'opt-persistent' => false, 'stmt' => array() ), 'fs' => array( 'adapter' => 'Standard', 'basedir' => '.' ), 'mq' => array( 'adapter' => 'Standard', 'db' => 'db' ) );" > config/resource.php
      - run: ./vendor/bin/phing setup test

  "php84-mysql":
    docker:
      - image: aimeos/ci-php:8.4
      - image: mysql:latest
        environment:
          MYSQL_ROOT_PASSWORD: rootpw
          MYSQL_DATABASE: aimeos
          MYSQL_USER: aimeos
          MYSQL_PASSWORD: aimeos
    steps:
      - checkout
      - restore_cache:
          keys:
            - php84-{{ checksum "composer.json" }}
      - run: composer update -n --prefer-dist
      - save_cache:
          key: php84-{{ checksum "composer.json" }}
          paths: [./vendor]
      - run: for i in `seq 1 10`; do nc -z 127.0.0.1 3306 && echo OK && exit 0; echo -n .; sleep 1; done
      - run: echo "<?php return array( 'db' => array( 'adapter' => 'mysql', 'host' => '127.0.0.1', 'port' => 3306, 'database' => 'aimeos', 'username' => 'aimeos', 'password' => 'aimeos', 'limit' => 3, 'opt-persistent' => false, 'stmt' => array( \"SET SESSIOn sort_buffer_size=2097144; SET NAMES 'utf8'; SET SESSION sql_mode='ANSI'\" ) ), 'fs' => array( 'adapter' => 'Standard', 'basedir' => '.' ), 'mq' => array( 'adapter' => 'Standard', 'db' => 'db' ) );" > config/resource.php
      - run: ./vendor/bin/phing setup coverage
      - run: ./vendor/bin/php-coveralls -o coveralls.json -vvv -x tests/coverage.xml

  "php85-mysql":
    docker:
      - image: aimeos/ci-php:8.5
      - image: mysql:latest
        environment:
          MYSQL_ROOT_PASSWORD: rootpw
          MYSQL_DATABASE: aimeos
          MYSQL_USER: aimeos
          MYSQL_PASSWORD: aimeos
    steps:
      - checkout
      - restore_cache:
          keys:
            - php85-{{ checksum "composer.json" }}
      - run: composer update -n --prefer-dist
      - save_cache:
          key: php85-{{ checksum "composer.json" }}
          paths: [./vendor]
      - run: for i in `seq 1 10`; do nc -z 127.0.0.1 3306 && echo OK && exit 0; echo -n .; sleep 1; done
      - run: echo "<?php return array( 'db' => array( 'adapter' => 'mysql', 'host' => '127.0.0.1', 'port' => 3306, 'database' => 'aimeos', 'username' => 'aimeos', 'password' => 'aimeos', 'limit' => 3, 'opt-persistent' => false, 'stmt' => array( \"SET SESSIOn sort_buffer_size=2097144; SET NAMES 'utf8'; SET SESSION sql_mode='ANSI'\" ) ), 'fs' => array( 'adapter' => 'Standard', 'basedir' => '.' ), 'mq' => array( 'adapter' => 'Standard', 'db' => 'db' ) );" > config/resource.php
      - run: ./vendor/bin/phing setup test

workflows:
  version: 2
  unittest:
    jobs:
      - "php81-mysql80"
      - "php82-mysql80"
      - "php83-pgsql"
      - "php84-mysql"
      - "php85-mysql"

--- METRICS ---
- Files Extracted: 4
- Estimated Token Budget: ~3288 tokens
- Recency Window: Active (< 180 days)
- Canonical Reference: https://codewiki.google/github.com/aimeos/aimeos-core
