Use of unapproved vs checked status in Hybris
Overview
We need to design a workflow whereby we move assets from Cloudinary to cold storage, for assets that are associated with products that we are no longer going to sell. We needed a specific status that we could assign to these products, that would mark them as no longer for sale and allow us to move the assets into cold storage without breaking anything on site, our third party integrations or wholesale reports. As part of this process we did a spike into the different product statuses available to us in Hybris, and how they were currently being used. We came to the decision that for the purpose of asset cleanup and archive, we would use the "unapproved" product status in Hybris to trigger the archive workflow that would move the associated product assets from Cloudinary to cold storage.
Status
Accepted
Context
For Digital Merch, products are unapproved in Hybris in cases where we do not want to show them on the website and we do not want them to be indexed. Currently when products are unapproved, the assets are not moved or deleted. There are 3 main reasons that Digital Merch might unapprove a product:
- It is out of stock.
- We are awaiting stock for a new product that hasn't launched yet
- The product is no longer for sale. Sometimes products are only unapproved for a few days, e.g. whilst waiting for an end of season sale to start.
If we want to mose assets to cold storage, we need two statuses in Hybris - one for when a product is no longer being sold and therefore is actually unapproved, and another for when a product might be only temporarily unapproved or on hold i.e. out of stock or awaiting stock. In the case where a product is no longer being sold and it is not going to be displayed on the site anymore, we can move the associated assets to cold storage.
The Check status is an OOTB Hybris status that is assigned to products when the are created in Hybris from NAV. This status can be used for hiding a product from the PDP and PLP views without impacting the current mainline behaviour.
For the previously described scenarios, the following status should be used:
- If the product is out of stock, we should update the product with check status.
- If we are awaiting stock for a new product that hasn't launched yet, we should use the Check status. This is something that we are already doing in Mainline, since the products are created with this status when they are imported from NAV.
- If The product is no longer for sale, it must be unapproved.
- If the product is only going to be unapproved for a few days, e.g. whilst waiting for end of season sale to start, we should use Check status instead of unapproved.
Decision
We will use the "unapproved" status in Hybris for products that are no longer going to be sold, and the "checked" status for products that are out of stock or awaiting stock. Having a distinction between discontinued and temporarily unavailable products means that we can safely archive assets associated with "unapproved" products and move them from Cloudinary to cold storage without any risk of broken asset links.
Consequences
- The implementation of this solution should be simple, since the check status is an OOTB Hybris status that is already in use
- With this decision, we are able to move forward with implementing the archive workflow
- We need to review all products that are currently approved in Hybris to make sure that each product has the correct status assigned
- We need to review all products that currently have check status in Hybris to make sure that each product has the correct status assigned