;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

WhatsApp vai permitir fazer compras de produtos dentro do aplicativo

Divulgação
Imagem: Divulgação

Barbara Mannara

Colaboração para Tilt*, do Rio de Janeiro

17/11/2022 15h23

O WhatsApp apresentou nesta quinta-feira (17) uma ferramenta gratuita que permitirá fazer buscas de empresas e fechar compras de produtos dentro do aplicativo.

O recurso chamado "Diretório" funcionará como um catálogo online pelo WhatsApp e a atualização com algumas funcionalidades começou a ser liberada hoje no app para Android. Ainda não há previsão para o iOS, do iPhone.

Na parte de buscas, os usuários poderão encontrar lojas por perto — ou por pesquisa da marca —, sem precisar sair do aplicativo do WhatsApp. Em breve, a plataforma oferecerá ainda a opção de pagamentos na tela do chat, segundo Guilherme Horn, Diretor Geral da WhatsApp Brasil.

As novidades foram anunciadas na primeira edição do WhatsApp Business Summit Brasil, conferência da Meta (grupo dono da empresa) para empreendedores, realizada hoje.

"[A novidade] permite você encontrar, enviar mensagens e comprar das lojas. Tudo na mesma conversa de WhatsApp", afirmou Mark Zuckerberg, diretor-executivo da Meta, em sua presença virtual no evento.

Como os recursos funcionam

A ferramenta permite encontrar estabelecimentos próximos pelo mapa — ou por pesquisa — dentro da plataforma do mensageiro — sem ar navegadores ou links externos.

Conforme apresentação exibida por Zuckerberg, na tela de "Contatos" do WhatsApp é possível encontrar a categoria "Encontrar Empresas".

Na interface em português, a plataforma oferece algumas categorias rápidas como:

  • restaurantes
  • lanchonetes
  • mercearia
  • roupas e vestuário
  • serviços automotivos

Após a exibição do catálogo da loja, o comprador poderá adicionar os itens ao carrinho, ver os preços e disponibilidade dos produtos.

Ao concluir, o carrinho de compras é enviado para a loja, por meio de um recado no chat.

A empresa recebe uma notificação com o desejo de adquirir determinados itens. Em seguida, o empreendedor consegue editar o pedido, para adicionar descontos e informações de frete.

Pagamentos via WhatsApp

Apesar de ainda não funcionar no Brasil, a empresa deu uma amostra prática do sistema de pagamentos pela plataforma.

Após o consumidor realizar a etapa anterior, a pessoa deve adicionar o endereço de entrega no processo para receber a opção de pagamento, que pode ser feita por meio de uma das marcas de cartões de crédito parceiras.

A empresa receberá então uma notificação de conclusão da venda. Ao ser confirmada pela loja e receber o recibo, a mercadoria é enviada ao local de destino.

O WhatsApp iniciou testes do "Diretório" em São Paulo há um ano. E, há um mês, a empresa implementou na Índia uma plataforma complementar de pagamentos, que permite concluir a compra pelo app do mensageiro.

O que o WhatsApp ganha com isso?

Segundo a empresa, o WhatsApp receberá uma taxa em cima do pagamento efetuado, descontado do vendedor. Essa porcentagem não foi revelada.

"Nada muito diferente do que se pratica hoje no mercado, em outras plataformas", afirma apenas Horn.

Mark Zuckerberg no evento

Segundo Zuckerberg, o perfil de usuários do WhatsApp no Brasil envolve o uso do aplicativo para abrir contas em banco, comprar carros e até pedir o jantar. E a proposta no lançamento é facilitar essa ação para os consumidores engajarem com as empresas.

"Tornamos isso possível expandindo nossa ferramenta direta para todo o Brasil", afirmou o fundador do Facebook.

Sobre a plataforma financeira, o presidente da Meta deixou em aberto a expansão: "Vários parceiros estão testando pagamentos conosco, então podemos trazer essa ferramenta para mais pessoas e empreendimentos em breve [no Brasil]. Estamos trabalhando para levar essa experiência para mais países nos próximos meses."