Отметьте нас на GitHub — это нас очень мотивирует!
Aimeos — это профессиональный, полнофункциональный и сверхбыстрый пакет Laravel для электронной коммерции! Вы можете установить его в существующее приложение Laravel за 5 минут и адаптировать, расширять, перезаписывать и настраивать что угодно в соответствии со своими потребностями.
Aimeos — это полнофункциональный пакет для электронной коммерции:
... и другие функции Aimeos
Поддерживаемые языки:
Посмотрите демоверсии:
Если вы хотите настроить новое приложение или протестировать Aimeos, мы рекомендуем дистрибутив магазина Aimeos. В нем есть все для быстрого старта и менее чем за 5 минут вы получите полностью работающий интернет-магазин:
Распределение магазинов Aimeos
Если вы хотите самостоятельно создать одностраничное приложение (SPA) или прогрессивное веб-приложение (PWA) и вам не нужен HTML-интерфейс Aimeos, тогда безголовый дистрибутив Aimeos — правильный выбор:
Безголовое распространение Aimeos
В настоящее время полностью поддерживаются пакеты Aimeos Laravel 2023.10 и новее :
Если вы хотите выполнить обновление между основными версиями, ознакомьтесь с руководством по обновлению!
Для распространения в магазине Aimeos требуется:
Если необходимые расширения PHP отсутствуют, composer
сообщит вам об отсутствующих зависимостях.
Если вы хотите выполнить обновление между основными версиями, ознакомьтесь с руководством по обновлению!
Убедитесь, что вы заранее создали базу данных и добавили конфигурацию в файл .env
в каталоге вашего приложения. Иногда использование файла .env создает проблемы, и вы получаете исключения, связанные с сбоем подключения к базе данных. В этом случае добавьте учетные данные базы данных в раздел resources/db вашего файла ./config/shop.php !
Если у вас не установлен хотя бы MySQL 5.7.8 или MariaDB 10.2.2, вы, вероятно, получите сообщение об ошибке, например
Specified key was too long; max key length is 767 bytes
Чтобы обойти эту проблему, удалите новые таблицы, если они были созданы, и измените настройку кодировки/сопоставления в ./config/database.php
на эти значения перед повторной установкой Aimeos:
' connections ' => [
' mysql ' => [
// ...
' charset ' => ' utf8 ' ,
' collation ' => ' utf8_unicode_ci ' ,
// ...
]
]
Внимание: также убедитесь, что ваш сервер MySQL по умолчанию создает таблицы InnoDB , поскольку таблицы MyISAM не будут работать и приведут к ошибке ограничения внешнего ключа!
Если вы хотите использовать сервер базы данных, отличный от MySQL, прочтите статью о поддерживаемых серверах баз данных и их конкретной конфигурации. Поддерживаются:
Убедитесь, что вы используете один из поддерживаемых серверов баз данных в вашем файле .env
, например:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=aimeos
DB_USERNAME=root
DB_PASSWORD=
Внимание: база данных SQLite, настроенная по умолчанию , НЕ поддерживается!
Пакет интернет-магазина Aimeos Laravel представляет собой библиотеку, основанную на композиторе. Его проще всего установить, используя Composer 2.1+ в корневом каталоге существующего приложения Laravel:
wget https://getcomposer.org/download/latest-stable/composer.phar -O composer
Затем добавьте эти строки в композитор.json скелетного приложения Laravel :
"prefer-stable" : true ,
"minimum-stability" : " dev " ,
"require" : {
"aimeos/aimeos-laravel" : " ~2024.10 " ,
...
},
"scripts" : {
"post-update-cmd" : [
" @php artisan vendor:publish --tag=laravel-assets --ansi --force " ,
" @php artisan vendor:publish --tag=public --ansi " ,
" \ Aimeos \ Shop \ Composer::join "
],
...
}
После этого установите пакет магазина Aimeos, используя
php composer update -W
На последнем шаге вы должны выполнить эти ремесленные команды, чтобы получить рабочую или обновленную установку Aimeos:
php artisan vendor:publish --tag=config --tag=public
php artisan migrate
php artisan aimeos:setup --option=setup/default/demo:1
В производственной среде или если вы не хотите, чтобы демонстрационные данные устанавливались, оставьте параметр --option=setup/default/demo:1
.
Вам необходимо настроить один из стартовых наборов аутентификации Laravel. Laravel Breeze — самый простой, но вы также можете использовать Jetstream.
composer require laravel/breeze
php artisan breeze:install
npm install && npm run build # if not executed automatically by the previous command
Laravel Breeze задаст вам несколько вопросов, самый важный из которых — тип стека, который вы хотите использовать. Выберите «Blade» (это самый простой способ) и используйте для остальных значения по умолчанию.
Он также добавляет маршрут для /profile
в ./routes/web.php
, который может перезаписать маршрут aimeos_shop_account
. Чтобы избежать исключения об отсутствующем маршруте aimeos_shop_account
, измените URL-адрес для этих строк из файла ./routes/web.php
с /profile
на /profile/me
:
Route:: middleware ( ' auth ' )-> group ( function () {
Route:: get ( ' /profile/me ' , [ProfileController::class, ' edit ' ])-> name ( ' profile.edit ' );
Route:: patch ( ' /profile/me ' , [ProfileController::class, ' update ' ])-> name ( ' profile.update ' );
Route:: delete ( ' /profile/me ' , [ProfileController::class, ' destroy ' ])-> name ( ' profile.destroy ' );
});
Для получения дополнительной информации, пожалуйста, следуйте документации Laravel:
В качестве последнего шага вам необходимо расширить метод boot()
вашего класса AppProvidersAppServiceProvider
и добавить строки, определяющие, как проверяется авторизация для «admin» в app/Providers/AppServiceProvider.php
:
public function boot ()
{
// Keep the lines before
Illuminate Support Facades Gate:: define ( ' admin ' , function ( $ user , $ class , $ roles ) {
if ( isset ( $ user -> superuser ) && $ user -> superuser ) {
return true ;
}
return app ( ' AimeosShopBaseSupport ' )-> checkUserGroup ( $ user , $ roles );
});
}
Прежде чем продолжить, проверьте, работает ли ваша настройка аутентификации. Создайте учетную запись администратора для своего приложения Laravel, чтобы вы могли войти в интерфейс администратора Aimeos:
php artisan aimeos:account --super < email >
Адрес электронной почты — это имя пользователя для входа в систему, и учетная запись также будет работать для внешнего интерфейса. Чтобы защитить новую учетную запись, команда запросит у вас пароль. Эта же команда может создавать ограниченные учетные записи, используя --admin
, --editor
или --api
вместо --super
(доступ ко всему).
Чтобы правильно ссылаться на изображения, вам необходимо адаптировать файл .env
и установить APP_URL
на ваш реальный URL-адрес, например
APP_URL=http://127.0.0.1:8000
Внимание: убедитесь, что Laravel использует драйвер сеанса file
в вашем файле .env
! В противном случае содержимое корзины не сохранится корректно!
SESSION_DRIVER=file
Если ваш веб-сервер недоступен для записи в каталог ./public
, вам необходимо создать следующие каталоги:
mkdir public/aimeos public/vendor
chmod 777 public/aimeos public/vendor
В производственной среде вам следует быть более конкретным в отношении предоставленных разрешений!
После этого вы сможете вызвать страницу списка каталогов в своем браузере. Для быстрого старта вы можете использовать встроенный веб-сервер. Просто выполните эту команду в базовом каталоге вашего приложения:
php artisan serve
Направьте свой браузер на страницу со списком магазинов, используя:
Примечание. Интеграция пакета Aimeos добавляет в вашу установку Laravel некоторые маршруты, такие как /shop
или /admin
, но домашняя страница остается нетронутой! Если вы также хотите добавить Aimeos на домашнюю страницу, замените маршрут «/» в ./routes/web.php
на эту строку:
Route:: group ([ ' middleware ' => [ ' web ' ]], function () {
Route:: get ( ' / ' , ' AimeosShopControllerCatalogController@homeAction ' )-> name ( ' aimeos_home ' );
});
Для настройки нескольких поставщиков прочитайте статью о нескольких магазинах.
На главной странице отобразится домашний компонент каталога Aimeos, и вы получите красивую домашнюю страницу магазина, которая будет выглядеть следующим образом:
Если вы все еще запустили внутренний веб-сервер PHP ( php artisan serve
), вам следует открыть этот URL-адрес в своем браузере:
http://127.0.0.1:8000/админ
Введите адрес электронной почты и пароль вновь созданного пользователя и нажмите «Войти». Если вы не будете перенаправлены в интерфейс администратора (это зависит от кода аутентификации, который вы создали в соответствии с документацией Laravel), снова укажите в браузере URL-адрес /admin
.
Внимание: убедитесь, что вы еще не вошли в систему как пользователь без прав администратора! В этом случае вход в систему не будет работать, поскольку Laravel требует, чтобы вы сначала вышли из системы.
Чтобы упростить разработку, вам следует настроить отсутствие использования кэша контента. Вы можете сделать это в файле config/shop.php
вашего приложения Laravel, добавив эти строки внизу:
' madmin ' => [
' cache ' => [
' manager ' => [
' name ' => ' None ' ,
],
],
],
Пакет Aimeos Laravel лицензируется на условиях лицензии MIT и доступен бесплатно.