Populate variables in cart api

javis
Giga Expert

Hi all,

I'm having trouble populating variables of RITMs created from the cart api.   My code is below, any suggestions or hints are greatly appreciated. Thanks again,

createRequest();

function createRequest() {

var cat_id='';

if(email.body.item != undefined && email.body.item!='') {

var item=email.body.item.trim();

var gr= new GlideRecord('sc_cat_item');

gr.get('name',item);

cat_id=gr.getValue('sys_id');

var cart = new Cart();

cart.addItem(cat_id);

var user = new GlideRecord('sys_user');

cart.get(gr.getValue('requested_for'));

// set requested for, substitute your requested for

//Set Variables in your Cart Item

cart.setVariable(item, 'requested_for', 'sys_user');

cart.setVariable(item, 'request_short_description', email.subject.toString());

cart.setVariable(item, 'requested_for_department', 'user.department');

cart.setVariable(item, 'requested_for_username', 'user.user_name');

cart.setVariable(item, 'requested_for_phone', 'user.phone');

cart.setVariable(item, 'requested_for_budgetcode', 'user.cost_center');

cart.setVariable(item, 'requested_for_company', 'user.company');

var cartmsg = "received from: " + email.origemail + "\n\n" + email.body_text;

cart.setVariable(item,'comments',cartmsg);

var rc = cart.placeOrder();

}

  }

1 ACCEPTED SOLUTION

Here is your code. copy it as is


createRequest();


function createRequest() {



  var cat_id='';


  if(email.body.item != undefined && email.body.item!='') {


  var cat_item=email.body.item.trim();


  var gr= new GlideRecord('sc_cat_item');


  gr.get('name',cat_item);


  cat_id=gr.getValue('sys_id');



  var cart = new Cart();


  var item=cart.addItem(cat_id);


  var user = new GlideRecord('sys_user');


  if(user.get('email',email.from.toString())){


  // set requested for, substitute your requested for


  //Set Variables in your Cart Item


  cart.setVariable(item, 'requested_for', user.getValue('sys_id'));


  cart.setVariable(item, 'request_short_description', email.subject.toString());


  cart.setVariable(item, 'requested_for_department', user.department);


  cart.setVariable(item, 'requested_for_username', user.user_name);


  cart.setVariable(item, 'requested_for_phone', user.phone);


  cart.setVariable(item, 'requested_for_budgetcode', user.cost_center);


  cart.setVariable(item, 'requested_for_company', user.company);


  }


  var cartmsg = "received from: " + email.origemail + "\n\n" + email.body_text;


  cart.setVariable(item,'comments',cartmsg);


  var rc = cart.placeOrder();


  }


}


View solution in original post

16 REPLIES 16

tanumoy
Tera Guru

Replace the below lines



cart.setVariable(item, 'requested_for', 'sys_user');


cart.setVariable(item, 'request_short_description', email.subject.toString());


cart.setVariable(item, 'requested_for_department', 'user.department');


cart.setVariable(item, 'requested_for_username', 'user.user_name');


cart.setVariable(item, 'requested_for_phone', 'user.phone');


cart.setVariable(item, 'requested_for_budgetcode', 'user.cost_center');


cart.setVariable(item, 'requested_for_company', 'user.company');



with



cart.setVariable(item, 'requested_for', '<sys_id of the user if it is a reference varaible>');


cart.setVariable(item, 'request_short_description', email.subject.toString());


cart.setVariable(item, 'requested_for_department', user.department);


cart.setVariable(item, 'requested_for_username', user.user_name);


cart.setVariable(item, 'requested_for_phone', user.phone);


cart.setVariable(item, 'requested_for_budgetcode', user.cost_center);


cart.setVariable(item, 'requested_for_company', user.company);


Hi Tanumoy,



Would the '<sys_id of the user if it is a reference varaible>'); be the requested_for in this case?


Yes... and also excited to know why did you GlideRecord sys_user table as Abhinay mentioned.


Abhinay Erra
Giga Sage

What exactly are you trying to do with the variable user here? See the highlighted comments below



createRequest();


function createRequest() {



var cat_id='';


if(email.body.item != undefined && email.body.item!='') {


var item=email.body.item.trim();


var gr= new GlideRecord('sc_cat_item');


gr.get('name',item);


cat_id=gr.getValue('sys_id');



var cart = new Cart();


var item=cart.addItem(cat_id);


var user = new GlideRecord('sys_user');


//what exactly are your trying to do here??


//cart.get(gr.getValue('requested_for'));


// set requested for, substitute your requested for


//Set Variables in your Cart Item


cart.setVariable(item, 'requested_for', user.getValue('sys_id'));


cart.setVariable(item, 'request_short_description', email.subject.toString());


cart.setVariable(item, 'requested_for_department', user.department);


cart.setVariable(item, 'requested_for_username', user.user_name);


cart.setVariable(item, 'requested_for_phone', user.phone);


cart.setVariable(item, 'requested_for_budgetcode', user.cost_center);


cart.setVariable(item, 'requested_for_company', user.company);


var cartmsg = "received from: " + email.origemail + "\n\n" + email.body_text;


cart.setVariable(item,'comments',cartmsg);


var rc = cart.placeOrder();


}


  }