## What is product hard launch?
Product hard launch is a powerful feature for merchandisers when they want to plan for the launch of products on their category or search pages without exposing their customers to the new products. Merchandisers can globally block the product(s) they want to hide from their customers so customers won't see those products anywhere on the site. They can set the global blocklist rule to expire at the day/time they want to launch the product. Merchandisers can then go into the category or search page they want to curate the new product for and make the necessary changes before the product is set to launch. Once the product has launched, the global blocklist rule can be removed (or will expire, if it was set to expire on a certain day/time).
Product hard launch gives more controls to merchandisers and gives them the ability to merchandise ahead of time instead of waiting until the last possible minute to make changes on the site, in anticipation for the product's launch. Merchandisers can plan weeks ahead of a product launch and move products in the product grid or add additional collateral in conjunction with the product launch (e.g. banners or other assets as part of a campaign to promote the new product). Merchandisers can also leverage Product hard launch without having to involve IT teams to help coordinate when new products need to show up on a site. If a merchandiser sets a duration with their global blocklist rule on the product that is launching, the global blocklist for that product expires at the day/time they set it for. Note that if any other rules exist within the global rule for that duration, they will also expire at that time as well.
### Use Case
Acme Corp., which is a retailer in home goods, wants to pre-merchandise products related to a collaboration with the Nina Stewart Collection but needs to keep it completely secret until they "launch" with the press. Acme Corp. works with brands like the Nina Stewart Collection to launch its new lines of home goods products. Before the launching event, the Acme Corp. merchandiser would like to boost these Nina Stewart Collection products on the Home Furnishings and Home Decor category pages while these products remain secret before the launch. Before that, they will need to globally block those products but they need these products to be available in the editor to merchandise them.
**Before using the feature**
Prior to using this feature, the attribute "Secret"="Yes"/"No" should be added to the feed. All current products should have the value "No," and only new products to be featured in the hard product launch should have the value "Yes".
## Try it yourself
If you want to use product hard launch, here are the steps:
In the Global Ranking Configurations (**`
Setup` → `
brSM global configurations` → `
Global ranking rules`**), set up an attribute rule to include only current products (Include Only: Attribute: Secret = No). This will provide a layer of protection; once the rule is in place, none of the secret/new products will display on any Bloomreach powered pages or modules (Search, Category, JFY, Product Suggest in Autosuggest, etc...)
Before the product launch, include the secret product in the feed with the attribute "Secret"="Yes". These products will not show up on the live site due to the **Include Only: Attribute: Secret = No** rule but will be available in the Bloomreach dashboard for merchandising.
In any category ranking rule, search for the secret product and add it to that category. Any other merchandising operation can be made (eg: boost or bury). Note that the secret product will be labeled "Excluded (or blocked) by other rule," because the Global Rule contains that product in its **Include Only: Attribute Secret = No** rule.
On the day of launch, simply delete the Global Include Only rule. You can also use the scheduling function when you set up the Global Rule in Step 1 to have the rule expire at a specific time on a specific day. However, note that if there are any other rules as part of the Global Rule, those rules will also set to expire if you utilize the scheduling function. Remove any caching (which would prevent visitors from seeing the new product) you employ on your site and the pre-merchandised product will show up on the category you merchandised it on.
**Note: **Once a new product is included in the product feed, there is a slight chance that the algorithm for our Autosuggest will pick up terms from the new product and expose it to users who utilize Autosuggest. If you are concerned and would like to prevent this from happening, please reach out to our [Support team](🔗) to have the signals that feed into Autosuggest turned off to ensure terms for the new product launch don't show up in Autosuggest.
## Additional ways to utilize this feature
### Using launch dates as a feed attribute
If your feed contains attributes as dates (start, end, or available date) for when a product will be made available, Bloomreach has a feed attribute date conversion formula that can run with every feed update to help you launch those products. For example, if a product's availability date is September 1 and today's date is August 1, then the Bloomreach date conversion formula's will automatically treat that product as secret until the product availability date. In this setup, you can keep the global rule of Exclude Secret = yes, and the product will just pop up after its availability date (i.e. the Bloomreach date conversion formula will tag that product as Secret = no once the availability date has passed). Note that this solution is tightly coupled with feed processing timelines.
### **Scheduling the launch date with start_date feed attribute**
You can create a feed attribute, start_date, to set a specific launch time. This can be useful for coordinating a global launch and ensuring an accurate launch time.
This method does not require any rules in the Dashboard. However, this method does require changing your API calls.
|Column Title||Column Title||Column Title|
|start_date||The date and time when a product should launch to your site.<br><br> <br><br>Accepted formats:<br><br>_ YYYYMMDDHHMM<br> <br>_ Unix timestamp<br> <br><br> <br><br>For multisites: Provide start_date in the time zone you will use in your API calls.||**Launch at 12 PM on September 1, 2020**:<br><br>202009011200<br><br>or<br><br>1598961600|
#### **How to implement start_date in API calls**
Include start_date in your fq parameter as follows:
**&fq=start_date:\[ \* TO CurrentTimeCode\]**
CurrentTimeCode represents the current local time code, using the same format as start_date; if you provide start_date in YYYYMMDDHHMM, you should also provide CurrentTimeCode in YYYYMMDDHHMM. If your site and servers are in the same region, simply provide the time code in the same time zone as the start_date. If you need to launch across multiple time zones, read the section below.
#### **How to adjust for time zones**
The start_date entered into your feed must correspond to the time zone used for generating your API calls. To adjust your API calls to the desired time zone, add to CurrentTimeCode if the local server is behind the start_date time zone, or subtract from CurrentTimeCode if the local server is ahead of the start_date time zone. See the table below for examples:
**Changing CurrentTimeCode to adjust launch time**
|Column Title||Column Title||Column Title|
|**start_date at 12:00 UTC**|||||
|**Local time zone**||**Change to CurrentTimeCode**||**Launch time**|
|GMT (UTC +0)||No change||12:00 UTC|
|PST (UTC -7)||Add 7 hours||12:00 UTC (5:00 local)|
|No change||19:00 UTC (12:00 local)|||
|CET (UTC+1)||Subtract 1 hour||12:00 UTC (13:00 local)|
|No change||11:00 UTC (12:00 local)|||
**If you want a simultaneous, global launch**
In the feed, provide start_date values in UTC +0.
In your API calls, provide CurrentTimeCode in UTC +0.
**If you want launches based on local time**
In the feed, provide start_date values in your primary market’s time zone.
In your API calls, provide CurrentTimeCode in local time.
#### **Combining start_date with Secret and merchandising rules**
You can combine both the start_date method here and the above Secret method that uses merchandising rules. You could hide secret products until about a week before launch, then use start_date to handle the hard launch. This would be most suitable for products with launch dates in the far future, and allows your merchandisers to start merchandising those products as soon as possible. To combine the two methods, follow these steps:
In your feed, give products with far future launch dates a Secret value of “yes”, and also provide the start_date.
Create a global rule in the dashboard to bury and hide products with Secret = yes.
About a week before launch, give those products a Secret value of “no”. If you haven’t already, start filtering by start_date in your API calls.
### Using non-binary values as a feed attribute
A separate approach to identify secret products is to pass non-binary values (i.e. values that are more complicated than just Yes/No) as a separate feed attribute. For example, if you have multiple campaigns coming up (Campaign A, Campaign B and Campaign C), you can tag products in your feed with those values. For this approach, you will need to create 3 independent exclude rules in a global rule (eg: global exclude rule for Campaign A, global exclude rule for Campaign B and global exclude rule for Campaign C). Once the time comes for Campaign A, you can remove the global exclude rule for Campaign A and it will take 15 minutes for the rule to reflect in the API response.