CartJS: スコープ対象
CartJS API は、ユーザーの買い物かごにアクセスできるようにするためのメソッドを提供します。
この API は sn_sc 名前空間で実行されます。CartJS API にアクセスするには、デフォルトで有効になっている Service Catalog Scoped API プラグイン (ID:com.glideapp.servicecatalog.scoped.api) が必要です。
CartJS - CartJS(文字列 cartName)
現在ログインしているユーザーの定義済のカートの名前を持つ CartJS クラスのインスタンスを作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| cartName | 文字列 | オプション。現在ログインしているユーザーの定義済のカートの名前 |
var cart = new sn_sc.CartJS(cart1);
CartJS - addToCart(マップ request)
現在のカートにカタログアイテムの要求を追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| request | マップ | カートに追加するカタログアイテムの詳細を含む JSON オブジェクト。 要求オブジェクトの構造は次のとおりです。
|
| タイプ | 説明 |
|---|---|
| JSON | 現在のカートの構造 |
この例は、複数のアイテムをカートに追加する方法を示しています。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 フィールドを編集するために必要なロールがあるかどうかを指定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブーリアン | ユーザーが要求されたフィールドを編集するために必要なロールを持っているかどうかを示すフラグ。 可能な値:
データタイプ:ブーリアン |
このバックグラウンドスクリプトのコード例は、現在のユーザーが要求元フィールドの編集に必要なロールを持っているかどうかを確認する方法を示しています。
gs.log(sn_sc.CartJS.canViewRF());
応答:
true
CartJS - checkoutCart()
カートのチェックアウトを実行します。2 ステップ チェックアウトが有効な場合は、注文概要を返します。2 ステップ チェックアウトが無効になっている場合、カートが送信され、生成された要求の詳細が返されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| JSON | 2 ステップ チェックアウトが有効な場合、カート内のアイテムの概要が返されます。
2 ステップ チェックアウトが無効になっている場合: |
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()
現在のカートを削除します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
var cart = new sn_sc.CartJS();
cart.empty();
CartJS - getCartDetails()
カートの詳細を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | 現在の買い物かごの詳細を示すオブジェクト |
例:
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 を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在の買い物かごの sys_id。 |
現在の買い物かごの sys_id を返します。
var cart = new sn_sc.CartJS();
var cartId = cart.getCartID();
gs.info(cartId);
出力
039c516237b1300054b6a3549dbe5dfc
CartJS - getCartItems()
現在の買い物かご内のアイテムのレコードを含む GlideRecord オブジェクトを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 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()
現在の買い物かごの配送先を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在のカートの配送先住所 |
現在の買い物かごの配送先を設定して返します。
var cart = new sn_sc.CartJS();
cart.setDeliveryAddress("Brasilia, Brasil");
var deliveryAddress = cart.getDeliveryAddress();
gs.info(deliveryAddress);
出力
Brasilia, Brasil
CartJS - getRequestedFor()
買い物かごの要求対象ユーザーの sys_user を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 買い物かごを要求したユーザーレコードの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()
現在の買い物かごの要求対象ユーザーの名前を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在の買い物かごを要求したユーザーの名前。 テーブル:ユーザー [sys_user] |
買い物かごに関連付けられているユーザーの名前を返します。
var cart = new sn_sc.CartJS();
var userName = cart.getRequestedForDisplayName();
gs.info(userName);
出力:
Abel Tuter
CartJS - getSpecialInstructions()
現在の買い物かごに対する特別な指示を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在のカートのための特別な指示 |
この例は、現在の買い物に対して特別な指示を設定および取得する方法を示します。
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 を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 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 | 文字列 | 関連付けられた質問に対する顧客の回答。 |
| タイプ | 説明 |
|---|---|
| JSON キー/値ペア | 2 ステップチェックアウトが有効な場合の出力:
2 ステップチェックアウトが無効な場合の出力: |
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)
現在のカートの配送先住所を設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| address | 文字列 | 現在のカートの配送先住所 |
| タイプ | 説明 |
|---|---|
| なし |
var cart = new sn_sc.CartJS();
cart.setDeliveryAddress("Brasilia, Brasil");
CartJS - setRequestedFor(文字列 user)
カートが要求されたユーザーの sys_user レコードに sys_id を設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| ユーザー | 文字列 | カートが要求されたユーザーの sys_user レコードに設定される sys_id |
| タイプ | 説明 |
|---|---|
| なし |
var cart = new sn_sc.CartJS();
cart.setRequestedFor("039c516237b1300054b6a3549dbe5dfc")
CartJS - setSpecialInstructions(文字列 specialInstructions)
現在のカートの特別な指示を設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| specialInstructions | 文字列 | 現在のカートのための特別な指示 |
| タイプ | 説明 |
|---|---|
| なし |
var cart = new sn_sc.CartJS();
cart.setSpecialInstructions("Delivery before 8 AM.");
CartJS - submitOrder(マップ request)
request パラメーターから特別な指示、要求元、配送先を更新し、買い物かごのチェックアウトを実行します。この API を使用して、前述のカートのパラメーターを変更し、カートのチェックアウトを同時に実行します。request オブジェクトにないパラメーターには、デフォルト値が使用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| request | マップ | 送信するカートの詳細を含む JSON オブジェクト。 |
| request.special_instructions | 文字列 | 注文に含める特別な指示。 |
| request.requested_for | 文字列 | 注文が要求されたユーザーのSys_id。 デフォルト:現在のユーザー。 テーブル:ユーザー [sys_user] |
| request.delivery_address | 文字列 | 注文の配送先住所。 |
| タイプ | 説明 |
|---|---|
| JSON | カートの構造 |
次のコード例は、このメソッドを呼び出す方法を示しています。
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)
カート内のアイテムを更新します。
| 名前 | タイプ | 説明 |
|---|---|---|
| request | マップ | 更新されるカタログアイテムの詳細を含む JSON オブジェクト。 要求オブジェクトの構造は次のとおりです。
|
| cart_item_id | 文字列 | 変更するカート アイテムの sys_id。 |
| タイプ | 説明 |
|---|---|
| JSON | カートの詳細。 |
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" }