var user = current.request.requested_for;
deleteCart();
var realCart = getCart();
var cartID = realCart.sys_id;
addToCart(cartID, current.cat_item, 1);
addOptions(cartID);
doOrder();
deleteCart();
function addToCart(cartid, cat_item, quantity) {
var gr = new GlideRecord('sc_cart_item');
gr.initialize();
gr.cart = cartid;
gr.cat_item = cat_item;
gr.quantity = quantity;
gr.insert();
}
function addOptions(cartID) {
var childCart = new GlideRecord('sc_cart_item');
childCart.addQuery('cart', cartID);
childCart.query();
if (childCart.next()) {
var sc_item_option_mtom = new GlideRecord('sc_item_option_mtom');
sc_item_option_mtom.addQuery('request_item', current.sys_id);
sc_item_option_mtom.query();
while (sc_item_option_mtom.next()) {
var sc_item_option = new GlideRecord('sc_item_option');
sc_item_option.addQuery('sys_id', sc_item_option_mtom.sc_item_option);
sc_item_option.query();
if (sc_item_option.next()) {
var sc_item_option_insert = new GlideRecord('sc_item_option');
sc_item_option_insert.initialize();
sc_item_option_insert.item_option_new = sc_item_option.item_option_new;
sc_item_option_insert.value = sc_item_option.value;
sc_item_option_insert.cart_item.setValue(childCart.sys_id);
sc_item_option_insert.insert();
}
}
}
}
function deleteCart() {
var cart = getCart();
var id = cart.sys_id;
var deleteCart = new GlideRecord('sc_cart_item');
deleteCart.addQuery('cart', cart.sys_id);
deleteCart.deleteMultiple();
}
function getCart() {
var cart = new GlideRecord('sc_cart');
var userid = user;
cart.addQuery('user', userid);
cart.addQuery('name', "DEFAULT");
cart.query();
if (cart.next()) {
// we already have a cart all is well
} else {
cart.initialize();
cart.user = userid;
cart.insert();
}
return cart;
}
function doOrder() {
var req = new GlideappRequestNew();
var result = req.copyCart(null, user);
}
How to copy a Request Item along with all its variables in ServiceNow?
Working Code Asked question July 24, 2025
Sorry, you do not have permission to read comments.