<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Matheus Aguiar</title>
    <description>The latest articles on DEV Community by Matheus Aguiar (@devaguia).</description>
    <link>https://dev.to/devaguia</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1049119%2F6f938208-43fe-4206-8257-cd453bd08385.jpeg</url>
      <title>DEV Community: Matheus Aguiar</title>
      <link>https://dev.to/devaguia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devaguia"/>
    <language>en</language>
    <item>
      <title>WooCommerce Checkout Blocks</title>
      <dc:creator>Matheus Aguiar</dc:creator>
      <pubDate>Wed, 03 Apr 2024 22:27:14 +0000</pubDate>
      <link>https://dev.to/devaguia/woocommerce-checkout-blocks-3joi</link>
      <guid>https://dev.to/devaguia/woocommerce-checkout-blocks-3joi</guid>
      <description>&lt;p&gt;No ano passado(2023) o plugin WooCommerce trouxe grandes mudanças no seu ecossistema. E uma das principais mudanças, com certeza, foi a definição de que as páginas de checkout e carrinho viriam como padrão com um modelo baseado nos blocos do Gutenberg, que é a tecnologia oficial de gerenciamento e construção de páginas do WordPress.&lt;/p&gt;

&lt;p&gt;O checkout baseado em blocos foi lançado em novembro de 2023, na versão 8.3 do plugin WooCommerce. E desde então todas as novas instalações WooCommerce já possui como padrão a utilização desta tecnologia.&lt;/p&gt;

&lt;h2&gt;
  
  
  O novo modelo
&lt;/h2&gt;

&lt;p&gt;Todo mundo sabe que mudanças são difíceis. Principalmente quando falamos de tecnologia.&lt;br&gt;
Por ser algo relativamente novo, naturalmente não temos muito material e conteúdo sobre o assunto, o que dificulta um pouco a adaptação e a resolução de problemas durante o desenvolvimento.&lt;/p&gt;

&lt;p&gt;Neste caso, só nos resta ler a documentação(que não é bem o forte do WooCommerce/WordPress). Então, logo abaixo neste post, deixei as fontes que usei para escrevê-lo, inclusive com exemplos de implementação e de páginas da própria documentação do WooCommerce.&lt;/p&gt;

&lt;p&gt;O novo modelo de checkout traz um design mais bonito e moderno. Separando melhor suas seções e melhorando a experiência dos usuários durante o processo de finalização de compra.&lt;/p&gt;

&lt;p&gt;Veja este exemplo utilizando o tema Storefront:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2slnuhjcps7qseid4v7h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2slnuhjcps7qseid4v7h.png" alt="Imagem do novo checkout do WooCommerce baseado em blocos" width="800" height="930"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Porém, para quem precisa de algo mais personalizável, talvez não seja tão vantajoso. Veja no tópico abaixo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quando o simples se torna complexo
&lt;/h2&gt;

&lt;p&gt;Para quem gosta de fugir do padrão, talvez o checkout baseado em blocos não seja a melhor opção.&lt;/p&gt;

&lt;p&gt;Embora a ideia da utilização de blocos tenha como objetivo facilitar a personalização e também fornecer uma edição mais fácil do conteúdo, ela ainda não traz uma personalização suficiente para quem quer um checkout único.&lt;/p&gt;

&lt;p&gt;Quando você ouve a sobre a utilização de blocos do Gutenberg no checkout, automaticamente vem na sua mente algumas dúvidas, como por exemplo:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Agora vou poder adicionar quantos campos eu precisar pelo painel?&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Não&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Então eu vou poder construir uma página personalizada do zero para o checkout e só chamar os components da maneira que eu desejar. Certo?&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Não&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Posso pelo menos reordenar os blocos para definir quais campos quero que venha primeiro?&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Não&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Posso estilizar os blocos e campos no checkout através do painel?&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Não&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;E remover os campos que não quero no checkout?&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Também não&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Isso significa que o novo checkout é inútil? &lt;strong&gt;Definitivamente não!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Assim como no checkout clássico, existem limitações ao que é entregue nativamente pelo plugin para esse novo checkout, e que serão ser tratadas por plugins desenvolvidos de terceiros e/ou desenvolvimentos personalizados. Porém, por ser uma ferramenta recente, ainda não temos tantas opções disponíveis.&lt;/p&gt;

&lt;p&gt;Ah. Falando em desenvolvimento personalizado...&lt;/p&gt;

&lt;h2&gt;
  
  
  Campos personalizados
&lt;/h2&gt;

&lt;p&gt;Sim. É possível criar campos personalizados para o checkout baseado em blocos do WooCommerce. Só não é tão simples como no checkout clássico.&lt;/p&gt;

&lt;p&gt;Como disse anteriormente, o checkout clássico possui uma série de ferramentas e plugins de terceiros, muitos gratuitos, para poder manipular da maneira que quiser a página e formulário de checkout. Este novo checkout ainda não possui tantas integrações e vai demorar um pouco até que chegue ao nível do checkout clássico.&lt;/p&gt;

&lt;p&gt;Mas falando de desenvolvimento personalizado, sem ferramentas de &lt;em&gt;drag and drop&lt;/em&gt; e plugins de terceiros, as coisas ficaram um pouco mais complicadas.&lt;/p&gt;

&lt;p&gt;Enquanto antes o desenvolvedor precisava saber lidar com o PHP, HTML, CSS e talvez Javascript, no novo checkout ele vai precisar &lt;em&gt;dominar&lt;/em&gt; o Javascript e ter uma boa base de ReactJS.&lt;br&gt;
Isso porque os blocos do Gutenberg utilizam o ReactJS para a construção de seus elementos components.&lt;/p&gt;

&lt;p&gt;Para nós desenvolvedores, isso significa que vamos precisar estudar e nos adequar as novas estruturas. Digo não superficialmente, mas de fato entender como tudo funciona.&lt;/p&gt;

&lt;p&gt;Já para quem quer investir em uma loja virtual, isso significa ficar atento ao aumento no valor do investido. Pois, quanto maior a complexidade, maior é o tempo de desenvolvimento, e tempo é dinheiro.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.tychesoftwares.com/how-to-add-custom-fields-in-woocommerce-checkout-block/"&gt;Trouxe aqui um post tutorial, mostrando como criar campos personalizados para o checkout baseado em blocos. &lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  E os gateways de pagamento?
&lt;/h2&gt;

&lt;p&gt;Trouxe este tópico pois, na minha visão, os gateways de pagamentos são os mais afetados nessa transição. Mas vou passar brevemente sobre o assunto pois vou criar um novo post dedicado a isso.&lt;/p&gt;

&lt;p&gt;Basicamente, para que um gateway de pagamento funcione também no novo checkout, é necessário fazer alguma adaptações. E por isso, caso você tenha testado ou venha testar, alguns métodos de pagamento simplesmente não irão aparecer no checkout.&lt;/p&gt;

&lt;p&gt;Mas se você for na edição da página de checkout verá uma mensagem de alerta sobre a incompatibilidade desse gateway:&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk2gvrc9f15x2xi6xl9gm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk2gvrc9f15x2xi6xl9gm.png" alt="Imagem da mensagem de incompatibilidade dos gateways de pagamento" width="297" height="562"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Acredito que inicialmente essa compatibilidade vai reduzir as opções de gateways de pagamentos, devido a necessidade dos plugins atuais se adequarem ao novo modelo.&lt;br&gt;
Vale ainda ressaltar que, alguns plugins de gateways tem como dependência outros plugins, que também não possuem integração com blocos ainda.&lt;/p&gt;

&lt;p&gt;Com isso, trouxe aqui neste post alguns links úteis para quem vai fazer a adaptação de gateways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://woo.com/document/cart-checkout-blocks-status/"&gt;Documentação do WooCommerce;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.woo.com/2021/03/15/integrating-your-payment-method-with-cart-and-checkout-blocks/"&gt;Documentação do WooCommerce(Payment Methods);&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/woocommerce/woocommerce-gateway-dummy"&gt;Exemplo de gateway de pagamento com integração&lt;/a&gt;;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  E o checkout clássico? Morreu?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Nem de longe!&lt;/strong&gt;&lt;br&gt;
Acredito que o checkout baseado em blocos é muito promissor e com certeza vai trazer muita coisas boas no futuro. E eventualmente, vai acabar desbancando de vez o checkout clássico. Mas ainda falta muito!&lt;/p&gt;

&lt;p&gt;Na minha opinião, na maioria dos casos, ainda está muito cedo para considerar construir lojas utilizando o novo checkout. A solução não parece estar 100% completa e não atende nenhum dos extremos do público que utiliza o WooCommerce como loja virtual.&lt;/p&gt;

&lt;p&gt;O lojista que deseja montar um loja &lt;em&gt;"low code"&lt;/em&gt; ou &lt;em&gt;"no code"&lt;/em&gt; não vai ter ferramentas suficientes para personalizar o básico, mesmo que seja algo simples.&lt;/p&gt;

&lt;p&gt;E o lojista que deseja montar um loja mais complexa e personalizada também vai acabar sendo prejudicado pela falta de ferramentas e vai acabar tendo que investir em mais mão de obra para uma tecnologia que ainda não está 100% consolidada.&lt;/p&gt;

&lt;p&gt;Com isso, acredito que vale a pena esperar um pouco antes de migrar para esse novo modelo. E devemos ficar atento as mudanças que virão e como isso vai impactar nossa forma de trabalhar.&lt;/p&gt;

&lt;p&gt;Obrigado!&lt;/p&gt;




&lt;h3&gt;
  
  
  Fontes:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.tychesoftwares.com/how-to-add-custom-fields-in-woocommerce-checkout-block/"&gt;https://www.tychesoftwares.com/how-to-add-custom-fields-in-woocommerce-checkout-block/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://woo.com/document/cart-checkout-blocks-status/"&gt;https://woo.com/document/cart-checkout-blocks-status/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/woocommerce/woocommerce-blocks/tree/trunk/docs#third-party-developers"&gt;https://github.com/woocommerce/woocommerce-blocks/tree/trunk/docs#third-party-developers&lt;/a&gt;&lt;br&gt;
&lt;a href="https://developer.woo.com/2023/08/07/extending-the-woocommerce-checkout-block-to-add-custom-shipping-options/"&gt;https://developer.woo.com/2023/08/07/extending-the-woocommerce-checkout-block-to-add-custom-shipping-options/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://developer.woo.com/2022/05/20/hiding-shipping-and-payment-options-in-the-cart-and-checkout-blocks/"&gt;https://developer.woo.com/2022/05/20/hiding-shipping-and-payment-options-in-the-cart-and-checkout-blocks/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://developer.woo.com/2021/03/15/integrating-your-payment-method-with-cart-and-checkout-blocks/"&gt;https://developer.woo.com/2021/03/15/integrating-your-payment-method-with-cart-and-checkout-blocks/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.npmjs.com/package/@woocommerce/extend-cart-checkout-block"&gt;https://www.npmjs.com/package/@woocommerce/extend-cart-checkout-block&lt;/a&gt;&lt;br&gt;
&lt;a href="https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/changelog.txt"&gt;https://raw.githubusercontent.com/woocommerce/woocommerce/trunk/changelog.txt&lt;/a&gt;&lt;/p&gt;

</description>
      <category>woocommerce</category>
      <category>wordpress</category>
      <category>gutenberg</category>
      <category>php</category>
    </item>
  </channel>
</rss>
