CartJS - Inclus dans le périmètre
L’API CartJS vous permet d’accéder au panier d’achats d’un utilisateur.
Pour utiliser cette classe dans une application incluse dans le périmètre, utilisez l’identificateur d’espace de noms sn_sc. Le module d’extension Service Catalog Scoped API (ID : com.glideapp.servicecatalog.scoped.api) qui est activé par défaut est requis pour accéder à l’API CartJS .
CartJS : addToCart(Demande de carte)
Ajoute la demande d’un élément de catalogue au panier actuel.
| Nom | Type | Description |
|---|---|---|
| Demande | Carte | Objet JSON qui contient les détails de l’élément de catalogue à ajouter au panier. La structure de l’objet de la demande est la suivante :
|
| Type | Description |
|---|---|
| JSON | Structure du panier actuel. |
Cet exemple montre comment ajouter plusieurs éléments au panier. Notez que var cart = new sn_sc. CartJS() ; est à l’intérieur de la boucle. Vous devez appeler sn_sc. CartJS() plusieurs fois pour pouvoir ajouter plusieurs articles au panier.
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));
}
Sortie
//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 : CartJS(String cartName)
Crée une instance de la classe CartJS avec le nom d’un panier défini pour l’utilisateur actuellement connecté.
| Nom | Type | Description |
|---|---|---|
| cartName | Chaîne | Facultatif. Nom d’un panier défini pour l’utilisateur actuellement connecté. |
var cart = new sn_sc.CartJS(cart1);
CartJS : checkoutCart()
Effectue la validation du panier. Si la sortie en deux étapes est activée, renvoie le récapitulatif de la commande. Si la sortie en deux étapes est désactivée, le panier est envoyé et les détails de la demande générée sont renvoyés.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| JSON | Si la sortie en deux étapes est activée, le récapitulatif des éléments du panier est renvoyé.
Si la validation en deux étapes est désactivée : |
Exemple
var cart = new sn_sc.CartJS();
var checkoutInfo = cart.checkoutCart();
gs.info(checkoutInfo);
Sortie
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()
Supprime le panier actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| nul |
var cart = new sn_sc.CartJS();
cart.empty();
CartJS : getCartID()
Renvoie l’ID du panier actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Sys_id du panier actuel. |
Renvoie les sys_id du panier actuel.
var cart = new sn_sc.CartJS();
var cartId = cart.getCartID();
gs.info(cartId);
Sortie
039c516237b1300054b6a3549dbe5dfc
CartJS : getCartItems()
Renvoie un objet GlideRecord contenant des enregistrements pour les éléments du panier actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| GlideRecord | Objet GlideRecord comprenant les enregistrements et les champs de la table Élément [sc_cart_item] qui décrivent un élément dans le panier actuel. |
Renvoie les valeurs de quantité et de champ Élément de catalogue pour les éléments du panier actuel.
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());
}
Sortie
1 x Apple iPhone 6s Plus
1 x Apple iPhone 6s
1 x Apple MacBook Pro 15"
CartJS : getDeliveryAddress()
Renvoie l’adresse de livraison du panier actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Adresse de livraison du panier actuel. |
Définit, puis renvoie l’adresse de livraison du panier actuel.
var cart = new sn_sc.CartJS();
cart.setDeliveryAddress("Brasilia, Brasil");
var deliveryAddress = cart.getDeliveryAddress();
gs.info(deliveryAddress);
Sortie
Brasilia, Brasil
CartJS : getRequestedFor()
Renvoie les sys_id de l’utilisateur pour lequel le panier est demandé.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Sys_id de l’enregistrement utilisateur pour lequel le panier est demandé ; situé dans la table Utilisateur [sys_user]. |
Renvoie l’sys_id de l’utilisateur associé au panier.
var cart = new sn_sc.CartJS();
cart.setRequestedFor("039c516237b1300054b6a3549dbe5dfc")
var userId = cart.getRequestedFor();
gs.info(userId);
Sortie
039c516237b1300054b6a3549dbe5dfc
CartJS : getRequestedForDisplayName()
Renvoie le nom de l’utilisateur pour lequel le panier actuel est demandé.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Nom de l’utilisateur pour lequel le panier actuel est demandé ; situé dans la table Utilisateur [sys_user]. |
Renvoie le nom de l’utilisateur associé au panier.
var cart = new sn_sc.CartJS();
var userName = cart.getRequestedForDisplayName();
gs.info(userName);
Sortie
Abel Tuter
CartJS : getSpecialInstructions()
Renvoie les instructions spéciales pour le panier actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Instructions spéciales pour le panier actuel. |
Cet exemple montre comment définir et récupérer les instructions spéciales pour le panier actuel.
var cart = new sn_sc.CartJS();
cart.setSpecialInstructions("Delivery before 8 AM.");
var specInstruction = cart.getSpecialInstructions();
gs.info(specInstruction);
Sortie
Delivery before 8 AM.
CartJS : orderNow (demande de carte)
Commande un seul élément. Si la sortie en deux étapes est activée, la méthode ajoute l’élément spécifié au panier et renvoie le sys_id du panier. Si la sortie en deux étapes est désactivée, la méthode termine l’achat de l’élément spécifié et renvoie le sys_id de la demande générée.
| Nom | Type | Description |
|---|---|---|
| Demande | Carte | Objet JSON qui contient les détails de l’élément de catalogue à commander. |
| request.delivery_address | Chaîne | Adresse à laquelle livrer les éléments. Par défaut : adresse de l’utilisateur |
| request.sysparm_id | Chaîne | Requis. La sys_id de l’élément à acheter. |
| request.special_instructions | Chaîne | Instructions à suivre lors du traitement de la commande. |
| request.sysparm_quantity | Chaîne | Quantité de l’élément spécifié à acheter. Valeur par défaut : 1 |
| request.sysparm_requested_for | Chaîne | sys_id de l’utilisateur pour lequel l’élément est demandé. Valeur par défaut : utilisateur de la session |
| demande.variables | Tableau | Questions et réponses du client associées à l’élément. |
| request.variables.var_name | Chaîne | Nom de la question. |
| request.variables.var_value | Chaîne | Réponse du client à la question associée. |
| Type | Description |
|---|---|
| Paires clé/valeur JSON | Sortie si la sortie en deux étapes est activée :
Sortie si la sortie en deux étapes est désactivée : |
Exemple
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);
Sortie
// If two-step checkout is enabled:
{"cart_id":"55384df3c322320076173b0ac3d3aec5"}
// If two-step checkout is disabled:
{"request_id":"4c690137c322320076173b0ac3d3ae03", "request_number": "REQ0010003"}
CartJS : setDeliveryAddress(adresse de chaîne)
Définit l’adresse de livraison du panier actuel.
| Nom | Type | Description |
|---|---|---|
| adresse | Chaîne | Adresse de livraison du panier actuel. |
| Type | Description |
|---|---|
| nul |
var cart = new sn_sc.CartJS();
cart.setDeliveryAddress("Brasilia, Brasil");
CartJS - setSpecialInstructions(String specialInstructions)
Définit les instructions spéciales pour le panier actuel.
| Nom | Type | Description |
|---|---|---|
| Instructions spéciales | Chaîne | Instructions spéciales pour le panier actuel. |
| Type | Description |
|---|---|
| nul |
var cart = new sn_sc.CartJS();
cart.setSpecialInstructions("Delivery before 8 AM.");
CartJS : submitOrder(demande de carte)
Met à jour les instructions spéciales, les demandes et l’adresse request de livraison à partir du paramètre et effectue la validation du panier. Utilisez cette API pour modifier les paramètres mentionnés du panier et effectuer la validation du panier simultanément. Les paramètres manquants dans l’objet request auront leur valeur par défaut.
| Nom | Type | Description |
|---|---|---|
| Demande | Carte | Objet JSON qui contient les détails du panier à soumettre. |
| request.special_instructions | Chaîne | Instructions spéciales à inclure dans la commande. |
| request.requested_for | Chaîne | Sys_id de l’utilisateur pour lequel la commande est demandée. Situé dans la table Utilisateur [sys_user]. Par défaut : l’utilisateur actuel. |
| request.delivery_address | Chaîne | Adresse de livraison de la commande. |
| Type | Description |
|---|---|
| JSON | Structure du panier. |
Exemple :
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));
Sortie :
{"request_id":"6eed229047801200e0ef563dbb9a71c2", "request_number": "REQ0000001"}
CartJS : updateItem(Map request, String cart_item_id)
Met à jour un élément dans le panier.
| Nom | Type | Description |
|---|---|---|
| Demande | Carte | Objet JSON qui contient les détails de l’élément de catalogue à mettre à jour. La structure de l’objet de la demande est la suivante :
|
| cart_item_id | Chaîne | sys_id de l’élément du panier à modifier. |
| Type | Description |
|---|---|
| JSON | Détails du panier. |
Exemple
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);
Sortie
{ "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" }
CartJS : canViewRF()
Spécifie si l’utilisateur actuel dispose du rôle requis pour modifier le champ Demande pour .
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’utilisateur a le rôle requis pour modifier le champ demandé pour. Valeurs possibles :
Type de données : booléennes |
Cet exemple de code de script en arrière-plan montre comment vérifier si l’utilisateur actuel dispose du rôle nécessaire pour modifier le champ demandé pour.
gs.log(sn_sc.CartJS.canViewRF());
Réponse :
true
CartJS : getCartDetails()
Renvoie les détails du panier.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Objet | Objet pointant vers les détails du panier actuel. |
Exemple :
var cart=new sn_sc.CartJS();
console.log (cart.getCartDetails());
Sortie :
delivery_address
:
"Brasilia,Brasil"
name
:
"DEFAULT"
requested_for
:
"62826bf03710200044e0bfc8bcbe5df1"
requested_for_display_name
:
"Abel Tuter"
special_instructions
:
""
sys_id
:
"c2ac090087150300318d05a888cb0bd7"
CartJS : setRequestedFor(String user)
Définit la sys_id dans l’enregistrement sys_user de l’utilisateur pour lequel le panier est demandé.
| Nom | Type | Description |
|---|---|---|
| utilisateur | Chaîne | sys_id à définir dans l’enregistrement sys_user de l’utilisateur pour lequel le panier est demandé. |
| Type | Description |
|---|---|
| nul |
Exemple
var cart = new sn_sc.CartJS();
cart.setRequestedFor("039c516237b1300054b6a3549dbe5dfc")