This article will guide you through the entire process of installing Magento Open Source using Composer on a Ubuntu Plesk Server (tested this guide on Plesk 18.0.5.1). You will also find solutions to some issues you might face during the installation.

Requirements:

  1. Access Keys for Magento Marketplace: These can be obtained from: Magento Marketplace Access Keys
  2. SSH Access and Command Line (I prefer using MobaXterm)
  3. Composer: Minimum 2.2+
  4. Database Setup: Minimum MariaDB 10.6+ since Magento 2.4.6
  5. Opensearch: Minimum in version 2.5
  6. PHP: 8.1 or 8.2
  7. PHP Extensions: List of required PHP extensions
  8. SSL Certificate (Optional but Recommended)

Installation:

If you meet the requirements mentioned above, let’s start with the installation process.

1. To install Magento 2.4.6 using Composer on a Plesk server, you will need SSH access. The first command we’ll use is to navigate to the httpdocs folder, where we’ll work on the installation (You can skip this step if you are already in the folder where you want to install Magento):

2. Download the required Magento files using Composer:

Do not forget to use the “.” at the end of the command line. The dot represents the current directory (httpdocs).

2.1. Once done, you will be asked to enther the access keys. The public key is your username, and the private key is your password.

3. Set the correct permissions for the generated folders and files:

4. This is the most important step, and it requires that you have already met the requirements mentioned above. You may copy the command below, but please replace the values of: –base-url, –db-name, –db-user, –db-password, –opensearch-host, –opensearch-port, –opensearch-index-prefix (“magento2” by default), –opensearch-enable-auth, –opensearch-username (by default it’s admin), and –opensearch-password

Important: If you don’t use SSL, please use “http://” instead of “https://”

If you need other parameters, you can find the full list along with their descriptions on this link: Commerce Operations Installation Guide – Advanced Parameters

Common issues & fixes:

1. If you get the error “SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘magento2.admin_user’ doesn’t exist”: Remove the created env.php file and try the installation again.

2. If you encounter the error message “Could not validate a connection to OpenSearch. No alive nodes found in your cluster,” it typically indicates that a connection to the database cannot be established. To verify the connectivity, you can use curl. That said, if you do not need authentication for opensearch, remove those parameters “–opensearch-enable-auth=1 –opensearch-username=admin –opensearch-password=admin123” from your installation command line.

Below is an example demonstrating how to test the connection with curl if you are using OpenSearch with authentication:

Without authentication:

3. If you can not access the magento website after installation and you encounter this error in the logs: “Upstream sent too big header while reading response header from upstream”: You may set i.e. those settings for Proxy, Domain -> Hosting & DNS -> Apache / nginx ->Additional nginx directives: image

Attention: This article is still under progress and will be updated regularly.

Before we begin setting up the Multistore in Prestashop, it is important to be well prepared. This preparation includes:

  1. Determine the number of multistore websites you require.
  2. Identify the purposes of each multistore website.
  3. Decide which information you want to share between the multistores, such as customers, products, inventory, theme, modules, etc.
  4. Choose whether you will create the multistores using subdomains, virtual paths (e.g., /newstore, /newstore2), or TLD domains.
  5. Determine the languages you want to enable for each store.

Once you have a clear concept of what you want to achieve with the multistore and how you want it organized, we can proceed with creating the multistore. Please note that it is always recommended to backup your website before setting up the multistore. This precaution is necessary because there may be compatibility issues with your theme, modules, etc.

  1. Enable Multistore: Log in to your admin panel. Go to “Shop Parameters” -> “General” and turn on the “enable multistore” option.
  2. Create a New Shop: Once you have completed step 1, you will see in your admin panel under “Advanced Parameters” that a new link has been added called “Multistore”. In the Multistore configuration, click on the “Add new shop” button. Fill in the necessary information for your new shop, such as shop name, shop URL, and shop group. You can also specify the shop’s theme, logo, and other settings.
  3. Configure Shop Associations: In the Multistore configuration, you’ll see a list of your shops. Click on the “Edit” button next to each shop to configure its associations. You can associate products, categories, manufacturers, and suppliers with specific shops. This allows you to control which products are available in each shop.
  4. Configure Shop URLs: In the Multistore configuration, click on the “Shop URLs” tab. Here, you can define the URLs for each shop. You can choose between domain names or subdomains for each shop. Make sure to configure the DNS settings for each URL to point to your PrestaShop installation.
  5. Configure Shop Languages and Currencies: In the Multistore configuration, click on the “Shop association” tab. Here, you can select the languages and currencies that are available for each shop. You can also configure the default language and currency for each shop.
  6. Configure Shop Payment and Shipping Methods: In the Multistore configuration, go to the “Payment” and “Shipping” tabs. Here, you can enable/disable specific payment and shipping methods for each shop. You can also configure specific settings for each method if needed.
  7. Configure Shop Modules: In the Multistore configuration, go to the “Modules” tab. Here, you can enable/disable modules for each shop. Some modules may have specific settings that can be configured per shop. Make sure to check the documentation of each module for details on how to configure them.
  8. Manage Shop Content: Once you have configured the basic settings for each shop, you can start managing the content specific to each shop. This includes adding products, categories, manufacturers, and suppliers to the appropriate shops. You can also customize the theme, layout, and content for each shop individually.
  9. Test and Launch: After setting up your multistore, thoroughly test each shop to ensure that everything is working as expected. Test the frontend functionality, such as browsing products, adding them to the cart, and completing orders. Also, test the backend functionality, such as managing orders, customers, and inventory. Once you are confident that everything is working correctly, you can officially launch your multistore and start promoting it to your customers.

PrestaShop’s multistore feature offers impressive functionality, making it an excellent choice for managing multiple online stores. However, it’s important to note that the multistore feature has encountered some issues, as it has not received significant updates for a while. Finally, with the launch of version 1.7.8, the PrestaShop developer team made some changes to the multistore feature. In this article, we will cover the basics of multistore implementation and explore its various benefits.

Advantages and Use Cases of PrestaShop Multistore Feature:

  1. Centralized Management: Manage multiple online stores from a single admin panel.
  2. Shared Customer Database: Maintain a shared customer database across all websites, ensuring seamless customer management.
  3. Customized Storefronts: Unique store layouts, branding, and overall appearance for each store to tailor storefronts to specific target audiences, products, markets, or customer segments.
  4. SEO Benefits: Enhance visibility in search engine results by leveraging domain or subdomain for each website.
  5. Scalability: Easily scale and expand your online presence by adding new stores as needed.
  6. Language-based Stores: Create separate stores for different languages to cater to customers from diverse backgrounds.
  7. Payment and Shipping Methods: Customize payment and shipping methods for each store, adapting to regional preferences.

Multistore Dictionary: Understanding Key Terms and Concepts

  1. Shop Groups: Allow you to organize and categorize multiple stores into groups for easy management.
  2. Shops: Are simply said the individual stores within a shop group.
  3. Physical URL: The directory or folder on the server where your shop is installed.
  4. Virtual URL: Create a shop with a custom URL that doesn’t correspond to a physical directory.

Answers to some common questions related to creating a multistore in PrestaShop:

  1. Can I have different pricing and discounts for each store in the multistore setup?
    • Yes, PrestaShop allows you to set specific prices and discounts at the store level.
  2. How do I manage product inventory and availability across multiple stores?
    • You can choose to share or manage product inventory independently for each store.
  3. Can I use different themes for each store in the multistore setup?
    • Yes, PrestaShop allows you to assign unique themes and designs to each store.
  4. Is it possible to have separate payment and shipping methods for each store?
    • Absolutely! Customize payment and shipping methods for each store based on regional preferences.
  5. Can I have different languages enabled for each store, and how do I manage language translations?
    • Yes, PrestaShop supports multilingual stores.
    • Manage language translations through the back office to provide localized content.

Please note that most of the features shared between stores can be disabled if needed (recommended to do that while setup).

Since the optimization of the checkout page is very crucial for running a successful ecommerce business and requires many different optimizations, we will split the processes into multiple chapters.

First, why is the optimization of checkout page that important?
The checkout process is where customers make the final decision to purchase your products, so it’s crucial to make it as easy and seamless as possible. By simplifying the checkout process, you can reduce friction and increase conversions, ultimately improving the overall customer experience.

So, let’s get started with it.

Minimize form fields: One of the biggest barriers to completing a purchase is a long and complicated checkout form. By minimizing the number of form fields required, you can reduce the time and effort required for customers to complete their purchase. Only ask for the essential information needed to process the order, such as name, email address, shipping address, and payment information.

Hint: This does not only simplify the checkout process, but also adds more trust to your store, since not everyone wants to share all their private details. Respecting others privacy, is very important and adds more value to your company.

Provide clear progress indicators: Customers want to know how much longer it will take to complete the checkout process. By providing clear progress indicators, such as a progress bar or step-by-step guide, you can help customers understand how much longer they have to go and reduce frustration and confusion.

Offer multiple payment options: Customers have different preferences when it comes to payment methods. By offering multiple payment options, such as credit card and PayPal, you can accommodate a wider range of customers and reduce the likelihood of cart abandonment due to payment issues.

Hint: While credit cards are the most used payment methods in countries like US, in other countries like Germany – it’s very different. They use Klarna, PayPal and other payment methods. So if you are going to sell to multiple countries, better do research on what payment methods are used most on those countries. I.e. Netherlanders uses iDEAL.

Use autocomplete and autofill: Another way to simplify the checkout process is to use autocomplete and autofill features. This means that when customers start typing in their information, such as their shipping address, the website will automatically populate the rest of the fields. This can save time and effort for customers and reduce the likelihood of errors.

Eliminate distractions: During the checkout process, it’s important to eliminate distractions and focus the customer’s attention on completing their purchase. This means removing any unnecessary links, buttons, or images that could distract the customer from completing their purchase.

By implementing these tips, you can simplify the checkout process and increase your conversion rate. However, it’s important to test and optimize your checkout process regularly to ensure that it’s working effectively. Use A/B testing to compare different checkout process designs and identify which one works best for your business.

In conclusion, simplifying the checkout process is crucial for increasing conversions and improving the overall customer experience in ecommerce. By minimizing form fields, providing clear progress indicators, offering multiple payment options, using autocomplete and autofill, and eliminating distractions, you can reduce friction and make it easier for customers to complete their purchase.