In this article by Jonathan Bownds and Bret Williams, authors of the book, Mastering Magento 2, Second Edition, we will learn the following topics:
- How to form a plan for your Magento installation
- How to analyze and research your hosting alternatives
- How Magento's powerful Global-Website-Store methodology gives you tremendous power to run more than one website in a single installation
- How to plan for multiple languages, business entities, and domains
(For more resources related to this topic, see here.)
Defining your scope
There are three important areas to consider when defining your e-commerce project:
- Your project requirements (What do you want to accomplish?)
- Your users (Who will be using your Magento installation? What are their roles and capabilities?)
- Your technical resources (What are your own skills? Do you have others on whom you will rely?)
It is never wise to skimp on defining and analyzing any of these, as they all play crucial roles in the successful implementation of any e-commerce project (or any web project). Let's look at each of them in detail.
Project requirements
Magento is a powerful, full-featured e-commerce platform. With that power comes a certain degree of complexity. It's important to take your analysis of how to leverage this power one step at a time. As you discover the many facets of Magento, it's easy to become overwhelmed. Don't worry. With proper planning, you'll soon find that Magento is quite manageable for whatever e-commerce project you have in mind.
It is very likely that your e-commerce project is ideal for Magento, particularly if you intend to grow the online business well beyond its initial design and configuration – and who doesn't? Magento's expandability and continued development insures that, as an open source platform, Magento is the ideal technology for both start-up and mature stores.
When considering Magento as a platform, here's what Magneto offers that makes it shine:
- Large numbers of products, categories, and product types.
- Multiple stores, languages, and currencies sharing the same product catalog.
- The ability to add features as needed, whether obtained from third parties or by your own efforts.
- Large, involved developer community, with thousands of experienced developers around the world. You are now a member of that community and able to share your questions and experiences through forums and blogs hosted by Magento and others, such as MageDaily.com.
- Robust, yet usable user interface for administering your store.
Where you might find Magento to be more than required is if you have only a small handful of products to offer or expect very few sales.
If you think that Magento might be too complicated to use as an e-commerce platform, think again. Power always involves some level of complexity. With Mastering Magento 2, we feel the challenge of using Magento will quickly become an appreciation for all the ways you can sell more products online.
Requirements checklist
How are you going to be using your Magento installation? This list will help you focus on particular areas of interest in this article. Answer these questions, as they pertain to your single Magento installation:
- Will you build more than one online store? How many? Will each store share the same products or different catalogs?
- Will you build different versions of stores in multiple languages and currencies?
- What types of products will be offered? Hard goods? Downloadable? Subscriptions? How many products will be offered?
- Will products be entered individually or imported from lists?
- How many customers do you expect to serve on a monthly basis? What is your anticipated growth rate?
- Are there particular features you consider to be "must-haves" for your stores, such as social marketing, gift certificates, newsletters, customer groups, telephone orders, and so on?
Whatever you can conceive for an e-commerce store, it can almost always be accommodated with Magento!
Planning for users
The second stage to defining your scope is to think about "users" – those who will be actually interacting with Magento: customers and store staff. These are people who have no technical expertise, and for whom using the site should be straightforward and intuitive.
Designers and developers may use Magento's administration screens to configure an installation, but it's the ones actually interacting with Magento on a daily basis for which designers and developers must plan.
Who will be your users? Basically, your users are divided into two segments: staff and customers.
Staff
Staff refers to those who will be using the Magento administration screens on a daily basis. Magento's administration screens are elegant and fairly easy to use, although you'll want to pay close attention to how you create user permissions. Some users won't need access to all the back-end features. By turning off certain features, you can make the administration area much more user-friendly and less overwhelming. Of course, regarding staff managers, additional permissions can give them access to reports, marketing tools, and content management sections. In short, as you work with staff, you can fine tune their back-end experience and maximize their effectiveness.
One key staff user should be designated as the "Administrator". If you're the one who will be responsible for managing the Magento configurations on an ongoing basis, congratulations! You now have at your fingertips the power to adjust your online business in ways both significant and subtle.
For store administrators, Packt Publishing offers a companion book, Learning Magento 2 Administration. This book, authored by Bret and Cyndi Williams, is the perfect training and reference book for your staff.
Customers
There are several types of customers, and they are based on their relationship to the vendor: retail and wholesale. Among these customers, you can also have customers that are members of the site – and therefore privy to certain pricing and promotions – both on the retail and wholesale level. You can also subdivide wholesalers into many other levels of manufacturers, jobbers, distributors, and dealers, all operating through the supply chain.
Magento has the ability to handle a variety of different users and user types, including all the ones mentioned above.
The one caveat to consider when scoping users is that if you are going to use a single Magento installation to operate more than one business – which can certainly be done – you cannot create unique permissions for staff users which restrict them to managing the content, customers, and orders of any one business.
Assessing technical resources
As reviewed in the Preface, there are basically three different types of people who will be involved in any Magento installation: the Administrator, the Designer, and the Developer. Which one, or ones, are you?
As a complete, installable platform, make sure you have sufficient technical resources to handle all aspects of web server configuration and administration. It is not uncommon to find one or maybe two people tackling the installation, configuration, and management of a Magento installation. The web industry is well populated with "Jacks-of-all-Trades." As you analyze your own technical abilities, you may find it necessary to hire outside help. These are the disciplines that can help you maximize your Magento success:
- User interface design: Even if you use one of the many themes available for Magento stores, you will find the need to adjust and modify layouts to give your users a great online experience. Knowledge of HTML, CSS, and JavaScript is critical, and the use of these across multiple browser types means maximum accessibility.
- PHP: Many people setting up a Magento store can avoid having to work with the underlying PHP programming code. However, if you want to expand functionality or significantly modify layouts, the ability to at least navigate PHP code is important. Furthermore, a familiarity with programming standards, such as the model-view-controller methodology used in Magento coding, will increase your ability to modify and, when necessary, fix code.
When hiring a developer for your Magento store, make sure you find someone with specific experience with Magento 2. The new architecture and coding standards require particular knowledge. Magento provides a list of certified Magento developers at http://www.magentocommerce.com/certification/directory. Be sure to inquire about Magento 2 qualifications.
- Sales processes: Selling online is more complex than most newcomers imagine. While it appears fairly simple and straightforward from the buyers point of view, the backend management of orders, shipping, payment gateways, distribution, tracking, and so on. Requires a good understanding of how products will be priced and offered, inventory managed, orders and returns processed, and shipping handled. Businesses vary as much by how they sell their products as they do by the product categories they offer.
- Server administration: From domain names and SSL encryption to fine-tuning for performance, the management of your Magento installation involves a thorough understanding of how to configure and manage everything from web and mail servers to databases and ftp accounts. In addition, PCI compliance and security is becoming an increasingly important consideration.
Technical considerations
You have assessed the technical knowledge and experience of yourself and others with whom you may be working, now it is important that you understand the technical requirements of installing and managing a Magento installation.
Hosting provider
If you're new to Magento, I certainly recommend that you find a capable hosting provider with specific Magento experience. There are many hosting companies that provide hosting suitable for Magento, but far fewer who invest resources toward supporting their clients with specific Magento-related needs. Keep these points in mind as you research possible hosting candidates:
- Do they provide specific Magento support for installing and optimizing?
- Can they provide PCI compliance? (If you're going to accept credit cards online, you'll be asked by your merchant account provider to be "PCI" compliant.
- Are they a Magento Partner? (The Magento website lists companies who they have designated as "Solution Partners." While this is a good place to start, there are many other hosting providers who are not official partners, but who do an excellent job in hosting Magento stores.)
- Do they have links to client sites? (If Magento stores are properly optimized, and the servers are fast, the websites will load quickly.)
In-house hosting
You may already be hosting PHP based websites, have a robust server setup, or manage racked servers at a hosting facility. In these instances, you might well be capable of managing all aspects of hosting a Magento installation. In this article, you will find considerable information to help you configure and manage the server aspects of your Magento installation. We do repeat the advice that if you're new to Magento, an experienced hosting provider could be your best friend.
Servers
Due to Magento's complex architecture, your servers should be powerful. The architecture, indexing, and caching schemas of Magento require considerable resources.
To host your own Magento installation, your server must have the following minimum requirements:
- Linux x86-64 operating system.
- Apache 2.2 or 2.4, or nginx 1.8+. The apache mod_rewrite module must be enabled.
- MySQL 5.6 (Oracle or Percona).
- PHP 5.5.10-5.5.16 or 5.6.0, with these extensions:
- PDO_MySQL
- Mbstring
- Mcrypt
- Mhash
- SimpleXML
- Curl
- Xsl
- gd, ImageMagick 6.3.7+, or both
- soap
- intl
- bc-math (only for Enterprise Edition)
- openssl
- SSL Certificate for secure administration access on production servers. Self-signed certificates are not supported.
- Mail transfer agent (MTA) or an SMTP server.
Magento 2 can also use Redis 3.0 or Varnish 3.5/4.x for page caching and memcached for session storage.
The best of both worlds
Most Magento Community users we know (and there are lots!) opt for a hosted solution. Even with our own experience managing Web servers, we too use a third-party hosting provider. It's easier, safer and, in most cases, far less expensive than duplicating the same degree of service in-house.
However, we do enjoy installing and testing open source platforms in-house, rather than setting up another hosting account. This is especially true when working with new platforms. Setting up an in-house installation can also allow you to test modifications, extensions, and updates before installing them on your live production server.
Setting up a local test installation
You can set up a complete Magento environment with PHP and MySQL on your own desktop computer or a local server in your office.
Summary
The power of Magento can also be a curse, particularly if you're like many of us: eager to jump in and begin building an online store. However – and this comes from the experience of wasting lots of hours – taking a moment to understand the scope of your undertaking will make navigating the intricacies of Magento a much more rewarding experience.
In this article, we outlined the key areas to consider when planning our Magento installation.
Resources for Article:
Further resources on this subject:
- Getting Started with Bootstrap [article]
- Magento 2 – the New E-commerce Era [article]
- Drupal and Ubercart 2.x: Install a Ready-made Drupal Theme [article]