Inventory - how AspDotNetStorefront, DotFeed and Google interact
As it becomes increasingly important for all online sellers to effectively manage their structured product feeds, we are focusing on helping to manage inventory. (This is the first of a number of specific focal points.) We have changed the way that the inventory level of 'items' is fed to Google via DotFeed and this is an important document, especially if you track inventory by size and color.
There is a LOT to understand about the different ways that AspDotNetStorefront and DotFeed can handle inventory. Hopefully, you can draw on expert help. If you don't have a subscription to our annual support coverage (Year-Round Benefits), then most likely one of our resellers is supporting you and you should feel free to ask for as much help as you need.
About Products
In AspDotNetStorefront, every product has at least one 'child' called a 'variant'. There can be multiple variants for a single product, and one is always set as the default. Every variant carries an inventory value (the parent product does not carry any stock.)
A variant can, optionally, carry up to two 'attributes'. In our examples, these are used for size and color, but can actually be renamed and used for any attributes.
Each attribute combination (e.g. 'small/blue') can carry its own inventory value if the administrator turns 'Track Inventory by Size and Color' to true.
About Display Pages on AspDotNetStorefront
There is a configuration setting 'HideProductsWithLessThanThisInventoryLevel'. If this is set to -1, then the store ignores inventory and shows all products. If there is a value other than -1 in this setting, then(this is important)any product with a default variant that is carrying less stock than the value of the setting will not be displayed (the product page will not be rendered at all - a 404 error will stand in place.) Use this 'hide' setting with caution.
There is a configuration setting 'DisplayOutOfStockProducts' which is stronger than the 'hide' setting. If 'DisplayOutOfStockProducts' is set to true, then every product shows up, regardless of the inventory level of each variant. In stock/out of stock messages can be set for each variant on product pages.
About DotFeed
If 'HideProductsWithLessThanThisInventoryLevel' is set to anything other than -1, and if a product/variant does not have 'Track Inventory by Size and Color' set to true, then DotFeed matches the storefront - since under these settings the store hides the variant, then so does DotFeed (the variant will not get delivered to Google, or to any shopping engines.)
If 'HideProductsWithLessThanThisInventoryLevel' is set to anything other than -1, and if a variant DOES have 'Track Inventory by Size and Color' set to true, then regardless of the total inventory for the variant, DotFeed gathers up the variant and breaks it into "items". An "item" is an attribute combination and is a child of a variant. DotFeed compares eachitemwith the value in 'HideProductsWithLessThanThisInventoryLevel". If 'DisplayOutOfStockProducts' is set to 1 (true), DotFeed will compare the inventory against the value of 'OutOfStockThreshold' (HideProductsWithLessThanThisInventoryLevel is ignored). If 'DisplayOutOfStockProducts' is 0 (false) and 'HideProductsWithLessThanThisInventoryLevel' is not -1, DotFeed will compare the inventory to 'HideProductsWithLessThanThisInventoryLevel'. If 'DisplayOutOfStockProducts' is 0 (true) and 'HideProductsWithLessThanThisInventoryLevel' is -1 (disabled), DotFeed will set the availability setting for Google as "in-stock" (since nothing on your store is setup to behave otherwise).
In this way, if the storefront displays the variant with out of stock messaging, then DotFeed hands over items to Google with matching availability settings. Variants (which can be handled using rules, should be watched and set accordingly.
About Google
When DotFeed hands Google an item marked 'out of stock', then Google marks that item 'not yet searchable'. When a subsequent feed changes the availability to 'in stock', then Google seems to very quickly adjust the status to 'searchable'.
This table (below) attempts to teach more by way of example:
This store uses attributes and choosesnotto hide products with less than 3 units in stock, but instead to display out of stock values. Also, this store has turned the setting "Track Inventory by size and color' to TRUE.
If the owner of an AspDotNetStorefront store uses the configuration setting "HideProductsWithLessThanThisInventoryLevel", and sets it to a value that is other than '-1', then the storefront checks the inventory level of the default variant on every product and if the value (of stock in hand) is less than the value in "HideProductsWithLessThanThisInventoryLevel", then the entire product is hidden, even if other variants are in stock.
What does "Display" mean?
If the owner of an AspDotNetStorefront store elects to set the value of the setting "DisplayOutOfStockProducts" to TRUE, then the value stored in the setting "OutOfStockThreshold" dominates. All products and variants will show up on the store, but any variant with a stock level which is less than the value of "OutOfStockThreshold " will be marked 'out of stock' and the shopper will not be able to purchase that product.
Note: Google does NOT want you to be feeding an availability value of 'in stock' for variants if your store shows them missing or out of stock. You don't want that either, since you'll be paying to drive traffic to a product that you can't sell.
What does "Show Up" mean?
This is a column that we are using to show you whether or not the variant/item will show up on a storefront (determined by the values of 'HideProductsWithLessThanThisInventoryLevel' and 'OutofStockThreshold'.
What does "Fed" mean?
We use this column to let you know whether or not DotFeed will collect the variants on each row and process them for the shopping engines, principally Google. If you see a yes/No value that you don't expect, then you should also see an explanation.
What does "Rules" mean?
Whenever attributes are used, Google asks for us to break up variants (which are core to AspDotNetStorefront) into 'items'. For example, if a product is a t-shirt, and there are two variants (one is round-necked and one is v-necked) and each variant comes in red and in blue and in large and in small, then that product becomes eight items (that's two variants, each with four combos of size/color).
Because AspDotNetStorefront stores variants, DotFeed can process rules against them. For the time-being, however, there is no way to apply rules to these 'items' that DotFeed creates.
This column is designed to show you whether or not rules can be used to change data while it is on its way to Google.
What does "Google" mean?
You are currently reading a page which focuses on some changes made to inventory management as part of the roll-out of AspDotNetStorefront 9.4.2 and connected with the DotFeed feed to Google's shopping engine.
Ideally, you want to pass every possible product/variant/item combination to Google, even if it will be held in a 'not yet searchable' line until the item is back in stock. This column tells you whether or not your product/variant will make it to Google's merchant center.
Why doesn't this variant show up on Store 2 ... ?
... because Store 2 has configured the store to hide products where the default variant (which in this case is Variant V-2b) has a stock level of less than 6. Therefore, even though variant V-2a has more than 6 in stock, the product is ruled by the default and V-2a gets to stay on the shelves until more of V-2b comes available!
Why does this variant get fed to Google?
This variant is not showing up on Store 2, so why is it being fed to Google? Surely Google doesn't want to know about products that are marked 'non-display'?
Google absolutely does NOT want to mark this product as searchable. Google does NOT want users to find an item on Google's shopping engine but 'click' and find no matching product to buy.
We therefore urge you to use DotFeed rules to set the availability of such products as 'out of stock', which will result in Google marking them 'not yet searchable'. When your stock levels recover, Google can be advertising for you in a matter of hours.
Why is an out of stock variant being fed ...?
... because the owner of Store 3 has elected to display this variant (albeit with an "out of stock" message) on his store, and so it seems likely that the product will soon be back in stock. Google takes a matter of some days to re-approve products if they are dropped from a feed, so instead DotFeed keeps feeding the variant, but the store-owner has complete freedom to set the 'availability' to 'out of stock'.
Why does this variant show up on Store 4 ... ?
... because 'Track Inventory by size and color' is turned on. In AspDotNetStorefront, the in-stock values of all the 'items' in the default variant are added together, and if the total is greater than the value in the 'OutofStockThreshold' then the variant will be displayed.
Why can't rules be set on these items?
Whenever attributes are used, Google asks for us to break up variants (which are core to AspDotNetStorefront) into 'items'. For example, if a product is a t-shirt, and there are two variants (one is round-necked and one is v-necked) and each variant comes in red and in blue and in large and in small, then that product becomes eight items (that's two variants, each with four combos of size/color).
Because AspDotNetStorefront stores variants, DotFeed can process rules against them. For the time-being, however, there is no way to apply rules to these 'items' that DotFeed creates.
This column is designed to show you whether or not rules can be used to change data while it is on its way to Google.
Why does Google say 'not yet searchable'?
If Google is fed an item that is marked 'out of stock' then Google is smart enough to know that the inventory can change suddenly and jump back into stock. Therefore 'out of stock' products are not rejected or disapproved. Instead they are marked 'not yet searchable' and moved in and out of the search results as inventory values allow.