Skip to content

Instantly share code, notes, and snippets.

View rgoytacaz's full-sized avatar

Rodrigo Dellacqua rgoytacaz

View GitHub Profile
@rgoytacaz
rgoytacaz / email.js
Last active July 10, 2018 02:06
How to add an email to VTEX Request Capture's session (Adds to Master Data and works for Abandoned Carts if items are available in the cart)
vtex.NavigationCapture.sendEvent('userContactInfo', { visitorContactInfo: ['john@doe.com'] });
//marketingData Example
//vtexjs.checkout.orderForm.marketingData
//Example 1: GET UTMS FROM COOKIES OR EMPTY
utms = {
utmCampaign: (Cookies.get('IPS').indexOf('Campanha')!= -1 ? Cookies.get('IPS').split('Campanha=')[1].split('&')[0] : "" ),
utmMedium: (Cookies.get('IPS').indexOf('Midia')!= -1 ? Cookies.get('IPS').split('Midia=')[1].split('&')[0] : "" ),
utmSource: (Cookies.get('IPS').indexOf('Parceiro')!= -1 ? Cookies.get('IPS').split('Parceiro=')[1].split('&')[0] : "" ),
utmiCampaign: (Cookies.get('ISICI').indexOf('InternalCampaign')!= -1 ? Cookies.get('ISICI').split('InternalCampaign=')[1].split('&')[0] : "" ),
utmiPart: (Cookies.get('ISICI').indexOf('InternalPart')!= -1 ? Cookies.get('ISICI').split('InternalPart=')[1].split('&')[0] : "" )
@rgoytacaz
rgoytacaz / vtexCheckoutEvents.js
Last active July 25, 2019 19:48
Examples of events in VTEX Checkout
(function(){
$('#shipping-data').on('enable.vtex', function(){
console.log('Shipping Data just opened.');
});
$(window).on('orderFormUpdated.vtex', function(ev, orderForm) {
console.log('Order Form updated.');
});
@rgoytacaz
rgoytacaz / cashOnDelivery.js
Last active January 25, 2018 10:52
Disables Cash on Delivery payment types, for carriers that do not accept cash on delivery.
(function(){
//Carriers that accepts Cash on Delivery
var carriesCashOnDelivery = [
'Delivery' //Carrier name
];
var paymentGroupCashOnDelivery = '#payment-group-custom201PaymentGroupPaymentGroup'; //Cash On Delivery Payment Group
var defaultPaymentGroup = '#payment-group-creditCardPaymentGroup'; //Default Payment Group
(function(){
var categories = [];
var brands = [];
function slugify(text)
{
return text.toString().toLowerCase()
.replace(/\s+/g, '-') // Replace spaces with -
.replace(/[^\w\s-]/g, '-') // remove non-word [a-z0-9_], non-whitespace, non-hyphen characters
@rgoytacaz
rgoytacaz / example-logout.js
Last active July 31, 2019 22:01
Example Logout
//dependencies jquery e jquery cookie
//https://plugins.jquery.com/cookie/
function logout(){
$.removeCookie('VTEXSC', {domain:'.'+window.document.domain});
$.removeCookie('checkout.vtex.com', {domain:'.'+window.document.domain});
$.get(vtexjs.checkout.getLogoutURL());
$.get('/no-cache/user/logout');
setTimeout(function(){window.location = "",500);
}
// Example input
var item = { id: 35, quantity: 3, seller: 1 }
var attachments = [
{
name: "Ingredientes Hamburguesa con Queso",
values: [
{
"Sin Carne 50gr": "true",
"Sin Cebolla": "false",
"Sin Mostaza": "false",
@rgoytacaz
rgoytacaz / waiting-example.js
Last active April 16, 2019 04:39
Waiting data to be available dynamically
(function(){
//AVOIDS AN INFINITE LOOP
var tries=0;
var maxTries=5;
var callFunctionOrSetTimeout = function(){
tries++;
if(window.vtexjs&&window.vtexjs.checkout&&window.vtexjs.checkout.orderForm){
console.log('Data available');
//Depends on JQUERY
//Depends on CL Entity's rclastcart field to be public to read
(function(accountName,identityExpiration) {
function setOrRenewUserEmailToSession(email) {
if(email && email != "") {
if(localStorage) { localStorage.setItem("vtex-user-email", email) };
if(vtex && vtex.NavigationCapture) {
//Saves user cart, for abbandoned cart.
@rgoytacaz
rgoytacaz / forcePricetableUpdate.js
Last active February 22, 2019 14:18
Workaround to update prices at checkout (currently not working)
(function(){
var currentPostalCode = "";
$(window).on('orderFormUpdated.vtex', function(ev, orderForm) {
if(orderForm && orderForm.shippingData && orderForm.shippingData.address && currentPostalCode != orderForm.shippingData.address.postalCode){
currentPostalCode = orderForm.shippingData.address.postalCode;
var params = ({'postalCode':{'value':currentPostalCode}});