Setup

Laravel

Laravel

What is Laravel?

The Aero platform is built using the Laravel PHP framework.

Laravel is a free, open-source PHP web framework designed to make building scalable web applications easier and faster by providing pre-built components and structure.

Before developing with Aero, we recommend that you become acquainted with the core concepts of Laravel. We recommend the following resources:

Installation

Installation

How do I install Aero?

Required Services

First, we need to install a few required services.

Composer

A dependency manager for PHP (Download Composer).

Node.js

A JavaScript runtime that lets you run tools and apps outside of the browser (Download Node.js).

Laravel Herd

An all-in-one local development environment for Laravel and PHP,

If not using Herd Pro you'll need to run MySQL yourself, we suggest using DBngin (Download DBngin).

If needed, you can secure a Herd site by clicking the lock next to its name in the Site Manager (See herd docs).

Docker

An open source container service provider (Download Docker).

Setting up Agora

Agora is our platform for managing Aero projects. It allows organisations to oversee their projects, collaborate with agencies, and publish custom packages and/or themes. These packages and themes can be installed via Composer to extend or customise the functionality of any Aero store.

You must apply to be an agency on Agora to be able to use Aero Commerce.

Applying to be an Aero Commerce Agency

You can begin the application process here: https://agora.aerocommerce.com/register.

Creating your Project Credentials

To create your project credentials, navigate to https://agora.aerocommerce.com/projects and click the New Project button, then simply enter the project's name and optionally its domain.

Elasticsearch

Elasticsearch is the search engine that we'll use for our store. To set it up, we will create a Docker container by running the following command in our terminal:

docker run -d \
  -p 9200:9200 \
  -m 1GB \
  -e "discovery.type=single-node" \
  -e "xpack.security.enabled=false" \
  elasticsearch:8.17.4

You can check for the latest version to install instead of 8.17.4 here.

You can ensure Elasticsearch is running by visiting http://localhost:9200.

Creating your First Store

Before we can create our first store we must install the command-line installer tool using Composer, to do this run the following commands in your terminal:

First, install it globally:

composer global require aerocommerce/cli

Then, make sure to place Composer's system-wide vendor bin directory in your $PATH:

export PATH="$PATH:$HOME/.composer/vendor/bin"

Now we have global access to the aero new command in our terminal which we can use like so to create our first store:

aero new my-first-store --laravel=13

You will be prompted to enter your Agora project credentials that you created earlier, you can find them here.

Storefront

You can view your storefront by navigating to http://my-first-store.test in your browser, which will be empty as your store has no listings.

Admin

You can view the admin by navigating to http://my-first-store.test/admin in your browser and logging in.

Upon logging in you will be prompted to change your password & must do so before being able to navigate to other pages of the admin.

Importing Sample Data

First, enter the store’s directory, e.g.:

cd my-first-store

Then run the products import command (choose one of the below):

As well as the blocks import command (choose one of the below, inline with previous choice):

Finally, run your search queue:

herd php artisan queue:work --queue=search --timeout=0

Once done, navigate to http://my-first-store.test to see your imported products on the storefront or http://my-first-store.test/admin/catalog/products to view them in the admin.

Installation

What services does Aero require?

Composer

A dependency manager for PHP (Download Composer).

Node.js

A JavaScript runtime that lets you run tools and apps outside of the browser (Download Node.js).

Laravel Herd

An all-in-one local development environment for Laravel and PHP,

If not using Herd Pro you'll need to run MySQL yourself, we suggest using DBngin (Download DBngin).

If needed, you can secure a Herd site by clicking the lock next to its name in the Site Manager (See herd docs).

Docker

An open source container service provider (Download Docker).

Installation

How do I import data?

First, enter the store’s directory, e.g.:

cd my-first-store

Then run the products import command (choose one of the below):

As well as the blocks import command (choose one of the below, inline with previous choice):

Finally, run your search queue:

php artisan queue:work --queue=search --timeout=0

Installation

What queues does Aero use?

Queues are used so that HTTP requests can remain snappy and more intensive code can be executed later. You can learn more about queues here.

Queue
Description
search This queue has search jobs. The majority of these jobs will be responsible for reindexing listings.
email This queue has email jobs. Whenever an email is sent and queued in your application, it will be in this queue.
subscriptions This queue has subscription jobs. The majority of these jobs are responsible for creating and processing subscriptions.
default This queue has any jobs that are not in one of the other queues. These jobs can be anything from order created event handlers to customer created event handlers.

Aero uses four queues so that you can have different workers completing different tasks without a risk of locks or jobs being handled more than once. It’s important to note that some queues should be considered more important than others (for example, processing events such as an order created event is more important than updating your search index). In a production environment you should use tools like Supervisor to manage your queue workers.

You can use the queue work command to run all of or only specific queues (if you adjust the list of queues in the command). It’s important to note that the order of the queues in the command defines their priority.

Agora

Agora

What is Agora?

Agora is our platform for managing Aero projects. It allows organisations to oversee their projects, collaborate with agencies, and publish custom packages and/or themes. These packages and themes can be installed via Composer to extend or customise the functionality of any Aero store.

You must apply to be an agency on Agora to be able to use Aero Commerce.

Applying to be an Aero Commerce Agency

You can begin the application process here: https://agora.aerocommerce.com/register.

Creating your Project Credentials

To create your project credentials, navigate to https://agora.aerocommerce.com/projects and click the New Project button, then simply enter the project's name and optionally its domain.

Agora

How can I apply to be an Aero Commerce Agency?

You can begin the application process here: https://agora.aerocommerce.com/register.

Agora

How can I create credentials for my Aero project?

To create your project credentials, navigate to https://agora.aerocommerce.com/projects and click the New Project button, then simply enter the project's name and optionally its domain.

Admin

Admin

How do I view the Admin?

You can view the admin by navigating to http://my-first-store.test/admin in your browser and logging in.

Upon logging in you will be prompted to change your password & must do so before being able to navigate to other pages of the admin.

Admin

What are the default login credentials for the Admin?

Upon logging in you will be prompted to change your password & must do so before being able to navigate to other pages of the admin.

Admin

How do I change the default admin slug?

You can change the default admin slug by setting a variable in your .env:

AERO_ADMIN_SLUG=admin-panel

 

Storefront

Storefront

How do I view the Storefront?

You can view your storefront by navigating to http://my-first-store.test in your browser, which will be empty as your store has no listings.

Importing Sample Data

First, enter the store’s directory, e.g.:

cd my-first-store

Then run the products import command (choose one of the below):

As well as the blocks import command (choose one of the below, inline with previous choice):

Finally, run your search queue:

herd php artisan queue:work --queue=search --timeout=0

Elasticsearch

Elasticsearch

How do I setup Elasticsearch for my store?

To set it up Elasticsearch we will create a Docker container by running the following command in our terminal:

docker run -d \
  -p 9200:9200 \
  -m 1GB \
  -e "discovery.type=single-node" \
  -e "xpack.security.enabled=false" \
  elasticsearch:8.17.4

You can check for the latest version to install instead of 8.17.4 here.

You can ensure Elasticsearch is running by visiting http://localhost:9200.

FAQs

FAQs

Can I use Aero project credentials across multiple projects?

No, Credentials must not be shared between projects.

FAQs

Is Laravel required to run Aero?

Yes, the Aero platform is built on top of the Laravel framework. Knowledge of Laravel is not essential for basic Aero development but will help with more complex actions and configurations.

FAQs

What versions of Elasticsearch does Aero support?

Aero supports both Elasticsearch 6.x, 7.x & 8.x.

Support for Elasticsearch 6.x is provided by the 0.x version of aerocommerce/elastic-search.

Support for Elasticsearch 7.x & 8.x is provided by the 1.x version of aerocommerce/elastic-search.

It is highly recommended to use at minimum 7.x.

FAQs

Which versions of PHP will Aero run on?

Aero requires PHP Version 7.2 and upwards.

FAQs

How do I configure the PHP memory limit?

Due to the number of fields that are sometimes present in the admin, it may be necessary to adjust the PHP max_input_vars value. 

The default of 1,000 fields can be too small when managing a product that contains hundereds of variants. This limit is quickly reached when considering how many fields each variant has. 

A form that contains more fields than PHP is configured to accept will result in lost or corrupted data.

The max_input_vars value is defined in the php.ini file. On a Linux server, this is typically located:

# PHP 7.3
/etc/php/7.3/php-fpm/php.ini

# PHP 7.4
/etc/php/7.4/php-fpm/php.ini

# PHP 8.0
/etc/php/8.0/php-fpm/php.ini

On macOS when using Homebrew:

# PHP 7.3
/usr/local/etc/php/7.3/php.ini

# PHP 7.4
/usr/local/etc/php/7.4/php.ini

# PHP 8.0
/usr/local/etc/php/8.0/php.ini

We recommend a value of 10,000. You should either search for the existing entry, or add to the bottom of the file:

max_input_vars=10000

Once set, you'll need to reload PHP-fpm.

# Linux (PHP 7.3)
sudo service php7.3-fpm reload

# Linux (PHP 7.4)
sudo service php7.4-fpm reload

# Linux (PHP 8.0)
sudo service php8.0-fpm reload

# macOS (Laravel Valet)
valet restart