E-commerce no

WordPress

Aprenda como fazer!

- Rafael Ehlers / @rafaehlers

  • Arquivos sistema de inscrições

Whoami

  1. DOS @ 9
  2. HTML4 @ 14
  3. 2º grau + técnico
  4. Governo
  5. Empresa -> VB6
  6. inTDV
  7. Agência Web
  8. rise

E-Commerce

O Monstro

osCommerce

Magento

PrestaShop

E no WordPress?

Já temos

  • Custom Post Types (Produtos, Pedidos)
  • Post Meta (Produto, Pedido)
  • Categorias Hierárquicas
  • Menus
  • Tags
  • Páginas
  • Busca
  • Comentários (Blog, Produtos)
  • Usuários (Clientes)
  • User Meta (Dados cliente)
  • wp_mail para enviar e-mails

Falta

  • Carrinho de compras
    • Session
    • Adicionar produto
    • Subtrair produto
    • Remover produto
    • Esvaziar carrinho
  • Integrar solução de pagamento
    • PagSeguro
    • PayPal
  • Fazer tudo funcionar

Portanto precisamos de

  1. Tema
    • Plugins para features adicionais
  2. Plugin para gerenciar Produtos
  3. Plugin para gerenciar Pedidos
    • Soluções de Pagamento

O Tema

Arquivos básicos

  • header.php
  • front-page.php
  • footer.php
  • page.php
  • single.php
  • home.php
  • category.php
  • functions.php
  • sidebar.php
  • search.php
  • 404.php
  • screenshot.png
  • style.css
  • img/
  • js/
  • js/script.js
  • js/plugins.js
  • boilerplate.css

Arquivos adicionais

  • taxonomy-categoria.php
  • single-produto.php
  • page-carrinho.php
  • page-checkout.php
  • page-login.php
  • page-esqueci-minha-senha.php
  • page-pedidos.php

Plugins de apoio

Case


Art Brasilis

Plugin de

Produtos

Plugin como Classe


class Produto {
	function Produto(){
		session_start();
		//funcionalidades do carrinho
		register_post_type('produto'...
		register_taxonomy('categoria',array('produto')...
	}
	//funções adicionais...
	function consultaCEP($cep = 0){...
} 

function ProdutoInit() { 
	global $produto; 
	$produto = new Produto(); 
}

add_action("init", "ProdutoInit",1);
					

Plugin de

Pedidos

Plugin procedural


function pe_init(){
	register_post_type('pedido',...
	register_taxonomy('status',array('pedido'),...
	if(!term_exists('registro', 'status')){...
	if(!term_exists('aguardando', 'status')){...
	// INICIO CHECKOUT (lógica toda)
	//lógica PayPal
	//lógica PagSeguro
}
add_action('init', 'pe_init' )
//funções adicionais
	
					

Soluções

de

Pagamento

Três tipos

  • Direto
  • Gateway
    • BPag (BoldCron -> UOL)
    • CobreDireto (UOL)
    • Braspag
    • Locaweb
  • Intermediadores de Pagamento
    • PagSeguro
    • Moip
    • PayPal
    • Pagamento Digital
    • Mercado Pago

PagSeguro

FORM


<form target="pagseguro" method="post"   
action="https://pagseguro.uol.com.br/v2/checkout/payment.html">  
      
    <!-- Campos obrigatórios -->  
    <input type="hidden" name="receiverEmail" value="suporte@lojamodelo.com.br">  
    <input type="hidden" name="currency" value="BRL">  
      
    <!-- Itens do pagamento (ao menos um item é obrigatório) -->  
    <input type="hidden" name="itemId1" value="0001">  
    <input type="hidden" name="itemDescription1" value="Notebook Prata">  
    <input type="hidden" name="itemAmount1" value="24300.00">  
    <input type="hidden" name="itemQuantity1" value="1">  
    <input type="hidden" name="itemWeight1" value="1000">					
					

PagSeguro

API


			require_once "PagSeguroLibrary/PagSeguroLibrary.php";
			$paymentRequest = new PagSeguroPaymentRequest();
			$paymentRequest->setReference($novo_pedido_id);
			$paymentRequest->setCurrency("BRL");
			$paymentRequest->setItems($pagseguro_itens);
			$paymentRequest->setShippingType($CODIGO);
					

PayPal

API Reference

ExpressCheckout

  • SetExpressCheckout
  • GetExpressCheckoutDetails
  • DoExpressCheckoutPayment

THE END