-
Постов
172 -
Зарегистрирован
-
Посещение
-
Победитель дней
1
Тип контента
Профили
Форумы
Блоги
События
Галерея
Articles
Весь контент omega80
-
Основные этапы подключения Эластики: 1) сервер - aimeos 2) сервер - Elasticsearch После стандартной установки сервера Elasticsearch на нем необходимо открыть внешний доступ: network.host: 0.0.0.0 # Разрешить подключения с других IP http.port: 9200 discovery.type: single-node # Для тестовых сред xpack.security.enabled: false # Отключите, если не требуется и после этого перезапустить Elasticsearch: sudo systemctl restart elastic На сервере Aimeos необходимо добавить в файл с настройками следующие строки: 'mshop' => [ 'index' => [ 'manager' => [ 'name' => 'Elasticsearch', 'host' => 'your-elasticsearch-host', // IP или домен удалённого сервера 'port' => 9200, // Порт Elasticsearch 'username' => 'your-username', // Если требуется аутентификация 'password' => 'your-password', ], ], ], Также в этот же файл Aimeos (ниже) необходимо добавить в раздел "'resource' => [": // if products are completely available in ES (products not in DB) 'es' => [ 'hosts' => [ '127.0.0.1:9200', ], 'index' => 'aimeos', 'SSLVerification' => false, // for self-signed certificates 'basicAuthentication' => ['elastic', '<password>'], // ElasticSearch 8+ 'selectorClass' => '\Elasticsearch\ConnectionPool\Selectors\StickyRoundRobinSelector', 'settings' => [ 'number_of_shards' => 5, // adapt to your needs 'number_of_replicas' => 0, // adapt to your needs 'max_result_window' => 10000, // maximum number of results retrieved // 'refresh_interval' => -1, // for initial indexing only ], // 'norefresh' => false, // for initial indexing only ], Команда для переиндексации: php artisan aimeos:setup --option=setup/default/demo:0 либо 1, если нужны демоданные. Проверка индексов на сервере Elasticsearch: http://YOURIP:9200/_cat/indices?v
- 11 ответов
-
- gigacommerce
- elasticsearch
-
(и ещё 1 )
C тегом:
-
Пользователи в системе Aimeos На первый взгляд тех, кто пытается разобраться в системе Aimeos, реализация пользователей осуществлена не совсем понятным способом. Попытки переключения покупателей в продавцы, либо в администраторы приводят в ступор. Благодаря общению с автором aimeos удалось уяснить следующее: - Покупатели не регистрируются заранее (это не реализовано по умолчанию), учетная запись будет автоматически создана для них по завершению процесса оформления заказа. - В конфигурациях с несколькими поставщиками продавцы должны регистрироваться заранее, для этого вам необходимо установить SHOP_REGiSTRATION=true в вашем файле ".env". Оба типа пользователей хранятся в таблице Laravel "users": Для ПРОДАВЦОВ создается подсайт, который является областью магазина, содержит их продукты и т. д., а их учетная запись в таблице "users" связана с этим подсайтом (через столбец "users.siteid"), и назначается группа (обычно "admin"), чтобы они могли войти в админ-панель. Для покупателей НЕ создается подсайт, только запись в таблице "users", а их значение в "users.siteid" пустое. Как создать и привязать продавца к конкретному магазину: После создания подсайта переключитесь на этот подсайт с помощью селектора сайтов в левом навигационном меню (первая запись). Затем создайте нового пользователя в разделе Пользователи > Клиенты (название здесь может быть запутанным) и назначьте этому пользователю группу «Администратор». В некоторых реализациях и демонстрациях различные применения продавцов и поставщиков, что такое поставщик и бренд в Aimeos: Продавцы — это пользователи, а поставщики — это бренды, производители, дистрибьюторы или что угодно, что вы хотите связать с продуктами, и они могут содержать тексты и изображения. Поставщики — это сущности для добавления дополнительной информации к продуктам, но у них вообще нет доступа к системе Aimeos. Понятие "пользователя" в системе Aimeos В Aimeos пользователь (user) — это сущность, которая взаимодействует с системой через различные роли: клиент, администратор, редактор, поставщик и другие. Пользователи обладают правами доступа, определяемыми их ролью, и могут работать в рамках одного или нескольких сайтов (магазинов). Ключевые аспекты пользователей в Aimeos Типы пользователей и роли: Администраторы (Superusers/Admins) - имеют полный доступ ко всем функциям системы, включая управление сайтами, настройки, продукты, заказы и пользователями. Редакторы/Менеджеры - могут управлять контентом (например, продуктами, категориями, CMS-страницами), но не имеют прав на изменение системных настроек. Клиенты (Customers) - пользователи, зарегистрированные на фронтенде магазина. Могут совершать покупки, просматривать историю заказов, управлять личными данными. Поставщики (Suppliers) - в сценариях маркетплейсов — владельцы подсайтов или магазинов, управляющие своими продуктами и заказами. Аутентификация и авторизация Методы аутентификации: Стандартная регистрация через email и пароль. Интеграция с социальными сетями (Facebook, Google) через расширения. Поддержка LDAP, OAuth2, SAML для корпоративных решений. Ролевая модель (RBAC): Права назначаются через группы (например, "Администраторы", "Редакторы") или индивидуально. Профили пользователей: Личные данные: имя, email, телефон, адреса доставки/платежа. История заказов, список избранного, подписки на рассылки. Возможность кастомизации профиля через дополнительные атрибуты (например, поле "Налоговый номер" для B2B). Управление пользователями Создание/редактирование: Через админ-панель (Admin → Users). Массовый импорт/экспорт данных (CSV, Excel). Блокировка и удаление: пользователей можно деактивировать или полностью удалить из системы. GDPR-совместимость: поддержка анонимизации данных и экспорта персональной информации. Изоляция данных в мультисайтовой среде Пользователи могут быть привязаны к конкретному сайту (например, клиенты магазина ЕС и США видят разные цены). Администраторы сайтов имеют доступ только к данным своего сайта (если не являются суперпользователями). Особенности работы с пользователями Гибкая интеграция: подключение внешних CRM, ERP или систем лояльности через REST API или события (events). Расширение функционала (extentions): ai-user: Расширение для управления дополнительными полями профиля. ai-auth: Поддержка двухфакторной аутентификации (2FA). Безопасность: Хеширование паролей (bcrypt). Защита от брутфорс-атак. Ограничение сессий по времени.
-
САЙТ в системе Aimeos В Aimeos понятие сайта (site) используется для описания независимого магазина или экземпляра магазина, который может работать в рамках одной установки системы. Это ключевая концепция, позволяющая управлять множеством магазинов, маркетплейсами или B2B-порталов в единой среде администрирования (с одного сервера) После первоначальной установки в Aimeos автоматически создается базовый сайт с названием "default". Он содержит все данные первого (главного) магазина: продукты, настройки доставки и платежей, заказы, структуры и т.д. Для самой простой системы: мультисайтовая архитектура (многосайтовость) aimeos поддерживает создание неограниченного количества сайтов, которые полностью независимы друг от друга. Новые сайты добавляются через запуск скрипта setup/update с указанием уникального кода для каждого сайта. Для более сложных структур (например, маркетплейсов) доступно расширение ai-sites, позволяющее создавать подсайты (вложенные сайты), наследующие данные (продукты, категории, тексты) от родительских сайтов. Такая иерархия не ограничена по глубине, что подходит для B2B-порталов, оптовых или реселлерских сетей. Переключение между сайтами осуществляется через выбор селектора в верхнем левом углу интерфейса администратора. Он отображается только при наличии более одного сайта, доступного пользователю (суперпользователи видят все сайты, администраторы — только свои). Данные каждого сайта отображаются изолированно, но при использовании расширения ai-sites также отображаются унаследованные элементы (их можно дополнять, но не изменять). Отключение сайтов производится в разделе "Locales" → "Sites" можно изменить статус сайта на "Disabled". В том же разделе доступна опция удаления выбранного сайта через кнопку "x" рядом с сайтом. Варианты применения мультисайтовости: SaaS-решения - возможность создавать изолированные магазины для разных клиентов с поддержкой собственных доменов. Многоязычные и мультивалютные платформы - встроенная поддержка более 30 языков и RTL-верстки, что упрощает создание международных магазинов (по странам, по языкам, по областям). Маркетплейсы - управление множеством поставщиков через отдельные сайты или подсайты с наследованием данных. Примеры практической реализации: B2B-порталы с иерархией дочерних сайтов для дилеров. Маркетплейсы с независимыми магазинами вендоров. Локализованные версии магазинов для разных регионов. Сайты как структура в Aimeos обеспечивают гибкость масштабирования бизнеса: от единого магазина до глобальных платформ с тысячами продавцов (поставщиков). Благодаря модульности и расширениям, система подходит как для малого бизнеса, так и для корпоративных решений.
-
Система Aimeos имеет свою уникальную архитектуру и логическую модель системы управления сайтом. Для администраторов, который привыкли работать с популярными CMS (типа Webasyst, PrestaShop, CS-Cart, OpenCart и т.д.) на первых порах становится весьма непривычно при погружении в систему Aimeos. Мы тоже столкнулись с рядом на первый взгляд тупиковых умозаключений, поэтому пришлось задавать уточняющие вопросы автору проекта. Надо отметить сразу: автор весьма охотно идет на контакт и очень подробно объясняет суть. И так, сперва необходимо разобраться в архитектуре и сущностях Aimeos: Продавец: Компания, продающая товары и владеющая магазином в Aimeos Магазин: Дочерний сайт в Aimeos для продавца, где он управляет своими собственными товарами Бренд: Производитель, такой как Siemens, Volkswagen и т. д. Запись поставщика в Aimeos: Бренд/производитель Покупатель: Клиент, покупающий товары на торговой площадке или в магазинах продавца напрямую Каждый владелец магазина может добавлять столько товаров поставщика для разных производителей, сколько ему нужно. Если у вас есть набор стандартных товаров, продаваемых многими поставщиками, вы также можете создать товары поставщика на уровне торговой площадки, и они будут унаследованы магазинами поставщиков. А теперь, ниже, будет более подробно про каждую сущность.
-
Замечательный по производительности, стоимости и предоставляемому спектру услуг хостинг Timeweb - работаем с ними с 2014 года, никаких нареканий! Плюсы: отзывчивая техподдержка - отвечают очень быстро и очень умно, часто помогают даже за пределами их компетенций, достаточно подробно объясняют особенности. Действительно на 1 месте по адекватности. оборудование и инфраструктура - современные компоненты и удобные варианты выбора оборудования и тарифов, гибкие условия для роста. стабильная работа - не помню когда в последний раз было отсутствие линка. Пару раз было предупреждение на почте о технических работах, но все они были в ночное время и, по заверениям коллег, не более 5-15 минут. Uptime 99,99%! Минусов не обнаружилось! Ссылка (реферальная - и вам и нам бонус в размере до 2000 руб. при регистрации): хостинг Timeweb - также помощь оказываем нашим активным рефералам
-
Инструкция и описание модуля: # Aimeos site tree extension ## Basic usage The extension replaces the locale site handling in the data management layer and in the administration interface. It enables you to add sub-sites to each top level site ("default" is the standard one). Each sub-site can have own sub-sites too, so you can create a tree of sites with unlimited width and depth. By default, sub-sites inherit data from their parent sites, e.g. ``` |- default |- site-lvl-1 |- site-lvl-2 ``` the site "site-lvl-2" would inherit products and their data created in the sites "default" and "site-lvl-1". This does work in all data domains but e.g. not in the order domain where it makes no sense. ## Setup Please make sure you execute the Aimeos database setup script afterwards to the necessary tables will be created: Laravel: php artisan aimeos:setup Symfony: php bin/console aimeos:setup TYPO3: php vendor/bin/typo3 aimeos:setup For updating prices and stock levels of selection products, you need to configure a cron job that executes two cron jobs every 5 minutes: Laravel: php artisan aimeos:jobs "price/update stock/update" Symfony: php bin/console aimeos:jobs "price/update stock/update" TYPO3: php vendor/bin/typo3 aimeos:jobs "price/update stock/update" ## Market place configuration The simplest setup for a market place is to create one sub-site for each vendor below the "default" site. These vendor sub-sites will inherit e.g. delivery and payment services as well as all other data created in the "default" site so each vendor site is a completely usable shop of its own. To aggregate the products added by the vendors in their own sites into your market place, you have to add this configuration for the frontend and the scheduled jobs but not for the backend (admin interface): `mshop/locale/manager/sitelevel = 3` If you only want to aggregate the data into the market place site ("default") and don't want data to be inherited from parent sites, you have to set the configuration option to `mshop/locale/manager/sitelevel = 2` Other possible values are: Inheritance only (standard value): `mshop/locale/manager/sitelevel = 1` No inheritance or aggregation: `mshop/locale/manager/sitelevel = 0` For Laravel, you need to add in your `./config/shop.php` in the "mshop" section e.g.: ``` 'mshop' => [ 'locale' => [ 'manager' => [ 'sitelevel' => 3 ] ] ] ``` For TYPO3, add in your project-specific Aimeos extension to `./Resources/Private/Config/mshop.php`: ``` <?php return [ 'locale' => [ 'manager' => [ 'sitelevel' => 3 ] ] ]; ``` ## Dropshipping configuration To enable dropshipping, only this setting is required: `mshop/order/manager/sitemode = 2` For Laravel, you need to add in your `./config/shop.php` in the "mshop" section e.g.: ``` 'mshop' => [ 'order' => [ 'manager' => [ 'sitemode' => 2 ] ] ] ``` For TYPO3, add in your project-specific Aimeos extension to `./Resources/Private/Config/mshop.php`: ``` <?php return [ 'order' => [ 'manager' => [ 'sitemode' => 2 ] ] ]; ``` Dropshipping does also work in market place mode if you use this configuration: ``` mshop/locale/manager/sitelevel = 3 mshop/order/manager/sitemode = 2 ``` ## B2B configuration If you want to control in the administration interface if inherited categories or products are used in the sub-site or not, you have to add these configuration settings for the **frontend** configuration section: ``` 'mshop' => [ 'index' => [ 'manager' => [ 'decorators' => [ 'local' => [ 'Site' => 'Site', ], ], ], ], 'product' => [ 'manager' => [ 'decorators' => [ 'local' => [ 'Site' => 'Site', ], ], 'submanagers' => [ 'type' => 'type', 'property' => 'property', 'lists' => 'lists', 'site' => 'site', ], ], ], ], ``` Then, products aren't used until you explicitly allow them to be shown. As last step, you need to rebuild the product index (in the mshop_index_* tables) for your market place site ("default"). Due to the settings above, the index will then contain the products from the vendor sites too. **Caution:** If you use the extension in combination with the ai-elastic Extension, enabling/disabling inherited products isn't possible in that setup and you have to remove the "Site" decorator the the "site" submanager from the configuration: ``` 'mshop' => [ 'catalog' => [ 'manager' => [ 'decorators' => [ 'local' => [ 'Site' => 'Site', ], ], 'submanagers' => [ 'lists' => 'lists', 'site' => 'site', ], ], ], 'product' => [ 'manager' => [ 'submanagers' => [ 'type' => 'type', 'property' => 'property', 'lists' => 'lists', ], ], ], ], ``` ## TYPO3 In TYPO3, you can additionally assign a single site to a page or page tree via Typoscript. Frontend (Setup TS): `plugin.tx_aimeos.settings.mshop.locale.site = <sitecode>` Backend: (Page TS in "Resource" tab): `mshop.locale.site = <sitecode>` ## Overwrite inherited items By default, items from parent sites are inherited and merged with the items from the current site. If the items from the current site should overwrite inherited items, add this macro to the bootstrap process of your application: ```php \Aimeos\MShop\Common\Item\Base::macro( 'listFilter', function( array $list ) { return map( $list )->groupBy( fn( $item ) => $item->getSiteId() )->krsort()->first( [] ); } ); ``` You can also apply this macro only to specific domains, e.g. for all referenced prices: ```php \Aimeos\MShop\Price\Item\Standard::macro( 'listFilter', function( array $list ) { return map( $list )->groupBy( fn( $item ) => $item->getSiteId() )->krsort()->first( [] ); } ); ``` ## Setup seller e-mails When using the extension for marketplaces, you usually want to inform the sellers about sold products on your marketplace. This can be acomplished by using the `EmailMarket` service provider as base for all your delivery options. It will care about splitting the ordered products by seller and send them in a CSV file to each seller by e-mail. To use the `EmailMarket` service provider: * Log into the admin backend * Go to Setup > Services * Add a new delivery service option * Select `EmailMarket` in the provider field * The default configuration doesn't need to be changed * Save the delivery service option Then, place a successful order with products from different vendors and add a cronjob executed regularly (every 15 to 60 minutes, depending on the amount of orders) using this command: ```bash php /path/to/artisan aimeos:jobs order/email/delivery ```
-
Содержимое файла описания #gigacommerce (Elasticsearch): # ai-elastic Aimeos ElasticSearch integration for #gigacommerce ## Support ElasticSearch versions * 7.x * 8.x ElasticSearch 5.x and 6.x are supported up to Aimeos 2020.10 LTS only. ## Configuration ### ElasticSearch server Add this to your Aimeos configuration file (Symfony requires YAML format) or without the `'resource'` key to your `resource.php` config file: ``` 'resource' => [ // if products are completely available in ES (products not in DB) 'es' => [ 'hosts' => [ '127.0.0.1:9200', ], 'index' => 'aimeos', 'SSLVerification' => false, // for self-signed certificates 'basicAuthentication' => ['elastic', '<password>'], // ElasticSearch 8+ 'selectorClass' => '\Elasticsearch\ConnectionPool\Selectors\StickyRoundRobinSelector', 'settings' => [ 'number_of_shards' => 5, // adapt to your needs 'number_of_replicas' => 0, // adapt to your needs 'max_result_window' => 10000, // maximum number of results retrieved // 'refresh_interval' => -1, // for initial indexing only ], // 'norefresh' => false, // for initial indexing only ], // if products from database are indexed in ES (products in DB and ES) 'es-index' => [ 'hosts' => [ '127.0.0.1:9200', ], 'index' => 'aimeos', 'SSLVerification' => false, // for self-signed certificates 'basicAuthentication' => ['elastic', '<password>'], // ElasticSearch 8+ 'selectorClass' => '\Elasticsearch\ConnectionPool\Selectors\StickyRoundRobinSelector', 'settings' => [ 'number_of_shards' => 5, // adapt to your needs 'number_of_replicas' => 0, // adapt to your needs 'max_result_window' => 10000, // maximum number of results retrieved // 'refresh_interval' => -1, // for initial indexing only ], // 'norefresh' => false, // for initial indexing only ], // if stock levels should be stored in ES (stock levels not in DB) 'es-stock' => [ 'hosts' => [ '127.0.0.1:9200', ], 'index' => 'aimeos_stock', 'SSLVerification' => false, // for self-signed certificates 'basicAuthentication' => ['elastic', '<password>'], // ElasticSearch 8+ 'selectorClass' => '\Elasticsearch\ConnectionPool\Selectors\StickyRoundRobinSelector', 'settings' => [ 'number_of_shards' => 5, // adapt to your needs 'number_of_replicas' => 0, // adapt to your needs 'max_result_window' => 10000, // maximum number of results retrieved // 'refresh_interval' => -1, // for initial indexing only ], // 'norefresh' => false, // for initial indexing only ] ] ``` For the number of shards, you should start with the number of CPUs of your server. As upper limit, each shard shouldn't contain much more than 50GB of data. If you have more than one ElasticSearch node, replicas are good for fault tolerance and can handle more search requests but are bad for initial indexing performance. You should better add replicas after your initial indexing is done. ### Using ElasticSearch To use ElasticSearch for index, product and stock data, add this to your Aimeos configuration file or without the `'mshop'` key to your `mshop.php` config file: ``` 'mshop' => [ 'index' => [ 'manager' => [ 'name' => 'Elastic', // Only if products are not in DB // 'name' => 'ElasticIndex', // If products exist in DB 'attribute' => [ 'name' => 'Elastic', ], 'catalog' => [ 'name' => 'Elastic', ], 'price' => [ 'name' => 'Elastic', ], 'supplier' => [ 'name' => 'Elastic', ], 'text' => [ 'name' => 'Elastic', ], ] ], // Only if products are not in DB 'product' => [ 'manager' => [ 'name' => 'Elastic', 'lists' => [ 'name' => 'Elastic', 'type' => [ 'name' => 'Elastic', ], ], 'property' => [ 'name' => 'Elastic', 'type' => [ 'name' => 'Elastic', ], ], 'type' => [ 'name' => 'Elastic', ], ] ], // Only if products are not in DB 'stock' => [ 'manager' => [ 'name' => 'Elastic', 'type' => [ 'name' => 'Elastic', ], ] ] ] ``` If you want to use ElasticSearch as secondary cache for the products in the mshop_product table, the `mshop/product/manager/elastic/only` must be set to `false` and only the index manager must be configured as `name => Elastic`. ### Additional configuration options These settings can be used to tune indexing speed: **mshop/index/manager/chunksize** (default: 10000): Number of documents sent to the ElasticSearch server in one index request during index rebuild. Higher values may result in faster indexing but requires more memory. **mshop/index/manager/elastic/maxchunks** (default: 20): Number of concurrent index requests sent to the ElasticSearch server at once. Higher values may result in faster indexing but requires more memory.
- 11 ответов
-
- gigacommerce
- elasticsearch
-
(и ещё 1 )
C тегом:
-
Инструкция для установки Elasticsearch вручную (на серверах в России): wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.17.1-amd64.deb wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.17.1-amd64.deb.sha512 shasum -a 512 -c elasticsearch-8.17.1-amd64.deb.sha512 sudo dpkg -i elasticsearch-8.17.1-amd64.deb Ссылка: установка Elasticsearch в Debain вручную
-
В нашем проекте используем систему из трех серверов, один из которых будет полностью под Эластикой. Данный тип сервера будет с произвольными мощностями и основной выбор мы сделаем в сторону объема ОЗУ - чем больше, тем лучше. Данные индексов система Elasticsearch хранит в RAM, благодаря чем и происходит моментальная обработка результата в больших объемах данных. Внимание: родной репозиторий Эластики заблокирован по IP для России. Необходимо либо использовать туннели, либо устанавливать пакет вручную, либо заводить сервер, например в Нидерландах, а после настройки перекинуть обратно на территорию России (поближе к основному серверу Aimeos). Процесс установки Elasticsearch: 1) Устанавливаем публичный ключ: wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg 2) Устанавливаем пакет apt-transport-https: sudo apt-get install apt-transport-https 3) Добавляем адрес репозитория Elasticsearch: echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list 4) Обновляем список репозиториев и устанавливаем Elasticsearch: sudo apt-get update && sudo apt-get install elasticsearch Внимание: после окончания установки не забудьте сохранить выводимый на экран терминала сгенерированный пароль для встроенного суперпользователя "elastic"! (либо в последствии мы можете поменять пароль командой "elasticsearch-reset-password") 5) После установки система оповещает вас: ### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service ### You can start elasticsearch service by executing sudo systemctl start elasticsearch.service Поэтому необходимо последовательно отправить команды: sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service sudo systemctl start elasticsearch.service Всё, на этом эластика установлена. Для проверки статуса системы: systemctl status elasticsearch.service Для проверки работоспособности можно дать команду: curl -k --user elastic:'ktNBdiTxO3hKqASVvHyu' https://127.0.0.1:9200 , где в кавычках пароль из вашей системы Далее можно переходить к настройкам под ваши нужды. Установка, запуск, перезапуск производится командами: sudo systemctl start elasticsearch.service sudo systemctl stop elasticsearch.service sudo systemctl restart elasticsearch.service
-
Замечательная и уникальная в своем роде система Elasticsearch. Позволяет обрабатывать огромные массивы индексов и в короткое время выдавать результат. В нашем проекте используется в качестве отдельного кэширующего сервера. По заявлениям производителя Aimeos данная связка способна крутить 1 миллиард товарных позиций с выдачей страницы до 100 мс
-
Наиболее часто используемые команды в систему Aimeos: 1) Обновление структуры данных aimeos: php artisan aimeos:setup 2) Очистка кэша: php artisan aimeos:clear 3) Создание нового магазина (сайта): php artisan aimeos:setup название_магазина
-
Для редактирования маршрутизации полезно выводить списки маршрутизации, для этого существует команда: php artisan route:list