Usando o SDK
SDK TypeScript tipado para todas as operações da Storefront API, feito para desenvolvedores de templates e temas.
Para quem é o SDK? O SDK é usado dentro do código da storefront (templates/temas) para acessar produtos, carrinho, autenticação e pedidos. Ele já sabe qual loja acessar baseado no contexto da página.
Instalação
Terminal
npm install @acessocomercial/storefront-sdk Uso Básico
Importe os módulos que precisa diretamente. O SDK detecta automaticamente o hostname da loja pelo contexto da página:
TypeScript
import { products, cart, auth, orders, store } from '@acessocomercial/storefront-sdk'; Módulos
Produtos
TypeScript
import { products } from '@acessocomercial/storefront-sdk';
// Listar produtos
const { items, total } = await products.list({ first: 10 });
// Buscar por slug (URL amigável)
const product = await products.getBySlug('camiseta-azul');
// Buscar por ID
const product = await products.getById('product-id');
// Listar categorias/seções
const sections = await products.getSections(); Opções de listagem
| Parâmetro | Tipo | Descrição |
|---|---|---|
first | number | Quantidade de produtos (padrão: 20) |
skip | number | Paginação: quantos pular |
search | string | Busca textual |
section | string[] | Filtrar por seções/categorias |
sort | string | Ordenação |
menu | string | Filtrar por menu |
Carrinho
TypeScript
import { cart } from '@acessocomercial/storefront-sdk';
// Consultar carrinho
const shoppingCart = await cart.get();
// Adicionar item
const updatedCart = await cart.addItem({ productId: 'abc', quantity: 2 });
// Remover item
const updatedCart = await cart.removeItem({ productId: 'abc' });
// Aplicar cupom
const updatedCart = await cart.applyCoupon({ code: 'DESCONTO10' });
// Calcular frete
const options = await cart.calculateShipping({ zipCode: '01001000' }); Autenticação
TypeScript
import { auth } from '@acessocomercial/storefront-sdk';
// Login
const { success, user } = await auth.login({
email: 'cliente@email.com',
password: 'senha123'
});
// Criar conta
const { success, user } = await auth.signup({
name: 'João Silva',
email: 'joao@email.com',
password: 'senha123'
});
// Login com Google
const { success, user } = await auth.googleLogin({ token: 'google-oauth-token' });
// Usuário logado
const currentUser = await auth.me();
// Logout
await auth.logout();
// Solicitar reset de senha
await auth.resetPassword({ email: 'joao@email.com' }); Pedidos
TypeScript
import { orders } from '@acessocomercial/storefront-sdk';
// Listar pedidos do cliente
const { orders: orderList, total } = await orders.list();
// Buscar pedido por ID
const order = await orders.getById('order-id'); Loja
TypeScript
import { store } from '@acessocomercial/storefront-sdk';
// Dados da loja
const storeData = await store.get();
// Seções da homepage
const sections = await store.getSections();
// Menus de navegação
const menus = await store.getMenus();
// Categorias
const categories = await store.getCategories();
// Barra de anúncios
const adBar = await store.getAdBar(); Tipos Exportados
O SDK exporta todos os tipos para uso direto em TypeScript:
TypeScript
import type {
Product,
ProductListItem,
ProductListResponse,
ShoppingCart,
CartItem,
ShippingOption,
Store,
StoreMenu,
User,
Order,
AuthResponse,
} from '@acessocomercial/storefront-sdk'; GraphQL Direto
Para queries customizadas, use a função graphqlFetch diretamente:
TypeScript
import { graphqlFetch } from '@acessocomercial/storefront-sdk';
interface MyResponse {
client: { store: { name: string } };
}
const data = await graphqlFetch<MyResponse>(`
query ($hostname: String!) {
client(hostname: $hostname) {
store { name }
}
}
`, { hostname: 'minhaloja' });