Skip to content

Latest commit

 

History

History
405 lines (248 loc) · 12.5 KB

README.md

File metadata and controls

405 lines (248 loc) · 12.5 KB

Índice


Sku Selector

Uso

Chame o plugin em uma div vazia:

$('.sku-selector-container').skuSelector(data, options);
  • data deve ser um JSON de SKUs padrão da API.

  • options opcional, é um objeto que pode ter as seguintes propriedades:

    • selectOnOpening default: false. Se true, na inicialização do plugin seleciona o primeiro SKU disponível (o primeiro que vier no array).

    • modalLayout default: false. Se true, usa o template de modal.

    • warnUnavailable default: false. Se true, mostra form de "avise-me" quando um SKU indisponível for selecionado.

    • showPriceRange default: false. Se true, mostra o preço mínimo e o máximo dentre os SKUs selecionáveis com as dimensões já selecionadas.

    • forceInputType default: null. Se não for falsy, força o inputType de todas as dimensões a serem isso.

Eventos

Lança os seguintes eventos:

  • skuReady.vtex [] quando o Sku Selector é renderizado.
  • skuDimensionChanged.vtex [productId, name, value] quando uma dimensão é selecionada.
  • skuSelected.vtex [productId, sku] quando um SKU é definido.
  • skuUnselected.vtex [productId, selectableSkus] quando o SKU torna-se indefinido.

Quantity Selector

Uso

Chame o plugin em uma div vazia:

$('.quantity-selector-container').quantitySelector(productId, options);
  • productId o ID do produto.

  • options opcional, é um objeto que pode ter as seguintes propriedades

    • unitBased default: false. Define se deseja usar seletor a granel (calculadora de quantidade).

    • unitVariations default: []. Se unitBased == true, especifica as opções de unidade para cada Sku. É uma coleção de {skuId: Number, measurementUnit: String, unitMultiplier: Number}.

    • max default: 10. Define a quantidade máxima que pode ser selecionada.

    • initialQuantity default: 1. Define a quantidade selecionada inicialmente.

    • decimalPlaces default: 2. Define a quantidade de casas decimais do input de unidades. Não deve exceder 12.

Eventos

Lança os seguintes eventos:

  • quantityReady.vtex [productId, quantity] quando o Quantity Selector é renderizado.
  • quantityChanged.vtex [productId, quantity] quando a quantidade é mudada.

Escuta pelos seguintes eventos:

  • quantityChanged.vtex [productId, quantity] a quantidade pode ser mudada por meio de scripts externos e o plugin se atualizará.

Accessories Selector

Uso

Chame o plugin em uma div vazia:

$('.acc-selector-container').accessoriesSelector(productId, data, options);
  • productId o ID do produto que é pai dos acessórios.

  • data deve ser um JSON de acessórios padrão da API.

  • options (nenhuma no momento.)

Eventos

Lança os seguintes eventos:

  • accessoriesUpdated.vtex [productId, accessories] quando um acessório é alterado. O array accessories contém os acessórios de um determinado produto, com propriedades como sku e quantity.

Price

Escuta por mudanças no Sku selecionado e atualiza as labels de preço.

Usa informações padrão de preço quando não há Sku selecionado.

Uso

Chame o plugin em uma div. Se esta conter algum HTML, este será usado quando um Sku não estiver definido.

$('.productPrice').price(productId, options);
  • productId o ID do produto.

  • options opcional, é um objeto que pode ter as seguintes propriedades

    • originalSku default: null. Deve ser definido se a opção acima for true.

    • modalLayout default: false. Se true, usa o template de modal.

Eventos

Escuta pelos seguintes eventos:

  • skuSelected.vtex [productId, sku]
  • skuUnselected.vtex [productId, selectableSkus]

Shipping Calculator

Oferece um formulário para cálculo de frete, além de um botão para mostrá-lo.

Uso

Chame o plugin em uma div vazia.

$('.shipping-calc-ref').shippingCalculator(productId, options);
  • productId o ID do produto.

  • options opcional, é um objeto que pode ter as seguintes propriedades

    • strings Define as mensagens exibidas. Default:

      { "calculateShipping": 'Calcule o valor do frete e prazo de entrega para a sua região:', "enterPostalCode": 'Calcular o valor do frete e verificar disponibilidade:', "requiredPostalCode": 'O CEP deve ser informado.', "invalidPostalCode": 'CEP inválido.', "requiredQuantity": 'É necessário informar a quantidade do mesmo Produto.', "siteName": 'Vtex.Commerce.Web.CommerceContext.Current.WebSite.Name', "close": 'Fechar' }

Eventos

Escuta pelos seguintes eventos:

  • skuSelected.vtex [productId, sku]
  • skuUnselected.vtex [productId, selectableSkus]
  • quantityReady.vtex [productId, quantity]
  • quantityChanged.vtex [productId, quantity]

Buy Button

Uso

Chame o plugin na a que age como botão de comprar:

$('.buy-button').buyButton(productId, data, options);
  • productId o ID do produto. Pode ser um array de IDs de produto -- neste caso, vai ser um botão que vai servir para comprar todos os produtos ao mesmo tempo.

  • data opcional, é um objeto que pode ter as propriedades sku, quantity, seller e salesChannel.

  • options opcional, é um objeto que pode ter as seguintes propriedades

    • errorMessage Mensagem de erro que será alertada se o usuário clicar no botão sem ter escolhido um SKU. Essa mensagem figurará nos parâmetros do evento vtex.buyButton.failedAttempt. Default: "Por favor, selecione o modelo desejado."

    • alertOnError default: true. Determina se será exibido um alerta com a errorMessage.

    • redirect default: true. Determina a propriedade de mesmo nome na querystring. Deve ser true para página de produto, e false para modal.

    • instaBuy default: false. Se true, ao ser selecionado um Sku disponível, o botão se clica.

    • hideUnselected default: false. Se true, esconde-se quando não há Sku selecionado.

    • hideUnavailable default: false. Se true, esconde-se quando o Sku selecionado está indisponível.

    • target default: null. Define o query parameter target. Um valor válido é "orderform".

    • requireAllSkus default: false. Se productId for um array, essa opção determina se todos os IDs de produto devem ter um Sku selecionado, ou se aceita comprar parcialmente (somente os selecionados).

Eventos

Lança os seguintes eventos:

  • modalHide.vtex [] quando redirect=false e o botão é clicado.
  • cartProductAdded.vtex [] quando redirect=false, o botão é clicado e a resposta do AJAX volta.
  • buyButtonFailedAttempt.vtex [errorMessage] quando o botão é clicado mas não há um SKU válido.
  • buyButtonThrough.vtex [url] quando o botão é clicado e há SKU válido.

Escuta pelos seguintes eventos:

  • skuSelected.vtex [productId, sku]
  • skuUnselected.vtex [productId, selectableSkus]
  • quantityChanged.vtex [productId, quantity]
  • accessorySelected.vtex [productId, accessory]

Notify Me

Uso

Chame o plugin em uma div vazia:

$('.portal-notify-me-ref').notifyMe(productId, options);
  • productId o ID do produto.

  • options opcional, é um objeto que pode ter as seguintes propriedades

    • ajax default: true. Define se o submit do form deve ser feito com AJAX.

    • sku default: null. Define o sku a ser usado. Se existir, ignora os eventos de seleção de sku.

    • strings Define as mensagens exibidas. Default:

        {
            "title": "",
            "explanation": "Para ser avisado da disponibilidade deste Produto, basta preencher os campos abaixo.",
            "namePlaceholder": "Digite seu nome...",
            "emailPlaceholder": "Digite seu e-mail...",
            "loading": "Carregando...",
            "success": "Cadastrado com sucesso. Assim que o produto for disponibilizado você receberá um email avisando.",
            "error": "Não foi possível cadastrar. Tente mais tarde."
        }
      

Eventos

Lança os seguintes eventos:

  • notifyMeSubmitted.vtex [productId, sku, promise]: quando a form é enviada.

Escuta pelos seguintes eventos:

  • skuSelected.vtex [productId, sku]
  • skuUnselected.vtex [productId, selectableSkus]

Minicart

Uso

Chame o plugin em uma div vazia:

$('.portal-minicart-ref').minicart(options);
  • options opcional, é um objeto que pode ter as seguintes propriedades

    • valuePrefix default: "R$ ". Define o texto a ser exibido antes do valor.

    • valueSufix default: "". Define o texto a ser exibido depois do valor.

    • availabilityMessages Define as mensagens exibidas para cada código de disponibilidade da API. Default:

        {
            "available": "",
            "unavailableItemFulfillment": "Este item não está disponível no momento.",
            "withoutStock": "Este item não está disponível no momento.",
            "cannotBeDelivered": "Este item não está disponível no momento.",
            "withoutPrice": "Este item não está disponível no momento.",
            "withoutPriceRnB": "Este item não está disponível no momento.",
            "nullPrice": "Este item não está disponível no momento."
        }
      
    • showMinicart default: true. Define se o minicart deve ser mostrado.

    • showTotalizers default: true. Define se o totalizers deve ser mostrado.

Eventos

Lança os seguintes eventos:

  • cartProductRemoved.vtex [] quando um item é removido pelo minicart.
  • minicartMouseOver.vtex []
  • minicartMouseOut.vtex []
  • minicartUpdated.vtex []

Escuta pelos seguintes eventos:

  • cartProductAdded.vtex [] o Minicart se atualiza.
  • cartProductRemoved.vtex [] o Minicart se atualiza.

Expiration

session-expiration.js

Utilitary expiration timer, reset by events. When time expires, the user session is cleaned up (cookies are cleared) and the user is redirected to a URL.

Public functions

vtex.portal.startExpiration(url, millis, events)

Start expiration timer.

Parameters and defaults:

  • url = '/'
  • millis = 10 * 60 * 1000 (10 minutes)
  • events = ["mousemove", "keyup", "click", "scroll"]

vtex.portal.stopExpiration()

Stops current expiration timer.


Notas

Notas gerais

As opções podem ser passadas de três jeitos. Eles são, em ordem de prioridade:

  1. Por JavaScript, na chamada do plugin.
  2. Com atributos data- nos elementos.
  3. Modificando as opções padrão (objeto $.fn.nomeDoPlugin.defaults).

Após um plugin ser inicializado, o elemento-alvo conterá, em seu objeto data (acceso via $().data()), uma referência à sua instância do plugin.

Dependências

Plugin jQuery front.utils Dust (core) Catalog SDK
Sku Selector
Quantity Selector
Accessories Selector
Price
Shipping Calculator
Buy Button
Notify Me
Minicart
Expiration