{"id":18330835,"url":"https://github.com/aimeos/aimeos-symfony","last_synced_at":"2025-04-07T14:11:14.846Z","repository":{"id":20875173,"uuid":"24162256","full_name":"aimeos/aimeos-symfony","owner":"aimeos","description":"Symfony e-commerce bundle for professional, ultra fast online shops, complex B2B applications and #gigacommerce","archived":false,"fork":false,"pushed_at":"2024-09-10T08:09:28.000Z","size":8097,"stargazers_count":231,"open_issues_count":0,"forks_count":52,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-09-10T10:21:53.014Z","etag":null,"topics":["aimeos","b2b","e-commerce","ecommerce","json-api","marketplace","performance","php","shop","symfony","symfony-ecommerce-bundle"],"latest_commit_sha":null,"homepage":"https://aimeos.org/Symfony","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aimeos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-09-17T21:00:42.000Z","updated_at":"2024-09-10T08:08:58.000Z","dependencies_parsed_at":"2023-02-17T20:46:01.191Z","dependency_job_id":"55ebb6a3-a568-4ae6-b7ca-94e4fff66959","html_url":"https://github.com/aimeos/aimeos-symfony","commit_stats":{"total_commits":920,"total_committers":9,"mean_commits":"102.22222222222223","dds":"0.035869565217391264","last_synced_commit":"171b21d00c1546b67c740fa5f2ac083fd7204e11"},"previous_names":[],"tags_count":76,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aimeos%2Faimeos-symfony","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aimeos%2Faimeos-symfony/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aimeos%2Faimeos-symfony/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aimeos%2Faimeos-symfony/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aimeos","download_url":"https://codeload.github.com/aimeos/aimeos-symfony/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247666008,"owners_count":20975787,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aimeos","b2b","e-commerce","ecommerce","json-api","marketplace","performance","php","shop","symfony","symfony-ecommerce-bundle"],"created_at":"2024-11-05T19:26:25.839Z","updated_at":"2025-04-07T14:11:14.820Z","avatar_url":"https://github.com/aimeos.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://aimeos.org/\"\u003e\n    \u003cimg src=\"https://aimeos.org/fileadmin/template/icons/logo.png\" alt=\"Aimeos logo\" title=\"Aimeos\" align=\"right\" height=\"60\" /\u003e\n\u003c/a\u003e\n\n# Aimeos Symfony bundle\n\n[![Total Downloads](https://poser.pugx.org/aimeos/aimeos-symfony/d/total.svg)](https://packagist.org/packages/aimeos/aimeos-symfony)\n[![Build Status](https://travis-ci.org/aimeos/aimeos-symfony.svg?branch=master)](https://travis-ci.org/aimeos/aimeos-symfony)\n[![Coverage Status](https://coveralls.io/repos/aimeos/aimeos-symfony/badge.svg?branch=master)](https://coveralls.io/r/aimeos/aimeos-symfony?branch=master)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/aimeos/aimeos-symfony/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/aimeos/aimeos-symfony/?branch=master)\n\n:star: Star us on GitHub — it helps!\n\n[Aimeos](https://aimeos.org/Symfony) is THE professional, full-featured and\nultra fast e-commerce package for Symfony!  You can install it in your existing\nSymfony application within 5 minutes and can adapt, extend, overwrite and\ncustomize anything to your needs.\n\n[![Aimeos Symfony demo](https://aimeos.org/fileadmin/aimeos.org/images/aimeos-github.png)](http://symfony.demo.aimeos.org/)\n\n## Table of content\n\n- [Installation](#installation)\n- [Composer](#composer)\n- [Admin](#admin)\n- [Hints](#hints)\n- [License](#license)\n- [Links](#links)\n\n## Installation\n\nThis document is for the latest **Aimeos 2023.10** and **Symfony 6.3+**.\n\nIf you want to **upgrade between major versions**, please have a look into the [upgrade guide](https://aimeos.org/docs/Symfony/Upgrade)!\n\nThe Aimeos Symfony e-commerce bundle is a composer based library that can be installed\neasiest by using [Composer](https://getcomposer.org). If you don't have an existing\nSymfony application, you can create a skeleton application using\n\n```\ncomposer create-project symfony/website-skeleton:~4.4 myshop\ncd myshop\n```\n\nThese settings need to be added to the `./config/packages/fos_user.yaml` file:\n\n```yaml\nfos_user:\n    db_driver: orm\n    user_class: Aimeos\\ShopBundle\\Entity\\FosUser\n    firewall_name: aimeos_myaccount\n    from_email:\n        address: \"me@example.com\"\n        sender_name: \"Test shop\"\n    service:\n        mailer: 'fos_user.mailer.noop'\n```\n\nThe Aimeos components have to be configured as well to get authentication working correctly.\nYou need to take care of three things: Using the correct customer manager implementation and\npassword encryption method as well as the right path for the storages. All must be appended\nat the end of the `./config/packages/aimeos_shop.yaml`:\n\n```yaml\naimeos_shop:\n    resource:\n        fs:\n            baseurl: \"https://yourdomain.com/\"\n            basedir: \"%kernel.project_dir%/public\"\n        fs-admin:\n            basedir: \"%kernel.project_dir%/public/uploads\"\n    mshop:\n        customer:\n            manager:\n                name: FosUser\n                password:\n                    name: Bcrypt\n```\n\nTo configure the Aimeos routing, create the file `./config/routes/aimeos_shop.yaml` with these lines:\n\n```yaml\naimeos_shop:\n    resource: \"@AimeosShopBundle/config/routing.yaml\"\n```\n\nThe same applies for the FosUser bundle. Create the file `./config/routes/fos_user.yaml` containing:\n\n```yaml\nfos_user:\n    resource: \"@FOSUserBundle/Resources/config/routing/all.xml\"\n```\n\nMake sure that the database is set up and it is configured in your `./config/packages/doctrine.yaml`:\n\n```yaml\nparameters:\n    env(DATABASE_URL): ''\n    database_host: \u003cyour host/ip\u003e\n    database_port: \u003cyour port\u003e\n    database_name: \u003cyour database\u003e\n    database_user: \u003cdb username\u003e\n    database_password: \u003cdb password\u003e\n```\n\nAlso, you have to configure your database credentials in the `.env` file:\n\n`DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name`\n\nIf you want to use a database server other than MySQL, please have a look into the article about\n[supported database servers](https://aimeos.org/docs/latest/infrastructure/databases/)\nand their specific configuration.\n\nIf you don't use Sendmail but SMTP for sending e-mails, you have to adapt the `MAILER_URL`\nconfiguration in your `.env` file, e.g.:\n\n`MAILER_URL=smtp://smtp.mailtrap.io:2525?encryption=tls\u0026auth_mode=login\u0026username=...\u0026password=...`\n\n## Composer\n\nThen add these lines to your `composer.json` of your Symfony project:\n\n```json\n    \"prefer-stable\": true,\n    \"minimum-stability\": \"dev\",\n    \"require\": {\n        \"aimeos/aimeos-symfony\": \"~2023.10\",\n        \"friendsofsymfony/user-bundle\": \"^3.2\",\n        ...\n    },\n    \"scripts\": {\n        \"post-install-cmd\": [\n            \"Aimeos\\\\ShopBundle\\\\Composer\\\\ScriptHandler::installBundle\",\n            \"Aimeos\\\\ShopBundle\\\\Composer\\\\ScriptHandler::setupDatabase\",\n            ...\n        ],\n        \"post-update-cmd\": [\n            \"Aimeos\\\\ShopBundle\\\\Composer\\\\ScriptHandler::installBundle\",\n            \"Aimeos\\\\ShopBundle\\\\Composer\\\\ScriptHandler::setupDatabase\",\n            ...\n        ]\n    }\n```\n\nAfterwards, install the Aimeos shop bundle using\n\n`composer update`\n\nIn a production environment or if you don't want that the demo data gets installed,\nuse the --no-dev option:\n\n`SYMFONY_ENV=prod composer update --no-dev`\n\nIf you get an exception that the `SensioGeneratorBundle` isn't found, follow the\nsteps described in the\n[Aimeos Symfony forum post](https://aimeos.org/help/symfony-bundle-f17/symfony-env-prod-composer-update-no-dev-t1488.html#p6384)\n\nStart the PHP web server in the base directory of your application to do some quick tests:\n\n```php -S 127.0.0.1:8000 -t public```\n\nThen, you should be able to call the catalog list page in your browser using\n\n```http://127.0.0.1:8000/shop```\n\n\n## Login and Admin\n\nSetting up the administration interface is a matter of configuring the Symfony\nfirewall to restrict access to the admin URLs.\n\nSetting up the security configuration is the most complex part. The firewall\nsetup in `./config/packages/security.yaml` should look like this one:\n\n```yaml\nsecurity:\n    providers:\n        aimeos:\n            entity: { class: Aimeos\\ShopBundle\\Entity\\FosUser, property: username }\n\n    password_hashers:\n        Aimeos\\ShopBundle\\Entity\\FosUser: bcrypt\n\n    firewalls:\n        aimeos_admin:\n            pattern: ^/admin\n            provider: aimeos\n            form_login:\n                login_path: /admin\n                check_path: /admin_check\n        aimeos_myaccount:\n            pattern: ^/\n            form_login:\n                provider: aimeos\n                csrf_token_generator: security.csrf.token_manager\n            logout: true\n\n    access_control:\n        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }\n        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }\n        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }\n        - { path: ^/profile, roles: ROLE_USER }\n        - { path: ^/admin/.+, roles: [ROLE_ADMIN, ROLE_SUPER_ADMIN] }\n```\n\n**Caution:** The order of the configuration settings in this file is important!\n\nThese settings will protect the ```/admin/*``` URLs from unauthorized access from\nsomeone without admin privileges.\n\nThe `/profile` URL is protected by the FOS user bundle as well, which also offers\nuser registration.\n\nAs last step, you have to create an admin account using the Symfony command line:\n\n```bash\n./bin/console aimeos:account --admin me@mydomain.com\n```\n\nThe e-mail address is the user name for login and the account will work for the frontend too.\nTo protect the new account, the command will ask you for a password. The same command can\ncreate limited accounts by using \"--editor\" instead of \"--admin\". If you use \"--super\" the\naccount will have access to all sites.\n\nIf the PHP web server is still running (`php -S 127.0.0.1:8000 -t public`), you should be\nable to call the admin login page in your browser using\n\n```http://127.0.0.1:8000/admin```\n\nand authenticating with your e-mail and the password which has been asked for by the\n`aimeos:account` command.\n\n## Hints\n\nTo simplify development, you should configure to use no content cache. You can\ndo this by adding these lines to `./config/packages/aimeos_shop.yaml`:\n\n```yaml\naimeos_shop:\n    madmin:\n        cache:\n            manager:\n                name: None\n```\n\n## License\n\nThe Aimeos Symfony bundle is licensed under the terms of the MIT license and is available for free.\n\n## Links\n\n* [Web site](https://aimeos.org/Symfony)\n* [Documentation](https://aimeos.org/docs/latest/symfony/)\n* [Forum](https://aimeos.org/help/symfony-bundle-f17/)\n* [Issue tracker](https://github.com/aimeos/aimeos-symfony/issues)\n* [Composer packages](https://packagist.org/packages/aimeos/aimeos-symfony)\n* [Source code](https://github.com/aimeos/aimeos-symfony)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faimeos%2Faimeos-symfony","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faimeos%2Faimeos-symfony","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faimeos%2Faimeos-symfony/lists"}