CarrinhoJS - com escopo

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 9 min. de leitura
  • A API CartJS permite que você acesse o carrinho de compras de um usuário.

    Para usar essa classe em uma aplicação com escopo, use o identificador de namespace sn_sc. O plug-in API com escopo do Catálogo de serviços (ID: com.glideapp.servicecatalog.scoped.api) que está habilitado por padrão é necessário para acessar a API do carrinhoJS.

    CartJS - addToCart(solicitação de mapa)

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

    Tabela 1. 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 2. 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"
        }
      ]
    }

    CarrinhoJS - CarrinhoJS(cadeia de caracteres "cartName")

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

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    Nome do carrinho 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);

    CarrinhoJS – check-outCart()

    Executa o check-out 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 4. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 5. 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"
    }

    Exemplo

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

    CarrinhoJS - vazio ()

    Exclui o carrinho atual.

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

    CarrinhoJS – getCartID()

    Retorna o ID do carrinho atual.

    Tabela 8. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 9. 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

    CarrinhoJS – getCartItems()

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

    Tabela 10. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 11. 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"

    CarrinhoJS - getDeliveryAddress()

    Retorna o endereço de entrega do carrinho atual.

    Tabela 12. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 13. 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

    CarrinhoJS – getRequestedFor()

    Retorna o sys_id do usuário para o qual o carrinho é solicitado.

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

    Retorna o usuário sys_id associado ao carrinho.

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

    Saída

    039c516237b1300054b6a3549dbe5dfc

    CarrinhoJS – getRequestedForDisplayName()

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

    Tabela 16. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 17. 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

    CarrinhoJS – getSpecialInstructions()

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

    Tabela 18. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 19. 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 para o 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(solicitação de mapa)

    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 20. 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.special_instrutions Cadeia de caracteres Instruções a serem seguidas ao processar o pedido.
    request.sysparm_quantity Cadeia de caracteres Quantidade do item especificado para compra.

    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 da sessão

    request.variáveis Matriz Perguntas e respostas do cliente associadas ao item.
    request.variables.var_name Cadeia de caracteres Nome da pergunta.
    request.variables.var_value Cadeia de caracteres Resposta do cliente à pergunta associada.
    Tabela 21. 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>'
    }

    Exemplo

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

    CarrinhoJS - setDeliveryAddress(cadeia de caracteres "endereço")

    Define o endereço de entrega do carrinho atual.

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

    CarrinhoJS - setSpecialInstrutions(cadeia de caracteres "specialInstrutions")

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

    Tabela 24. Parâmetros
    Nome Tipo Descrição
    instruções especiais Cadeia de caracteres Instruções especiais para o carrinho atual.
    Tabela 25. 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, solicitados para e endereço de entrega do parâmetro request e executa o check-out 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 o valor padrão.

    Tabela 26. 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.special_instrutions 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 é 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 27. 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(Mapear solicitação, Cadeia de caracteres "cart_item_id")

    Atualiza um item no carrinho.

    Tabela 28. 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).
    id_item_carrinho Cadeia de caracteres sys_id do item do carrinho a ser modificado.
    Tabela 29. Retorna
    Tipo Descrição
    JSON Detalhes do carrinho.
    {
      'subtotal': value,
      'items':[
        {
        itemName:'',
        quantity:'',
        price:'',
        recurring_price:''
        }
        ...],
      ...
    }

    Exemplo

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

    CarrinhoJS – canViewRF()

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

    Tabela 30. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 31. 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

    CarrinhoJS – getCartDetails()

    Retorna os detalhes do carrinho.

    Tabela 32. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 33. 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"

    

    CarrinhoJS - setRequestedFor(cadeia de caracteres usuário)

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

    Tabela 34. 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 35. Retorna
    Tipo Descrição
    vazio

    Exemplo

    
    var cart = new sn_sc.CartJS();
    cart.setRequestedFor("039c516237b1300054b6a3549dbe5dfc")