-
Plugins
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
. Setrue
, na inicialização do plugin seleciona o primeiro SKU disponível (o primeiro que vier no array). -
modalLayout
default:false
. Setrue
, usa o template de modal. -
warnUnavailable
default:false
. Setrue
, mostra form de "avise-me" quando um SKU indisponível for selecionado. -
showPriceRange
default:false
. Setrue
, 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.
-
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.
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:[]
. SeunitBased == 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.
-
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á.
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.)
Lança os seguintes eventos:
accessoriesUpdated.vtex [productId, accessories]
quando um acessório é alterado. O arrayaccessories
contém os acessórios de um determinado produto, com propriedades comosku
equantity
.
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.
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 fortrue
. -
modalLayout
default:false
. Setrue
, usa o template de modal.
-
Escuta pelos seguintes eventos:
skuSelected.vtex [productId, sku]
skuUnselected.vtex [productId, selectableSkus]
Oferece um formulário para cálculo de frete, além de um botão para mostrá-lo.
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' }
-
Escuta pelos seguintes eventos:
skuSelected.vtex [productId, sku]
skuUnselected.vtex [productId, selectableSkus]
quantityReady.vtex [productId, quantity]
quantityChanged.vtex [productId, quantity]
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 propriedadessku
,quantity
,seller
esalesChannel
. -
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 eventovtex.buyButton.failedAttempt
. Default: "Por favor, selecione o modelo desejado." -
alertOnError
default:true
. Determina se será exibido um alerta com aerrorMessage
. -
redirect
default:true
. Determina a propriedade de mesmo nome na querystring. Deve sertrue
para página de produto, efalse
para modal. -
instaBuy
default:false
. Setrue
, ao ser selecionado um Sku disponível, o botão se clica. -
hideUnselected
default:false
. Setrue
, esconde-se quando não há Sku selecionado. -
hideUnavailable
default:false
. Setrue
, esconde-se quando o Sku selecionado está indisponível. -
target
default:null
. Define o query parametertarget
. Um valor válido é"orderform"
. -
requireAllSkus
default:false
. SeproductId
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).
-
Lança os seguintes eventos:
modalHide.vtex []
quandoredirect=false
e o botão é clicado.cartProductAdded.vtex []
quandoredirect=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]
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." }
-
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]
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.
-
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.
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.
Start expiration timer.
Parameters and defaults:
- url = '/'
- millis = 10 * 60 * 1000 (10 minutes)
- events = ["mousemove", "keyup", "click", "scroll"]
Stops current expiration timer.
As opções podem ser passadas de três jeitos. Eles são, em ordem de prioridade:
- Por JavaScript, na chamada do plugin.
- Com atributos
data-
nos elementos. - 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.
Plugin | jQuery | front.utils | Dust (core) | Catalog SDK |
---|---|---|---|---|
Sku Selector | ✔ | ✔ | ✔ | ✗ |
Quantity Selector | ✔ | ✗ | ✔ | ✗ |
Accessories Selector | ✔ | ✔ | ✔ | ✗ |
Price | ✔ | ✔ | ✔ | ✗ |
Shipping Calculator | ✔ | ✗ | ✔ | ✔ |
Buy Button | ✔ | ✗ | ✗ | ✔ |
Notify Me | ✔ | ✗ | ✔ | ✔ |
Minicart | ✔ | ✔ | ✔ | ✗ |
Expiration | ✔ | ✗ | ✗ | ✗ |