Issue in Order Guide - Two Step Checkbox (Portal view)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
I want to have my order guide as two step in service portal instead of 3 steps. So I have checked The "Two Step" CheckBox in the Order Guide. System Properties Updated : "glide.sc.checkout.twostep" - true; "glide.sc.sp.twostep": false. It is working in Native View, however, in Portal, not working.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
@amit170 ,
System property glide.sc.sp.twostep controls the two step checkout behaviour in the Portal....... if it’s set to false, then even if glide.sc.checkout.twostep is true, the portal will continue using the 3 step checkout..........Also, most likely you are using a deprecated widget for catalog items/order guide in portal (for example SC Catalog Item Deprecated) instead of the current widget SC Catalog Item using the deprecated widget will prevent the two step checkout popup from appearing in portal.....Conclusion is, to get two step checkout working in the portal, make sure you set glide.sc.sp.twostep = true, then clear cache or test in a fresh session, and verify that the portal is using the up to date SC Catalog Item widget rather than the deprecated one......
If you found my response helpful, please mark it as ‘Accept as Solution’ and ‘Helpful’. This helps other community members find the right answer more easily and supports the community.
Kaushal Kumar Jha - ServiceNow Technical Consultant - ServiceNow Class of Legends 2025
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
You can change the request method on order guide to submit or use the requested for variable on the guide.
//from widget controller
function showOrderConfirmation() {
return $scope.data.sys_properties.twostep && $scope.data.sc_cat_item.request_method != "submit" && !$scope.data.sc_cat_item.has_requested_for_variable && $scope.requested_for_variable_count !== $scope.totalIncluded;
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Changing the request method still doesn’t produce the expected result. Is the two-step functionality working for the Order Guide, or do we need to implement customization at the widget level?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Could you please clarify what you are trying to achieve? I think there is confusion as to what is two-step checkout because the "two step" checkbox on order guides just flips glide.sc.checkout.twostep for that particular order guide.
This is two-step checkout in portal, a modal that asks for more information regarding the order before checking out. In the core catalog it is a page with the cart in view as well. The other option is just instant order as in one-step checkout.
To enable it your order guide needs to fulfill these four criteria. And to disable you need to fail any one of them.
1 The sys prop glide.sc.sp.twostep needs to be set true
/* data.sys_properties = {
twostep: gs.getProperty("glide.sc.sp.twostep", "true") == 'true',
......
/*
$scope.data.sys_properties.twostep2 The request method on the order guide can't be submit
//Requeste method on order guide record
$scope.data.sc_cat_item.request_method != "submit"3 Your order guide can't have a requested for (type requested for, not type reference to sys_user) variable
//order guide does not have variable of type requested for
!$scope.data.sc_cat_item.has_requested_for_variable4 All your rule base items can't have a requested for variable but some of them can
//# of requested for variables should not match item count meaning all the included rule base items can't have a requested for type variable
$scope.requested_for_variable_count !== $scope.totalIncluded;