Name

global.CatalogTransactionOrder

Description

Invokes when the user hits order now from the cart. Adds the current item to the cart. Then checks the user out

Script

gs.include("PrototypeServer");

var CatalogTransactionOrder = Class.create();

CatalogTransactionOrder.prototype = {

  initialize: function(request, response) {
      this.request = request;
      this.response = response;
  },

  execute: function() {
  	try {
  		var cart;
  		var cartName = this.request.getParameter("sysparm_cart_name");
  		if (!JSUtil.nil(cartName))
  			cart = GlideappCart.get(cartName);
  		else
  			cart = GlideappCart.get();

  		var wishListItemId = this.request.getParameter("sysparm_wish_list_item_id") || '';
  		wishListItemId = '' + wishListItemId;

  		var requestedFor = this.request.getParameter("sysparm_requested_for") || "";
  		var itemID = this.request.getParameter("sysparm_id") + "";
  		var parentID = this.request.getParameter("sysparm_parent_sys_id") || "";
  		var parentTable = this.request.getParameter("sysparm_parent_table") || "";

  		var catalogItem = GlideappCatalogItem.get(itemID);
  		if (!catalogItem || !catalogItem.canView())
  			return;

  		var cartItemId = cart.addToCart(this.request);
  		if (!cartItemId) {
  			return GlideappCatalogURLGenerator.getItemBaseURLWithParams(itemID, {
  				sysparm_parent_sys_id: parentID,
  				sysparm_parent_table: parentTable
  			});
  		}

  		if (!JSUtil.nil(cartName) && !requestedFor) {
  			//If requested_for is not sent in request default to either default cart or current logged in user, based on property
  			//If property is true (default value), set requested for to that of default cart, else set it to the current logged in user
  			var reqForOnCustomCart = GlideProperties.getBoolean("glide.sc.use_default_cart_requested_for", true) ? GlideappCart.get().getRequestedFor() : gs.getUserID();
  			cart.setRequestedFor(reqForOnCustomCart);
  		}

  		if (cartItemId && wishListItemId)
  			this.removeWishListItem(cartItemId, wishListItemId);
  		return new CatalogTransactionCheckout(this.request, this.response).execute();
  	} catch(e) {
  		var catalogExceptionUtils = new CatalogExceptionUtils();
  		if(catalogExceptionUtils.isCartException(e)) {
  			return catalogExceptionUtils.handleCartException(e);	
  		}
  		gs.debug(e);
  	}
  },

  removeWishListItem: function(cartItemId, wishListItemId) {
      var savedItemCart = GlideappCart.get("saved_items");
      GlideSysAttachment.move('ZZ_YYsc_cart_item',wishListItemId ,'ZZ_YYsc_cart_item',cartItemId);
  	if (!savedItemCart.copyAttachments(wishListItemId, cartItemId))
  		return;

      savedItemCart.remove(wishListItemId);
  }
};

Sys ID

8f7c12e3c0a80027007eb8eb23c66455

Offical Documentation

Official Docs: