You are on page 1of 138

1 4 pages

Solutions Specialist Guide




PREFACE
You downloaded the most comprehensive study guide for the Magento 2
Certified Solution Specialist certification (testing your knowledge of Magento
Commerce 2.3). This covers the exam which was released in March 2019.

I had the pleasure of helping write this test and can say from first-hand
experience (and in talking to others who have attempted the test), that this is
a difficult exam. It tests practical, real-life situations that you will likely run into
in your career with Magento. It ensures that you are a professional who can
understand client needs and map those to a successful result in Magento.

Our goal is that this guide serves two purposes:

1. For those who are new to Magento, this guide serves as an overview of
managing Magento projects. Neither the guide nor the test is technical in
that they require knowledge of code. Rather, the guide helps you understand
the areas that practical experience is necessary.

2. For those who are experienced in Magento, this guide will help fill in the
voids to ensure a thorough understanding of how it works.

Solution Specialist Prep Course


Keep in mind that this study guide provides knowledge, not experience.
Experience comes through practice. And that is why we have developed the
Solution Specialist Prep Course: a 100% pass-guaranteed course designed to
help pull you across the finish line. In it, you get:

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 2




• hours of video training to learn more about Magento

• practical exercises to equip yourself for success

• your own sandbox where you can get this practical experience for yourself

• A private forum where you can ask additional questions

This is a recipe for success. Our commitment to helping you pass is found
in the 100% pass guarantee. You pass or we reimburse further attempts and
personally help you.

If you have at least 8 months’ of experience managing Magento projects, the


prep course is for you. I have heard from many people that the prep course not
only prepared them to pass, it also gave them more knowledge. They feel more
confident and equipped to tackle their responsibilities.

Read more here.

“His training course for the Solution Specialist was thorough and was
instrumental in helping my team pass with flying colors.”
Ben, CEO at 121ecommerce

Acknowledgments
I would like to extend heartfelt gratitude to the following individuals who
contributed by edits or comments to the development of the study guide.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 3




These people graciously donated their time to help others out. If you see them
at a conference or on Twitter, please thank them.

• Jamie Cho (Blue Fish)

• Matt MacDougall (RocketWeb)

• Anton Trinh (Improove)

• Daniel Gross (121ecommerce)

• James Lickwar (IWD)

All the best!


Joseph Maxwell

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 4




CONTENTS

1 eCommerce................................................................... 7
1.1 Demonstrate ability to configure SEO
features in Magento....................................................... 8
1.2 Demonstrate understanding of securing a
Magento project............................................................. 14
1.3 Demonstrate understanding of how to
measure and analyze the User experience....................... 20
1.4 Demonstrate knowledge of key laws and
regulations impacting eCommerce................................. 23
1.5 Demonstrate ability to use data analytics and testing..... 27
1.6 Demonstrate understanding of
implementing Omnichannel  .......................................... 29
2 Magento Architecture..................................................... 38
2.1 Demonstrate ability to design a Cloud solution .............. 39
2.2 Demonstrate understanding of key
concepts of the Magento architecture ............................ 43
2.3 Demonstrate knowledge of how to use the
Magento API for integrating with 3rd party systems........ 48
2.4 Demonstrate ability to design and
administer websites, stores, store views........................ 53
2.6 Demonstrate ability to identify infrastructure
requirements for a Magento project................................ 59
2.7 Demonstrate ability to configure the
Magento storefront functionality.................................... 62
3 Magento Admin and Storefront....................................... 64

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 5




3.1 Demonstrate ability to use the Magento Admin.............. 65


3.2 Demonstrate ability to use content staging
and previews.................................................................. 66
3.3 Demonstrate ability to configure the shopping cart........ 69
3.5 Demonstrate ability to configure shipping methods........ 77
3.7 Demonstrate ability to set up order processing............... 81
3.8 Understand the use of extensions and customizations.... 83
3.9 Demonstrate ability to manage customers..................... 86
3.10 Demonstrate ability to use the CMS ............................... 92
3.12 Demonstrate ability to Import/Export ............................ 101
3.13 Demonstrate understanding of reporting in Magento...... 103
4 Business and Applications.............................................. 105
4.1 Demonstrate ability to gather requirements................... 106
4.2 Demonstrate ability to create
Internationalization / Multi-site setups........................... 108
4.3 Demonstrate ability to create
customer loyalty programs............................................. 112
4.4 Demonstrate understanding of
laws and regulations....................................................... 113
4.5 Demonstrate ability to apply taxes................................. 116
5 Catalog.......................................................................... 121
5.1 Demonstrate how to use products.................................. 122
5.2 Demonstrate ability to use different product types......... 124
5.5 Demonstrate ability to scale catalogs............................. 134

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 6


1 ECOMMERCE
8 questions

Solution Specialist Guide


eCommerce

1.1 DEMONSTRATE ABILITY TO CONFIGURE


SEO FEATURES IN MAGENTO

Marketing strategies: Omnichannel, multichannel, SEO,


affiliate marketing, social marketing, email marketing

Omnichannel, Multichannel

Omnichannel is the integration of all sales channels. A sales channel is how


customers can purchase products from you: brick and mortar store, website,
social media platform, etc. Customers are coming to expect that these channels
are integrated: they can purchase online and then return in-store.

Multichannel is when a company has multiple sales channels, but they are not
integrated. This often leads to customer frustration.

SEO

Search engine optimization is the darling child of online shops. Getting to the
#1 place on the respective search engines is not an overnight task and involves
several concurrent projects. However, getting to page one is often worth the
effort. Additionally, you do not pay per click (unlike paid advertising, such as
Google Ads), so the cost per click is perceived to be less. Whether or not it is, is
another discussion that depends on many factors.

I believe that every Solution Specialist should have a basic working knowledge
of SEO as it is so critical to helping merchants increase revenue.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 8


eCommerce

We are going to present an overly simplified version of SEO with links for you to
gain more understanding.

Key: "Make pages primarily for users, not for search engines." (source:
Basic‌ Principles)

Content

Is the content that is on a website


helpful and relevant to visitors? The first
question to ask is if you find it helpful.
If you do, likely visitors will too. If the
content on a site is spammy, salesy or
just plain unhelpful, search engines will
also likely find it unhelpful.

One way to help assess the value of


content on a website is through the
Bounce Rate. This is the percentage
of people that come to your page and
leave before visiting another page. You
probably "bounce" a number of times
daily: you search for something, click on
a result and immediately click back.

The higher the number, the fewer people are pleased with your page. The lower
the number, the more people find helpful your content.

Google Analytics has several informative reports that utilize the bounce rate:

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 9


eCommerce

• Audience > Mobile > Overview (how your visitors perform by device)

• Acquisition > All Traffic > Channels (how traffic performs for each incoming channel)

• Behavior > Site Content > All Pages (how specific pages perform)

Further Reading:
Reduce Bounce Rate in Google Analytics

Backlinks

How many people link to your website? The more links from quality sources
(reputable websites), the better. Google views your website as an authority
and will boost your rankings. SEO firms often utilize link building campaigns to
encourage other people to link to you.

Common SEO impacts

While your job title may not be "SEO expert," you do need to know some
basic troubleshooting tips—ones that will save you and your merchants many
headaches.

• When creating a new website, ensure that every page on the old website
redirects to a page on the new website. This is done by creating redirects
in the Magento admin (Marketing > URL Rewrites) or through web server
configuration. Google has enough trouble browsing a website that has a new

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 10


eCommerce

URL and file structure, and by not providing the new versions of these links,
it is a recipe for a major disaster. Sadly, I have seen this impact way too many
websites—all by competent Magento agencies.

• All duplicate content (staging or development sites) should be locked


down with HTTP authentication (a password). You should also configure
the robots.txt file to disallow access for all robots. You can also set in
Store Configuration to put a meta tag on each page to prevent indexing or
following links.

• Ensure that all titles and descriptions have unique content. Magento provides
entries for this content on categories, products, and CMS pages.

• Utilize a sitemap and submit this to Google Webmaster tools. You can tell
Magento to generate this on a schedule.

• Ensure Google Analytics is correctly installed and monitor it.

• We have also been seeing a drop in search engine rankings where an old
website is migrated to Magento, but the content structure is not the same.
For example, the old website might have few content-heavy pages (like
combining category and product pages). Magento has many content-light
pages. Utilizing a slow migration can help reduce loss of rankings, and
ultimately, loss of traffic.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 11


eCommerce

Further Reading:
Comparison of Google clickthrough rates by position

Search Engine Optimization (SEO) Starter Guide

Webmaster Guidelines

What is a link building campaign?

The Web Robots Pages

The "all-important" canonical link element.

The canonical link element is an HTML meta tag that resides in the HTML source
(right-click on a page and click View Source).

In Magento, there are pages that can show the same content as other pages.
The best example is a product page (from the Magento Luma store):

1. /gear/bags/push-it-messenger-bag

2. /push-it-messenger-bag

3. /catalog/product/view/id/14

If Google has knowledge of each of these links (#1 and #2 are the biggest
problems), it might not know which items to show to visitors. You might have
search engine results pointing to the #1 scheme and others pointing to the #2
scheme.

The canonical URL resides in the head tag:

<link  rel="canonical" href="https://swiftotter.com/push-it-messenger-bag" />

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 12


eCommerce

This tells Google that the canonical (authoritative) reference to this page is the
'href' link. To enable it, go to Store Configuration > Catalog > Search Engine
Optimization > Use Canonical Link Meta Tag For Products and Use Canonical
Link Meta Tag For Categories.

Note that this feature is quite basic for products. By default, Magento only links
to the product in the website root URL and not the category > product path.

Social merchandising/marketing
Social merchandising is encouraging a customer to take actions on your behalf.
Here are examples:

• Clicking the Facebook like button on your product.

• Writing a review of the product.

• Sharing your product via a tweet.

• Pinning your product image.

One reason this is effective is that customers rely on social proof, where others
provide their word about the product or service that you are offering. As you
can encourage your customers to provide more of this proof (through social
merchandising) you and your customers win.

Affiliate marketing
Affiliate marketing is when other people link to you and you give them a cut of
your profits as a "thank you" for the traffic or sales. This can motivate influencers
to send traffic your way.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 13


eCommerce

Magento has no system for tracking this, and you need to use a third-party
module.

1.2 DEMONSTRATE UNDERSTANDING OF


SECURING A MAGENTO PROJECT

What is the meaning of "PCI compliance"?


When a merchant is "PCI compliant," they are in compliance with the standards
put forth by the Payment Card Industries.

These standards are segmented into two primary areas of concern:

• PCI-DSS: data security standards. These cover the entire organization which
accepts payment cards (credit and debit cards).

• PA-DSS: application security standards. This covers the application, such as


Magento.

PCI compliance dictates how an organization must treat payment card data.

The "big idea" is to limit access and availability of cardholder data to the
minimum necessary and establish policies to ensure that this minimum
availability is maintained. This is called minimizing "scope." The less scope
you have to ensure is PCI compliant, the easier your job is. More importantly,
reducing scope reduces the area that you have to protect against data breaches.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 14


eCommerce

PCI Merchant Levels


There are 4 merchant levels: Level 1 through Level 4. These levels are primarily
determined by the number of payment card transactions. Level 1 merchants
have over six million payment card transactions in a year. As such, they are a
higher profile for security breaches and need to take extra precautions. The
other way to fit into Level 1 is if you have had a security breach.

Level 1 merchants are not eligible for a Self-Assessment Questionnaire (see next
section). Their compliance must be signed off by a Qualified Security Assessor
who writes up a Report on Compliance.

All other merchant levels have varying requirements for compliance. Most
Magento merchants fit into Level 2 through Level 5.

Further Reading:
A Beginner's Guide to the PCI Compliance Levels

Self-Assessment Questionnaire (SAQ)

To verify compliance, Level 2-Level 4 merchants must self-assess their


organization. This questionnaire ensures proper standards are met and controls
are in place.

The self-assessment questionnaires are labeled. We do not have time to go into


each one, but I recommend being familiar with the labels. Here are the most
common you will run into:

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 15


eCommerce

• A: ecommerce (or mail/telephone-order) merchants who have completely


outsourced credit card functions to a compliant 3rd-party. In my
interpretation, this would be utilizing any type of redirection for payment.
When someone enters their credit card, the URL in the address bar is the
payment provider's website (like paypal.com).

• A-EP: ecommerce merchants who have in-page payment processing, but the
card does NOT proceed through merchant servers. In my interpretation, this
would be Braintree or Stripe or Paypal Express.

• D: merchants who do not fit into other categories. In my interpretation, if


credit cards are processed through the merchant server, the merchant falls
into this category.

Please take time to familiarize yourself with the quick-start guide. I highly
recommend the requirements awareness training: it isn't much money for the
value that you gain.

Further Reading:
Assessing the Security of your Cardholder Data

PCI Awareness Training

PCI Quick Reference Guide

What are alternatives to creating a PCI-compliant site?


Tell the merchant not to accept credit cards. If credit cards are accepted,
the merchant must be PCI compliant. Remember, PCI compliance is whole-
organization compliance and not "just the credit card" areas.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 16


eCommerce

What is SSL, and when should it be used?


SSL is Secure Sockets Layer. It is denoted by the "https://" in your browser URL.
This protocol encrypts traffic between the merchant and the visitor. PCI
Compliance now dictates that TLS v1.1 or better are the only protocols available.

Further Reading:
Are You Ready for 30 June 2018? Saying Goodbye to SSL/early TLS

What is a DDoS attack?


A DDoS is a Distributed Denial of Service attack. This is where multiple (but can
be one) machines send many requests to a server with the intent of crashing it.

We recently observed an attempt at this on Magento 1. A machine added a


massive number of products to their cart. This had the effect of the website
taking a long time to load. Then, they refreshed the cart and accessed the
checkout pages many times. These pages are not cached and involve many
database interactions. This was easy to find and block as only one IP was the
perpetrator. When these attacks are distributed, they can be much harder to
detect and mitigate.

What is a firewall?
A firewall monitors incoming traffic. At the basic level, a firewall opens and
closes ports. Typically the http (80) and https (443) ports are open to everyone.
Other ports are often opened to specific IP addresses. At more advanced levels,

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 17


eCommerce

Further Reading:
Distributed Denial of Service (DDoS) attack

firewalls watch incoming traffic and can block based on specific packets
(mitigating Magento vulnerabilities).

Further Reading:
What is a Firewall

What is Spear Phishing and how do you counteract it?


Spear Phishing is when a malicious individual or organization creates targeted
emails. These are designed to appear legit and similar to emails from trusted
organizations. The goal is to harvest sensitive credentials.

Counteraction is a mixture of technology and training. Many email clients are


now showing a warning message when the sender is not trusted. That being
said, nothing works like good ol' training: don't click links for anything sensitive
in your email. It takes a few extra seconds to Google the website and login to
their website from Google.

Which steps do you take to enable TLS?


Ask a developer to do this. They will change the server's configuration.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 18


eCommerce

Further Reading:
What is Spear Phishing?

What is difference between TLS and SSL?


SSL is the global word used to describe "secure websites." However, TLS is the
technically accurate term. TLS is the only approved protocol for securing HTTPS
websites (for PCI compliance). SSL v3.0 and TLS v1.0 are outdated and
vulnerable.

Further Reading:
Transport Layer Security

What other security features exist in Magento 2?


Magento 2.3 provides a number of valuable security features. These are found in
the Admin panel:

• Stores > Configuration > Security


• Stores > Configuration > Advanced > Admin

• System > Permissions > User Roles

Magento 2.3 includes the capability to enable 2-factor authentication using


Google Authenticator, U2F (Yubikey), Duo Security (fee from Duo), and Authy
(fee from Authy/Twilio). The last two offerings allow you to authenticate via
text message. Google Authenticator requires the Google Authenticator app
(1Password also works).

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 19


eCommerce

How can security patches be applied?


Patches are applied through several routes:

• Automatically (bad idea): Magento recommends a cron (automated) script


that runs nightly to keep Magento up to date. This is bad because even patch
versions (for example v2.3.1, the last number) bring new features and are
quite notorious for breaking things.

• Development team: Instead, utilize your development resources to update


Magento in a development or staging environment. Test and then move to
production. No update should ever be performed live on production.

As we will discuss later, these same procedures also apply for installing or
updating modules.

One thing to note is that Magento 2 requires time to build. If this is done
on production, the site will be down for that duration of time (longer, if
something breaks).

1.3 DEMONSTRATE UNDERSTANDING OF


HOW TO MEASURE AND ANALYZE THE USER
EXPERIENCE

What are typical usability principles and issues?


One of the most important fundamentals to ecommerce development is to
innovate within what is familiar.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 20


eCommerce

A good example is driving a car. When you rent a car, there is little to no learning
curve. You push on the gas pedal, switch on/off the blinkers, and press the
brakes. The seat may feel different, the windshield wiper toggle may be in a
different location, and the cruise control might be buttons instead of levers.
Regardless, you get in the car and feel almost instantly comfortable with your
surroundings. That is even though the car might be affordable or a high-end car
(we aren't talking about super-expensive cars).

This is the same way with a website. Things need to be fairly common
and intuitive:

Header with logo (that takes you back to the home page).

• Navigation bar

• Easy add to cart

• Cart page (before checkout)

• Checkout

Within this framework (and some additional points), designers have tremendous
latitude. Yet, this needs to be tempered by what your audience expects.

The audience itself can be a driving factor. For example, if the merchant sells
to a more elderly market, fonts should be bigger, and certainly nothing crazy
should happen on the site.

But, if the merchant is targeting younger generations, the designer can have
more leeway as younger people are more responsive to "cool" things.

Further Reading:
eCommerce usability: The ultimate guide

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 21


eCommerce

Analyzing data
Google Analytics is the ubiquitous tool for determining how a website is
performing. Here are some common statistics that are helpful in understanding
how users value a website:

• Bounce rate: the number of visitors that return to the search engine (or
referring website) without clicking to a new page. The lower this is the better.
However, we have run into a number of cases where the bounce rate is very
low because the page view event in Google Analytics was fired twice.

• Conversion rate: the number of visitors divided by the number of purchases.


This is the number of visitors who make a purchase. The higher, the better.

• Average order value: the average amount ordered. The higher, the better.

• Session duration: the length of the average browsing session. The longer this
is, either people are having a hard time finding what they want, or they really
like the content on this page.

• Pages / session: the average number of pages that a visitor goes to during a
given browsing session.

Further Reading:
The Secrets Behind Google Analytics Conversion Rate

Cut Through the Confusion in Google Analytics By Looking At


These 12 Numbers Only

For instance, when a user leaves an ecommerce site without completing a


purchase they began, what usability issues need to be planned for?

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 22


eCommerce

Magento Commerce offers the capability to send an abandoned cart email.


DotMailer (bundled with Open Source and Commerce) also provides this
capability.

Once the user clicks the email, they should be:

• Returned to the cart page

• Able to see the contents of their cart

1.4 DEMONSTRATE KNOWLEDGE OF KEY


LAWS AND REGULATIONS IMPACTING
ECOMMERCE

What is VAT?
VAT is value-added tax. This is a system of taxation that is utilized in most
countries around the world.

Our discussion of VAT is focused on Europe's implementation of it.

The idea is that tax is paid through layers. Each company remits VAT based on
the difference of the purchasing and selling prices. If a grocery store purchases
a loaf of bread for 1€ and would like a markup of 0.50€, they pay VAT on the
0.50€. VAT rates are often around 20% or more, so the grocery store adds 0.10€
in VAT to the total, sells the loaf of bread for 1.60€ and remits 0.10€ to the
taxation authority.

VAT is charged to all B2C customers, whether it is shipped in-country or to


another country in the EU. The VAT rate is that of the destination country.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 23


eCommerce

VAT is usually charged to all in-country B2B customers.

VAT is not charged to out-of-country B2B customers when their VAT ID is


validated. Magento offers the capability to automatically validate VAT IDs.

Further Reading:
VAT rules and rates

E-commerce, distance and off-premises selling

Germany VAT Guide for Businesses

What is digital VAT and how does it impact


downloadable product sales?
Digital VAT applies to all digitally-delivered products. Companies selling to
customers in the EU are required to register, charge, and remit collected digital
VAT taxes.

Further Reading:
The Ultimate Guide to EU VAT Digital Taxes

ADA compliance
ADA (American Disability Act) compliance ensures that website visitors with
disabilities can properly access your website using assistive devices, such as
screen readers.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 24


eCommerce

The web standards governing the implementation of ADA compliance is WCAG


2.1 (if this ebook isn't boring enough, feel free to peruse this book: Web Content
Accessibility Guidelines (WCAG)).

While complying with these rules can be very complex (level AAA, for example),
following general guidelines like adding “alt” attributes to image tags and “title”
attributes to links is an important basic step to take.

There are three levels of compliance:

• Level A: the minimum level to overcome the worst problems in navigating a website.

• Level AA: the "reasonable" level to target for most websites.

• Level AAA: the website conforms at the very highest levels.

Further Reading:
Design for All: Accessibility For The Web

What Does ADA Compliance Mean for My Website?

GDPR Compliance
I hope you are familiar with GDPR compliance and what that means for
merchants (especially those operating in the EU).

Here are the key points.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 25


eCommerce

Data protection

Companies must employ "reasonable" protection for their user's data.


Reasonable has not been tested or defined. Presumably, reasonable would
be not to publish user data. What is user data? Anything that is personally
identifiable (including IP addresses) or considered sensitive (see the links in the
further reading for better definitions).

Users also have the right to see their stored data and request it be erased.

GDPR also sets up requirements for companies to have a designated Data


Protection Officer (https://gdpr-info.eu/art-37-gdpr/). This person makes sure
that policies are followed, that compliance is maintained, and is the point
person for interacting with the supervisory authority.

Company responsibility

GDPR defines a basic framework (aka common sense) for how companies should
treat customer data. If the company is switching technologies or something similar
that could affect the security of their customer's data, they must perform a data
protection impact assessment.

When a data breach occurs, the company must notify the applicable supervisory
authority within 72 hours. They must communicate to their customers the impact.

Further Reading:
What is GDPR? The summary guide to GDPR compliance in the UK

GDPR

General Data Protection Regulation (GDPR): What you need to


know to stay compliant

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 26


eCommerce

1.5 DEMONSTRATE ABILITY TO USE DATA


ANALYTICS AND TESTING

Google Analytics
Google Analytics is the primary website usage tracking and aggregation tool.
This is easily configured in Stores > Configuration > Sales > Google API. There
you can enable Google Analytics or Google Tag Manager (GTM). Note that
Magento's GTM integration does not output dataLayer variables.

You can also enable Google Adwords tracking to track conversions.

These tools are an effective way to monitor traffic and usability of a website. It
is helpful for studying user trends. You are able to determine which pages have
a poor bounce rate. Or, see how the conversion rate improves with updates to
the purchase process. You can install a new theme on a website and track the
pages per session to see if customers are more engaged.

Further Reading:
Google Analytics for Beginners

A/B testing
You might want to know which design or piece of content resonates better
with visitors. A/B testing provides the solution for this. Using Google Optimize,
Optimizely or a myriad of other testing software, you can show two or more

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 27


eCommerce

versions to customers. These tools then track which has the best engagement
or goal conversions.

The learning from which customers prefer what version should guide future
decisions. This learning should also prevent making massive mistakes (such as
launching a new checkout process that nobody likes).

Further Reading:
A/B Testing

Optimization and personalization


This is a big trend thanks to improved technology: providing personalized
content on a website. Most often, this happens with related/upsell/cross-sell
products (native Magento), sales (native Magento), and search results (third-
party). There are many other ways to personalize, such as splashing the user's
name across the site and customizing content to their location. This also can be
showing pricing in their currency and rendering content in their language.

Further Reading:
Ecommerce Personalization

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 28


eCommerce

1.6 DEMONSTRATE UNDERSTANDING OF


IMPLEMENTING OMNICHANNEL  

What products and tools does Magento have to handle


complex inventory management?
Magento has several tools that help with inventory management:

• The old inventory system: one product inventory location per product.

• MSI (multi-source inventory): released in Magento 2.3, this allows the


maintenance of inventory in multiple regions, as well as providing fulfillment
recommendations.

• Order Management: this is a stand-alone tool that links all fulfillment


locations together.

What B2B tools does Magento implement?


The Magento B2B module is included with Magento 2.2 Commerce and better.
This module provides common features that B2B websites require. Note that
this module is not automatically installed.

This area will serve as a basic overview of B2B. If you would like additional
information about this module, please consider our guaranteed prep course, as
we delve deeper into B2B features and how to utilize them.

The B2B module provides the capability to:

• Manage company accounts

• Define access controls for company accounts so they can create sub-
accounts and manage purchases for these accounts.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 29


eCommerce

• Create specialized product catalogs with unique pricing.

• Create quotes that have custom prices: these quotes can then be purchased
by the customer on the frontend.

• Quick order by SKU

• Create requisition lists

We will take a look at the features of each of these capabilities. Please note that
no amount of reading substitutes for experience. This test requires advanced
knowledge of Magento Commerce and a good understanding of Open Source.

Manage company accounts

A key component of B2B is treating companies as a separate entity from a


customer. While this is a workaround for Open Source, B2B makes this no
longer necessary.

You will find company accounts in Customers > Companies.

In the company screen, you can set up all the normal fields (address, tax ID,
comments, who is the point of contact, etc.). You can also configure their
available payment terms and how much they have spent against that.

You can also configure their shared catalog (from Catalog > Shared Catalog, see
following section). This is how you assign the specific catalog of products to
members of a company.

Finally, you can configure if they can have quotes and which payment methods
can be used.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 30


eCommerce

When a company signs up on the frontend (this can be disabled), they go into
the Pending Approval status. An administrator must move these companies into
the Approved status for them to begin purchasing. Once the company is
approved, the primary contact receives an email stating as such (they receive
emails for each company status change).

Further Reading:
Company Accounts

Company account permissions / frontend

If allowed, anyone can create a company account. The visitor specifies initial
information and can submit the application.

If the visitor already has a user account, that account will be assigned as the
primary contact. Otherwise, Magento will create a new customer, who will
receive an email to set a password.

Once in the company account, the new manager can:

• edit their company information


• create new users

• assign a company hierarchy tree

• create and assign permissions for company users

This allows the procurement manager for a company to have great powers over
how the website is utilized.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 31


eCommerce

Here is a chart of the permissions available:

Product catalogs
There are many instances where
merchants have custom product offerings
and pricing for companies they sell to.
Magento B2B allows easy customization
of this with Shared Catalogs (Catalog >
Shared Catalogs).

If share catalog is enabled, each Magento


instance has one Public Shared Catalog
and as many Custom ones as necessary.
There must always be a Public catalog
enabled as this controls the pricing and
products visible to not-logged-in visitors.

You can switch any Custom catalog to be


a Public catalog. Doing so will convert the
existing catalog to be a Custom catalog.
In addition, all companies who have
been assigned to the existing catalog will be switched to the new catalog. All
companies assigned to the new catalog will remain assigned.

Assigning products and prices happen through the Set Pricing and Structure. You
can disable any category of products. You can also set a fixed price or a discount
for products. You can also do this en masse.

Further Reading:
Shared Catalogs

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 32


eCommerce

Further Reading:
Company Structure

Create quotes

The final major feature that we will cover in the Magento B2B module is the
ability to create quotes with custom prices.

Once customers populate their cart with desired products, they can choose to
request a quote (note that this feature can be toggled for all companies and
individual companies). Once they submit the request, they are taken to a list of
quotes in My Account.

Administrators can:

• update the contents of the cart

• write notes

• set a new price for the cart, apply a discount percent or apply a discount amount

• set an expiration date

• send the quote back to the customer

The customer can then purchase the quote.

What is MSI?
Multi-source inventory is a new feature for 2.3. It brings new ideas to the table.
We will provide basic information about the concepts surrounding MSI, but
suggest that you delve into the documentation. We believe that this feature will

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 33


eCommerce

become heavily used by merchants and it is important that you are familiar with
its configuration.

Terminology
• Source: fulfillment location, such as a warehouse, physical store, or your garage.

• Sales channel: a Magento website (as in the website scope).

• Stock: the link between a source and a sales channel. A stock can be linked to
multiple sales channels (websites) and multiple sources.

Source

These define where inventory is stored. Each website has a default source.
Sources are configured in Stores > Sources.

You can specify a latitude and longitude for each source. If you also specify
a Google API key in Store Configuration, Magento will calculate the distance
between the shipping address and the source, choosing the closest source to
reduce shipping costs.

Stock

Stocks provide the link between sources and websites. These are configured in
Stores > Stocks. You can configure the sales channels (websites) and sources.
Sources are orderable.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 34


eCommerce

Further Reading:
Quotes

Products

Once multiple sources have been specified, you are now able to set quantities
for each.

One thing to note is that you can specify a “Notify Quantity” per source. This is,
in effect, the safe (reserve) stock quantity at a source location. For example, if a
source is a physical retail store, you would want to keep some level of inventory
on the shelf for walk-in customers.

Orders

When orders are placed for products that have multiple sources, the quantity is
not immediately deducted. Rather, the person creating the shipment can
choose the source. Here is an example:

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 35


eCommerce

You are able to change the source algorithm (distance or source priority) and
create a shipment. Shipments are created for each source. If you wish to ship
some inventory from one location and other inventory from another location,
you would create two shipments, specifying the source for each shipment.

Configuration

MSI provides configuration values to select the distance provider (Google Maps
or offline).

This is somewhat off-topic, but in Magento Commerce, you can select "Use
deferred Stock update" in the Catalog Inventory configuration. Enabling this
makes the inventory table updates happen asynchronously after an order is
placed. Not enabling this can lead to errors when two or more orders are placed
at the exact same time.

Further Reading:
Inventory Management overview

Magento 2 Multi Source Inventory (MSI)

How can MSI sourcing algorithms be used?


Sourcing algorithms determine the source to ship from.

Distance priority: use this if you wish to prioritize the closest source
(warehouse). This would be helpful if you ship from multiple warehouses and
wish to reduce shipping costs by shipping from a closer warehouse.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 36


eCommerce

Source priority: use this if you have a preferred source. This would be helpful if
you have a warehouse and a store and wish to preserve stock at your store.

Drop ship
Drop-shipping is when the supplier ships products on a merchant's behalf.

The easiest solution is to disable inventory management for drop-shipped


products. You could also use the Magento API to synchronize inventory levels
back into Magento sources.

Buy-on-line / pick-up-in-store
Ship-to-store is a common option that merchants offer to local customers.
Many times, this is accomplished through utilizing the Free Shipping
shipment option.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 37


2 MAGENTO
ARCHITECTURE
13 questions

Solution Specialist Guide


Magento Architecture

2.1 DEMONSTRATE ABILITY TO DESIGN A


CLOUD SOLUTION

What are the benefits and drawbacks of on-premise


vs. cloud?

On-premise (hosted)

The merchant is responsible for maintaining their website. Since merchants


are experts at selling products, they often don't have the budget or the internal
expertise to ensure that the site is properly maintained. As such, inexperienced
hosting providers or developers can cause problems. The good news is that
many hosting providers have learned the secrets of Magento 2 hosting and are
providing at least reasonable service.

Magento Cloud

Magento Cloud offers a one-stop approach for Magento. The merchant is still
responsible for applying patches, but they do not have to worry about the
hosting environment. Not only have they written the software, but, with Cloud,
they also host it. The goal is that this provides an exceptional hosting package
with unparalleled support and service.

Cloud is built on platform.sh. Platform.sh provides the platform with


the capability for continuous integration (automated way to get code to
production).

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 39


Magento Architecture

In addition, Cloud is integrated with 3rd-party systems to provide a better


experience:

• Fastly CDN as the full-page cache and content delivery network.

• Blackfire Profiler to find specific areas of PHP code that are running slow.

• New Relic Application Performance monitor to find performance


bottlenecks (or slow-running code) in the application.

• SendGrid service for sending outbound emails

Cloud has multiple environments. We won't get into all the details, but here are
a few of the most important:

• Integration: multiple integration environments for testing purposes before


continuing to production.

• Staging: a single environment that closely replicates (or is identical to)


production.

• Production: a single environment that is used for running a production


website.

Further Reading:
Magento Commerce Cloud guide

Pro architecture

How do you move to Cloud.


Moving to Cloud involves a number of steps, each executed with careful
planning. The following is a very abbreviated and overly simplistic set of steps.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 40


Magento Architecture

1. Assessment must be made of existing site architecture and requirements.


Are there any special services used? Are there custom configurations for PHP
or build tools used?

2. Code is moved into a git repository (GitHub or BitBucket). The branch


depends on whether this is a Starter or a Pro plan.

3. Assets are pushed to the hosting environment. Note that staging and
production are read-only but the mounts (or locations where the assets are
stored) are not.

4. Code is pushed to the staging environment (again, different for Starter and Pro).

5. Website is switched over to Magento.

Further Reading:
Go live checklist

Launch steps

Technologies and requirements

How does Cloud influence project development.


Cloud establishes good development practices for developing Magento
applications. I suggest you read through the Further Reading section below.

All code changes are made on integration branches. These branches represent
website URLs that you can visit to perform UAT and ensure that the changes
meet the expected requirements.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 41


Magento Architecture

Once these are set, the integration branches are merged into the Staging
environment. Once staging is verified to be working as expected, the code is
merged into the Production environment.

Further Reading:
Manage your Project

What features are only available on cloud?


• 99.99% uptime guarantee.

• Better uptime with redundant hardware.

• Continuous integration tools.

• Included 3rd-party tools, such as New Relic APM, BlackFire, FastlyCDN and
SendGrid.

• Long-term backups.

• Multiple environments for testing.

What are the differences between Starter and Pro Plans.


Pro has all Starter features, plus:

• Magento Business Intelligence Pro

• Dedicated hardware environment for production.

• Three instances for production (better stability and availability)

• Slightly different paths for getting code to production.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 42


Magento Architecture

Further Reading:
Magento Commerce Cloud architecture

2.2 DEMONSTRATE UNDERSTANDING


OF KEY CONCEPTS OF THE MAGENTO
ARCHITECTURE

Architecture in Magento 2 – What is it and how is it


used in Magento Commerce?
Magento 2 is written in PHP, Javascript, HTML and CSS (specifically, Less that is
compiled into CSS). It primarily runs in Linux-style environments but can run on
Windows.

Here are Magento's software dependencies:

• Web server: nginx, apache, IIS (not officially supported)—what serves


Magento content

• Database: mysql—what stores orders, customers, products, configuration, etc.

• In-memory cache: redis, memcached—lightning-fast storage for computed


information, such as merged configuration, session data and some HTML output.

• Reverse-cache proxy (optional): varnish—what stores full-page cache (FPC)


response HTML for lightning-fast response times.

• Search provider: ElasticSearch (optional?)—what indexes Magento store data


for fast and quality searches. Note that MySQL search is deprecated and will
be removed at a later date.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 43


Magento Architecture

• Message queueing: RabbitMQ (optional)—a system that accepts messages


and sends them to programs that act on the sent message. For example,
let's say a developer needs to perform a time-consuming operation during
a Product Save event. The developer can create a message to be sent to
RabbitMQ. RabbitMQ saves the message and Magento returns a response
quickly as it does not have to perform the time-consuming operation during
the Product Save. In the background, RabbitMQ sends the message to a
consumer and the consumer performs the time-consuming operation. The
end result is that the admin interface becomes more responsive.

Here are key aspects of Magento's architecture:

• Magento contains thousands of PHP files. These files perform the operations
that happen on the server to deliver HTML or JSON (through the WebAPI).

• Magento provides the capability to cache data. What is cached are the
results of expensive (time-consuming) computations. For example, module
configuration is stored all over the Magento file system. There are hundreds
of XML files that need to be merged together to formulate the overall
Magento configuration. Depending on the underlying hardware for a file
system, this could take seconds to read the files and merge them. As such,
caching saves massive amounts of time per load.

• Magento allows saving full HTML responses through the full-page cache.
This is a subset of the above caching topic. Again, loading configuration and
information from the database can be time-consuming. Pages in Magento,
except for the admin panel, cart, checkout and customer account areas, can
be cached in their entirety. This makes response times very fast.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 44


Magento Architecture

• Magento also combines prices and other information for quick retrieval
through indexes. Loading a category page of products and showing the
unique product prices for each would take a long time.

• Magento is comprised of many modules. These modules are self-contained


areas of functionality that add to or modify existing Magento features.
Developers can enable/disable 3rd-party modules. However, developers
need to be careful with toggling Magento modules as they are often quite
dependent on each other.

• Magento's look on the frontend and admin panel is determined by the theme.
The theme provides custom HTML and CSS. Magento ships with the default
Luma theme which is often the base for most custom themes deployed for a
merchant. Here is an example of the Luma theme.

• Magento contains multiple areas of functionality. These areas are: global,


frontend (where customers visit), backend/adminhtml (where the admin
users log in to manage the store), webapi_rest (RESTful API), webapi_soap
(SOAP API), graphql (GraphQL API), and cron (an automated task scheduler).

• Magento provides the capability to schedule tasks. This happens through


either cron jobs or message queue services:

• Cron jobs are part of the Linux system. The system administrator must
configure the Linux cron job to trigger the Magento cron job. A developer
can configure additional cron jobs to handle timed tasks, like cleaning out
unused information every-so-often.

• RabbitMQ / queueing system. By taking advantage of this system,


developers can offload time-consuming tasks to be executed in the
background.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 45


Magento Architecture

• Magento provides the capability for API interaction:

• SOAP

• REST

• GraphQL

What are the benefits and costs of Database Sharding?


Database sharding is a feature of Magento Commerce. In most cases, the
Magento tables are found in one database. As a store grows, splitting tables into
multiple can help to eliminate bottlenecks.

The challenge is that this can cause problems with 3rd-party modules who
expect tables to be all in the same database.

What is the Varnish Full Page Cache and why is it better


than the built in FPC?
Varnish is the software tool that is used to cache and render saved HTML
responses. Response times for Varnish-enabled sites are often less than 100ms.

Varnish intercepts incoming traffic and checks to see if a cached version exists
for the request. If it does, Varnish returns that.

Varnish is better than the built-in full-page cache. With the built-in cache,
Magento must still process the request. If Varnish-enabled sites respond in
under 100ms, most built-in cached websites respond in approximately 500ms—
a significant difference.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 46


Magento Architecture

What are the basic responsibilities of templates and


layouts in Magento 2?

Further Reading:
Configure and use Varnish

Templates are pieces of HTML and PHP mixed together. The PHP adds logic,
and the HTML is what is rendered to the browser.

Layouts are XML instruction sheets that tell Magento what HTML files to render.

What are the basic steps to extending Magento 2


functionality with a code change or a third party
extension?

For a code change, the developer will:


• Create a module or add to an existing one.

• Write code to make the functionality happen.


• Commit the code to version control (git on GitHub, BitBucket, GitLab, etc.).

• Push changes to Integration (Magento Cloud) or staging environment.

• Ensure changes are correct and coordinate a delivery time to production.

• Deliver changes to production and test.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 47


Magento Architecture

For installing a third-party extension, the developer will:


• Download the code.

• Install into the Magento application.

• Thoroughly review the code of the module.

• Commit and continue with above code change steps.

How can the site design be configured using the


options found in the Admin panel under Content >
Design > Configuration?
The site design contains many options for managing presentation of the
Magento store. You can choose the theme and specify additional / default
details about the website.

2.3 DEMONSTRATE KNOWLEDGE OF


HOW TO USE THE MAGENTO API FOR
INTEGRATING WITH 3RD PARTY SYSTEMS

What types of API does Magento Commerce have?


Magento is well-connected through APIs. APIs provide the capability to connect
systems or interfaces with Magento.

For example, most of the Magento checkout utilizes the REST API. Javascript
on the frontend talks through the REST API to the PHP on the server. This
eliminates page reloads and actually utilizes less data to transfer the information
from the client to the server.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 48


Magento Architecture

SOAP API

This utilizes XML and a very structured language to communicate between


endpoints. Typically, this represents server-to-server communication. Many
server-side languages have a built-in means to integrate the connection directly
into the code.

REST API

This utilizes JSON (Javascript Object Notation) to send information and retrieve
information. The Magento checkout utilizes the REST API. The REST API is fairly
unstructured and is the easiest (fastest) method for integrating with Magento.

GraphQL

This utilizes a new query and data syntax. The syntax is structured. At the time
of this writing, this is still being finalized.

What are the intended use cases for the different API
types? What are the pros and cons of each type?

SOAP API

This is most often used in server-to-server environments, such as:

• ERP connections

• External system integrations

• Pre-built connectors

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 49


Magento Architecture

The SOAP API is strongly typed, so it keeps track of what is a number, a decimal,
a string of text, and different types of objects. This provides a layer of validation
without a developer writing custom validation code.

REST API

This is used in a variety of connections, such as:

• Frontend integration, for example, the Magento checkout.

• Frontend enhancements where cookies are not utilized.

• Server-to-server integrations (see above)

The REST API is not strongly typed. This can result in validation problems (i.e.
passing a float where an integer is expected). As such, developers need to keep
this in mind to prevent strange data problems (like rounding a decimal number
to an integer with no decimal places).

With the REST API, there is no defined query language, so formulating selection
criteria is up to the developer to specify.

GraphQL

Because this is a new inclusion in Magento, its full scope of use cases is yet to
be determined.

• Magento PWA studio

• Frontend integration

GraphQL is strongly typed, so it is particularly useful for building frontend


applications. In addition, its query language is powerful for creating queries to
select data.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 50


Magento Architecture

What methods of authentication do the Magento 2


APIs support?
Magento 2 supports three types of authentication: 1) OAuth 1.0, 2) Token
Authentication and 3) Login Credentials.

OAuth 1.0

We will not get into the developer-related details of OAuth, as there are plenty.
The nutshell for this type of authentication is that it is a specified flow of
communication between two parties. Essentially a user on one website needs
to be authenticated to use another website.

We will describe how this connection works between the 3rd-party website and
Magento.

• The 3rd-party website needs to connect to Magento.

• You have a Magento admin user account.

• The 3rd-party website directs you to the Magento OAuth page.

• Magento asks you to log in (if you aren't already logged in).

• Magento then asks you to authorize the 3rd-party website.

• When you do, you are redirected to the 3rd-party website with a token from
Magento providing authorization.

Further Reading:
OAuth-based authentication

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 51


Magento Architecture

Token

There are two use cases for tokens: public communications and private
communications.

Public communications represent when someone can locate the token being
used. In these cases, the token is typically limited based on the permissions
that the user has (for example an admin user will have more permissions than a
visitor who isn't even logged in). These tokens are usually time-limited as well.

Private communications represent when a 3rd-party should have little to no


access to a token. These cases would be server-to-server integrations or a
mobile app. You can configure these tokens in System > Integrations.

Further Reading:
Token-based authentication

Login credentials

If a customer is logged in, Magento can utilize this login to provide authorization
for areas in the system. For example, a developer can look up the customer's ID
in these cases.

For admin users, a token must first be generated with the admin user's session.
Then, they can access resources with the token.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 52


Magento Architecture

Demonstrate the ability to manage credentials for the


Magento API.
Credentials are managed in several places:

• System > Integrations: used to configure token and OAuth endpoints. You
can assign specific resources (activities or available data) to a specific token.
If you are developing a mobile app for your store, you likely do not want the
mobile app to have access to create shopping cart rules.

• System > Users: an admin user has API access to everything that they have
admin interface access to. For example, to prevent an admin user from
accessing your customers (in the admin panel or API), simply uncheck their
access in Role Resources.

2.4 DEMONSTRATE ABILITY TO DESIGN AND


ADMINISTER WEBSITES, STORES, STORE
VIEWS

Note:
The SwiftOtter Solution Specialist Prep Course contains much
more detail about scopes, including practical examples. This
is a core Magento feature, and the test expects you to have a
deep understanding of how this works.

What are use cases for product attribute scopes?


Product attribute scopes come in three levels: Global, Website, and Store View.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 53


Magento Architecture

Generally speaking, the Website scope contains most major configuration


whereas the Store View scope is primarily localization (translations).

When creating a new attribute, you need to ask yourself the purpose for this
attribute. While one can place all attribute values at the store view scope, this
can create confusion, as described later. Additionally, if an attribute is going to
be used in a configurable product, it must be Global.

Keep in mind that you can change the labels for attribute values per store view,
so you do not need to create an attribute for each locale.

Below each product attribute, you will notice its available scope:

Further Reading:
Attributes

What is the effect of Website, Store and Store view


configuration scopes?
It is imperative that you have an exceptionally good handle on scopes if you
wish to pass the Solution Specialist test.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 54


Magento Architecture

Website

Most configuration and product attributes are available at the Global and
Website configuration levels. This controls aspects such as payment and
shipping methods (active, applicable countries, etc.).

Store

The primary use for the Store scope is to specify the root category. This is
selected in Stores > All Stores.

Store View

This primarily controls localization/translation strings. At this point, few, if any


features are switched on or off.

Display of product catalogs in websites, stores, and


store views
As stated above, the Store scope controls the root category. This allows an
administrator to show different groupings of products.

Additionally, products are assigned to a website. And the store view controls
the translatable attributes for a product.

Further Reading:
Root Categories

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 55


Magento Architecture

Administration of websites, stores and store views


The store view selector is available on entities that allow this type of
configuration. What scopes are available will affect what scopes are selectable
in the store view selector.

For example, the Store scope is not editable in Stores > Configuration. The
Website and Store scope are not editable in Product management.

Further Reading:
Stores

Localization Taxes and pricing in websites, stores, and


store views
Magento pricing is either determined at the global or the website scope
(customized in Store > Configuration > Catalog > Pricing).

Product tax classes are assigned and are configured in the website scope.

You can also create a Fixed Product Tax product attribute to set a fixed tax for
each item sold.

Further Reading:
Price Scope

Tax

Fixed Product Tax

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 56


Magento Architecture

2.5 DEMONSTRATE UNDERSTANDING OF


THE DIFFERENCES BETWEEN MAGENTO
EDITIONS

What are the main differences between Magento Open


Source and Magento Commerce? What features are
available only on Magento Commerce? (Commerce,
Open Source, and B2B)
Open Source and Commerce operate on the same codebase. Commerce brings
many additional features to the table. It also is covered by a support plan as a
backup to an internal Magento team.

From an architectural perspective, there are little differences. Especially as of


Magento 2.3, features like ElasticSearch and RabbitMQ have been moved back
to Open Source.

However, from a store management perspective, there are hundreds of features


that Magento Digital Commerce (or, really Magento Commerce) brings to the
table. Here is a basic list of additional features in Magento Commerce:

• Gift registry

• Gift wrapping

• Content staging / Scheduled Updates

• Targeted product rules (automated up-sell, cross-sell and related products)

• Customer segments

• Magento B2B

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 57


Magento Architecture

• Abandoned cart email reminder

• Dynamic blocks

• Page builder and CMS page hierarchy

• Gift cards

• Store credit

• Loyalty programs

• Exclusive sales

Further Reading:
Compare Open Source and Magento Commerce

Magento Commerce or Magento Open Source – Which Is Right


for My Business?

Payment methods in Magento 2 Commerce


Magento 2 commerce has several addtional payment methods:

• Cybersource
• eWAY

• Worldpay

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 58


Magento Architecture

Customer attributes and segments in Magento 2


Commerce
See section about customer attributes. Both of these are only available in
Commerce.

Full page cache and indexing differences between


editions
Full page cache and indexing is available in all editions. However, Commerce has
the capability on re-index on a schedule.

All other differences between Magento Open Source


and Magento Commerce
See above.

2.6 DEMONSTRATE ABILITY TO IDENTIFY


INFRASTRUCTURE REQUIREMENTS FOR A
MAGENTO PROJECT

What are the infrastructure elements of a typical


Magento installation (database, search, cdn, cache,
sessions, etc.)?

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 59


Magento Architecture

Database

This is what provides data persistence to Magento. The PHP web application is
literally booted up for every non-full-page cached request. The application then
looks to the cache, configuration, and database for the information necessary
to process a request. In other words, Magento will present an ugly error if there
is no connection to the database or tables are missing.

Magento requires a MySQL(-esque) database.

Further Reading:
Magento 2.3.x technology stack requirements

Search

Magento now relies on ElasticSearch, an external search provider, to index and


present results. While the old means of MySQL search still works, Magento no
longer recommends this.

Further Reading:
Set up Elasticsearch service

CDN

Content delivery network. This is not a requirement, per se, but rather a
common addition to the Magento hosting environment. Many hosting providers
(including Magento Cloud) include a CDN of one sort or another.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 60


Magento Architecture

Further Reading:
Fastly

Cache

This is temporary storage for the results of computations. It could be HTML


that will be rendered on the frontend. It could be the XML configuration that is
merged.

Magento provides several default storage mechanisms: file system, redis, and
memcached.

Sessions

Each visitor on the site who adds an item to their cart or logs into Magento
(frontend or admin panel) is assigned a session cookie. These usually last a
maximum of 30 days, but their default value is often an hour or so.

The session cookie is linked to session storage in PHP. This storage maintains
information about this particular session, such as their customer ID, cart ID, and
other information. Magento uses these IDs to load their customer profile if they
are logged in.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 61


Magento Architecture

2.7 DEMONSTRATE ABILITY TO


CONFIGURE THE MAGENTO STOREFRONT
FUNCTIONALITY

How are cookies used in Magento?


Unlike the delicious chocolate chip cookie (or, better yet, the peanut butter
cookie), cookies in the Internet world are quite bland.

These cookies store information about each visitor in their browser. One
purpose is to store their session ID (frontend, adminhtml, or PHPSESSID cookie
names). They also provide a caching layer that Magento can update and then
the frontend renders as necessary. For example, the mage-messages cookie
stores messages for the customer as a result of an action they take ("we're
sorry, but that is an invalid login").

If you delete your cookies on a Magento domain, you will be logged out of your
customer and admin accounts.

What must be done to configure cookies on multi site


Magento implementations?
You need to update Store > Configuration > General > Web > Default Cookie
Settings > Cookie domain to match the domain name specified on that same
page under Base URLs. Failure to do this will result in being redirected back to
the customer account login page over and over with no message displayed.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 62


Magento Architecture

What is static content signing?


Magento comes with hundreds of LESS files. These files need to be compiled
into CSS files. Additionally, there are hundreds of Javascript files that also need
to be rendered.

A developer will run a CLI command to make these files available on the
frontend.

Here is an example path for a CSS file:

https://swiftotter.com/static/frontend/Magento/luma/en_US/css/styles-m.css

However, when a user downloads the files, they are cached in the browser. This
reduces the download time necessary for future page visits. The problem is
these cached files are then always displayed, even if the version on the server
updates.

The way Magento resolves this is with static content signing. Essentially, this
inserts a random number or a build number into the path. When a new number
is utilized, this "clears the cache." The browser's cache remains for the old path,
but a new path is displayed and there is no cache for that path:

https://swiftotter.com/static/version1550681661/frontend/Magento/

luma/en_US/css/styles-m.css

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 63


MAGENTO
3 ADMIN AND
STOREFRONT
18 questions

Solution Specialist Guide


Magento Admin and Storefront

3.1 DEMONSTRATE ABILITY TO USE THE


MAGENTO ADMIN

Which sections exist in the Magento admin interface?


The Magento admin interface consists of many areas of functionality. Each of
these controls unique parts of the frontend or user experience.

It is important that you are familiar with each of these and what they do.

What are user roles? How can they be configured? Can


a user have multiple roles?
User roles define what capabilities a Magento admin has. For example, you can
prevent an admin user from modifying products or viewing orders. Additionally,
in Commerce, you can restrict an admin user to a particular website.

These are configured in System > Permissions > User Roles.

Each admin user can have one role assigned to them.

Demonstrate the ability to create complex user


authorization configurations.
There are hundreds of configuration points of authorization for a user. They
cover every aspect of the default Magento admin area.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 65


Magento Admin and Storefront

Demonstrate the ability to use grids and forms.


Admin grids have tremendous useful functionality in Magento 2. For example:

• Filters to limit results for columns displayed

• Adjustable columns to change the order of columns displayed

• Column selector to customize the number of columns displayed

• Ability to create views for easy retrieval of the same display

3.2 DEMONSTRATE ABILITY TO USE


CONTENT STAGING AND PREVIEWS
Staging (Scheduled Updates, Content Updates) is a powerful feature in Magento
Commerce. This allows you to make changes to content and then release them
at a specified date/time.

The additional reading in this section will mostly come from the user manual:

What are staging timelines?


Staging timelines allow you to visualize updates on a timeline. This is done in
Content > Content Staging > Dashboard.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 66


Magento Admin and Storefront

How can staging be used?


Staging is a powerful way to make updates to the website. You are able to
visualize changes before they go live. In addition, you can schedule a group
of changes to go live at any given point. This is especially useful for a sale or a
product launch that begins at midnight on a specific day (so you don't have to
set your alarm to release it, or worse yet, configure it).

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 67


Magento Admin and Storefront

How can staging be previewed?


There are two ways:

1. Go into the entity that you are editing, select the update, and click Preview.

2. Go into the content staging dashboard, select the update, and click Preview.

What are the limitations of staging?


• Staging is not version management. While previous staging updates are
stored, the changes from every time you save a product are not stored.

• Staging relies on a properly configured and running cron system. Otherwise,


staging updates will not be released.

Which entities can staging be used with?


• Products

• Categories

• Catalog Price Rules

• Cart Price Rules

• CMS Pages
• CMS Blocks

How can staging be used with third party extensions?


Staging is used with 3rd-party extensions if they choose to integrate it. There's
not much else to say.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 68


Magento Admin and Storefront

3.3 DEMONSTRATE ABILITY TO CONFIGURE


THE SHOPPING CART

Can guest customers place orders? How to restrict


checkout to registered customers?
Yes, guest customers can place orders in the store.

Restrict checkout to registered customers at Sales > Checkout > Allow Guest
Checkout = No.

Further Reading:
Guest Checkout

How can pricing and tax display be influenced through


the Magento admin?
Because of the variance of pricing and tax throughout the world, Magento
provides literally every imaginable option for the display of these prices in the
admin. The best way to ensure that you are up to speed on this topic is through
practical experience.

This configuration is in Stores > Configuration > Sales > Tax.

The United States excludes tax from prices (and adds it at the time of checkout).
Much of the rest of the world includes tax in the prices as they mostly use a
Value-Added Tax system.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 69


Magento Admin and Storefront

Magento offers the capability to show each total including or excluding tax (see
the Shopping Cart Display Settings configuration). Additionally, you can also
configure these same values for orders, invoices, and credit memos.

You may also specify whether tax includes items such as the shipping price, etc.

You can also enable Fixed Product Taxes (WEEE in the EU, Container Tax
in Canada).

Further Reading:
Taxes

Demonstrate the ability to utilize the wish list.

The Magento wishlist allows customers to save products that they wish to
review for later. A visitor must have a customer account in order to add items to
a wishlist.

In Open Source, customers have one wishlist. They can share the wishlist via
email or add items to the cart. People who receive the wishlist can view the
wishlist and add those items to their cart.

In Commerce, customers can have multiple wishlists. Customers can also make
their wishlists public (so they can simply send their friends the link instead of
sending an email).

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 70


Magento Admin and Storefront

Further Reading:
Commerce

Open Source

Demonstrate the ability to configure shopping cart


rules.
Shopping Cart Rules allow discounts and promotions to be applied to a
shopping cart. These are configured in Marketing > Cart Price Rules.

These rules can be customized with Scheduled Changes in Magento Commerce.


In fact, in Commerce, the From and To fields are gone and Scheduled Updates is
how you configure the duration of these rules.

You are able to restrict Cart Price rules to:

• Customer groups

• Website

• Specific coupon code (or auto-generated)

• Uses per coupon code or customer

Conditions

This section defines the filter parameters to determine whether or not this rule
is eligible for a given cart.

Conditions availability:

• Products in cart:

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 71


Magento Admin and Storefront

• Any product attribute that is marked as "Use for Promo Rule Conditions"
is found in the condition list.

• Category

• Attribute Set

• Number of products in the cart

• Total price of products in the cart

• Row total of products in the cart

It is important to remember that conditions represent the first Yes/No decision


for whether or not this rule applies to the cart.

Actions

• This tab defines what happens to the cart. There are several options
for Apply:

• Percent of product price discount: the Discount Amount will become a


percentage and will be the discount for all matched products.

• Fixed amount discount: the fixed (not a percentage) amount that is reduced
per product. The maximum value will effectively be the total price of
the item.

• Fixed amount discount for whole cart: the fixed amount that is reduced
as applied to the entire cart. If an item sells for $2, and you set a Discount
Amount of $4, $4 will be reduced for each matched item.
• Buy X get Y free: the Discount Amount is how many to credit back as a
discount. The quantity in the user's cart will not increase.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 72


Magento Admin and Storefront

Here are a couple of noteworthy fields:

• Maximum Qty Discount is Applied to: this field governs the maximum
number of items that are eligible for a discount. Use this to prevent giving a
customer a free delivery of a merchant's expensive product.

• Apply to Shipping Amount: utilize the totals calculated to reduce the


customer's shipping total in addition to the subtotal of the order.

• Free shipping: use this field to select if free shipping is allowed on the order
and if it applies to the entire order or to the matched products in an order.

• Add Reward Points: utilize the loyalty feature in Commerce to add additional
points to a customer's account.

One powerful feature that is often overlooked in Cart Price Rules is the ability to
apply the rule to specific products in the cart. This can be used in conjunction
with the Conditions to provide multiple levels of filtering.

Manage coupon codes

You can create pools of coupon codes that are utilized. The purpose of these is
to track usage from a mail or email campaign.

Related Dynamic Blocks (formerly banners), Commerce-only

You can associate Dynamic Blocks with a cart price rule to draw attention to it.
This is helpful if you are requiring the customer to enter a coupon code for free
shipping, as an example.

Further Reading:
Cart Price Rules

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 73


Magento Admin and Storefront

3.4 DEMONSTRATE UNDERSTANDING OF


PAYMENT METHODS

What payment methods are available natively in MDC?


• Braintree (includes PayPal)

• PayPal

• Payments Advanced

• Payments Pro

• Payments Standard

• Payflow Pro

• Payflow Link

• Klarna

• Amazon Pay

• Check / Money Order

• Bank Transfer Payment

• Cash on Delivery Payment

• Zero Subtotal Checkout

• Payment on Account (Commerce)

• Purchase Order
• Authorize.net Direct Post

• Cybersource (Commerce)

• Worldpay (Commerce)

• eWAY (Commerce)

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 74


Magento Admin and Storefront

What capture methods does Magento provide?


There are two types of payment capture methods: online and offline.

Online

An online payment method is one that connects to a 3rd-party service to charge


the requested funds.

At the time of order placement, Magento utilizes the chosen payment method's
implementation to connect with the payment processor. The merchant decides
whether transactions are charged immediately, or first authorized.

For a transaction to be immediately charged (sale or authorize and capture), it is


often a digital product or a case where the merchant knows that the product will
ship within a short period of time.

Otherwise, the card is authorized. This ensures there are enough funds available
and a hold is placed on these funds. At a later date, the merchant can charge
the credit card.

Offline

These transactions reside in Magento and do not connect to a 3rd-party. For


example, this would be the famous Check / Money Order payment type.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 75


Magento Admin and Storefront

What are advantages of hosted payment?


Hosted payment types reduce the overall PCI compliance scope. They do this
by offloading the risk to the payment gateway (Braintree, Stripe, Authorize.net,
etc.).

There are two types of hosted payments: in-page and off-page.

In-page hosted payments

The way this happens is the payment gateway utilizes a Javascript framework
and an iframe. The iframe is often seamless and almost impossible to detect
(for an example, go to our practice test and see the payment method form). The
Javascript framework interacts with the gateway to produce a token. This token
is configured with the purchase amount and credit card information.

Magento then submits this token to the server and the payment module uses
the token to capture funds.

This is the long story to say that hosted payments eliminate sending credit card
details through the merchant's server.

Examples:

• PayPal Express

• Amazon Pay

• Braintree

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 76


Magento Admin and Storefront

Off-page hosted payments

With an off-page hosted payment, a visitor chooses the payment type and
clicks a Continue button. They are taken to a different website (instead of an
iframe that seamlessly resides in the checkout screen). Here, they enter in their
card details, and they are then returned to the Magento checkout.

Examples:
• Payflow Pro Express Checkout

3.5 DEMONSTRATE ABILITY TO CONFIGURE


SHIPPING METHODS

What shipping methods does Magento 2 provide out of


the box?
• Flat Rate

• Free Shipping

• Table Rates
• Magento Shipping

• UPS
• USPS

• FedEx

• DHL

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 77


Magento Admin and Storefront

How can table rates be configured?


Table rates are configured by uploading a CSV file into the Website scope (not
Global). This CSV file contains parameters to determine a price. The available
parameters are:

• Country

• Region

• Postal code

• Order subtotal

• Shipping price

Note that there is only one table rate that is available per order. In other words,
you cannot use the table rate module to create an Overnight rate and a
Standard rate that are both displayed in the checkout.

Further Reading:
Table Rates

How can in-store pickup be set up?


Use free shipping or flat-rate shipping. The Magento Shipping module also
provides options for this.

Further Reading:
Magento Shipping

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 78


Magento Admin and Storefront

3.6 DEMONSTRATE ABILITY TO CREATE A


CHECKOUT PROCESS

What can registered customers do that guest customer


cannot?
Registered customers can save address information and use previously-saved
addresses.

Registered customers can also save payment information (if a vault-enabled


payment method is enabled and chosen) and utilize this payment method in the
future.

Registered customers can also use the Instant Purchase feature.

Why is the payment step last before order placement?


The payment step is located here for several reasons:

• Customers are used to entering payment details last.

• When utilizing off-site hosted payment methods, customers are immediately


redirected there to make their payment.

• When utilizing on-site hosted payment methods, the card information is


tokenized and Magento sends up this information with the place order
request.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 79


Magento Admin and Storefront

What kind of customizations does the Magento


checkout support?
There are many configurations for the checkout (besides the fact that it is
completely customizable with code).

These are found in Stores > Configuration > Sales:

• Sales > Shipping Settings

• Sales > Tax

• Sales > Checkout

It is beyond the scope of this book to go through each customization in detail.

Further Reading:
Sales

How is Price calculation in the checkout different from


the catalog?
The price calculation in the checkout utilizes more data points to determine the
price.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 80


Magento Admin and Storefront

In addition to the factors taken into account on the catalog (special price,
catalog price rules) these affect the total price:

• Tiered price is taken into account

• Cart price rules are checked

• Taxes

• Shipping

For reference, product prices before the product page (category pages, up-sell,
cross-sell and related products) are indexed and stored in the database. Starting
at the product page, Magento uses price calculation classes to determine the
product's price.

3.7 DEMONSTRATE ABILITY TO SET UP


ORDER PROCESSING

When an order is saved in the Magento DB, what


triggers a confirmation email to a customer using
Paypal Express? (Login to PP account? Clicking
Checkout button? Clicking Purchase button?)

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 81


Magento Admin and Storefront

None of the above. See this:

When editing a pending order, what order data can be


changed?
You can edit any order that has not been invoiced yet. Editing the order cancels
the existing order (and credit card authorization) and places a new order.

With this approach, you can edit all fields on the order.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 82


Magento Admin and Storefront

Once the order is invoiced (and before, too), you can update the shipping and
billing addresses.

3.8 UNDERSTAND THE USE OF EXTENSIONS


AND CUSTOMIZATIONS

Where can a merchant find Magento extensions?


Merchants can find extensions in the Magento Marketplace. However,
there are hundreds of other extension builders that have written every
imaginable extension.

The advantage of modules on the Magento marketplace is that they have been
vetted by Magento. This indicates a higher level of quality than otherwise might
be available. Unfortunately, many module vendors write very low-quality code
and others encrypt their code (a potential security hazard as no one knows what
the encrypted code is doing or tracking).

How are extensions installed?


Extensions are installed through two different mechanisms.

Composer

Magento is built on Composer. This is a package management system.


Developers can run a command to install a package, like:

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 83


Magento Admin and Storefront

composer require magento/extension-b2b

This command tells Composer to require (install) this module. As such, it


is very easy to install Composer-enabled modules. The next benefit is even
better: Composer can keep modules that it manages always up to date.
Because these modules are stored in "temporary" storage in the vendor/
folder, developers cannot modify the contents of these modules. All this works
together to (usually) make for better security as modules are always kept on the
latest version.

Files

Developers can download the module package and place it in the 'app/code'
directory.

The problem with this approach is it is harder to keep modules up to date. Most
agencies do not have a practice of periodically checking modules on merchants'
websites to see if there is a new version.

After that…

The developer should test the module on their development machine. Once
this is complete, they will commit code and push to the staging environment.
This is when the developer and the merchant runs UAT to ensure that nothing
is broken.

Finally, create a backup of the production database and code. Then, pull the
code (or apply the module) to production.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 84


Magento Admin and Storefront

How can a Magento extension be evaluated? What to


look out for when evaluating a third party extension?
The extension has information on the Magento Marketplace. Overall, the quality
of Marketplace extensions is excellent.

Here are some things we look for when evaluating a 3rd-party module before
purchase:

• Open source: is the code encrypted? If so, we believe it is a security risk and
won't consider such a module.

• Return policy: after a developer reviews the code, if it is poor quality or


vulnerable, can we return the module?

• Module vendor reputation: there are some stellar extension builders, and we
prefer modules from them.

We will not name names for vendors who fail the above checks.

When is customization required?

Whenever Magento does not have the necessary capabilities as dictated by


the merchant requirements. If you can locate a module that fulfills these
requirements, that is often a good solution (provided the module meets the
above specifications and passes a code review).

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 85


Magento Admin and Storefront

3.9 DEMONSTRATE ABILITY TO MANAGE


CUSTOMERS

What are customer groups?


Customer groups are a way to categorize customers. Magento comes with
one customer group, and you can create more. You can also specify the
default customer group in Stores > Configuration > Customers > Customer
Configuration. Observe that you can also have the group automatically assigned
based on VAT ID validation.

What can customer groups be used for?


Customer groups are used to configure aspects of pricing.

Tiered pricing: customer groups are a selection criteria in the use of product
tiered pricing. This allows a store administrator to give those in a specific
customer group a better (or worse) discount.

Catalog price rules: customer groups are filters to ensure the rules are given to
the correct customers.

Cart price rules: customer groups are a filter here, too.

Private sale invitations (Commerce only)

Customer groups are assigned a tax class. This tax class can be used to create
tax-exempt customers or configure additional rules.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 86


Magento Admin and Storefront

How can customer groups be set up?


Customer groups are configured in Customer > Customer Groups.

What are customer segments?


Customer segments allow a Magento administrator to group customers based
on properties or actions they have taken.

This is different than customer groups. A customer group is set at the time
when a customer is created. That group can be changed any time.

Customer segments are created after the fact. They are constantly updated on
the fly.

What can customer segments be used for?


Customer segments utilize a different area of configuration than customer
groups.

Dynamic blocks: target these banners to customers who qualify.

Cart price rules: you can configure a customer segment as a condition.

Customer segment report: browse customer segments and view customers


per segment.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 87


Magento Admin and Storefront

How can customer segments be configured?


Customer segments are configured with rules (like cart price rules and catalog
price rules).

Here are the available selection choices:

• Customer Address (City, Company, Country, First Name, Last Name, Phone
Number, State/Province)

• Customer

• Created at

• Date of Birth

• Default Billing Address

• Default Shipping Address

• Email

• First Name

• Last Name

• Gender

• Group

• Last Name

• Newsletter Subscription

• Store Credit

• Shopping Cart

• Shopping Cart Total

• Number of Cart Line Items

• Products Quantity

• Products

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 88


Magento Admin and Storefront

• Product List

• Product History

• Sales

• Order Address

• Sales Amount

• Number of Orders

• Purchased Quantity

What are Customer attributes used for?


Customer attributes are used to store information about a customer. Magento
Commerce provides the capacity to create and modify customer attributes.

There are custom attributes and system attributes (the ones that are
automatically created when installing Magento). The latter attributes cannot be
deleted.

System attributes (and to the extent that custom attributes are created by a
developer) are utilized throughout the Magento application. For example, the
Customer Group attribute is utilized by the Cart Price Rules and Catalog Price
Rules.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 89


Magento Admin and Storefront

What kind of customer attributes can be created?

• Text field

• Text area

• Multiple Line

• Date

• Dropdown

• Multiple Select

• Yes/No
• File (attachment)

• Image File

What is the difference in customer attribute


configuration between MDC and MOS?
Magento Open Source requires that attribute additions/updates be
accomplished by a developer either in the database or through upgrade scripts.

Magento Commerce provides a complete interface for creating and managing


customer attributes.

What are Customer account features (Wishlists, Gift registry, Returns)

Wishlist

This allows customers to save items for later. "Save to Wishlist" is available on
product and category pages. Clicking this link will ask the customer to register/
login (if they haven't done so already).

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 90


Magento Admin and Storefront

Further Reading:
Wish Lists

Gift registry (Commerce only)

The registry is similar to a glorified wish list. The customer first selects the type
of wish list. Then, they fill out information about the registry:

• Public/private

• Inactive/active

• Event date

• Event details

• Contact information

Administrators also have the capability to manage gift registries.

Further Reading:
Gift Registries

Returns (Commerce only)

Customers also have the capability to return products at their leisure, from their
account. The link for creating a return is accessible when viewing each order.
Customers can:

• Select item(s) to return, and specify the quantity, resolution, return, etc.

• Add comments to the return.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 91


Magento Admin and Storefront

Further Reading:
RMA Customer Experience

3.10 DEMONSTRATE ABILITY TO USE THE CMS

What are CMS Pages and Blocks?

CMS Pages

These render HTML on the frontend. As of 2.3.0 (what the test is written for),
PageBuilder has not been released, so the Magento CMS functionality is very
basic.

However, Commerce brings a number of enhancements, namely:

• Scheduled updates

• Page hierarchy

Page hierarchy

One challenge in maintaining content on a website is how to structure it. This


capability in Open Source is limited, at best. This forces merchants to look to
other creative alternatives.

The hierarchy feature in Commerce allows CMS pages to be nested inside of


each other. This is similar to how Category navigation works. You can add pages
to the hierarchy in the Edit CMS page area.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 92


Magento Admin and Storefront

You can also use the Content > Hierarchy tool to create Nodes. A node is a way
to group multiple pages into a logical section. Nodes do not have their own
page, even though you can specify a URL key. For each node, you can specify
the next and start meta links to help SEO.

Further Reading:
Page Hierarchy

How can custom variables be used?


Custom Variables are a way to save commonly-used pieces of information and
display them throughout the website. They are similar, in idea, to static blocks.
However, their content is not parsed to render widgets. This makes them more
suitable for displaying strings of text like a phone number, store hours, driving
directions, etc.

Custom variables are set in System > Custom Variables. These are added
through the WYSIWYG editor by clicking the variable button:

Custom Variables are easily injected into Email Templates by clicking the Insert
Variable button when editing an email template.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 93


Magento Admin and Storefront

How can external images be embedded in CMS


content?
3. Locate the image's URL (right-click on the image and click Copy Link
Address).

4. Click the Insert Image button in the WYSIWYG.

5. Paste the full address.

6. Click OK.

I knew you could do it!

How can multilingual CMS content be managed?


Unfortunately, this is one of the less-intuitive parts of Magento. There is
no Store View selector for CMS pages or blocks (unlike most other areas of
Magento).

To create language-specific pages for Magento, you create a new page for each
language. That page is assigned to one or more store views (or All Store Views).
The URL Key must be unique for each page + store combination. For example,
if you have two pages with a URL Key of "privacy-policy," you cannot have these
both associated with the same store view.

What are Widgets?


Widgets are a way to inject content into targeted locations on a Magento
website.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 94


Magento Admin and Storefront

Ultimately, this is easily confused with CMS content widgets (as I call it).
Content widgets are code directives that are injected into the WYSIWYG editor.

Widgets are managed in Content > Widgets. They are available in both Open
Source and Commerce.

To create a widget, you first specify the type of the widget (this happens to be
the same list as used in the WYSIWYG editor). Then, specify the theme.

The widget is assigned to specific store views (or all store views).

Finally, you tell Magento where to display the widget:

• Anchor categories (all or specific categories)

• Non-anchor categories (all or specific categories)

• All product types (all or specific products)

• Simple Product (all or specific products)

• Virtual Product (all or specific products)

• Configurable Product (all or specific products)

• Downloadable Product (all or specific products)

• Gift Card (all or specific products)

• Grouped Product (all or specific products)

• All Pages
• Specified Page (select page)

• Page Layouts (select custom page layout)

Once you determine on what pages to display the widget, the last thing to do is
to determine the container (where on the page to display the widget).

You can also configure the options for the widget in the Widget Options tab.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 95


Magento Admin and Storefront

Further Reading:
Using a Widget

How are widgets used?

Widgets are used to inject content on a more global basis, instead of one-off
placements. Magento's sample data heavily utilizes widgets to display the image
blocks.

Demonstrate understanding of Magento Commerce


Dynamic Blocks
Dynamic blocks are formerly called Banners. This is only available in Magento
Commerce.

These are different from widgets in that these inject content into specific places
on the entire site:

• Content Area

• Footer

• Header

• Left Column

• Right Column

After selecting where the content will appear, the next thing to select is the
customer segment(s).

Finally, you can use the WYSIWYG editor to add content (including widget and
variables).

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 96


Magento Admin and Storefront

Further Reading:
Banners

3.11 DEMONSTRATE ABILITY TO CREATE


PROMOTIONS AND PRICE RULES

What is the difference between Catalog Price Rules and


Shopping Cart Price Rules?
Catalog Price Rules affect product prices before they are added to the shopping
cart (i.e. on the category and product pages). These price adjustments flow
through to the cart and checkout.

Cart Price Rules affect prices after they are added to the cart. This type of
rule allows you to apply discounts for a specific coupon or customer group or
website.

• Catalog Price Rules

• Cart Price Rules

What are the effects of many catalog price rules?


If the full-page cache is enabled, only the initial load of category and product
pages (before it is cached) will be affected. These effects will stop at the
checkout page.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 97


Magento Admin and Storefront

What are the effects of many shopping cart price rules?


On the other hand, many shopping cart price rules will affect the entire
checkout experience (every time the totals are calculated). The more you can
provide global conditions (website, customer segment, and coupon code) on
rules, the faster the checkout experience will become.

Demonstrate the ability to set up Product relations


(Related Products, Upsells, Cross-sells)
These are configured on the Edit Product page. Other than selecting and
reordering products for each of these relation types, there are no additional
options.

Related Product Rules (Commerce)

In Commerce, though, you can configure rules to display lists of products. The
benefit of this is that an administrator can specify a list of products to apply
the rule to and a list of products to display. Magento then renders this list of
products.

For example, if you have a category of Women's Jackets, you might want
to show Women's Pants as related products and Women's Shirts as up-sell
products. Instead of going through each product in the Women's Jackets
category and selecting related products and up-sell products, you would:

• Create two new related product rules, one for related products and one for
up-sell products.

• Specify the Customer Segment (if applicable).

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 98


Magento Admin and Storefront

• Set rule conditions for what products to match (which products the selected
products will display on).

• Set rule conditions for what products to display.

Configuration for this is found in Stores > Configuration > Catalog > Catalog >
Rule-Based Product Relations.

Further Reading:
Related Product Rules

Related Products, Up-Sells, and Cross-Sells

Demonstrate an understanding of the possibilities and


limitations of Reward Points.
Reward points allow you to give customers a certain number of points for
actions taken on the website. These points can be converted into "currency"
that is used on the website to purchase merchandise. The more points that a
customer accrues, the more likely they are to come back and buy more. You
have complete control over the number of points and how these points convert
into purchases.

I will document some common configuration options, though the best is


practical experience:

• Shopping cart rules can be used to bonus reward points to customers.

• You can specify:

• A customer's reward point maximum value

• The minimum threshold to redeem points

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 99


Magento Admin and Storefront

• Reward point expiration

• Expiration calculation (dynamic or static)

• Reward points for:

• Purchase (reward points are calculated based on the exchange rate


specified)

• Registration

• Newsletter Signup

• Converting Invitation to Customer

• Converting Invitation to Order

• Review Submission

Additionally, you can set up conversion rates in Stores > Reward Exchange
Rates. Exchange rates are based on the website and customer group.

Further Reading:
Rewards & Loyalty

What kind of Coupons exist? How can they be


configured?
Coupons are an extension of Cart Price Rules.

You can configure a cart price rule to use a specific coupon code (FREESHIP for
free shipping) or auto-generate a pool of codes (useful to track conversion rates

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 100


Magento Admin and Storefront

on an email campaign). In fact, dotmailer utilizes these codes in the integrated


Magento email campaigns.

Coupon code pools are generated in the Manage Coupon Codes tab. Set the
number of codes to generate, their length and format (and other parameters),
and click Generate. You can then see a list of generated codes.

Further Reading:
Coupon Codes

Dynamic content: Coupon codes - Magento 2

3.12 DEMONSTRATE ABILITY TO IMPORT/


EXPORT

What kind of native import/export options exist?


Magento offers the capability to import and export:

• Advanced product pricing

• Products
• Customer finances (store credit)

• Customers

• Customer Addresses

• Stock Sources

• Tax Rates (under System > Import/Export Tax Rates)

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 101


Magento Admin and Storefront

Import

For each type of import entity, you can download a sample file. This file should
have all columns as a template.

Import behavior for product-related entities:

• Add/Update: appends import table data to what is already specified. If a


value exists on the product in the database, that value is set to the imported
value. This is the setting used for well over 90% of imports.

• Replace: deletes the product and re-adds it with the values specified in the
import. This is quite dangerous to do as product IDs are changed AND all
other values are destroyed.

• Delete: does what you think.

Import behavior for customer-related entities:

• Add/Update Complex Data: any value that the import row contains is
replaced, all other values are appended.

• Delete Entities: no surprises here.

• Custom Action: the behavior is determined for each row based on the value
in the _action column.

Export

When running exports, you can exclude attributes and add filters for which
entities you want to load. For example, you can export a specific product by
setting the SKU filter to be the SKU of the product to download.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 102


Magento Admin and Storefront

Scheduled Import/Export (Commerce)

Commerce can import or export on a schedule. These files can be saved to the
local server's file system or uploaded to an FTP server. You can also be notified
by email if an export fails to run.

Further Reading:
Scheduling an Import

Scheduling an Export

3.13 DEMONSTRATE UNDERSTANDING OF


REPORTING IN MAGENTO

What native options exist for reporting in Magento?


Magento provides approximately 27 different reports. Some of these reports are
based on aggregated data that has to be compiled (see list in next section). That
means that after some types of changes, the data is out of date and you need
to refresh it.

It is important to familiarize yourself with the reports and the data that
each displays.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 103


Magento Admin and Storefront

Reports > Refresh Statistics

In this admin section, you can refresh several reports' data for the last day
or the lifetime. Note that refreshing the latter may render the admin panel
unresponsive to you and slower on the frontend.

• Orders

• Tax

• Shipping

• Total Invoiced

• Total Refunded

• Coupons

• Bestsellers

• Most Viewed

What are the benefits of Magento BI?


Magento Business Intelligence (BI) provides reporting that is specific to
ecommerce on your store. Whereas Google Analytics is primarily focused on
traffic, BI's emphasis is on commerce, with other data sources such as Google
Analytics bolted on.

With BI, you can create custom reports that show the metrics that are
important to your business.

Further Reading:
Magento BI Essentials

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 104


4 BUSINESS AND
APPLICATIONS
8 questions

Solution Specialist Guide


Business and Applications

4.1 DEMONSTRATE ABILITY TO GATHER


REQUIREMENTS

Given a business scenario, interpret the business


needs and provide a solution. How do you determine
customer needs?

Questions

There are many detailed formulas for determining what a customer's


requirements are. However, each one of them boils down to some level of fact-
finding, which usually happens with questions.

If a merchant approaches your agency to create a customization for them, you


need to have a decent understanding of Magento architecture and functionality.
At a minimum, you need to determine things like:

• What is the problem we are solving?

• Who is the intended audience (user, administrator, CSR)?

• Are we explicitly clear on what needs to be done?

• What features does this module need?


• How will this module interact with Magento, or affect default Magento
functionality?

• Are there any integrations or connections to be made to other systems?

• How do we gracefully handle errors?

As you might guess, there are probably 50 additional questions that would
be specific to the feature requested. Taking the time to work through these
requirements saves much time in the future.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 106


Business and Applications

When estimating the cost of the discovery phase what


should you consider?
At least some questions need to be asked to come up with a general scope of
what is happening. For example, if you are writing a connection to retrieve stock
information from a 3rd-party system, the discovery might be fairly small:

• Determine connection information

• Understand data structure and parsing it

Having this information, you will be able to give a better estimate for the
discovery phase. Here, you will determine deeper subjects such as:

• How will stock overrides affect Magento?

• What happens when the connection does not work?

However, if you are migrating a website to Magento, you will have many more
questions to ask, such as:

• The general scope of the website (many customizations?)

• Understanding, if possible, the pain points the merchant had

Migration discovery phases are usually more complex and take longer.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 107


Business and Applications

4.2 DEMONSTRATE ABILITY TO CREATE


INTERNATIONALIZATION / MULTI-SITE
SETUPS

When does a solution need to include multiple


websites or stores?
A Magento installation needs to include multiple websites when there is a
requirement to:

• Localize (translations) for different languages or regions

• Target different markets or segments with unique designs or products.

Most times that a merchant would like to set up a separate instance of Magento,
the same requirements can be accomplished in one instance, with the careful
planning of scopes.

Overview

• Website: controls functionality of a website (like payment methods, product


pricing).

• Store: controls the root category.

• Store view: specifies text updates for languages.

The best way to successfully answer questions on this subject is


practical experience.

Further Reading:
All Stores

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 108


Business and Applications

Multi-site infrastructure
The Magento frontend is browsed at a store view level.

As such, every website must have a store, which must have at least one store
view. Any one of these levels can have multiple children (a store can have
multiple store views). The lowest scope at which you can set a store domain is
the store view. This means that you can register three domains and create one
website, one store and three store views to power each domain.

The above reference is the most basic listing possible. There are many more
complexities that most merchants need.

Website, Stores, Store Views

Website

This is the highest segment of store functionality available. This layer has
almost all of the configuration available at the global level.

Here is a basic list of what can be configured at this scope:

• Product prices, provided they are set for this scope.


• Product assignments

• Payment methods

• Shipping methods

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 109


Business and Applications

Store

This one is confusing as there are so few areas of configuration at this level. The
most important one is that this scope controls the root category. As you might
remember on the category page, you can create multiple root categories. Well,
a store is where you set which root category is chosen.

Store View

The store view scope usually specifies translatable information, such as


names, templates, currency, and language. You can also set the domain URL at
this level.

Localization
Each store view allows you to select (among other things):

• Locale (language)

• Currency (both default and available currencies)

You will also notice that most product attributes that are rendered are created
at the store view level.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 110


Business and Applications

Currency

There are three types of currency configuration (Stores > Configuration >
General > Currency Setup):

• Base currency: this is the currency in which a product's price is entered. This
value flows through to the order and is the amount and currency that the
order is charged in.

• Default currency: this is the currency that the customer sees on the
frontend.

• Allowed currencies: this is how you allow customers to choose which


currency they want to browse the website in.

Further Reading:
Currency Setup

International Taxes
Magento has extensive support for all forms of commerce taxation. These rules
are configured in Stores > Tax Rules. Configuration for tax happens in Stores >
Configuration > Sales > Tax. Most tax calculation settings are configured at the
website scope. Most tax display settings are configured at the store view scope.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 111


Business and Applications

To determine the correct tax rate, Magento must have three things:

• The product's tax class

• The customer's tax class (or default tax class)

• The destination

Magento will use the above information to select the applicable tax rate.
A store administrator can import and export these tax rates to simplify the
administration of them.

Multi-site shipping
Shipping methods and the "ship from" address are configured in the website
scope.

4.3 DEMONSTRATE ABILITY TO CREATE


CUSTOMER LOYALTY PROGRAMS

Reward Points
Reward point programs are configured in:

• Stores > Configuration > Customers > Reward Points

• Stores > Reward Exchange Rates

See the discussion in 3.11 for more information about this.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 112


Business and Applications

Gift Accounts
Gift accounts are the accounting item that tracks the amount available on a
given gift card. You will find this in Marketing > Gift Card Accounts.

A merchant can create a gift card and send it to a recipient. Most commonly,
these are created when a customer purchases a gift card and it is invoiced (by
default, but the gift card can be created when the order is placed).

Customers can then apply a gift card code to the shopping cart or at the
payment method screen. They can also redeem a gift card in their "My
Account" area.

4.4 DEMONSTRATE UNDERSTANDING OF


LAWS AND REGULATIONS

Distance Selling
Distance selling is a UK law that dictates how a merchant must advertise their
products. My understanding is that this law is pretty much common practice for
reputable merchants (see the Further reading links for more details). Here are
the most important points:

• You must display your business name, contact details, and address.

• The price of the product (including taxes).

• How they can pay for their order.

• How they can cancel their order.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 113


Business and Applications

Most websites specify this information explicitly. Depending on the country, tax
must be included in the selling price (UK and the EU are two examples).

It is important to familiarize yourself with the overview of the law (see the
gov.‌uk link below) as there are some exceptions to these rules.

Further Reading:
Online and distance selling

Distance selling - what the law says

PCI-DSS
As discussed in Chapter 1, PCI-DSS dictates how you must treat cardholder data
in your organization. These rules cover all aspects of an organization and not
just the website.

The most important part of PCI-DSS is to limit your scope in any way possible.
This reduces the opportunities for cardholder data to be accessed by
unauthorized third-parties.

VAT and DIGITAL VAT


VAT is the most common system of taxation in the world. VAT is collected
incrementally, from the point of manufacture to the final sale. VAT is charged
on the value added from the previous buyer. Magento provides the capability to
charge VAT on orders.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 114


Business and Applications

VAT is collected on all B2C sales. In addition, VAT is collected on all B2B sales
that are in-country OR are out-of-country with a valid VAT ID.

Further Reading:
The Ultimate Guide to EU VAT Digital Taxes

What is VAT?

Cross border Trade


Cross border trade is selling products into a different country. In most cases, the
laws of the country to which you are selling are applicable (unless there are
export restrictions or the like).

Further Reading:
Cross-border trade (CBT)

GDPR
This was covered extensively in Chapter 1.

One GDPR-specific feature in Magento is Cookie Restriction Mode (in Stores >
Configuration > Web).

Magento Commerce is officially GDPR compliant. However, a merchant is


ultimately responsible to ensure their site is compliant, and Magento provides
features that assist with this. For example, a merchant can create a new
customer attribute to allow customers to opt into communications.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 115


Business and Applications

Further Reading:
Magento GDPR FAQ

Magento and GDPR

4.5 DEMONSTRATE ABILITY TO APPLY


TAXES

US and EU tax regulations


Two things in life are guaranteed: death and taxes. It is important for a Solution
Specialist to have a general understanding of taxes and a merchant's legal
requirements for this. If taxes are not properly collected, the merchant is left
holding the bag.

US

The United States utilizes a sales tax system: the final seller charges a
percentage of the purchase price and remits that to the government.

Unfortunately, this has become extremely convoluted. There are 50 states,


but with the "streamlined sales tax" initiative, every city can charge their own
tax rate. As such, there are thousands of sales tax rates. Many merchants are
turning to 3rd-party systems (like Vertex, which is bundled with Magento) to
resolve their compliance issues. Otherwise, a merchant can import tax rates
into their Magento website.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 116


Business and Applications

EU

The European Union uses the VAT system. Each country has its own tax rate. We
will discuss the setup of this in the next section.

VAT, Digital VAT

Configure tax rates

To set up VAT for European countries, import the applicable rates into Magento
using System > Import/Export Tax Rates.

Configure tax rules

Create two tax rules:

1. B2C

• Select a B2C customer group (those that do not have a valid VAT id).

• Select all EU B2C tax rates.

2. B2B

• Select a B2B customer group (customers who have a valid VAT id).

• Select tax rates applicable to the current country.

Remember, the above does not constitute tax advice and will certainly not stand
up in a court of law.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 117


Business and Applications

Further Reading:
2019 European Union VAT rates

General Tax Settings

In-state and out-of-state taxes


Please note that I am not a tax expert. However, there is a basic level of
understanding that every Solution Specialist must possess.

In the United States, as of early 2019, tax is charged for shipments to any state
in which the merchant has nexus (or a presence there). This nexus can be an
employee, retail store, warehouse or headquarters.

US sales tax is calculated on top of the order. US residents know that sales tax
automatically adds 10% (give or take) to whatever they are purchasing.

These rates are configured in roughly the same way as VAT, except:

• Prices are shown excluding tax.

• Many more rates need to be added to Magento.

• In some states, sales tax is NOT charged on shipping.

Further Reading:
General Tax Settings

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 118


Business and Applications

Cross-border taxes
In most jurisdictions, the tax rate is based on the shipment's destination.
However, there may be some instances where the merchant desires the
delivered price to be the same, regardless of what the destination's tax rate is.
In these cases, the merchant takes the hit (out of their profits) for any extra
taxes paid.

Further Reading:
Cross-Border Price Consistency

4.6 DEMONSTRATE ABILITY TO SET UP A


RETURN PROCESS

What is a return process?


Magento Commerce brings the capability to manage customer order returns.

After order items are marked complete, eligible items become available for
return. The customer can mark which items they wish to return and specify their
condition (the merchant can add other attributes to this list and customize the
drop-down item entries).

The RMA (return merchandise authorization) is then available in the admin


under Sales > Returns. Admins can create a shipping label which is available for
the customer to download.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 119


Business and Applications

Through the course of handling the RMA, the merchant saves the RMA multiple
times:

• Specify the authorized quantity and set status.

• Specify the received quantity and set status.

• Specify the accepted quantity and set status.

• Once the RMA is complete, the merchant creates a credit memo for
the order.

Further Reading:
RMA Workflow

How is a return process configured?

Magento Commerce provides an RMA attribute management area to create


attributes for the RMA process. You can also update and adjust values for most
of the RMA attributes already in the system.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 120


5 CATALOG
13 questions

Solution Specialist Guide


Catalog

5.1 DEMONSTRATE HOW TO USE PRODUCTS

Demonstrate the ability to create and use product


videos.
Products are the foundation of the commerce experience—after all, isn't that
why people come to a merchant's website?

Magento allows merchants the ability to upload videos for products. Magento
supports Vimeo and YouTube videos. Before a merchant can display a YouTube
video, they must configure a YouTube API key.

Videos are injected into the product media gallery. The video thumbnails can be
used in the same way as normal images: base, small, thumbnail, and hide from
product page.

Further Reading:
Adding Product Video

What determines if a product is visible on the


storefront.
Note that visible is different than saleable. We will discuss the differences in the
next section.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 122


Catalog

For a product to be visible in search or a category page:


• Must be in stock or Display Out of Stock Products = Yes

• Must be enabled

• Must be associated with a website (or Single-Store Mode = Yes)

• Must not have the Visibility attribute set to Not Visible Individually

• Must be in a public or custom shared catalog (B2B)

Can be sold on the storefront (saleable)


Generally speaking, a product must be visible in order to be sold. A good
example of an exception is the first visibility requirement. If a product is Out of
Stock, Allow Backorders is enabled and Display Out of Stock Products is No, that
product won't be visible in a category, but you can directly access the product
page and order products.

For a product to be saleable:


• Must be in stock or backorders enabled.

• Must be enabled and NOT set to Not Visible Individually.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 123


Catalog

5.2 DEMONSTRATE ABILITY TO USE


DIFFERENT PRODUCT TYPES

What are product types in Magento?

Simple

This represents the basic unit of inventory. Most products that are delivered can
be boiled down to a simple product. These are the products that are picked from
stock shelves and shipped to a customer.

Simple products have inventory tracking. With this, product stock is kept up-to-
date (especially with the Multi-Source Inventory features).

Further Reading:
Simple Product

Configurable

Configurable products combine the selection of multiple products into a single


page. These drop-down selections are controlled by attributes: the parent is
associated to an attribute, and the child products have this attribute specified
(and are also associated with the parent). The customer does not see the final
selection other than the selection choices they made. Magento combines
the customer's choices to find the product that matches the customer's
final choice.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 124


Catalog

At the time of purchase, two products are purchased: the parent configurable
product and the child simple product.

Child products of a configurable product are either simple or virtual products.

Configurable product attributes must be in the global scope.

Further Reading:
Configurable Product

Grouped

Grouped products provide a selection of multiple products on a product page.


Instead of drop-down menus mapping the product, all child products are visible
for the customer to select. They specify the quantity desired for each product
and add it to the cart.

When a grouped item is purchased, no parent product is present: only


the children.

Further Reading:
Grouped Product

Virtual

Virtual products represent a product that has no physical entity. For example,
this might be a membership or an online ticket.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 125


Catalog

Further Reading:
Virtual Product

Bundle

Bundle products are somewhat of a hybrid between configurable and grouped


products. The difference is that bundle products do not rely on attributes.
A bundle product's options are created and configured. The children are
then assigned.

Each bundle option's choice can be selected with radio buttons, a drop-down
menu, checkboxes or multiple select.

The bundle product's price is the sum of the chosen bundle products. However,
a merchant can apply a special price discount percentage to reduce the amount
of the chosen products.

Further Reading:
Bundle Product

Downloadable

Magento also allows merchants to create products that the customer can
download.

A downloadable product has Links and Samples.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 126


Catalog

Links

A "link" is provided to a downloadable file. Once this product is purchased, a


customer can then download it in their account. If the link is shareable, then the
customer does NOT have to be logged in to access. However, each download
still counts against the overall Max Downloads value.

Each link can have its own price and sample.

Samples

Ultimately, there are two types of samples: those associated with links and
those added separately. You can add as many samples as desired.

Further Reading:
Downloadable Product

Gift Card (Commerce only)

Gift cards allow a customer to gift value from an online store to someone else.
At least in the United States, these are quite popular to encourage people to
give, even if the giver doesn't know what the recipient would like.

Gift cards are physical or virtual. Physical means that it is mailed (and shipping
is charged). Virtual means that the card is delivered by email. Amounts can be
Open, meaning that the purchaser can specify how much they want to give, or
it can be a fixed amount (whatever you specify on the backend).

Once invoiced (or ordered, if specified in configuration), the gift card's amount
is added to a gift card account and is ready for use.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 127


Catalog

Further Reading:
Gift Cards

5.3 DEMONSTRATE ABILITY TO USE


CATEGORIES

How can products and categories be added?


Products and categories are associated in the Catalog > Categories area.
Categories are quite flexible when viewed as a navigation tool. They can be
added to the top menu on the frontend ("Include in Menu").

Display Settings

Categories can be viewed in three modes:

• Static block only: only shows content from the "Add CMS Block" attribute.

• Products only: only shows products and no static block.

• Static block and products: shows both.

The Anchor setting is used to enable layered navigation (the sidebar in a


category). This setting also merges the current category's products with the
products from the category's children.

Products in Category

Products are added to the category manually (Open Source and Commerce) or
automatically (Commerce).

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 128


Catalog

Further Reading:
Creating Catagories

How to enable Layered Navigation in Magento 2 store

Anchor categories and position sorting explained (Magento 1,


but the concepts still apply)

To add products manually, simply click "Add Products" and choose which
products you would like. Specify the appropriate position for these products.
Note that the lower the position, the higher products are displayed. This can be
troublesome as the default position is "0," meaning, the top of the list.

To add products automatically in Commerce, select "Match products by rule."


Then you can add attribute conditions where the value matches or does not
match. Additionally, you can set automatic sorting rules (such as by stock
quantity or special price).

What is the visual merchandiser?


The visual merchandiser is a way to re-order products visually. Instead of trying
to manage sort orders (Open Source), the administrator can simply drag and
drop. Products are viewed in table or grid format (the latter contains the photo).
In the Magento sample data, note that there are many products assigned to
a category that are "Not Visible Individually". As you adjust sort order here,
you might be adjusting non-visible products and thus won't see changes on
the frontend.

To make an attribute appear in the list of product conditions, you must add this
in Store > Configuration.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 129


Catalog

Further Reading:
Visual Merchandiser

Configuring "Smart Attributes" for Visual Merchandiser

How can the visual merchandiser be used?


The visual merchandiser is used to fine-tune the display of products in a
category. There are some cases where category navigation is preferred by
customers and this helps to see how the new changes will look.

Demonstrate the ability to manage categories.


• To reorder categories, click and drag. They will automatically be saved.

• To disable a category, uncheck "Enable Category." Note that this can hurt
search engine optimization as the existing category page will result in a 404.
It is best to create a redirect.

Category permissions (Commerce only)

A pre-cursor to the B2B module was category permissions. Each category could
have its own set of permissions to determine whether or not this category (or
features) is available.

The criteria are the Website (can be set to All Websites) and Customer Group
(can be set to All Customer Groups).

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 130


Catalog

The administrator can then configure whether to allow, deny, or use Parent on:

• Browsing category (whether or not the category is enabled)

• Display product prices

• Add to cart

Further Reading:
Category Permissions

How can multiple websites with independent category


trees be created?
By creating new Root categories and a store (and store view) for each root
category.

Further Reading:
Root Categories

5.4 DEMONSTRATE ABILITY TO USE


PRODUCT ATTRIBUTES

What are attribute sets?


Attribute sets contain attributes. Each attribute doesn't always describe every
product in a store. For example, if a store sells both t-shirts and chocolate chips,

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 131


Catalog

the ingredients' list wouldn't be applicable to t-shirts. Additionally, the size


attribute wouldn't be applicable to chocolate chips.

For this reason, attribute sets display only attributes that are applicable to the
specific product.

In each attribute set, the administrator can create groups of sets (the tabs you
see in the product edit screen).

In most cases, a store will have an attribute set for each "type" of product sold
(apparel, food, tool, etc.). Additional attribute sets may be warranted for more
specific types (like splitting apparel into "top" and "bottom" attributes).

Further Reading:
Attribute Sets

What are the consequences of a few but large attribute


sets vs. many but small attribute sets?
Having many attributes in an attribute set can make the admin interface slow.
Additionally, it is likely to cause the administrator more maintenance time as
finding attributes will be difficult.

Category pages will be affected either way if there are many attributes.
Categories do not take the attribute set into account when creating the layered
navigation values. Rather, categories look at all attribute values associated with
all products in the category.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 132


Catalog

Having many but small attribute sets can also be difficult to maintain as the
administrator has to choose the right attribute set.

What is the effect of using many configurable


attributes with a product?
This can impact the speed of the indexing processes.

The frontend might see an increase in the load time as Magento has to build
maps for the configurable product combinations.

The admin panel for editing the product also might become sluggish.

What is the effect of store [view] scope vs. global


scope attributes?
Using store view attributes can cause problems when editing products. If a
value is edited at the store view, that value will be displayed on the frontend—
even if you update the value at the global level.

Additionally, store view attributes are not available to be used in a configurable


product.

In our experience, always create attributes in the global scope unless it needs to
be translated.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 133


Catalog

What are possible strategies to use fewer product


attributes?
• Remember that drop-down type attribute values are translatable—you do not
need to create a new value or attribute for each store view.

• Consider combining similar attributes.

5.5 DEMONSTRATE ABILITY TO SCALE


CATALOGS

How to deal with large catalogs, High Sku catalogs


Large catalogs in Magento bring their own set of unique challenges. In
most areas, the developer or hosting provider will be involved to determine
optimization strategies.

Our goal with this objective is to provide a basic overview of optimization so


you can intelligently discuss this with the applicable parties.

Indexing

Index processes are extremely important in making Magento run faster.


However, one thing to remember is that indexes create values for each website
and customer group. Having many of these combinations can exponentially
increase the size of indexing tables.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 134


Catalog

Caching

Ensure that all caches are enabled and properly configured. As discussed earlier,
Varnish massively improves a website's performance. If this is not enabled, your
website will not perform as desired.

Search

Don't use MySQL. It is deprecated as of Magento 2.3 and will be eliminated.


Using ElasticSearch is a must and will improve the performance of catalog
search and accuracy.

3rd-party modules

Unfortunately, in a module vendor's rush to get modules to the marketplace,


they can overlook critical pieces of performance optimization. For example, I
recently heard of a module that disabled the full page cache on a major portion
of the website. The merchant was complaining of slow load times, and it turns
out that it was the fault of this module.

Flat catalog

In Stores > Configuration > Catalog > Catalog, you can enable the use of Flat
Products and Flat Categories.

Background: when we think of a database table, we usually think of one row per
entity (for example, product) and the columns in that row describing that entity
(SKU, name, description, etc.). One of Magento's biggest features is extreme
flexibility. A limitation of using columns to contain information about each

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 135


Catalog

entity is that there could be too many columns and bump up against or exceed
MySQL's column limitation. Additionally, columns can be limiting when it comes
to managing products in different scopes. Instead, Magento uses rows that link
back to a product ID. The downside with this is performance.

Magento can index these rows back into the original idea of one row per product
with multiple columns. This is called flat tables as the attribute structure is
flattened back into a row.

This can help to improve performance. However, it can introduce problems with
3rd-party modules or customizations that have not been written properly.

Further Reading:
How many Products can Magento Handle?

Magento 2.0 Site Performance and Scalability Optimizations

High Volume sales


High volume sales present another area of configuration.

Sharding

Magento Commerce supports the capability to "shard" the database into


multiple databases. This reduces traffic bottlenecks to a single database,
allowing a more even distribution of traffic.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 136


Catalog

Further Reading:
Split database performance solution (Magento Commerce only)

Magento 2 Advanced Performance

Inventory

Magento Commerce also provides the capability to defer inventory updates. By


default, this is enabled (Stores > Configuration > Catalog > Inventory > Product
Stock Options).

This setting delays saving an update to the product inventory table until a later
time (usually within a minute). Updates to this table are one of the biggest
bottlenecks in scaling the order process and this change reduces or eliminates
this problem.

Further Reading:
How to Manage Stock Inventory in Magento 2

5.6 DEMONSTRATE ABILITY TO CONFIGURE


INVENTORY MANAGEMENT

Products

Inventory is controlled at the global level for simple products. With the Multi-
Source Inventory features of Magento 2.3, the control for this has become more
complex but more in-tune with many merchant's needs.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 137


Catalog

Each product must be found in at least one source (by default it is the Default
Source). This specifies where the product will ship from. The administrator must
enter the number of products in stock. The administrator can specify a reserve
quantity at that source by setting (or overriding) the Notify Quantity.

If the merchant wishes to open a new store and ship stock from there, they
must first create the new source. Then, they assign that source to individual
products (Assign Sources button) or with mass actions on the product grid:

• Assign Inventory Source: adds a new inventory source for selected products

• Transfer Inventory to Source: moves inventory from one source to


another source

• Unassign Inventory Source: removes the inventory source for the selected
products

Stocks

Remember, stocks link websites with sources. These must be configured to tell
the website which source to load inventory information from.

Copyright © 2019, SwiftOtter, Inc. and Joseph Maxwell 138

You might also like