Criação de uma página simples de catálogo de produtos para ser utilizada em campanhas no site da Árago.
- Front-end:
- Layout
- Back-end:
- API
- Banco de dados
Tenha certeza de ter instalado em sua máquina o Composer, algum servidor como XAMPP ou o servidor embutido do PHP instalado e, também, algum banco de dados - o Banco utilizado pelo projeto foi o mySQL.
Com o projeto já na máquina local, acesse a pasta server, pelo terminal e, então, instale as dependências utilizando o comando composer install ou php composer.phar install e, logo após, composer dump-autoload -o para gerar o autoload das classes.
Também será necessário criar as variáveis de ambiente para inicialização do banco de dados. Para criar o arquivo .env basta seguir o exemplo presente no arquivo .env.example.
Inicie o servidor PHP seguindo os passos do servidor utilizado ou, caso utilize o servidor embutido do PHP, basta rodar, no terminal, o comando composer server
para que seja iniciado o servidor.
Com o servidor iniciado já será possível acessar os produtos disponíveis na base através da rota /products/:?campaign. Os parâmetros permitidos pela rota são:
- campaing (opcional) - Nome da campanha solicitada, quando omitida retorna todos os produtos registrados na base. Deve ser passada como path e não query string.
- limit (opcional) - Limite de itens retornados em cada página.
- page (opcional) - página de exibição de produtos.
- name (opcional) - nome do produto que está sendo buscado.
- discount (opcional) - Faixa de desconto solicitada (Aceita mais de um valor separado pelo sinal de mais(+)).
- id (opcional) - Id do produto buscado.
- price (opcional) - Faixa de preço do produto (Aceita dois valores separados pelo sinal de adição(+)). Obs.: O valor não deve ser passado como um número inteiro sem possuir vírgulas ou pontos. Ex.: R$ 30,25 deve ser passado como 3025.
Todos os produtos são identificados pelo id. Todo produtos possui as seguintes propriedades:
Campo | Tipo | Descrição |
---|---|---|
id | string | Id do produto |
ean | string | Código de barras do produto |
name | string | Nome do produto |
price | string | Preço formatado |
price_not_formated | integer | Preço do produto sem formatação |
promotional_price | string | Preço promocional do produto |
promotional_price_not_formated | integer | Preço promocional sem formatação |
url | string | Url da página do produto |
product_image | string | Url da imagem |
payment_option | string | Texto de desconto do produto |
Para listar ou filtrar os produtos, pode-se utilizar a URL /products.
obs: Por padrão o limite de produtos retornados é 10 e o máximo é 100 e a página atual sempre a primeira
Alguns exemplos de filtro e busca de produtos:
- /products : Retorna todos os produtos, retornando a primeira página limitando em 10 produtos
- /products/?:camapnha : Retorna os produtos de determinada campanha
- /products?name=some%20%product : Retorna os produtos que contenham o nome passado
- /products?discount=40000 : Retorna os produtos com faixa de desconto entre os valores solicitados
- /products?productCategories=Emagrecimento+beleza+saude = Retorna os produtos que pertençam à categoria passada
- /products?price=3000+4000 : Faz a busca pela faixa de preço do produto
Os parâmetros limit e page pode ser enviado em conjunto com qualquer um dos outros filtros aceitos e, quando omitidos, será sempre associado a eles o valor pdrão de 10 e 1, respectivamente.
Ao solicitar a url /products/teste?products?price=1+15900&limit=2, o retorno será como o exemplo a seguir
{
"data": [
{
"id": "1",
"ean": "7898624342324",
"name": "Produto de teste 1",
"price": "119.00",
"price_not_formated": 11900,
"promotional_price": "107.00",
"promotional_price_not_formated": 10700,
"url": "https://www.url.com.br/produto-de-teste-500-ml",
"product_image": "https://static3.tcdn.com.br/img/",
"payment_option": "R$ 101,65 à vista com desconto"
},
{
"id": "1",
"ean": "7898624342324",
"name": "Produto de teste 1",
"price": "119.00",
"price_not_formated": 11900,
"promotional_price": "107.00",
"promotional_price_not_formated": 10700,
"url": "https://www.url.com.br/produto-de-teste-500-ml",
"product_image": "https://static3.tcdn.com.br/img/",
"payment_option": "R$ 101,65 à vista com desconto"
}
],
"pagination": {
"totalProducts": 21,
"actualPage": 1,
"totalPages": 11,
"perPage": 2
},
"campaign": "teste"
}
- PHP
- MySQL
- Composer
- Insomnia
- Simple product API - Com adaptação do código-fonte original
Alessandro Lima de Miranda - Desenvolvimento Back-end Luan Thomaz Abrantes Martinez - Layout e Desenvolvimento Front-end