Skip to content
Log in

Restricted products

On this page

Restricted Products is a feature that allows you to prevent customers from purchasing (or even from seeing) certain products, at a very granular level without having to resort to creating custom price books for each customer. Approval to see and buy can then be granted on a per customer basis.

What can you do with it?

In situations where customers need approval to purchase, you can:

  • Hide a restricted product from a Store
  • Show a restricted product but not allow customers to purchase it
  • Show a restricted product but hide its price
  • Show a restricted product with only some of it’s product data

In situations where a customer DOES have approval to purchase, you can:

  • Show the restricted product
  • Limit the quantity the can purchase (or allow unlimited)
  • Limit the date range during which they can purchase
  • Approve or reject orders of restricted products in Salesforce based on the customer’s approval

How do you configure it?

Creating a restricted product

Restricting Products works via the Pricebook Entry object and each of the following fields will need to be added to the Pricebook Entry page layout:

  • Restricted (Checkbox)
  • Display If Restricted (Checkbox)
  • Restricted Text (Text(128))

A product will be restricted if Restricted is ticked. If this is the only setting set, then the Product will not show on the Store if this Pricebook is in effect (assigned to Store or an Account etc).

If Display If Restricted is also ticked, then the product will be restricted but will show on the Store. If will be able to be found via search and customers will be able to view the product’s page.

If Restricted Text is provided, it will be shown instead of the product’s price. This is how you can show a restricted product but not disclose it’s price.

Creating a placeholder product

What are placeholder products?

Placeholder products, are products you can configure to show instead of a restricted product, so that you can show some generic details about the product when the customer is not approved to purchase it.

To configure a placeholder, create a product that can otherwise be visible on the Store (eg active, master, available on etc) and then assign it to the restricted product via the Product2.Placeholder For Id lookup field.

When the restricted product is visible on the Store, but the customer is not approved to purchase, the placeholder will show in place of the restricted product.

Without approval to buy a restricted product:

  • Visiting the URL for the restricted product will redirect to the placeholder
  • The placeholder itself will not show up in any search results unless standing in for it’s restricted product
  • The restricted product is included in the searchable product list, so searching for it will work, but the placeholder will be shown in the results instead
  • The placeholder is excluded from the searchable product list, so searching for it won’t work

With approval to buy a restricted product:

  • Visiting the URL for the placeholder product will redirect to the normal product
  • Searching works as above

Approving a customer to buy a restricted product

The other side to restricting products, is allowing certain customers to purchase them. That is done via the Permitted Restricted Product object.

Permitted Restricted Product:

  • Account (Lookup)
  • Product (Lookup)
  • Store (Lookup)

Use the Account_Id, Product_Id and Store_Id to configure who this approval applies to, for what Product, and on what Store.

  • Approved From (DateTime)`
  • Approved Until (DateTime)
  • Approved Quantity (Number)
  • Unlimited (Checkbox)

Supply the date range for when this approval is valid. Customers will not be able to purchase products using this approval, outside of these dates.

Configure whether the customer can purchase a limited number of items using Approved Quantity, or whether they can purchase an unlimited amount via the Unlimited checkbox.

In general, these values should be set when creating the approval and not be changed later, although you can. For instance you could reduce the Approved_Until__c date to make the approval end faster, or reduced the Approved_Quantity__c etc. It is up to you to make sure you don’t put it into a weird state, although if you do it will only really affect your reporting, it won’t incorrectly affect the purchasability on the Store.

  • Purchased Quantity (Number)

This field keeps track of how many items have been purchased already. As this number increases, the remaining quantity the customer can purchase goes down (unless it is unlimited). You shouldn’t change this number, as it is a calculated value.

How do you manage it in Salesforce?

When a customer makes an order for a Restricted Product, your order processing team will be able to see whether the customer has approval to purchase the item (in the ordered quantity) before it is shipped.

If you need to process a refund, you should follow your own internal refund procedure, however for restricted products, you will also need to void the items on the order so they are not registered as actual purchases. This will free the items up for that customer to re-purchase should they still have approval.

Tracking restricted product purchases

When an order is placed for a Restricted Product, our system creates a Permitted_Restricted_Item__c record for each affected OrderItem. This allows your staff to see what orders have been placed for restricted products and to modify them as needed. These records are what drives the incrementing of the Permitted_Restricted_Product__c.Purchased_Quantity__c field.

Voiding a purchase

If the order is declined or cancelled, you will need to manually void the corresponding Permitted Restricted Item record. Doing so will result in a reduction of the Permitted Restricted Product.Purchased Quantity field.

Table of scenarios

Options — Restricted?, Display if Restricted?, Approval?, Placeholder?, Restricted Text? Results — Product Shown, Can Buy?, Price Shown

Restricted? Display if Restricted? Approval? Placeholder? Restricted Text? Product Shown Can Buy? Price Shown
TRUE FALSE FALSE N/A N/A None NO N/A
TRUE TRUE FALSE TRUE N/A Placeholder NO Placeholder Price
TRUE TRUE FALSE FALSE PRESENT Master NO Restricted Text
TRUE TRUE FALSE FALSE BLANK Master NO Normal Price
TRUE N/A TRUE N/A N/A Master YES Normal Price
FALSE N/A N/A N/A N/A Master YES Normal Price

Was this article helpful?

Was this article helpful?