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.