CartJS: Bereichsbezogen

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 8 Minuten Lesedauer
  • Die CartJS- API stellt Methoden bereit, mit denen Sie auf den Einkaufswagen eines Anwenders zugreifen können.

    Diese API wird im Namespace sn_sc ausgeführt. Für den Zugriff auf die CartJS-API ist das standardmäßig aktivierte Service Catalog Scoped API-Plugin (ID: com.glideapp.servicecatalog.scoped.api) erforderlich.

    CartJS: CartJS(String CartName)

    Erstellt eine Instanz der CartJS-Klasse mit dem Namen eines definierten Einkaufswagens für den aktuell angemeldeten Benutzer.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    cartName Zeichenfolge Optional. Name eines definierten Warenkorbs für den aktuell angemeldeten Benutzer.
    var cart = new sn_sc.CartJS(cart1);

    CartJS - addToCart(Mapping-Anforderung)

    Fügt die Anforderung eines Katalogelements zum aktuellen Einkaufswagen hinzu.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    Anforderung Zuordnung Ein JSON-Objekt, das die Details des Katalogelements enthält, das dem Einkaufswagen hinzugefügt werden soll.

    Das request-Objekt hat folgende Struktur:

    {
    'sysparm_id': item_id,
    'sysparm_quantity': item_quantity,
    'variables':{
    'var_name': 'var_value',
    ...
    }
    }
    • item_id: sys_id des Artikels, der dem Einkaufswagen hinzugefügt werden soll
    • item_quantity: Anzahl der hinzuzufügenden Elemente. Standardwert ist 1.
    • var_name: Name der Frage.
    • var_value: Wert der Antwort (nicht der Anzeigewert).
    Tabelle : 3. Ergebnisse
    Typ Beschreibung
    JSON Struktur des aktuellen Einkaufswagens.
    {
    'subtotal': value,
    'items':[
    {
    itemName:'',
    quantity:'', 
    price:'', 
    recurring_price:''
    } ...]
    }

    In diesem Beispiel wird gezeigt, wie Sie dem Einkaufswagen mehrere Artikel hinzufügen können. Beachten Sie, dass var Cart = new sn_sc.CartJS(); befindet sich in der Schleife. Sie müssen sn_sc.CartJS() mehrmals aufrufen, um dem Einkaufswagen mehrere Artikel hinzufügen zu können.

    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));
    }

    Ausgabe

    //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()

    Gibt an, ob der aktuelle Benutzer die erforderliche Rolle zum Bearbeiten des Request for-Feldes hat.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 5. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob der Anwender über die erforderliche Rolle verfügt, um das Feld „Angefordert für“ zu bearbeiten.

    Mögliche Werte:

    • „wahr“: Anwender hat die erforderliche Rolle.
    • „falsch“: Anwender verfügt nicht über die erforderliche Rolle.

    Datentyp: Boolesch

    Dieses Codebeispiel für ein Hintergrundskript zeigt, wie überprüft wird, ob der aktuelle Anwender über die zum Bearbeiten des Felds „Angefordert für“ erforderliche Rolle verfügt.

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

    Antwort:

    true

    CartJS – checkoutCart()

    Führt den Einkaufswagen-Checkout durch. Wenn der zweistufige Checkout aktiviert ist, wird die Bestellübersicht zurückgegeben. Wenn der zweistufige Checkout deaktiviert ist, wird der Einkaufswagen übermittelt und die Details der generierten Anforderung werden zurückgegeben.

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 7. Ergebnisse
    Typ Beschreibung
    JSON Wenn der zweistufige Checkout aktiviert ist, wird die Zusammenfassung der Artikel im Einkaufswagen zurückgegeben.
    { "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":[{}, {}, ...], …],
    }
    Wenn der zweistufige Checkout deaktiviert ist:
    {
      '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);
    

    Ausgabe

    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 – leer ()

    Löscht den aktuellen Einkaufswagen.

    Tabelle : 8. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 9. Ergebnisse
    Typ Beschreibung
    void
    var cart = new sn_sc.CartJS();
          cart.empty();

    CartJS – getCartDetails()

    Gibt die Einkaufswagendetails zurück.

    Tabelle : 10. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 11. Ergebnisse
    Typ Beschreibung
    Objekt Objekt, das auf die aktuellen Einkaufswagendetails zeigt.

    Beispiel:

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

    Ausgabe:

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

    CartJS – getCartID()

    Gibt die ID des aktuellen Einkaufswagens zurück.

    Tabelle : 12. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 13. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Sys_id für den aktuellen Einkaufswagen.

    Gibt die sys_id des aktuellen Einkaufswagens zurück.

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

    Ausgabe

    039c516237b1300054b6a3549dbe5dfc

    CartJS – getCartItems()

    Gibt ein GlideRecord-Objekt zurück, das Datensätze für Artikel im aktuellen Einkaufswagen enthält.

    Tabelle : 14. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 15. Ergebnisse
    Typ Beschreibung
    GlideRecord GlideRecord-Objekt mit Datensätzen und Feldern aus der Artikeltabelle [sc_cart_item], die einen Artikel im aktuellen Einkaufswagen beschreiben.

    Gibt die Feldwerte für Menge und Katalogelement für Artikel im aktuellen Einkaufswagen zurück.

    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());
    }

    Ausgabe

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

    CartJS – getDeliveryAddress ()

    Gibt die Lieferadresse für den aktuellen Einkaufswagen zurück.

    Tabelle : 16. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 17. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Lieferadresse für den aktuellen Einkaufswagen.

    Legt die Lieferadresse für den aktuellen Einkaufswagen fest und gibt sie dann zurück.

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

    Ausgabe

    Brasilia, Brasil

    CartJS – getRequestedFor()

    Gibt die sys_id des Anwenders zurück, für den der Einkaufswagen angefordert wird.

    Tabelle : 18. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 19. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Sys_id des Anwenderdatensatzes, für den der Einkaufswagen angefordert wird; befindet sich in der Tabelle „Benutzer“ [sys_user].

    Gibt die sys_id des Anwenders zurück, die dem Einkaufswagen zugeordnet ist.

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

    Ausgabe

    039c516237b1300054b6a3549dbe5dfc

    CartJS – getRequestedForDisplayName()

    Gibt den Namen des Anwenders zurück, für den der aktuelle Einkaufswagen angefordert wird.

    Tabelle : 20. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 21. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Name des Anwenders, für den der aktuelle Einkaufswagen angefordert wird. befindet sich in der Tabelle „Benutzer“ [sys_user].

    Gibt den Namen des Anwenders zurück, der dem Einkaufswagen zugeordnet ist.

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

    Ausgabe

    Abel Tuter

    CartJS – getSpezielle Anweisungen ()

    Gibt die Spezialanweisungen für den aktuellen Einkaufswagen zurück.

    Tabelle : 22. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 23. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Spezielle Anweisungen für den aktuellen Einkaufswagen.

    In diesem Beispiel wird gezeigt, wie die Spezialanweisungen für den aktuellen Einkaufswagen festgelegt und abgerufen werden.

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

    Ausgabe

    Delivery before 8 AM.

    CartJS - orderNow (Zuordnungsanforderung)

    Bestellt einen einzelnen Artikel. Wenn der zweistufige Checkout aktiviert ist, fügt die Methode den angegebenen Artikel dem Einkaufswagen hinzu und gibt die sys_id des Einkaufswagens zurück. Wenn der zweistufige Checkout deaktiviert ist, schließt die Methode den Kauf des angegebenen Artikels ab und gibt die sys_id der generierten Anforderung zurück.

    Tabelle : 24. Parameter
    Name Typ Beschreibung
    Anforderung Karte JSON-Objekt, das Details des zu bestellenden Katalogelements enthält.
    request.delivery_address Zeichenfolge Adresse, an die die Artikel geliefert werden sollen.

    Standard: Adresse des Anwenders

    request.sysparm_id Zeichenfolge Erforderlich. Die sys_id des zu kaufenden Artikels.
    Anforderung.besondere_Anweisungen Zeichenfolge Anweisungen, die bei der Verarbeitung der Bestellung zu befolgen sind.
    request.sysparm_quantity Zeichenfolge Menge des angegebenen Artikels für den Kauf.

    Standard: 1

    request.sysparm_requested_for Zeichenfolge Die sys_id des Anwenders, für den das Element angefordert wird.

    Standard: Sitzungsbenutzer

    Anforderung.Variablen Array Fragen und Kundenantworten, die dem Element zugeordnet sind.
    Anforderung.Variablen.var_name Zeichenfolge Name der Frage
    Anforderung.Variablen.var_Wert Zeichenfolge Antwort des Kunden auf die zugehörige Frage.
    Tabelle : 25. Ergebnisse
    Typ Beschreibung
    JSON-Schlüssel-Wert-Paare Ausgabe, wenn der zweistufige Checkout aktiviert ist:
    {
      'cart_id' : '<sys_id of the cart to which the items were added>'
    }

    Ausgabe, wenn der zweistufige Checkout deaktiviert ist:

    {
      '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);

    Ausgabe

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

    CartJS – setDeliveryAddress(Zeichenfolgenadresse)

    Legt die Lieferadresse für den aktuellen Einkaufswagen fest.

    Tabelle : 26. Parameter
    Name Typ Beschreibung
    address Zeichenfolge Lieferadresse für den aktuellen Einkaufswagen.
    Tabelle : 27. Ergebnisse
    Typ Beschreibung
    void
    
          var cart = new sn_sc.CartJS();
          cart.setDeliveryAddress("Brasilia, Brasil"); 
          

    CartJS – setRequestedFor(String user)

    Legt die sys_id im sys_user-Datensatz des Benutzers fest, für den der Einkaufswagen angefordert wird.

    Tabelle : 28. Parameter
    Name Typ Beschreibung
    Anwender Zeichenfolge sys_id, die im sys_user-Datensatz des Benutzers festgelegt werden soll, für den der Einkaufswagen angefordert wird.
    Tabelle : 29. Ergebnisse
    Typ Beschreibung
    void
    
    var cart = new sn_sc.CartJS();
    cart.setRequestedFor("039c516237b1300054b6a3549dbe5dfc")
    

    CartJS - setSpezielleAnweisungen(Zeichenfolge sonderAnweisungen)

    Legt die speziellen Anweisungen für den aktuellen Einkaufswagen fest.

    Tabelle : 30. Parameter
    Name Typ Beschreibung
    specialInstructions Zeichenfolge Spezielle Anweisungen für den aktuellen Einkaufswagen.
    Tabelle : 31. Ergebnisse
    Typ Beschreibung
    void
    
          var cart = new sn_sc.CartJS();
          cart.setSpecialInstructions("Delivery before 8 AM."); 
       

    CartJS –submitOrder(Mapping-Anforderung)

    Aktualisiert Spezialanweisungen, „Angefordert für“ und Lieferadresse aus dem Parameter request und führt den Einkaufswagen-Checkout durch. Verwenden Sie diese API, um die genannten Parameter des Einkaufswagens zu ändern und den Einkaufswagen-Checkout gleichzeitig durchzuführen. Fehlende Parameter im Objekt request haben ihren Standardwert.

    Tabelle : 32. Parameter
    Name Typ Beschreibung
    Anforderung Zuordnung Ein JSON-Objekt, das Details zum Einkaufswagen enthält, der gesendet werden soll.
    {
      'special_instructions': "String",
      'requested_for': '"String",
      'delivery_address': "String"
    }
    Anforderung.besondere_Anweisungen Zeichenfolge Der Bestellung beizufügende Spezialanweisungen.
    request.requested_for Zeichenfolge Sys_id des Benutzers, für den der Auftrag angefordert wird. Befindet sich in der Tabelle „Benutzer“ [sys_user].

    Standard: Der aktuelle Anwender.

    request.delivery_address Zeichenfolge Lieferadresse für die Bestellung.
    Tabelle : 33. Ergebnisse
    Typ Beschreibung
    JSON Struktur des Einkaufswagens.
    {
      'request_id' : 'sys_id of the generated Request',
      'request_number' : 'Number of the generated Request'
    }

    Beispiel:

    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));

    Ausgabe:

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

    CartJS - updateItem(Mapping-Anforderung, Zeichenfolge „cart_item_id“)

    Aktualisiert einen Artikel im Einkaufswagen.

    Tabelle : 34. Parameter
    Name Typ Beschreibung
    Anforderung Zuordnung Ein JSON-Objekt, das Details des zu aktualisierenden Katalogelements enthält.

    Das request-Objekt hat folgende Struktur:

    {
        'sysparm_quantity' : item_quantity,
      'sysparm_requested_for' : requested_for,
      'variables' : {
        'var_name' : 'var_value',
        ...
      }
    }
    • item_quantity: Anzahl der hinzuzufügenden Elemente. Standardwert ist 1.
    • var_name: Name der Frage.
    • var_value: Wert der Antwort (nicht der Anzeigewert).
    cart_item_id Zeichenfolge sys_id des zu ändernden Artikels im Einkaufswagen.
    Tabelle : 35. Ergebnisse
    Typ Beschreibung
    JSON Details zum Einkaufswagen.
    {
      '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);
    

    Ausgabe

    
    { "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" }