Order Guide
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-28-2025 06:30 AM
Hello All ,
Due to some business needs , i have created a field to set a price on some catalog items .
Next , to apply some discounts , we have created an order guide to gather some items .
The fact is , i have applied a price to the order guide which should be the price for all the items ; However , in the reality i notice that i have both the price on the order guide and on the different catalog item .
My question is to know if there is a possibility to set to 0 the price of an item when it's a request belongs to an order guide and let the normal price if it's a request directly done on the item
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-28-2025 07:50 AM
Hi @KouassiP ,
Catalog or Order Guide relation question you need to put in ITSM Forum as This forum is belongs to CMDB.
Thanks
AJ- TechTrek with AJ
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-28-2025 07:51 AM
Hi @KouassiP ,
As my understanding , Requirement is :-
* Catalog items normally have a price (e.g., $100).
* When the item is ordered directly, keep the price as is.
* When the item is part of an Order Guide, set its price to 0, so only the Order Guide-level price is charged.
Solution Overview (using Catalog Client Script or Business Rule):
Since pricing in ServiceNow is normally stored/calculated on the sc_cart_item or sc_req_item, you need to override the price at runtime when the item is part of an Order Guide.
Approach:
* Detect whether the request (cart item) was generated by an Order Guide.
* If yes, set the item price to 0.
Implementation Details:
Option 1: Catalog Client Script (best for cart page)
* Create an onLoad Catalog Client Script on the items in the Order Guide.
* Check the variable g_form.getParameter('sysparm_guide') or g_request_item.cat_item.order_guide to detect if the request is coming from an Order Guide.
* If yes, set price to zero using:
g_form.setValue('price', '0');
Note: Directly changing the price field client-side sometimes doesn’t persist; see next option.
Option 2: Business Rule (more robust)
* Create a Business Rule on the sc_cart_item table (before insert/update).
Condition: if order_guide field is populated (current.order_guide != '').
Script:
if (!gs.nil(current.order_guide)) {
current.price = 0;
}
This will ensure whenever an item is added to cart as part of an order guide, its price is zero.
Option 3: Use Pricing Rule (if on ServiceNow ATF / Pricing Engine)
If you’re on recent versions (Orlando+), you could also:
* Create a Pricing Rule targeting items in the Order Guide.
* Apply 100% discount or override price to 0.
Important:
* The order_guide field on sc_cart_item or sc_req_item tells you if the item was added as part of an order guide.
* Test carefully: make sure you don’t affect the price when the same item is ordered directly.
Please appreciate the efforts of community contributors by marking appropriate response as Mark my Answer Helpful or Accept Solution this may help other community users to follow correct solution in future.
Thank You
AJ - TechTrek with AJ - ITOM Trainer
LinkedIn:- https://www.linkedin.com/in/ajay-kumar-66a91385/
YouTube:- https://www.youtube.com/@learnitomwithaj
Topmate:- https://topmate.io/aj_techtrekwithaj (Connect for 1-1 Session)
ServiceNow Community MVP 2025
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-30-2025 02:43 AM
You gave the the right explaination for the problem i'm facing ...
However , in your solution , how do i can chack the variables ? My Service Now doesn't recognize them
Option 1: Catalog Client Script (best for cart page)
* Create an onLoad Catalog Client Script on the items in the Order Guide.
* Check the variable g_form.getParameter('sysparm_guide') or g_request_item.cat_item.order_guide to detect if the request is coming from an Order Guide.
* If yes, set price to zero using:
g_form.setValue('price', '0');
Note: Directly changing the price field client-side sometimes doesn’t persist; see next option.