It's not difficult to download Magento 2. With some hosting companies, it only takes a simple request or "one-click" to do an initial installation of this powerful e-commerce platform. The question now becomes, "where do you go from here?"
Before you even download and install Magento, it's important that you take some time to plan. The temptation to dive right in and get your feet wet is strong – especially for those of us who enjoy exploring new technologies. However, this is perhaps the primary reason why many people abandon Magento even before they get off the ground. Not only are there lots of wonderful features and configurations to tackle, there are significant installation issues to consider even before you download the installer.
Avoid the "uninstall-reinstall" syndrome. Plan your installation before you install and you're less likely to have to start all over again at a later date.
In this chapter, the following topics will be covered:
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
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.
Magento is a powerful, full-featured e-commerce platform. With that power comes a certain degree of complexity (one very good reason to keep this book handy!). 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.
How are you going to be using your Magento installation? This list will help you focus on particular areas of interest in this book. 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!
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. As you use this book to craft a successful Magento store, always keep the end-user in mind.
Who are your users? Basically, your users are divided into two segments: staff and customers.
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, as described in Chapter 2, Installing Magento 2. Some users won't need access to all the backend 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. You also have in front of you the guidebook to give you a full appreciation of your capabilities.
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.
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.
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:
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 (explained in Chapter 6, Managing Non-Product Content), 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.
Fortunately, many Magento-friendly hosting providers offer assistance and expertise when it comes to optimizing your Magento installation. In Chapter 9, Optimizing Magento, we explain ways you can perform many of the optimization functions yourself, but don't hesitate to have frank discussions with potential hosting providers to find out just how much and how well they can help you with your installation.
If you choose to host the installation on your own in-house servers, note that Magento does require certain "tweaks" for performance and reliability, which we cover in Chapter 9, Optimizing Magento.
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.
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? (You'll learn how to do that in this book, but if you're hesitant to do it yourself, find a provider who can help.)
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. We'll cover this in Chapter 5, Configuring to Sell.)
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.)
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 book, 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.
Due to Magento's complex architecture, your servers should be powerful. The architecture, indexing, and caching schemas of Magento require considerable resources. While we will attack these issues in Chapter 9, Optimizing Magento, the more horsepower you have, the better your store will perform.
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_rewritemodule must be enabled.
MySQL 5.6 (Oracle or Percona).
PHP 5.5.10-5.5.16 or 5.6.0, with these extensions:
gd, ImageMagick 6.3.7+, or both
bc-math (only for Enterprise Edition)
SSL Certificate for secure administration access on production servers. Self-signed certificates are not supported.
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.
You can set up a complete Magento environment with PHP and MySQL on your own desktop computer or a local server in your office. In Chapter 10, Advanced Techniques, we'll provide detailed instructions for several different methods that can be used to install Magento on a local machine.
Now you're probably itching to install your first Magento store. In fact, you probably have done that already and have been fumbling through the vast labyrinth of configuration menus and screens. If you're like so many first-time Magento installers, you might feel ready to uninstall and reinstall; to start all over.
Most of the time, this "restart" happens when users try to take advantage of one of Magento's most powerful features: managing multiple stores. It seems easy when you look at the store management screen until you begin setting up stores, configuring URLs, and assigning specific configurations to each frontend website.
Before you begin laying out your master plan for the various websites and stores you intend to create (and even if you're only beginning with one website), you need to master the Magento methodology for multiple stores. Magento describes this as "GWS," which stands for "Global, Website, Store." Each Magento installation automatically includes one of each part of this hierarchy, plus one more for "Store View."
The following diagram shows how each part of GWS is related to one another:
Global refers to settings (for example, stock management rules) and values (for example, product price) for the entire installation. Throughout your Magento installation, you'll find Global displayed next to various form fields.
In terms of installation planning, your Global considerations should include:
Will customers be shared among all sites? You can elect not to give customers the ability to register for one website and automatically be registered to all others.
Can I allow any user with Admin permissions to see all orders and customers from all websites and stores within the single installation? Without modification, Magento does not allow you to set up Admin users by limiting them to certain websites and stores. If an Admin user can see orders, they can see all orders for all customers.
Will all stores within an installation use the same rules for managing inventory? Inventory rules, such as whether stock is to be managed or whether backorders are allowed, are system-wide choices. (These choices can be changed, in some cases, at the product level, though that does mean paying careful attention to how products are configured and managed.)
In general, we recommend that you consider a single Magento installation only for multiple websites and stores that are similar in concept. For example, if your online business is selling drop-shipped furniture through several differently branded websites, then a single Magento installation is ideal. However, if you have two or more different businesses, each with a different product focus, company name, banking, and so on, it is best to use a separate Magento installation for each discrete business.
The website is the "root" of a Magento store. From the website, multiple stores are created that can each represent different products and focus. However, it is at the website level that certain configurations are applied that control common functions among its children stores and Store Views.
As described above, one of the most important considerations at the website level is whether or not customer data can be shared among websites. The decision to share this information is a Global configuration; however, remember that you cannot elect to share customer data among some websites and not others: it's an all or nothing configuration.
What can sometimes be confusing is that "Store" for Magento is used to describe both a store structure as well as a Store View. When configuring your hierarchal structure, "Store" is used to associate different product catalogs to different stores under a single "Website," whereas "Store Views" can be created to display a "Store" in multiple languages or styles, each with their own URL or path. Each Store View can be assigned different themes, content, logos, and so on.
Yet, throughout Magento's many administration screens, you will see that "Store" is used to define the scope of a particular value or setting. In these instances, entered values will affect all Views under a Store hierarchy. We know this can be confusing; it was to us, too. However, by following the processes in this book, you'll quickly come to not only understand how a Store and Store View is referred within Magento, but also appreciate the tremendous flexibility this gives you.
How you utilize GWS in your particular case depends on the purpose of your Magento installation. With GWS, you have an enormous number of configuration possibilities to explore. That said, your configuration planning would generally fall within three major categories: multiple domains, multiple businesses, and multiple languages. Of course, in the real world, a Magento installation may include aspects of all three.
It's important to realize that Magento allows you to drive your e-commerce strategy according to your own business and marketing goals, rather than conforming to any limitations according to what your e-commerce platform might or might not be able to deliver.
It's becoming more popular in e-commerce to create multiple storefronts selling the same or similar products, each having a different domain name, branding design, and content. In this way, merchants can extend their marketing by appealing to different market segments, not just having one website trying to satisfy all consumers.
For example, let's assume you want to sell shoes online. You have a great distribution source where you can source all kinds of shoes, from dress to casual, running to flip-flops. While you can certainly have a comprehensive, "all types available" online shoe store, you might elect to secure different domain names focused on different segments of the shoe market.
www.runningshoes4you.com would cater to joggers, while
www.highheelsemporium.com features designer-quality dress shoes for women.
In Magento, you would create one website but create at least two stores, one for each of your domains. You might also create a third as an overall retail store for all your shoes. Each store could either share the same product catalog or each have its own separate catalog. By having all stores assigned to the same website, you have the ability to control certain configurations that apply to all stores. For example, if all the stores belong to the same retailer, as in this example, all would offer the same payment methods, such as PayPal.com or Authorize.Net. Most likely, the shipping methods you offer would be the same as well as your policies for returns and shipping.
In short, if all the domains belong to the same retail business, it may make sense to have one website with multiple stores, rather than to create entire website-store hierarchies for each product-focused domain. As you can see in the following diagram, this makes for a slimmer, more manageable structure:
In contrast, if your installation will be used to manage multiple businesses, you will need to create multiple websites. The reason for this is that actual, separate business entities will have separate payment system accounts (for example, PayPal, credit card merchant accounts, shipping), and therefore need to be able to segregate these between different websites.
To extend our example, let's assume your shoe retailer also owns a sideline business selling women's sportswear. This other business exists under a separate legal entity (for example, corporation, partnership), and therefore has different bank accounts, distributors, and customers. With Magento, you should create separate websites for each, even if they are to share certain products.
For instance, the sportswear site might also feature women's casual shoes, which are also offered by the shoe website. The same product can be assigned to multiple product catalogs (and therefore different stores) even if the catalogs belong to separate businesses. And somehow, through a complex database architecture, Magento succeeds in keeping all this straight for you. Amazing.
Even among some of Magento's top competitors in the open source e-commerce arena, very few provide the ability to create multiple language views of a website. Multiple language views are not simple matters for several reasons:
All site content, including links, instructions, error messages, and so on must be translated to the intended language.
The platform must seamlessly provide multiple language selection and, if possible, intelligently provide the appropriate language to the website visitor based on their geographical location.
Multiple languages can also infer the need to provide product prices in multiple currencies. Conversion rates vary almost minute-by-minute. Daily swings in conversion rates can affect profitability if the amounts shown online are not updated.
Magento has several tools to help you create multiple languages and currencies for retailers wanting to sell globally (or just provide multiple languages to users within a single country), which we will tackle in Chapter 2, Installing Magento 2. It all begins with creating multiple views for a given store.
In our example, our running shoe website needs to be available in both English and French, so you would create two views within the running shoe store, one for each language. In your Magento-powered website, you can easily include a small drop-down selector which allows a visitor to choose their preferred language based on the views you have created.
In fact, in most Magento theme designs, this dropdown is automatic whenever there are multiple views created for any given store.
Another interesting use of multiple views could be to segment your customer market within a store. For example, if you wanted your shoe store to have a different overall look for men versus women versus children, you could create multiple views for each customer segment, and then allow the visitor to choose their desired view.
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 investing 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 chapter, we outlined the key areas to consider when planning our Magento installation. We also learned about the powerful Global-Website-Store methodology for managing multiple web stores in a single installation. In addition, we looked at the possibilities of introducing multiple languages, businesses, and domains for effective market segmentation.
As we go forward in this book, we'll learn how each decision we make in installing, configuring, and managing Magento traces back to what we covered in this chapter. In the next chapter, we will be taking your plans from this chapter and applying them to a new Magento installation.