SoftSlate Commerce
Home » Documentation » HTML Documentation

Tracking Inventory with SKUs

You'll find a robust set of features in SoftSlate Commerce related to tracking the stock levels of your products. Store administrators can track inventory for products, and for any combination of products, attributes, and options (SKUs). You can decide to decrement inventory either as users add items to their carts, or as they complete an order. Low stock email notifications can be sent when stock levels reach certain levels. Stock levels are displayed to users, and you can prevent purchases of products that are out of stock, while still displaying them in your store.

To enable inventory for your store, navigate to the Inventory and SKUs -> Inventory Settings screen, and set the "Track Inventory" setting to true. You must do this, or none of the inventory features will take effect.


Inventory tracking will not take effect unless the global "Track Inventory" setting on the Inventory and SKUs -> Inventory Settings screen is set to true.

The Inventory and SKUs -> Inventory Settings screen is also where you define global settings for when to decrement inventory, settings for low stock email notifications, and more.


The "Decrement Behavior" setting defines when the system will subtract quantities from inventory levels. If you choose to decrement as items are added to users' carts, be sure to use the Maintenance and Upgrades -> Incomplete Orders screen to delete incomplete orders from the system periodically. When you use that tool to delete the orders, the system will automatically add the order's items back into the inventory levels of the SKUs they were subtracted from.

Most of the settings on this screen can be overridden for an individual product. This is done by clicking the "Inventory Settings" screen from the product detail screen (Product Catalog -> Products -> Details -> More), where you'll find the same set of settings, applicable for just the given product.

Now let's go through a basic example of tracking inventory at the product level. For this example, we'll use the demo store, which sells framed images captured by the Hubble space telescope.

Example 4.3. Tracking Inventory at the Product Level

  1. The first step for setting up inventory tracking is to turn the global "Track Inventory" flag on from the Inventory and SKUs -> Inventory Settings screen, as described above.

  2. Assuming we have already created our products, the next step is to create SKU records for each of the products we want to track inventory for. An easy and convenient way to do this is to use the "SKU Builder" at the bottom of the Inventory and SKUs -> SKUs screen.

    The SKU Builder on the Inventory and SKUs -> SKUs screen.

  3. Using the SKU Builder, create a SKU for each of the products in the store by selecting the "Build All Product SKUs" option. If you have a large number of products, it may take a while so please be patient.

  4. The SKU Builder will create a SKU whose "SKU Number" is the same as the product's code. So next, from the Inventory and SKUs -> SKUs screen find the individual SKU record for the product you want to track inventory on. In our case, we'll use the "Saturn's North Polar Hood" image, whose code is STScI-1990-27. You can use the "Filter" form and enter the product's code to help you find it. When you find the record, click on "Details" to view the details for the new SKU.

  5. When the SKU builder creates SKU records, the "Track Inventory" flag for the SKU is set to no. This makes it safe to run the SKU Builder without imposing inventory limits right off the bat for every product. From the details screen of the SKU you're adjusting, switch the "Track Inventory" setting to yes, and enter in a positive integer for the "Inventory Level".

  6. That's all it takes! In the customer interface for the product, you should now see a new field named "Available" appear below the price, with the current inventory level displayed.

    A Product Page Displaying the Product's Current Inventory Level.

    A similar field should appear on the product's category page and in search results that match on the product.

While the previous example is a good way to get up and running quickly with basic inventory tracking, in many cases you need to track products differently, if they have attributes that the customer can select. For example, the demo store sells images from the Hubble Space telescope, but also offers different sizes and frames for the images. The "Size" and "Frame" attributes have different options such as small, medium and large, as well as different styles of frame. You might very well need different inventory levels for a large image with a fancy frame as opposed to a small image with a metallic frame. Fortunately, this is possible because you can create different SKUs for each attribute/option combination and track them separately. Let's set this up in our demo store with the following example.

Example 4.4. Tracking Inventory at the Attribute/Option Level

  1. To add our new SKU's let's first go the product detail page for the product we're working with. Navigate to the Product Catalog -> Products screen, and use the "Filter" form to find the product by entering in its code. Click "Details" to go to the product's detail screen. On the top of that screen, find the link that says "SKUs" and click it.

  2. The Product SKUs screen shows you all the SKUs related to the given product. You should see the product-level SKU we created in the example above. All we had to do to activate inventory tracking at the product level was to set the "Track Inventory" setting to yes, and enter in an inventory level. But since we now want to track inventory at the attribute and option level, let's switch the SKU's "Track Inventory" setting back to no. You can do this directly from the control screen by turning on "Power Mode", unchecking the "Track?" checkbox, and clicking the "Update" button.

  3. Now, let's add new SKU records for a specific attribute/option combination for the product. Let's start by defining a SKU for the product whose "Size" is small and whose "Frame" is metal. Click the "Add New Record" link.

  4. In the subsequent form, the product we're working with should be pre-selected in the "Product" field. For the "Attribute/Option 1" field, select FRAME = METAL. And for the "Attribute/Option 2" field, select SIZE = 6x8. Then set the "Track Inventory" setting to yes, and enter in a positive number for the inventory level.

  5. Before submitting the form, you must define a "SKU Number" and a "SKU Name" for the new SKU. For the "SKU Number" enter a unique identifier for the SKU. In essence, this is the part number for the product plus its attribute/option combination. For the "SKU Name" enter in a descriptive phrase that will tell your customers exactly what the SKU is. In our example, "Frame=Metal, Size=6 by 8" would be a good SKU name. Finally, you can enter in any "SKU Message" to tell your customers anything extra about the status of the SKU's stock. For example, "Just arrived this week!" or "Hurry before we run out of stock". (For out of stock items you could use this field to enter the date you expect the item to come back into stock.) In the end our new SKU will look something like this:

    The Add New SKU Form.

  6. You can repeat the above steps, altering the values of the "Attribute/Option 1" and "Attribute/Option 2" fields each time, until each of the combinations of size and frame style is represented by its own SKU, with its own inventory level.

  7. Another alternate that is much faster is to use the product-level SKU Builder. Find this form on the SKUs screen for the individual product you're working with. At the bottom of the screen, you'll find the SKU Builder for an individual product.

    The Product-Level SKU Builder.

    When you select the option to "Build SKUs for this Product" and run the SKU Builder, it will automatically generate a SKU record for each attribute/option combination for the Product, which can save you a lot of time.

  8. Regardless of how you create the SKUs, in the customer interface, you'll be building a display grid that shows your customers the stock levels of all the combinations. The product page will end up looking something like this:

    The Product Page with an Inventory Display Grid.

  9. That's it, you are now tracking your inventory down to the attribute and option level. Note that by default the inventory grid is not displayed next to each product on the category page or on the search results page - that would make those pages quite crowded. However, if there is only one attribute/option defined for a SKU, the available inventory level will appear next to the option on all drop down menus and radio buttons.

There is one more important variation of our previous examples. In some cases, your store might stock a given attribute independently of any products it's assigned to. In fact, the "Frame" and "Size" attributes of the demo store are good examples. If we ran our store in such a way that an image was printed as each order arrived, and then matched with a large metal frame, or a small fancy frame, etc., we might very well want to track the frames completely separately from any of the products. In other words, if we have 1,000 large metal frames, that's the number we have for the entire store, not just for a given product.

Fortunately, it is easy to set up attribute-only SKUs: SKUs that apply to a combination of attributes and options, independent of any products. The easiest way to do so is to go back to the SKU Builder on the Inventory and SKUs -> SKUs screen. This time, select the "Build All Attribute SKUs" option. The SKU Builder will create a new SKU record for each attribute and each of its options. You can then turn on the "Track Inventory" setting for the SKU and assign it an inventory level. The store will display the attribute's inventory levels in the SKU grid the same way it displays other SKUs, on the product page of products that have the attribute assigned to it.

Copyright © 2009-2017 SoftSlate, LLC. All Rights Reserved.

Powered by SoftSlate Commerce

Foraker Design