CartJS - com escopo

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 9 min. de leitura
  • A API CartJS fornece métodos que permitem acessar o carrinho de compras de um usuário.

    Esta API é executada no namespace sn_sc. O plug-in Catálogo de serviços com escopo API (ID: com.glideapp.servicecatalog.scoped.api) que está habilitado por padrão é necessário para acessar a API CartJS.

    CartJS - CartJS (cadeia de caracteres "cartName")

    Cria uma instância da classe CartJS com o nome de um carrinho definido para o usuário que está conectado no momento.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    carrinhoNome Cadeia de caracteres Opcional. Nome de um carrinho definido para o usuário que está conectado no momento.
    var cart = new sn_sc.CartJS(cart1);

    CartJS - addToCart (solicitação de mapa)

    Adiciona a solicitação de um item do catálogo ao carrinho atual.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    solicitação Mapa Um objeto JSON que contém os detalhes do item do catálogo a ser adicionado ao carrinho.

    A estrutura do objeto request é:

    {
    'sysparm_id': item_id,
    'sysparm_quantity': item_quantity,
    'variables':{
    'var_name': 'var_value',
    ...
    }
    }
    • item_id: sys_id do item a ser adicionado ao carrinho
    • item_quantity: número de itens a serem adicionados. O valor padrão é 1.
    • var_name: nome da pergunta.
    • var_value: valor da resposta (não o valor de exibição).
    Tabela 3. Retorna
    Tipo Descrição
    JSON Estrutura do carrinho atual.
    {
    'subtotal': value,
    'items':[
    {
    itemName:'',
    quantity:'', 
    price:'', 
    recurring_price:''
    } ...]
    }

    Este exemplo mostra como você pode adicionar vários itens ao carrinho. Observe que var carrinho = new sn_sc.CartJS(); está dentro do loop. Você deve chamar sn_sc.CartJS() várias vezes para poder adicionar vários itens ao carrinho.

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

    Saída

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

    Especifica se o usuário atual tem a função necessária para editar o campo Solicitar para.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 5. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se o usuário tem a função necessária para editar o campo solicitado para.

    Valores possíveis:

    • verdadeiro: o usuário tem a função necessária.
    • falso: o usuário não tem a função necessária.

    Tipo de dados: booliano

    Este exemplo de código de script em segundo plano mostra como verificar se o usuário atual tem a função necessária para editar o campo solicitado para.

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

    Resposta:

    true

    CartJS - check-outCart()

    Executa a finalização de compra do carrinho. Se a finalização de compra em duas etapas estiver habilitada, retornará o resumo do pedido. Se a finalização de compra em duas etapas estiver desabilitada, o carrinho será enviado e os detalhes da solicitação gerada serão retornados.

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 7. Retorna
    Tipo Descrição
    JSON Se a finalização de compra em duas etapas estiver habilitada, o resumo dos itens no carrinho será retornado.
    { "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":[{}, {}, ...], …],
    }
    Se a finalização de compra em duas etapas estiver desabilitada:
    {
      '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);
    

    Saída

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

    Exclui o carrinho atual.

    Tabela 8. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 9. Retorna
    Tipo Descrição
    vazio
    var cart = new sn_sc.CartJS();
          cart.empty();

    CartJS – getCartDetails()

    Retorna os detalhes do carrinho.

    Tabela 10. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 11. Retorna
    Tipo Descrição
    Objeto Objeto que aponta para os detalhes do carrinho atual.

    Exemplo:

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

    Saída:

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

    CartJS - getCartID()

    Retorna o ID do carrinho atual.

    Tabela 12. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 13. Retorna
    Tipo Descrição
    Cadeia de caracteres Sys_id do carrinho atual.

    Retorna o sys_id do carrinho atual.

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

    Saída

    039c516237b1300054b6a3549dbe5dfc

    CartJS - getCartItems()

    Retorna um objeto GlideRecord que contém registros de itens no carrinho atual.

    Tabela 14. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 15. Retorna
    Tipo Descrição
    GlideRecord Objeto GlideRecord, incluindo registros e campos da tabela Item [sc_cart_item] que descrevem um item no carrinho atual.

    Retorna a quantidade e os valores do campo Item do catálogo para itens no carrinho atual.

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

    Saída

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

    CartJS - getDeliveryAddress()

    Retorna o endereço de entrega do carrinho atual.

    Tabela 16. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 17. Retorna
    Tipo Descrição
    Cadeia de caracteres Endereço de entrega do carrinho atual.

    Define e retorna o endereço de entrega do carrinho atual.

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

    Saída

    Brasilia, Brasil

    CartJS – getRequestedFor()

    Retorna o sys_id do usuário para quem o carrinho foi solicitado.

    Tabela 18. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 19. Retorna
    Tipo Descrição
    Cadeia de caracteres Sys_id do registro do usuário para quem o carrinho é solicitado; localizado na tabela Usuário [sys_user].

    Retorna o sys_id do usuário associado ao carrinho.

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

    Saída

    039c516237b1300054b6a3549dbe5dfc

    CartJS – getRequestedForDisplayName()

    Retorna o nome do usuário para quem o carrinho atual é solicitado.

    Tabela 20. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 21. Retorna
    Tipo Descrição
    Cadeia de caracteres Nome do usuário para quem o carrinho atual é solicitado; localizado na tabela Usuário [sys_user].

    Retorna o nome do usuário associado ao carrinho.

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

    Saída

    Abel Tuter

    CartJS – getSpecialInstructions()

    Retorna as instruções especiais do carrinho atual.

    Tabela 22. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 23. Retorna
    Tipo Descrição
    Cadeia de caracteres Instruções especiais para o carrinho atual.

    Este exemplo mostra como definir e recuperar as instruções especiais do carrinho atual.

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

    Saída

    Delivery before 8 AM.

    CartJS - orderNow(Map request)

    Solicita um único item. Se a finalização de compra em duas etapas estiver habilitada, o método adicionará o item especificado ao carrinho e retornará o sys_id do carrinho. Se a finalização de compra em duas etapas estiver desabilitada, o método concluirá a compra do item especificado e retornará o sys_id da solicitação gerada.

    Tabela 24. Parâmetros
    Nome Tipo Descrição
    solicitação Mapa Objeto JSON que contém detalhes do item do catálogo a ser solicitado.
    request.delivery_address Cadeia de caracteres Endereço para o qual os itens serão entregues.

    Padrão: endereço do usuário

    request.sysparm_id Cadeia de caracteres Obrigatório. O sys_id do item a ser comprado.
    request.instruções_especiais Cadeia de caracteres Instruções a serem seguidas ao processar o pedido.
    request.sysparm_quantity Cadeia de caracteres Quantidade do item especificado a ser comprado.

    Padrão: 1

    request.sysparm_requested_for Cadeia de caracteres O sys_id do usuário para quem o item é solicitado.

    Padrão: usuário de sessão

    request.variáveis Matriz Perguntas e respostas do cliente associadas ao item.
    request.variables.var_name Cadeia de caracteres Nome da pergunta.
    solicitação.variáveis.var_valor Cadeia de caracteres Resposta do cliente à pergunta associada.
    Tabela 25. Retorna
    Tipo Descrição
    Pares de chave/valor JSON Saída se a finalização de compra em duas etapas estiver habilitada:
    {
      'cart_id' : '<sys_id of the cart to which the items were added>'
    }

    Saída se a finalização de compra em duas etapas estiver desabilitada:

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

    Saída

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

    CartJS - setDeliveryAddress(String address)

    Define o endereço de entrega do carrinho atual.

    Tabela 26. Parâmetros
    Nome Tipo Descrição
    endereço Cadeia de caracteres Endereço de entrega do carrinho atual.
    Tabela 27. Retorna
    Tipo Descrição
    vazio
    
          var cart = new sn_sc.CartJS();
          cart.setDeliveryAddress("Brasilia, Brasil"); 
          

    CartJS - setRequestedFor(cadeia de caracteres do usuário)

    Define o sys_id no registro sys_user do usuário para o qual o carrinho é solicitado.

    Tabela 28. Parâmetros
    Nome Tipo Descrição
    usuário Cadeia de caracteres sys_id a ser definido no registro sys_user do usuário para o qual o carrinho é solicitado.
    Tabela 29. Retorna
    Tipo Descrição
    vazio
    
    var cart = new sn_sc.CartJS();
    cart.setRequestedFor("039c516237b1300054b6a3549dbe5dfc")
    

    CartJS - setSpecialInstructions(cadeia de caracteres "specialInstructions")

    Define as instruções especiais para o carrinho atual.

    Tabela 30. Parâmetros
    Nome Tipo Descrição
    specialInstruções Cadeia de caracteres Instruções especiais para o carrinho atual.
    Tabela 31. Retorna
    Tipo Descrição
    vazio
    
          var cart = new sn_sc.CartJS();
          cart.setSpecialInstructions("Delivery before 8 AM."); 
       

    CartJS - submitOrder(Map request)

    Atualiza instruções especiais, solicitado para e endereço de entrega do parâmetro request e executa a finalização de compra do carrinho. Use esta API para modificar os parâmetros mencionados do carrinho e executar a finalização de compra do carrinho simultaneamente. Os parâmetros ausentes no objeto request terão seu valor padrão.

    Tabela 32. Parâmetros
    Nome Tipo Descrição
    solicitação Mapa Um objeto JSON que contém detalhes do carrinho a ser enviado.
    {
      'special_instructions': "String",
      'requested_for': '"String",
      'delivery_address': "String"
    }
    request.instruções_especiais Cadeia de caracteres Instruções especiais a serem incluídas no pedido.
    request.requested_for Cadeia de caracteres Sys_id do usuário para o qual o pedido foi solicitado. Localizado na tabela Usuário [sys_user].

    Padrão: o usuário atual.

    request.delivery_address Cadeia de caracteres Endereço de entrega do pedido.
    Tabela 33. Retorna
    Tipo Descrição
    JSON Estrutura do carrinho.
    {
      'request_id' : 'sys_id of the generated Request',
      'request_number' : 'Number of the generated Request'
    }

    Exemplo:

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

    Saída:

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

    CartJS - updateItem (solicitação de mapa, cadeia de caracteres carrinho_item_id)

    Atualiza um item no carrinho.

    Tabela 34. Parâmetros
    Nome Tipo Descrição
    solicitação Mapa Um objeto JSON que contém detalhes do item do catálogo a ser atualizado.

    A estrutura do objeto request é:

    {
        'sysparm_quantity' : item_quantity,
      'sysparm_requested_for' : requested_for,
      'variables' : {
        'var_name' : 'var_value',
        ...
      }
    }
    • item_quantity: número de itens a serem adicionados. O valor padrão é 1.
    • var_name: nome da pergunta.
    • var_value: valor da resposta (não o valor de exibição).
    carrinho_item_id Cadeia de caracteres sys_id do item do carrinho a ser modificado.
    Tabela 35. Retorna
    Tipo Descrição
    JSON Detalhes do carrinho.
    {
      '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);
    

    Saída

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