# Carrinhos
Na hora do usuário estar comprandos os produtos na loja o mesmo poderá ter vários carrinho abertos. Isso por que a loja é estruturada para que seja um carrinho por coleção de cada fábrica. Abaixo estamos relacionando as ações para manipular o carrinho.
# Tokens de Sessão
O lado do client é que deve controlar a sessão do usuário aberta, para determinar quanto tempo o carrinho poderá ficar aberto. Para isso o client, deverá gerar um token utilizando UUID e sempre que precisar adicionar ou remover um produto no carrinho, esse token deverá ser fornecido.
# Exemplo de token de sessão
{
"token": "218eef8cb4204d138de187773f901129"
}
# Listar carrinhos
Retorna a lista de carrinhos abertos na sessão do usuário.
# Requisição
Parâmetros header:
| header | descrição |
|---|---|
| sessao_id | ID da sessão do usuário no client obrigatório |
# Resposta
Lista de carrinhos abertos
Exemplo:
[
{
"id": "f240b035a8134e51804f97994c5414a9",
"numero": "210226873200",
"situacao": "pre",
"cond_pagto": {
"id": "4290e43ac00f472c9dc31e7284298335",
"codigo": "001",
"nome": "30 dias",
"prazo_medio": 30,
"qtd_parcelas": 1,
},
"forma_pagto": {
"id": "4290e43ac00f472c9dc31e7284298335",
"codigo": "PIX",
"nome": "PIX",
},
"cliente": {},
"fabrica": {
"fuso": -3,
"logo": "https://api.netforcews.com/thumbnail/s3.sa-east-1/static.textilnaweb.com/logos/fabrica.png",
"id": "b8c2ac28245b4579bb149806070bdde8",
"nome": "Fabrica Modelo Ltda",
"nome_fantasia": "Fabrica",
"slug": "fabrica",
"cnpj": "33468326000105",
"ie": "isento",
"im": "isento",
"data_fundacao": null,
"email": "contato@fabrica.com.br",
"email_fin": null,
"email_nfe": null,
"email_ped": null,
"ddd": null,
"telefone_com": null,
"telefone_cel": null,
"situacao": "atv",
"ultima_venda": null,
},
"colecao": {
"valor_ped_min": 100,
"valor_parcela_min": 100,
"id": "94c2904ec35b4394977a91de6c24f580",
"fabrica_id": "b8c2ac28245b4579bb149806070bdde8",
"etiqueta_id": "194ee2f85d5b4dacaf8f9804fd5eee6b",
"nome": "Coleção modelo verão",
"slug": "fabrica-colecao-modelo-verao",
"prazo_medio_fat": 30,
"qtdade_produzida_mes": 1000,
"vig_venda_ini": "2020-01-01",
"vig_venda_fim": "2021-12-31",
"tabela_cores": "[{\"nome\":\"preto\",\"hex\":\"#000000\"},{\"nome\":\"branco\",\"hex\":\"#FFFFFF\"},{\"nome\":\"vemelho\",\"hex\":\"#FF0000\"}]",
},
"etiqueta": {
"logo": "https://api.netforcews.com/thumbnail/s3.sa-east-1/static.textilnaweb.com/logos/fabrica-marca.png",
"id": "194ee2f85d5b4dacaf8f9804fd5eee6b",
"fabrica_id": "b8c2ac28245b4579bb149806070bdde8",
"nome": "marca",
"slug": "fabrica-marca",
},
"qtdade_total": 9,
"valor_itens": 341.91,
"valor_total": 341.91,
"data_pedido": null,
"data_prev_faturamento": "2021-02-26T17:51:22.000Z",
"data_cancelamento": null,
"etapas": [
{
"legenda": "pedido",
"data": null
},
{
"legenda": "aprovacao",
"data": null
},
{
"legenda": "faturamento",
"data": null
},
{
"legenda": "entrega",
"data": null
}
],
"itens": [
{
"produto": {
"id": "f61dc83cbc0d42d4bdd9b6a003b96999",
"codigo": "5011",
"nome": "CONJ. CAMISETA + BERMUDA",
"descricao": "CONJ DESRUPTION CAMISETA + BERMUDA C/ BOLSO",
"slug": "conj-camiseta-bermuda-5011",
"tags": "destaque,verao",
"fotos": [
"https://api.netforcews.com/thumbnail/s3.sa-east-1/static.textilnaweb.com/produtos/fabrica-colecao-modelo-verao/5011.jpg"
]
},
"valor": 37.99,
"qtdade": 9,
"valor_total": 341.91,
"qtdades": {
"branco": {
"p": 2,
"m": 2,
"g": 2
},
"preto": {
"p": 1,
"m": 1,
"g": 1
}
}
}
],
"condpagtos": [
{
"id": "4290e43ac00f472c9dc31e7284298335",
"codigo": "001",
"nome": "30 dias",
"prazo_medio": 30,
"qtd_parcelas": 1,
"formas": [
{
"id": "4290e43ac00f472c9dc31e7284298331",
"codigo": "BOL",
"nome": "Boleto",
},
{
"id": "4290e43ac00f472c9dc31e7284298332",
"codigo": "PIX",
"nome": "PIX",
},
{
"id": "4290e43ac00f472c9dc31e7284298311",
"codigo": "CRC",
"nome": "Cartão de Crédito",
}
]
}
],
"data_min_para_entrega": "2021-10-23"
}
]
# Adicionar/Atualizar produto no carrinho
Adicionar ou atualizar produto em um carrinho aberto.
Caso não tem um carrinho aberto para a
sessao_idda coleção do produto, será berto um novo carrinho.
# Requisição
Em formato JSON
| atributo | descrição |
|---|---|
| tamanhos | Objeto com a lista de cores e tamanhos obrigatório |
| header | descrição |
|---|---|
| sessao_id | ID da sessão do usuário no client obrigatório |
| parametro | descrição |
|---|---|
| produto | ID do produto que será adicionado no carrinho obrigatório |
# Exemplo do objeto de tamanhos
{
"preto": { "p" : 10, "m" : 20, "g": 10, "gg": 10 },
"branco": { "p" : 1, "m" : 2, "g": 1, "gg": 1 },
}
Quando precisar informar as quantidades sendo as cores sortidas, deve ser informado no lugar da cor a palavra sortido.
{
"sortido": { "p" : 10, "m" : 20, "g": 10, "gg": 10 },
}
# Resposta
Após adicionado ou atualizado um produto no carrinho, será retornado o status de ok.
Exemplo:
{
"status": true
}
# Remover produto do carrinho
Remover um produto do carrinho.
# Requisição
| header | descrição |
|---|---|
| sessao_id | ID da sessão do usuário no client obrigatório |
| parametro | descrição |
|---|---|
| produto | ID do produto que será adicionado no carrinho obrigatório |
# Resposta
O produto informado será removido do carrinho e retornado o status ok.
Exemplo:
{
"status": true
}
# Limpar os carrinhos da sessão
Remove todos os produtos de todos os carrinhos abertos da sessão.
# Requisição
| header | descrição |
|---|---|
| sessao_id | ID da sessão do usuário no client obrigatório |
# Resposta
Será removido dos carrinhos abertos todos os produtos e retornado o status ok.
Exemplo:
{
"status": true
}
# Atualizar informações do carrinho
Para atualizar algumas informações do carrinho, antes de fazer o checkout, vocÊ pode utilizar o metodo abaixo:
# Requisição
| header | descrição |
|---|---|
| sessao_id | ID da sessão do usuário no client obrigatório |
# Requisição
Em formato JSON
| atributo | descrição |
|---|---|
| cond_pagto_id | ID da condição de pagamento |
| forma_pagto_id | ID da forma de pagamento |
| data_prev_faturamento | Data escolhida para o faturamento / entrega (semana: segunda) YYYY-MM-DDD |
| header | descrição |
|---|---|
| sessao_id | ID da sessão do usuário no client obrigatório |
| parametro | descrição |
|---|---|
| id_carrinho | ID do carrinho obrigatório |
# Resposta
Exemplo:
{
"status": true
}
# Fechar carrinho
Fechar/finalizar o pré-pedido e transforma-lo em pedido aguardando a confirmação da fábrica.
# Requisição
| header | descrição |
|---|---|
| sessao_id | ID da sessão do usuário no client obrigatório |
| query | descrição |
|---|---|
| ids | Lista de ids dos carrinho que pretende fechar. Quando não informado, será fechado todos os pedidos abertos da sessão. |
# Resposta
Após finalizar todos os pedidos abertos da sessão ou da lista informada, será retornado o status de ok.
Exemplo:
{
"status": true
}