CartJS: スコープ対象

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:24分
  • CartJS API は、ユーザーの買い物かごにアクセスできるようにするためのメソッドを提供します。

    この API は sn_sc 名前空間で実行されます。CartJS API にアクセスするには、デフォルトで有効になっている Service Catalog Scoped API プラグイン (ID:com.glideapp.servicecatalog.scoped.api) が必要です。

    CartJS - CartJS(文字列 cartName)

    現在ログインしているユーザーの定義済のカートの名前を持つ CartJS クラスのインスタンスを作成します。

    表 : 1. パラメーター
    名前 タイプ 説明
    cartName 文字列 オプション。現在ログインしているユーザーの定義済のカートの名前
    var cart = new sn_sc.CartJS(cart1);

    CartJS - addToCart(マップ request)

    現在のカートにカタログアイテムの要求を追加します。

    表 : 2. パラメーター
    名前 タイプ 説明
    request マップ カートに追加するカタログアイテムの詳細を含む JSON オブジェクト。

    要求オブジェクトの構造は次のとおりです。

    {
    'sysparm_id': item_id,
    'sysparm_quantity': item_quantity,
    'variables':{
    'var_name': 'var_value',
    ...
    }
    }
    • item_id:カートに追加するアイテムの sys_id
    • item_quantity:追加するアイテムの数。デフォルト値は 1 です。
    • var_name:質問の名前
    • var_value:回答の値 (表示値ではありません)
    表 : 3. 返される内容
    タイプ 説明
    JSON 現在のカートの構造
    {
    'subtotal': value,
    'items':[
    {
    itemName:'',
    quantity:'', 
    price:'', 
    recurring_price:''
    } ...]
    }

    この例は、複数のアイテムをカートに追加する方法を示しています。var cart = new sn_sc.CartJS(); がループ内にあることに留意してください。複数のアイテムをカートに追加するには、sn_sc.CartJS() を複数回呼び出す必要があります。

    for (i = 0; i < 2; i++) { 
    var cart = new sn_sc.CartJS();
    var item =
    {
    'sysparm_id': '0d08837237153000158bbfc8bcbe5d02',
    'sysparm_quantity': '1',
    'variables':{
    'carrier': 'at_and_t_mobility',
    'data_plan': '500MB',
    'duration': 'eighteen_months',
    'color': 'slate',
    'storage': 'sixtyfour' 
    }};
    var cartDetails = cart.addToCart(item);
    gs.info(JSON.stringify(cartDetails));
    }

    出力

    //The cart after the first item is added
    {
      "cart_id": "c0f5828a1b476010593876a61a4bcb71",
      "subtotal": "$599.99",
      "items": [
        {
          "catalog_item_id": "0d08837237153000158bbfc8bcbe5d02",
          "quantity": "1",
          "localized_price": "$599.99",
          "price": "$599.99",
          "recurring_frequency": "Monthly",
          "localized_recurring_price": "$30.00",
          "recurring_price": "$29.00",
          "item_name": "Apple iPhone 5",
          "cart_item_id": "40f5828a1b476010593876a61a4bcb72"
        }
      ]
    }
    
    //The cart after the second item is added
    {
      "cart_id": "c0f5828a1b476010593876a61a4bcb71",
      "subtotal": "$1,199.98",
      "items": [
        {
          "catalog_item_id": "0d08837237153000158bbfc8bcbe5d02",
          "quantity": "1",
          "localized_price": "$599.99",
          "price": "$599.99",
          "recurring_frequency": "Monthly",
          "localized_recurring_price": "$30.00",
          "recurring_price": "$29.00",
          "item_name": "Apple iPhone 5",
          "cart_item_id": "40f5828a1b476010593876a61a4bcb72"
        },
        {
          "catalog_item_id": "0d08837237153000158bbfc8bcbe5d02",
          "quantity": "1",
          "localized_price": "$599.99",
          "price": "$599.99",
          "recurring_frequency": "Monthly",
          "localized_recurring_price": "$30.00",
          "recurring_price": "$29.00",
          "item_name": "Apple iPhone 5",
          "cart_item_id": "98f5828a1b476010593876a61a4bcb75"
        }
      ]
    }

    CartJS - canViewRF()

    現在のユーザーに、Request for フィールドを編集するために必要なロールがあるかどうかを指定します。

    表 : 4. パラメーター
    名前 タイプ 説明
    なし
    表 : 5. 返される内容
    タイプ 説明
    ブーリアン ユーザーが要求されたフィールドを編集するために必要なロールを持っているかどうかを示すフラグ。

    可能な値:

    • true:ユーザーに必要なロールがあります。
    • false:必要なロールがユーザーにありません。

    データタイプ:ブーリアン

    このバックグラウンドスクリプトのコード例は、現在のユーザーが要求元フィールドの編集に必要なロールを持っているかどうかを確認する方法を示しています。

    gs.log(sn_sc.CartJS.canViewRF());

    応答:

    true

    CartJS - checkoutCart()

    カートのチェックアウトを実行します。2 ステップ チェックアウトが有効な場合は、注文概要を返します。2 ステップ チェックアウトが無効になっている場合、カートが送信され、生成された要求の詳細が返されます。

    表 : 6. パラメーター
    名前 タイプ 説明
    なし
    表 : 7. 返される内容
    タイプ 説明
    JSON 2 ステップ チェックアウトが有効な場合、カート内のアイテムの概要が返されます。
    { "subtotal_price":"",
      "subtotal_recurring_frequency":"",
      "delivery_address":"",
      "special_instructions":"",
      "total_title":"",
      "requested_for_user":"System Administrator",
      "requested_for":"6816f79cc0a8016401c5a33be04be441",
      "daily": ["frequency_subtotal":"", "items":[{}, {}, ...], …],
      "monthly":["frequency_subtotal":"", "items":[{}, {}, ...], …],
      "annually":["frequency_subtotal":"", "items":[{}, {}, ...], …],
      "none":["frequency_subtotal":"", "items":[{}, {}, ...], …],
    }
    2 ステップ チェックアウトが無効になっている場合:
    {
      'request_id' : "sys_id of the generated request",
      "request_number" : "Number of the generated request"
    }
    var cart = new sn_sc.CartJS();
    var checkoutInfo = cart.checkoutCart();
    gs.info(checkoutInfo);
    

    出力

    If two step checkout enabled:
    {"subtotal_price":"$2,748.49","subtotal_recurring_frequency":"","delivery_address":"","special_instructions":"","total_title":"Total","requested_for_user":"System Administrator","requested_for":"6816f79cc0a8016401c5a33be04be441","weekly":{"subtotal_price":"$399.50","subtotal_recurring_frequency":"Weekly","subtotal_recurring_price":"$0.00","total_title":"Total","items":[{"catalog_item_id":"e90a0f7237153000158bbfc8bcbe5d7f","variables":{},"quantity":"1","localized_price":"$399.50","price":"$399.50","recurring_frequency":"Weekly","localized_recurring_price":"$0.00","recurring_price":"$0.00","item_name":"Brother Network-Ready Color Laser Printer","cart_item_id":"f3f5c9b3c322320076173b0ac3d3ae00","delivery_time":"2 Days"}],"show_subtotal_price":"true","subtotal_title":"Subtotal"},"show_subtotal_price":"true","cart_id":"251c0562c326320076173b0ac3d3aeb4","subtotal_recurring_price":"$131.00","monthly":{"subtotal_price":"$849.99","subtotal_recurring_frequency":"Monthly","subtotal_recurring_price":"$31.00","total_title":"Total","items":[{"catalog_item_id":"d82ea08510247200964f77ffeec6c4ee","variables":{"Monthly data allowance":"500MB","Storage":"64GB","Color":"Space Gray","Is this a replacement for a lost or broken iPhone?":"No","What was the original phone number?":""},"quantity":"1","localized_price":"$799.99","price":"$849.99","recurring_frequency":"Monthly","localized_recurring_price":"$30.00","recurring_price":"$31.00","item_name":"Apple iPhone 6s Plus","cart_item_id":"18c509b3c322320076173b0ac3d3aef4","delivery_time":"2 Days"}],"show_subtotal_price":"true","subtotal_title":"Subtotal"},"yearly":{"subtotal_price":"$1,499.00","subtotal_recurring_frequency":"Annually","subtotal_recurring_price":"$100.00","total_title":"Total","items":[{"catalog_item_id":"774906834fbb4200086eeed18110c737","variables":{"Adobe Photoshop":"false","Adobe Acrobat":"false","Optional Software":"","Additional software requirements":"","Eclipse IDE":"true"},"quantity":"1","localized_price":"$1,499.00","price":"$1,499.00","recurring_frequency":"Annually","localized_recurring_price":"$100.00","recurring_price":"$100.00","item_name":"Developer Laptop (Mac)","cart_item_id":"6306c9b3c322320076173b0ac3d3ae89","delivery_time":"5 Days"}],"show_subtotal_price":"true","subtotal_title":"Subtotal"},"subtotal_title":"Subtotal"}
    If two step checkout disabled:
    {"request_number":"REQ0010001","request_id":"2f2789f3c322320076173b0ac3d3ae62"}
    

    CartJS - empty()

    現在のカートを削除します。

    表 : 8. パラメーター
    名前 タイプ 説明
    なし
    表 : 9. 返される内容
    タイプ 説明
    なし
    var cart = new sn_sc.CartJS();
          cart.empty();

    CartJS - getCartDetails()

    カートの詳細を返します。

    表 : 10. パラメーター
    名前 タイプ 説明
    なし
    表 : 11. 返される内容
    タイプ 説明
    オブジェクト 現在の買い物かごの詳細を示すオブジェクト

    例:

    var cart=new sn_sc.CartJS();
    	console.log (cart.getCartDetails());

    出力:

    delivery_address : "Brasilia,Brasil" 
            name : "DEFAULT" 
            requested_for : "62826bf03710200044e0bfc8bcbe5df1" 
            requested_for_display_name : "Abel Tuter" 
            special_instructions : "" 
            sys_id : "c2ac090087150300318d05a888cb0bd7" 
    

    CartJS - getCartID()

    現在の買い物かごの ID を返します。

    表 : 12. パラメーター
    名前 タイプ 説明
    なし
    表 : 13. 返される内容
    タイプ 説明
    文字列 現在の買い物かごの sys_id。

    現在の買い物かごの sys_id を返します。

    var cart = new sn_sc.CartJS();
    var cartId = cart.getCartID();
    gs.info(cartId);

    出力

    039c516237b1300054b6a3549dbe5dfc

    CartJS - getCartItems()

    現在の買い物かご内のアイテムのレコードを含む GlideRecord オブジェクトを返します。

    表 : 14. パラメーター
    名前 タイプ 説明
    なし
    表 : 15. 返される内容
    タイプ 説明
    GlideRecord 現在の買い物かご内のアイテムを記述するアイテム [sc_cart_item] テーブルのレコードとフィールドを含む GlideRecord オブジェクト。

    現在の買い物かご内のアイテムの数量とカタログアイテムフィールドの値を返します。

    var cart = new sn_sc.CartJS();
    
    var cartItems = cart.getCartItems();
    while (cartItems.next()) {
      gs.info(cartItems.getElement('quantity').getDisplayValue()
      + " x "
      + cartItems.getElement('cat_item').getDisplayValue());
    }

    出力

    
    1 x Apple iPhone 6s Plus
    1 x Apple iPhone 6s
    1 x Apple MacBook Pro 15"

    CartJS - getDeliveryAddress()

    現在の買い物かごの配送先を返します。

    表 : 16. パラメーター
    名前 タイプ 説明
    なし
    表 : 17. 返される内容
    タイプ 説明
    文字列 現在のカートの配送先住所

    現在の買い物かごの配送先を設定して返します。

    var cart = new sn_sc.CartJS();
    cart.setDeliveryAddress("Brasilia, Brasil");
    var deliveryAddress = cart.getDeliveryAddress();
    gs.info(deliveryAddress);

    出力

    Brasilia, Brasil

    CartJS - getRequestedFor()

    買い物かごの要求対象ユーザーの sys_user を返します。

    表 : 18. パラメーター
    名前 タイプ 説明
    なし
    表 : 19. 返される内容
    タイプ 説明
    文字列 買い物かごを要求したユーザーレコードのSys_id。

    テーブル:ユーザー [sys_user]

    買い物かごに関連付けられているユーザーの sys_id を返します。

    var cart = new sn_sc.CartJS();
    cart.setRequestedFor("039c516237b1300054b6a3549dbe5dfc")
    var userId = cart.getRequestedFor();
    gs.info(userId);

    出力:

    039c516237b1300054b6a3549dbe5dfc

    CartJS - getRequestedForDisplayName()

    現在の買い物かごの要求対象ユーザーの名前を返します。

    表 : 20. パラメーター
    名前 タイプ 説明
    なし
    表 : 21. 返される内容
    タイプ 説明
    文字列 現在の買い物かごを要求したユーザーの名前。

    テーブル:ユーザー [sys_user]

    買い物かごに関連付けられているユーザーの名前を返します。

    var cart = new sn_sc.CartJS();
    var userName = cart.getRequestedForDisplayName();
    gs.info(userName);

    出力:

    Abel Tuter

    CartJS - getSpecialInstructions()

    現在の買い物かごに対する特別な指示を返します。

    表 : 22. パラメーター
    名前 タイプ 説明
    なし
    表 : 23. 返される内容
    タイプ 説明
    文字列 現在のカートのための特別な指示

    この例は、現在の買い物に対して特別な指示を設定および取得する方法を示します。

    var cart = new sn_sc.CartJS();
    cart.setSpecialInstructions("Delivery before 8 AM.");
    var specInstruction = cart.getSpecialInstructions();
    gs.info(specInstruction);

    出力

    Delivery before 8 AM.

    CartJS - orderNow(マップ request)

    単一のアイテムを注文します。2 ステップチェックアウトが有効になっている場合、このメソッドは、指定されたアイテムをカートに追加し、買い物かごの sys_id を返します。2 ステップチェックアウトが無効になっている場合、このメソッドは、指定されたアイテムの購入を完了し、生成された要求の sys_id を返します。

    表 : 24. パラメーター
    名前 タイプ 説明
    request マップ 注文するカタログアイテムの詳細を含む JSON オブジェクト。
    request.delivery_address 文字列 アイテムの配送先住所

    デフォルト:ユーザーの住所

    request.sysparm_id 文字列 必須です。購入するアイテムの sys_id。
    request.special_instructions 文字列 注文を処理するときに従うべき指示。
    request.sysparm_quantity 文字列 指定された購入アイテムの数量。

    デフォルト値:1

    request.sysparm_requested_for 文字列 アイテムの要求対象ユーザーの sys_id。

    デフォルト:セッションユーザー

    request.variables アレイ アイテムに関連付けられた質問と顧客の回答。
    request.variables.var_name 文字列 質問の名前。
    request.variables.var_value 文字列 関連付けられた質問に対する顧客の回答。
    表 : 25. 返される内容
    タイプ 説明
    JSON キー/値ペア 2 ステップチェックアウトが有効な場合の出力:
    {
      'cart_id' : '<sys_id of the cart to which the items were added>'
    }

    2 ステップチェックアウトが無効な場合の出力:

    {
      'request_id' : '<sys_id of the generated request>',
      'request_number' : '<Number of the generated request>'
    }
    
    var cart = new sn_sc.CartJS();
    var request =
    {
      'sysparm_id': '0d08837237153000158bbfc8bcbe5d02',
      'sysparm_quantity': '1',
      'variables':{
        'carrier': 'at_and_t_mobility',
        'data_plan': '500MB',
        'duration': 'eighteen_months',
        'color': 'slate',
        'storage': 'sixtyfour'
      }
    }
    var cartDetails = cart.orderNow(request);
    gs.info(cartDetails);

    出力

    
    // If two-step checkout is enabled:
    {"cart_id":"55384df3c322320076173b0ac3d3aec5"}
    
    // If two-step checkout is disabled:
    {"request_id":"4c690137c322320076173b0ac3d3ae03", "request_number": "REQ0010003"}

    CartJS - setDeliveryAddress(文字列 address)

    現在のカートの配送先住所を設定します。

    表 : 26. パラメーター
    名前 タイプ 説明
    address 文字列 現在のカートの配送先住所
    表 : 27. 返される内容
    タイプ 説明
    なし
    
          var cart = new sn_sc.CartJS();
          cart.setDeliveryAddress("Brasilia, Brasil"); 
          

    CartJS - setRequestedFor(文字列 user)

    カートが要求されたユーザーの sys_user レコードに sys_id を設定します。

    表 : 28. パラメーター
    名前 タイプ 説明
    ユーザー 文字列 カートが要求されたユーザーの sys_user レコードに設定される sys_id
    表 : 29. 返される内容
    タイプ 説明
    なし
    
    var cart = new sn_sc.CartJS();
    cart.setRequestedFor("039c516237b1300054b6a3549dbe5dfc")
    

    CartJS - setSpecialInstructions(文字列 specialInstructions)

    現在のカートの特別な指示を設定します。

    表 : 30. パラメーター
    名前 タイプ 説明
    specialInstructions 文字列 現在のカートのための特別な指示
    表 : 31. 返される内容
    タイプ 説明
    なし
    
          var cart = new sn_sc.CartJS();
          cart.setSpecialInstructions("Delivery before 8 AM."); 
       

    CartJS - submitOrder(マップ request)

    request パラメーターから特別な指示、要求元、配送先を更新し、買い物かごのチェックアウトを実行します。この API を使用して、前述のカートのパラメーターを変更し、カートのチェックアウトを同時に実行します。request オブジェクトにないパラメーターには、デフォルト値が使用されます。

    表 : 32. パラメーター
    名前 タイプ 説明
    request マップ 送信するカートの詳細を含む JSON オブジェクト。
    {
      'special_instructions': "String",
      'requested_for': '"String",
      'delivery_address': "String"
    }
    request.special_instructions 文字列 注文に含める特別な指示。
    request.requested_for 文字列 注文が要求されたユーザーのSys_id。

    デフォルト:現在のユーザー。

    テーブル:ユーザー [sys_user]

    request.delivery_address 文字列 注文の配送先住所。
    表 : 33. 戻り値
    タイプ 説明
    JSON カートの構造
    {
      'request_id' : 'sys_id of the generated Request',
      'request_number' : 'Number of the generated Request'
    }

    次のコード例は、このメソッドを呼び出す方法を示しています。

    var cart = new sn_sc.CartJS();
    var request =
    {
      'special_instructions' : 'Delivery only in working hours',
      'requested_for' : '62826bf03710200044e0bfc8bcbe5df1',
      'delivery_address' : "Brasilia, Brasil",
    };
    var requestDetails = cart.submitOrder(request);
    gs.info(JSON.stringify(requestDetails));

    出力:

    {"request_id":"6eed229047801200e0ef563dbb9a71c2", "request_number": "REQ0000001"}

    CartJS - updateItem(マップ request, 文字列 cart_item_id)

    カート内のアイテムを更新します。

    表 : 34. パラメーター
    名前 タイプ 説明
    request マップ 更新されるカタログアイテムの詳細を含む JSON オブジェクト。

    要求オブジェクトの構造は次のとおりです。

    {
        'sysparm_quantity' : item_quantity,
      'sysparm_requested_for' : requested_for,
      'variables' : {
        'var_name' : 'var_value',
        ...
      }
    }
    • item_quantity:追加するアイテムの数。デフォルト値は 1 です。
    • var_name:質問の名前
    • var_value:回答の値 (表示値ではありません)
    cart_item_id 文字列 変更するカート アイテムの sys_id。
    表 : 35. 返される内容
    タイプ 説明
    JSON カートの詳細。
    {
      'subtotal': value,
      'items':[
        {
        itemName:'',
        quantity:'',
        price:'',
        recurring_price:''
        }
        ...],
      ...
    }
    var cart = new sn_sc.CartJS();
    var request =
    {
      'sysparm_quantity': '1',
      'variables':{
        'carrier': 'at_and_t_mobility',
        'data_plan': '500MB',
        'duration': 'eighteen_months',
        'color': 'slate',
        'storage': 'sixtyfour'
      }
    };
    var cart_item_id = "4d69b672c322320076173b0ac3d3ae79";
    var cartDetails = cart.updateItem(request, cart_item_id);
    gs.info(cartDetails);
    

    出力

    
    { "cart_id":"35ec9e8947a13200e0ef563dbb9a7109", "items":[ { "cart_item_id":"35ec9e8947a13200e0ef563dbb9a710a", "catalog_item_id":"0d08837237153000158bbfc8bcbe5d02", "item_name":"Apple iPhone 5", "localized_price":"$799.99", "localized_recurring_price":"$30.00", "price":"$799.99", "quantity":"1", "recurring_frequency":"Monthly", "recurring_price":"$29.00" } ] "subtotal":"$799.99" }