Documentation
Feedback
Guides
Learning Center

Learning Center
Learning Center
Admin framework
View in English
This content was migrated from the VTEX Learning Center and is no longer being actively maintained. For the most accurate and up-to-date information, please check the official documentation.

Introdução

Nos cursos anteriores conhecemos o Store Framework, um motor de construção de frente de loja construído usando o VTEX IO. Assim como o Store Framework, o Admin Framework se propõe a resolver um caso de uso específico: extensões para o painel administrativo.

Operações de comércio complexas quase nunca conseguem funcionar com uma única solução SaaS integrada, são necessários integrações de ERP, personalização, tracking, marketing digital, entre outros. A VTEX entende, no entanto, que ter um único ponto de contato facilitaria muito o trabalho dos operadores, tornando o admin uma ferramenta universal. É com essa premissa que o Admin Framework foi criado, trazendo a possibilidade de extensão de backoffice não apenas para criar dashboards que são característicos de um cliente e seu segmento, como para trazer insights e operação de provedores externos.

Atividade

Uma app de admin, funciona de forma muito parecida com a app de bloco de loja. Vamos iniciar o curso clonando um repositório template de react e evoluiremos para torná-lo uma app de admin:

  1. Clone o react app template:

_10
git clone https://github.com/vtex-apps/react-app-template admin-course

  1. Abra o admin-course no seu editor de texto e adicione o builder de admin no manifest.json:

_20
//manifest.json
_20
{
_20
"vendor": "CHANGE_ME",
_20
"name": "CHANGE_ME",
_20
"version": "0.0.0",
_20
"title": "CHANGE_ME",
_20
"description": "CHANGE_ME",
_20
"builders": {
_20
"react": "3.x",
_20
"messages": "1.x",
_20
"docs": "0.x",
_20
+ "admin": "0.x"
_20
},
_20
"dependencies": {},
_20
"registries": [
_20
"smartcheckout"
_20
],
_20
"policies": [],
_20
"$schema": "https://raw.githubusercontent.com/vtex/node-vtex-api/master/gen/manifest.schema"
_20
}

  1. Edite o vendor, name, title e description da aplicação:

_20
//manifest.json
_20
{
_20
+ "vendor": "appliancetheme",
_20
+ "name": "admin-sandbox",
_20
"version": "0.0.0",
_20
"title": "Admin Sandbox",
_20
"description": "Admin Sandbox",
_20
"builders": {
_20
"react": "3.x",
_20
"messages": "1.x",
_20
"docs": "0.x",
_20
"admin": "0.x"
_20
},
_20
"dependencies": {},
_20
"registries": [
_20
"smartcheckout"
_20
],
_20
"policies": [],
_20
"$schema": "https://raw.githubusercontent.com/vtex/node-vtex-api/master/gen/manifest.schema"
_20
}

NOTA: Se estiver fazendo o curso na sua própria loja e desenvolvendo sua própria app, lembre-se de que terá que passar pelo form de whitelist.

  1. Adicione o vtex.styleguide como dependência, nós vamos utilizá-lo mais a frente no curso:

_22
//manifest.json
_22
{
_22
"vendor": "appliancetheme",
_22
"name": "admin-sandbox",
_22
"version": "0.0.0",
_22
"title": "Admin Sandbox",
_22
"description": "Admin Sandbox",
_22
"builders": {
_22
"react": "3.x",
_22
"messages": "1.x",
_22
"docs": "0.x",
_22
"admin": "0.x"
_22
},
_22
"dependencies": {
_22
+ "vtex.styleguide": "9.x"
_22
},
_22
"registries": [
_22
"smartcheckout"
_22
],
_22
"policies": [],
_22
"$schema": "https://raw.githubusercontent.com/vtex/node-vtex-api/master/gen/manifest.schema"
_22
}

  1. Na raiz do projeto, crie um diretório /admin, a sua estrutura deve ficar:

_10
|
_10
|_ CHANGELOG.md
_10
|_ docs/
_10
|_ messages/
_10
|_ react/
_10
+|_ admin/
_10
|_ package.json
_10
|_ manifest.json
_10
|_ yarn.lock


Answer sheet

See answer sheet for manifest.json
manifest.json

_19
{
_19
"vendor": "appliancetheme",
_19
"name": "admin-sandbox",
_19
"version": "0.0.0",
_19
"title": "Admin Sandbox",
_19
"description": "Admin Sandbox",
_19
"builders": {
_19
"react": "3.x",
_19
"messages": "1.x",
_19
"docs": "0.x",
_19
"admin": "0.x"
_19
},
_19
"dependencies": {
_19
"vtex.styleguide": "9.x"
_19
},
_19
"registries": ["smartcheckout"],
_19
"policies": [],
_19
"$schema": "https://raw.githubusercontent.com/vtex/node-vtex-api/master/gen/manifest.schema"
_19
}

On this page