0

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.