Magento Multi Source Inventory Introduction

Magento’s latest version 2.3.0 introduced a much discussed feature, Magento MSI, or Multi Source Inventory. It gives Magento more flexible, more capable inventory management functions that match Magento’s already powerful multi site capabilities.

In a sentence: Inventory is managed across multiple sources that are mapped to sales channels (aka websites) via stocks .

This gives businesses the ability to:

  • Track physical inventory across multiple physical sources
  • Implement more complex multi source (or Omnisource) fulfillment strategies

The New Concepts:

Salable Quantity

Without MSI, Magento has a single QTY value for all simple products. A purchase of a product deducted directly from that number.

MSI introduces a new figure, Salable Quantity, that exists in tandem with QTY. Essentially, it’s an intermediate calculation to ensure that you don’t oversell, while the QTY is maintained across at source level and only updates with shipments or returns.

In order to maintain an accurate salable quantity, reservations made against salable quantities with unfulfilled purchases. In terms of what you see in the admin panel, there isn’t much difference but this is one of the features that allows tracking of salable inventory across multiple channels/websites.

magento multi source inventory diagram


A core component of MSI, sources represent physical inventory sources. Sources will generally represent warehouses, brick and mortar stores, or drop shippers but can be structured according to individual business structures.


Stocks are simply a tool to organize sources into groups according to business flows. Sales channels (websites) are mapped to one or more sources via stocks . Taking a simple example, if we have both a warehouse and a brick and mortar store that are capable of fulfilling US orders, we might assign both of these sources to a stock called “US Ecommerce,” which serves as our stock for our US storefront (website).

How They Add Up

Let’s take a look at the graphic again. Below we have a single warehouse, with a single online sales channel/website. Our source is called “Warehouse” and our stock is called “Bicycle Shop Marketplace.” Salable Quantity at the Stock level is determined by the Quantity at Source level, minus any thresholds we’ve set, minus any pending orders on eBay(note we’ve just grabbed the the magento graphic here – eBay can be considered a website here).

This is essentially the non-MSI magento stock setup, the only exception being that salable quantity is takes two thresholds into its calculation.

magento muli source inventory diagram - one source one stock and one website

Let’s say our sales are growing and we’ve decided to open a new UK brick and mortar store (Flagship store), and two EU websites: UK and Germany (DE).

These two new websites can have orders fulfilled with inventory from both our original warehouse and the new brick and mortar store. This is achieved by assigning these two independent sources to a single stock, “Bicycle Shop UK,” which in turn serves inventory for both of the new websites.

Orders from our eBay storefront continue to be fulfilled only by our warehouse.

magento msi diagram, two sources, two stocks and 3 websites

Continuing to grow, we open up a new US Brick and mortar store, and build a new US website.

Fulfillment for our other websites remains unchanged, but we’ve decided to fulfill orders for our new US website from the two previous sources, as well as our new brick and mortar store.

This is accomplished by creating a stock for the US website which has all three sources assigned to it. This brings us back to the full graphic:

Configuration Overview

*Editors note: we’re starting form scratch and not using the same source, stock and storefront names used in the above diagrams.

Below is a brief look at where MSI shows up in the Magento admin panel:


Each installation starts out with a Default source that can’t be disabled. If you’re setting up multiple sources you can rename the default source to better reflect the warehouse or store that it represents.

The only mandatory fields for a source are Name, Code (development use), and Country. Additional fields for unique source contact info and location data that would be utilized for any distance-based source selection algorithm.

Due to the fact that sources are integrally tied to order and shipment histories, they can’t be deleted. However, they can be disabled with the same effect, removing them out from any fulfilment equation.

When setup is completed, your “sources” page should represent all your physical inventory sources as in our sample below (Three US and one Canadian):

Magento MSI manage sources configuration


magento MSI stock admin panel navigation

Again, stocks are used for source organization and mapping, so different operation’s stock setup will be unique. In the below example, we’ve set up our “US Ecommerce” stock to represent two of our US sources:

As the object that connects sources to sales channels, both websites and and inventory sources are selected in the Stock view (in this case we’ve added Amazon to represent multi channel operations).

Note that, if multiple sources are assigned to a stock, the admin can drag and drop into a different order. This order is used by the default MSI Source Selection algorithm outlined below.

Source Selection Algorithms:

One of the MSI features with serious potential is support for Source Selection Algorithms which programmatically suggest optimal fulfilment sources for items in an order.

At the time of writing, the only out of the box algorithm in MSI is the “SSA Priority” algorithm for Magento 2.3, but expect updates with new versions soon.

The primary feature of this algorithm is that it prioritizes Sources in the order chosen by the admin on the “Stock” level through a drag and drop list.

In the below screenshot, two sources are assigned to our “US Ecommerce” Stock, and our Seattle Warehouse source will be prioritized by the Priority algorithm due to its position here in the admin.

The full priority algorithm follows this logic:

  1. Checks each source for virtual salable quantity in their assigned order at stock level (top to bottom)
  2. Selects source if a stock level is present (including any aggregate configuration and out of stock thresholds)
  3. Moves down the list to fulfill entire order
    1. E.g. if Seattle source has right socks and New York source has left socks and we’ve sold a configurable product, “Pair of Socks,” 1 simple product will be deducted from each source.
  4. Skips disabled sources assigned to stock.

Custom Source Selection Algorithms

Appealing to multi-channel sellers and larger operations is the potential to customize a source selection algorithm to optimize inventory logistics and shipping costs.

According to Magento:

Magento supports custom development and extensions to add alternative algorithms to prioritize sources. For example, you can have one priority algorithm based upon geography and another based upon expense of stock or a customer attribute. When the cost of stock changes, your implementation can easily change algorithms to ensure the lowest cost.

In other words, you can create the algorithm that’s most appropriate for your operations.

A couple other examples that might be factored into a custom Source Selection algorithm:

  1. Choose source based on cheapest shipping cost
  2. Choose source based on fasted shipping time
  3. Choose source based on national (tax) borders

Again, these more complex algorithms need to be written by third party developers at this point, but the most widely applicable calculations to be incorporated into future Magento releases.

Create In-Page (Anchor) Links in WordPress

The newest versions of WordPress with the Gutenberg editor make inserting anchor links a very straightforward task.

Step 1: Add Link to Section Headers:

The new WordPress interface has a field specifically for adding anchor links to blocks that are using a header tag (H1, H2, H3). Simply click on your header block, open the Advanced dropdown, and give your header a unique link (no spaces or characters).

If you view the html you’ll see that this field inserts an <id> tag to your header that had to be manually added in the classic editor:

<h2 id="first-section-header"><strong>What is Lorem Ipsum</strong></h2>

Step 2: Link Table of Contents to Section Header

For this step, simply use the hyperlink tool to add the unique link you’ve created preceded by a “#” (hash or pound).

Step 3: Repeat As Needed

If you are working with the classic WordPress editor, the only difference is that you’ll need to create the anchor links for each heading directly in the HTML or using an extension.

Cyber Security Practice for Individuals and SMBs

Cyber Security Best Practices Article Banner

The most secure methods for protecting personal and sensitive information are constantly evolving as industry practices and bad actors continue to push each other to the next level.

However, there are several best practices to follow that minimize your risks and, by extension, the risk of any organizations that you belong to. Below we outline a few starting points which protect both individuals and businesses.

  1. Basic Best Practices
    1. Track Breaches and Leaks
    2. Password Security
    3. 2FA Authentication
  2. Browsing and Usage Habits
    1. Confirm SSL Connections
    2. Caution with Email Links and Requests
    3. Up-to-date Operating Systems
  3. Organizational / Company Security
    1. Structured Access
    2. Access Sharing
    3. Employee Changes
    4. Clean Desk Policy
    5. Document and Educate
    6. Alligator Moats

Basic Best Practices:


Find out whether your data has already leaked:

If you’ve been active online for a while, there’s a good chance that you’ve already been involved in some sort of data leak. A cool website built by Troy Hunt,, scrapes a variety of public sources to provide a database of compromised emails and accounts associated with breaches.

You can subscribe for notification if your email is discovered in any future breaches, hopefully giving you a better chance of mitigating any fallout.

If nothing else, check out this site to get a sense of how common data breaches are and get inspired to put in a little extra effort.  


The best place to start in securing yourself and your organization is your passwords. For the points steps below, a password manager such as Last Pass is a great option that allows you to quickly create, update and manage your passwords.

If you’re an organization for which security has to be absolutely airtight, you may want to manage your passwords internally. However, in most cases, the security gained from a dedicated third party manager is greater than the risks of having all your passwords in one location.

Password Makeup: The obvious starting point for security is to ensure that your passwords are making use of as many characters as possible.

If you’ve tried to use your old go-to password from 2005 (e.g. myDogsName) you’ll notice that most sites won’t accept a simple string of letters anymore. However, simply substituting a 0 for an o and adding a “!” isn’t much of an upgrade. Massive databases of common substitutions and punctuation placements makes the password myD0gsName! only marginally more secure than the original.

Modern browser versions as well as password managers will auto generate and store complex passwords for you. When using an application like this, there’s no reason not to make your passwords as long as possible, making them exponentially more difficult to crack.

When storage of an auto-generated password isn’t an option (e.g. your password for your password manager), a good method is to create a “passphrase.” For example, YouknowmybirthdayisonJuly2(woohoo)butyoustillwon’tcrackthis!

Password Diversity: Making use of unique passwords for different accounts means that, when a breach occurs on one account, the remainder of your accounts don’t immediately become available to whoever gives it a shot.

Password Frequency: Similar to above, changing your passwords at regular intervals reduces the chances of being affected even if your account information has been compromised. If you’re working with software like we do, you can often set passwords to expire at set intervals.

Two Factor Authentication (2FA)

Wherever possible, use 2 factor authentication. Despite hackers finding sophisticated ways around 2FA, it’s still an extremely important component of online security

Nearly all major companies now support some form of two factor authentication through apps such as Google Authenticator and Authy or direct SMS.

If you can’t be bothered to use 2FA for all of your accounts, be sure to have it in place for the most crucial ones such as your email and your password manager (any accounts that share access and information with other websites and services).

If you manage an organization or network, we’d suggest making 2 factor authentication mandatory for all users.


Browsing and Usage Habits (Operational Security)


Confirm SSL Certificates

There’s really no excuse for websites that store any personal information (not to mention accept payments) to be without an SSL certificate. Up-to-date browsers are increasingly forceful about alerting you to being on websites that have insecure elements but you can ensure the connection with a browser extension such as HTTPS Everywhere by the EFF.

The most common way for your accounts to be hacked is not through a superspy remotely hijacking your computer but rather through simple emails that trick you into forking over the keys to the kingdom.

When you receive an email with any request for you to login or provide information, take an extra moment to verify the domain of the sender and the domain of the link provided. Not seeing a green HTTPS padlock on any login page is a significant red flag.

Any company that takes security seriously will not ask you to provide your password via email or phone call.

In the event of any suspicion, look up publicly listed information and contact them directly.

Furthermore, look out for unusual requests from contacts within your organization or contacts list. Maybe you have a great password, but your friend doesn’t – use another channel to confirm that the request really came from your friend or coworker.

Keep Operating Systems and Applications Up-to-Date

Easily skipped over inconvenient interruptions, the updates to your browsers, software and operating system often include crucial security patches.


Organization Security


For most smaller organizations and businesses, the best first step is to enforce the points outlined above at at an organizational level: have minimum password requirements, use an organization-wide password manager and require 2FA for any accounts connected with your business. Wherever possible, enforce enforce enforce! It’s easy for all of us to get complacent so, wherever it’s an option, enforce these measures through software or platform settings (microsoft, G Suite).

Again, these tips are a supplement rather than a substitute for a comprehensive internet/information security plan.

Structured Access

Larger businesses should have systems in place for a hierarchical information access. However, it’s important to implement for smaller businesses as well, even if it’s not an explicit policy – the basic concept is to segment access so that individuals (and networks) are only interacting with the information that’s necessary for their work.

At smaller businesses and startups where one individual can wear a lot of hats, it’s rarely so black and white. However, it’s still important to take basic steps to audit access at scheduled intervals.

Don’t Share Access

This may sound obvious, but, particularly in smaller organizations, it’s very easy to make “exceptions” in the interest of expediency, particularly when clients are involved as they our in our daily workflow. In those situations, it’s helpful to be able to fall back on “I’m sorry, we’re unable to do that due to an internal policy,” as it draws a line on the conversation, even if someone thinks they have a compelling argument for sharing.

Employee Changes

When an employee moves on, it’s an absolute must to change their passwords and review access immediately. Make sure that someone is responsible for a full audit of their access to primary and related company accounts. The more organized your password and SOPs for access management, the easier this is.

Clean Desk Policy:

For offices with access to sensitive information, communicate an explicit policy against any written passwords or credentials being left on desks where passers-by can see them.

Document and Educate

The fact is that we’re all busy and security can easily become an abstract concept that takes a back seat to the immediate task at hand. The more that your security measures are documented and communicated, the less likely they are to be considered “suggestions” by employees and coworkers.

Implementing a regular audit of password security, 2FA and access and communicating best practices for operational security in writing makes security more tangible. Making it clear that these steps are for each individual’s security can be more effective than a dry document about company assets.

Alligator Moats

The modern business needs to be alert to more than just cyber threats; ninja’s are out there and you need to take actions to defend against them.

After you’ve dug your moat, we’d recommend investing in robot alligators – regular alligators just eat bad ninjas, cyborg alligators laser them and eat them simultaneously. Any serious security professional will tell you that this is just good sense.

Ok, just kidding… get regular alligators

10 Getting Started with JIRA: User Interface

This article is a part of Astral Web’s Comprehensive Guide to JIRA!


Previously: 09 Getting Started with JIRA: User Roles & Permissions

By now you may have gotten used to how JIRA Clouds looks and navigates, but here are some additional details about the interface that you may or may not already know.


Dashboards are the first page your users will land when they log into JIRA. The space is useful for filtering and sharing JIRA information, which is achieved by adding different types of gadgets such as search filters, pie charts, and other data collection formats.


System Dashboard

The default dashboard you will get when you start JIRA is the System Dashboard. This default dashboard includes the “Introduction”, “Assigned to Me”, and “Activity Stream” gadgets. These are basic and fairly useful, but there are much more gadgets that JIRA provides for you to make user of. To do this, you will need to create new custom dashboards.

Custom Dashboards

To add or modify more gadgets, you will need to create a new dashboard since you cannot make changes to the default dashboard. Select the top right “…” icon and select “Create Dashboard”. You must be an admin or user with permission to create new boards, and usually only the creator or user with higher permissions will be able to make changes.

Add a name (e.g. “Project Team ABC Dashboard” or “Design Team Dashboard”) that will be relevant to the users who will be using this dashboard.


We have created 3 basic levels of dashboards for our teams. Our highest level is a “Company Dashboard” that displays top level overall project information so we can quickly view the status of multiple projects at once. Only administrators can access this dashboard. We also have dashboards for each team by function such as “Design Team”, “Development Team”, and “Sales Team”. These filter projects and issues so they are most useful for each team and their members. We also have “Project Dashboards” for larger projects, so the project managers can get an overview of their entire project on the dashboard.

We use different dashboard gadgets to share information. For example, our Project Dashboard shows a calendar with hot issues, a line chart to show how many tickets have been created, and a pie chart to show the status of all of the tickets. This helps us understand the overall situation of one project.


Dashboard Gadgets

JIRA offers a few dozen dashboard gadgets to use. There are some 3rd party gadgets that can be purchased, but we have never tried any. Not many of the gadgets are amazing, but they do basic data collection and show different charts. The Calendar gadget and Pie Chart are some of the most useful ones. We recommend you to try all of them to see and feel if they are useful for you.


The most important factor is the data you are feeding to the gadget, which is all controlled by another feature called “Filters”. We will discuss how to use Filters in another article, but note that adding a gadget will not have enough power to filter fine details.

One type of gadget that is missing and we would love to have (which apparently used to be available in a much older version) is one that can add plain text or code. JIRA decided to remove these features. But, we do describe in our previous article that the “Introduction” section under your JIRA General System Settings is the only and best way to share custom text and basic code. Otherwise a 3rd party gadget may fulfill your needs.

More Dashboard Space

Select the “Edit layout” button to change the dashboard layout. You will be able to select between basic 1-3 columns. We use the default 2-column layout since it’s a good balance. The 3-column layout gets too small to show detailed information. You can try switching between them to see which works best for you. Just be careful that your gadgets may jump around when you make changes.


You can also improve your viewing space by making the side menu smaller. Click the divider between the left menu and right side content to make the menu bar smaller. It isn’t much, but it does help to show more content on the right side if you have a small monitor. Otherwise you can zoom out on your browser (e.g. “ctrl” + ”-”) to see more.


Look and Feel

The overall usability of JIRA Cloud cannot be changed so much, but you can change the logo and colors of your interface. Go to the section under “JIRA Settings” > “System” > “Look and feel”.

We added a nice company logo (and JIRA since we had some extra space), which needs to be around 368px by 64px. There are also options to show Titles on browsers tabs, Colors, and Time Display.


You can only choose two colors for interface. The background color of your sidebar, and the Text and Icon colors. It would be nice to have more control, but you can at least unify colors for easy reading or differentiate between multiple Atlassian web-apps, or just having the right color for your company.


JIRA Cloud, as most web-apps, is limited to modifying the interface, but we hope these tips help you improve usability for your team members.

Next: Getting Started with JIRA: Issue Management with Basic Agile Workflow

09 Getting Started with JIRA: User Roles & Permissions

This article is a part of Astral Web’s Comprehensive Guide to JIRA!


Previously: 08 Getting Started with JIRA: Manage Your User Profile

General Configuration

After we have added some users that can help configure and check our changes, we can now complete our general configurations that apply to your entire JIRA system.

The “Title” of your JIRA should be related to the overall system. We just simply named ours “Astral Web’s JIRA”. The naming isn’t too important, since the most prominent place you ever see it is in the tab title area.


A very useful setting is the “Introduction” section. This section allows for some basic JIRA markup code that lets you add links, styling, and images.


Go ahead and select “Edit Settings” to make changes.


JIRA dashboards don’t allow any html code (unless you buy a 3rd party plugin), but you are able to add the “Introduction” block, so it may become useful for sharing important notes with all of your users.

Here is an example of how our Introduction block looks like on our main dashboard.


Use the “Internationalization” settings to configure default language settings for all of your users. We use JIRA in both English and Chinese with English being our primary language, so we have “Other” for Indexing and “English” as our default system language. Language display settings can be changed per user as described in our previous User Profile article.


Options are useful if you want to customize even further. We used the default setting as-is, but you can optimize what users see and access by turning on or off all the features you actually need to use. For example, Voting is a great feature for prioritizing issues, but we don’t use it in any of our teams. So, we could turn it off and keep it hidden from all of the interfaces. For now, our teams just ignore these options if we don’t need them.


Security options are going to be important if you have different types of internal or external users on your project teams. You don’t want all of your users to have admin powers that allows them to accidentally add or remove important users, features, or billing options. Define which users are admins early on, so only specific users have access to these high-level options as described in our previous articles.

Project Roles

Project Roles are what you want to change for all the types of users you want to define and configure permissions for.


In addition to the system Administrators roles, we have added “PM (Project Manager)”, general “Team Member”, and “Guest Reporter” roles.

Project Manager Roles

PMs will have full access to their own projects allowing them to add/remove users and configure their projects as they please. The highest-level option they have is to delete their project. They cannot change global settings such as system settings, workflow schemes, etc.

General Team Member Roles

Team Members can only be invited to a project by a PM, and can only create, edit, and delete issues within the project. They can see other users’ issues and support editing them, but they will not be able to change any project settings.

Guest Reporter

Guest Reporters are roles reserved for our external stakeholders who need access to our project tickets. They can never see other projects, nor can they view issues they are not related to. So a PM must assign or add a Guest Reporter as a watcher to tickets they need access. Otherwise, the Guest Reporter can create and modify their own issues within the project.

Add Your Custom Roles

Above are examples that we use, but you should add your own custom roles as necessary. Go to the bottom of the list to “Add Project Role” to add your own.


The new role will be added to the list. You will be able to add this role to different “Permission Schemes”. We will explain after our next step to set up “Global Permissions”.

Global Permissions

Global Permissions are configurations for top level users. If you have multiple Atlassian tools, you will be able to configure how different admins can access the different tools. Global Permissions apply to all projects, so you will most likely only add admin groups or users in this area.


To add your new Project Roles to different permissions schemes, select the “Permission Schemes” in the description or click the “Permission Schemes” on the left menu panel.


We created a new permission scheme that we apply to all of our projects that we create called “AW Project Planning”. You can do this by selecting the “Add permission scheme” button on the top right.


After you create a new scheme, it will be listed on the permissions schemes list page. Select “Permissions” under the actions column to change configurations.


Inside the scheme, you will see a list of actions and options for Projects, Issues, Comments, and more. You can assign different roles to each of these actions. Once a role has been assigned to an action, then the user within that role for each project will be able to access the feature. For example, we add PMs to the “Administer Projects” permission so they can make high-level changes to projects. We do not add other roles. Other general roles are added to the “Browse Project” permission.

In this way, we continue to add our roles to permissions so we can balance security, efficiency, and necessity for all of our teams and projects.

Next we’ll show you how to change your JIRA interface appearances.

Next: 10 Getting Started with JIRA: User Interface

08 Getting Started with JIRA: Manage Your User Profile

This article is a part of Astral Web’s Comprehensive Guide to JIRA!


Previously: 07 Getting Started with JIRA: Start From Your Free Trial

Manage Users

The first thing you should set up are the users, starting with yourself, that will be accessing your JIRA Cloud. As a JIRA administrator, you will be able to add, remove, and edit any user. For each user, you will be able to assign different groups, project roles, and applications. Your Atlassian site uses single sign on for all your applications so your members don’t have to different accounts if you have multiple applications such as Confluence.

Add Admins

Add your administrators (or just yourself for now is ok) so we can work on JIRA setup together. Go to “JIRA Settings” from the dashboard and select “Users”  under User Management. Type in your administrator emails and select “Jira Software” so they have access to JIRA when they finish registration. Your other applications will show here, so you can select them as necessary if you would like.


Organize Groups

If you’re a small team, you may be okay with less organization, but setting customized permissions for different types of member is good for management and security. There are several default system administration groups. You should be in the highest “site-admins” and “administrators” to have access to these backend setting options. Don’t change access details of these groups since you may lose access to key features. If you need custom access, start adding new groups and add new users to the custom groups.


We customize our users into groups that relate to our internal departments. Project Managers have access to most projects and permission to modify project contents so they have their own group. Designers have access to the design team board and general access to most projects. Engineers are assigned to their responsible projects by project managers. By hiding options that are not relevant to each user, security improves and helps each member focus on what they need to do most. You do not need to create a group for each project, since each project will have user settings that is much quicker to manage. You will be able to add whole groups and adjust permissions per group or individual for each project.

Customize Roles

To customize the access permissions by role, go to “Project Roles” under “JIRA Settings” > “Security”. The highest role a user could be assigned is an “administrator” that grants  permission to edit and delete a project. Lowest is “View only”, which only allows a user to see issues related to them and cannot modify those issues. We added a few extra roles that are easy to change by project managers. Most are for internal members, but we also have external guest roles prevents external users from accessing too much options or information of our projects.


Update Individual Profiles

Each user can update their user profile under “Your profile” menu from the bottom left of the JIRA dashboard screen. Adding a profile image is highly recommended when you have a large team so it is easier to identify each other on thumbnails and name searching.


You can also change settings of JIRA per person under “Personal settings”. We have English and Chinese speakers, so here they can individually set their preferred language setting when they use JIRA. You can also translate workflows and statuses in the backend so all of your documentations are optimized for different languages. Each user can also have their own time zone, if they work remotely or in a different area from your main team.


Maintain Users

We review our member list each month to make sure only active users are registered. We have many projects and guests accounts, so we are careful to communicate with each project manager to understand who needs access. We try to stay in our 50 user subscription limit to control our budget for JIRA.

If a user needs your help or you need to see how a dashboard looks like on a different user’s account you can login as another user under the User Management section. A “Log in as user” option is available under each user. However, you will not be able to log in as another admin. This is one reason you should not add all your members as an admin, since there will be situations you need to help administrate other users.


Next, we will help you go through some general settings of JIRA Cloud so your users can add and manage new projects.

Next: 09 Getting Started with JIRA: User Roles & Permissions

Structured Data JSON/LD for “Parent – Child” Locations

Parent Child Local Business Heirarchy JSON Structured Data

With Google and others increasingly serving information in new formats on both mobile and desktop search engines (e.g. product, service or company “cards”), maintaining accurate and up-to-date structured data is a must as an SEO best practice.

Many businesses fit neatly into one of the organization types provided by, but we encountered a case of a business that’s dependent on both local and national SEO results (but not large enough to completely separate corporate and retail). For this reason, we wanted to maintain a parent Organization for organic searches while still marking up individual locations data to improve their local SEO. It was important to us to maintain an explicit relationship between locations and the company as a larger entity.

We settled on creating a parentOrganization > LocalBusiness hierarchy, allowing us to define information for the larger organization & homepage while optimizing location pages. Below is an example of the JSON-LD script that we used for both the parent organization and the local listings.

Other situations where this could be useful include:

  • Defining Headquarters / Corporate Offices and service locations
  • Websites that do business both online and in brick and mortar locations


The script below is pared down to basic information and defines the umbrella business information:

<script type="application/ld+json">{
    "@context": "",
    "@type": "Organization",
    "name": "Your Parent Company Name",
    "logo": "",
    "url": "",
    "sameAs": [
        "",      “”
    "contactPoint": {
        "@type": "ContactPoint",
        "telephone": "+1-800-111-1111",
        "contactType": "Sales",
        "email": "",
        "contactOption": "TollFree",
        "areaServed": "United States",
        "availableLanguage": "English"
    "address": {
        "@type": "PostalAddress",
        "addressCountry": "United States",
        "addressLocality": "Los Angeles",
        "addressRegion": "CA",
        "postalCode": "90230",
        "streetAddress": "1025 mainOffice Street"

Location Pages:

The goal here is to markup location data, without abandoning the “parent” organization, done so by creating each location as a LocalBusiness subtype of the parentOrgnanization.

<script type="application/ld+json">
  "@context": "",
  "@type": "LocalBusiness",
  "@id": "",
  "name": "Your Company Name - Location Number 1",
  "description": "Your Company Location Number 1, Providing the best goods and or services to the area since mid-March of 1699 BC.",
  "image": [
  "areaServed": "serviceArea",
  "url": "",
  "telephone": "+1-650-801-3333",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 localBusiness Street",
    "addressLocality": "San Francisco",
    "addressRegion": "CA",
    "postalCode": "94117",
    "addressCountry": "US"
    "parentOrganization": {
    "@type": "Organization",
    "@id": "",
    "name": "Your Parent Company Name",
    "description": "Your Parent Company Name: Providing local and international services since Mid January of 1699 BC.",
    "image": [
    "url": "",
    "telephone": "+1-800-111-1111"

Needless to say, the above code is just a starting point for creating JSON-LD markup for businesses with similar needs. For example, one of our key goals was to display each locations’ reviews on SERPs, and if you’re adding or updating your structured data this is a great time to add any such data to the localbusiness JSON.

Once you’ve added the data, make sure to confirm that Google’s seeing the right values with their testing tool.

Have other ideas, improvements, questions? Let us know!

07 Getting Started with JIRA: Start From Your Free Trial

This article is a part of Astral Web’s Comprehensive Guide to JIRA!


Previously: Before You Start Using Atlassian JIRA Part 3: Create A JIRA Workflow For Your Business


Jira Cloud trial is free for only 7 days. Make sure you understand enough of your business and work process foundation before you get started, because 7 days is a short time to test and confirm features.


Select the Jira Software “Try it free” button to get started. The other two choices, which we don’t need now, are the combination of Jira Software and Confluence (Wiki style document management) or Jira Service Desk (Atlassian’s customer service platform). You can try these other services another time on a different trial session.

Complete the required information to get started.

Login to Jira Cloud


Once you’re set up, you’ll have access to all Jira features for a week.

To learn more about the basics features of Jira Software at the official website:

If you haven’t, log into your Jira Cloud at your unique Jira website. Otherwise, you will see a default menu with no accessible content. You can login from the bottom left icon.


Exploring the Jira Workspace

You will be able to access your Jira Cloud account from any internet browser, as well as the Jira Mobile App that is available for iOS and Android. Mobiles apps will not have a full workspace, but will give you access to all of your projects and issues.


First landing page is the Dashboard tab.

Astral Web’s example login dashboard has continued to evolve, but currently has enough widgets to get our team members informed about the latest information and groups issues so they are easy to access. Some useful filters we have put together are “Things I need to do by Due Date”, “Bugs & QA Issues assigned to me”, and “Recently assigned to me”.

Jira Cloud Dashboards are limited to the widgets available, but we were able to experiment and set up to get these results.

  • The Projects tab takes you to a section that lists all of your projects. We use projects to organize issues by type of project and by teams. We use teams to collect multiple projects and display issues efficiently for each team.
  • Issues and Filters tab are all the filters created within your Jira Cloud. These are some that we used on the dashboard as well as some being unique to each project. We’ll discuss more about filters in the future.
  • Jira Settings are where you will be setting up projects, users, custom workflows, and all other admin features.


  • The top left icon, also shown on the Jira Settings section, will take you back to your main dashboard.
  • The Star icon will pull up all issues, projects, and pages that you have favorited or recently accessed.
  • The Search icon will let you search for anything in your Jira Cloud. Typically used to quickly search for a project or an issue by name.
  • The Plus icon will let you create a new issue from anywhere.

Jira Software Keyboard Shortcuts

Useful to learn early on are Jira Software keyboard shortcuts. This will let you operate your workspace faster without scrolling and searching.

Some examples are when navigating issues:

  • “o” to open the selected issue
  • “a” to assign the issue to someone
  • “i” to assign an issue to yourself
  • “m” to add a comment

Full details on the Atlassian’s Support Confluence:

Atlassian Marketplace

7 days may be too short to play around with 3rd party plugins, but if you get stuck because of a lack of Jira Cloud features, the marketplace may be a good place to see if there are solutions.

Atlassian Marketplace

Astral Web uses plugins such as Issue Checklist to make our issue processing even more efficient.

Issue Checklist Plugin


We hope this gets you started on the right foot to understand Jira Cloud’s possibilities within the short trial period. If you are a small team under 10 people, then it is more than worth it to invest in the monthly $10 usd plan to test further.

Astral Web spent at least 3 months to fully configure workflows before we had all of our 30+ members go on board.

We will discuss more about our Jira Cloud setup decisions in our future articles.

Next: Getting Started with JIRA: Manager Your User Profile

Before You Start Using Atlassian JIRA Part 3: Create A JIRA Workflow For Your Business

This article is a part of Astral Web’s Comprehensive Guide to JIRA!


Previously: Before You Start Using Atlassian JIRA Part 2: Create A Master Workflow For Your Business


If your business process is documented, you are ready to convert them into a JIRA process.


We chose JIRA Cloud because it has great features for agile development teams. The Kanban method provided in JIRA Cloud was our best choice to visualize our tasks and process them. We’ll show you these examples when we set up JIRA.

Understand JIRA Workflow Concept



As Atlassian describes: “A JIRA workflow is a set of statuses and transitions that an issue moves through during its lifecycle and typically represents processes within your organization.”

It is the logical process to move your issues to different states so you always know the status of an issue by just looking at the status information. Statuses cannot be vague, so make sure you can clearly describe steps in your business process to be able to create them in JIRA.

Astral Web Master Workflow

As we described in our “Understand your business workflow” article, after spending nearly 3 months to review of how our teams and team members work, we were able to put together a master workflow that is compatible for even our biggest projects.


  1. Backlog: A list for all pre-planning issues (ideas, to-do, etc.)
  2. Selected for Planning: Issues that are ready for planning and need to be assigned
  3. In Planning: Issues that are in planning
  4. In Review: Plans that need approval
  5. Selected for Development: Issues that need to be assigned to development team
  6. Selected for Design: Issues that need to be assigned to design team
  7. PM Review: Issues that need to be checked by PM
  8. Select for QA: Issues that need to be assigned to QA team
  9. Deploy: Issues that need to be deployed (website)
  10. Pending Approval: Issues that have been deployed and need 3rd party approval
  11. Done: Issue has been approved and completed

These are all the checkpoints for project managers to keep our solution quality high, regardless of what kind of task or project we need to complete.

However, this workflow is overkill for simple and general tasks. So, we also made sure transitions are flexible for different teams and project sizes.

Customize workflow for each team

Development, design, and QA team branches off from the master workflow to process issues in their internal teams. Project managers are focused and handing off issues and receiving them for final review, so we omit detailed development, design, and QA tasks.


For smaller projects and teams, we simplified the master workflow with less steps and completely omit the development process. We kept the handover to the design team process, since many of our projects require design elements. This process is good for our marketing team, corporate strategy team, and other general work.


However, our sales team use completely different sales and crm system, so we took the general team workflow and added a few more status to customize a new process. We still borrow statuses from the master workflow when we can.


Prepare for naming transitions

You will need to set up a logical transition between each status. For example, if you are moving an issue status from “In Planning” to “Review”, you can name the transition “Review plan with PM”.

Create multiple workflows using status from your master workflow

Here is a preview of the master workflow we will create in JIRA. To create this workflow, we made many new status labels and transition that do not exist in JIRA by default. When we make simpler workflows for teams and smaller projects, we want to make sure we’re using the same label so the data is clean, shareable, and easy to report.

Here’s an example of a general team workflow that simplifies the master workflow by many steps, but still borrow some statuses.


We need to share statuses, so all similar issues are organized together. For example, we want all issues for any project that needs design work to be shared with the design team. So, all of these issues need to fall under “For Design” status at some point of the workflow.

Project focused vs multi-project teams

Another point to consider, is how teams view projects. Are engineers focused on single projects and designers working on multiple projects at once? You will have control over how issues will show on each team or project task board.



Understand Your Non-development Teams

JIRA is great for software development, but can it be great for other teams, too?

We believe this can be true, so we also designed processes for our non-development teams.

Other JIRA workflows to consider:

  • Corporate strategy
  • Overview for all project managers
  • Sales team
  • Small projects

This resulted in a optimized general team type board which was simple but also capable of sending job requests to visual designers. The process uses the same master workflow, but fewer statuses to get things done.



We even created a flow for our sales team to replace are simple sales and crm processes. We used our general team flow and added new custom status that is compatible with our master workflow so some work can be shared with the design team.


Get started on JIRA

Once you have all your processes documented, be prepared to convert your list into JIRA status labels, and flow chart with transitions that connect each status.



We started using JIRA after our master workflow was decided, and continued to experiment live. However, we recommend to plan as much as possible beforehand to prevent too many changes or fixes that may cause confusion and stoppage to current projects.

We’ll show you how to set up everything in our upcoming articles.

Next: 07 Getting Started with JIRA: Start From Your Free Trial