Personalização de carrinho

Para incluir, alterar e excluir produtos do carrinho para criar promoções, brindes e outras regras de negócio, basta criar um plugin JSON, que receberá os dados do carrinho de compras. Este plugin deverá retornar um JSON com os itens do carrinho.

Seguem abaixo os formatos do JSON que enviaremos para a URL de integração e do JSON que deverá ser retornado pelo plugin.

A URL do plugin deverá ser informada no caminho PAGAMENTOS > Regras para descontos e brindes, no site administrativo da loja. Para utilizar esta URL, selecione a opção Plugin externo no campo Configuração de regras.

1 - ENVIO

                
Cart={
  "cartChangesRequest":{
    "overview":{
      "storeId": 99999,
      "sessionId": 99999999,
      "customerLogged": false,
      "customerGroup": 255,
      "customerDiscount": 50,
      "partnerId": 9999,
      "couponId": 9999,
      "currency": "R$",
      "weightUnit": "kg",
      "itemsWeight": 9999.999,
      "itemsQuantity": 9999,
      "itemsTotal": 9999.99,
      "wrapTotal": 9999.99
    },
    "items":[
      {
        "cartItemId": 99999999999,
        "cartItemDateTime": "2019-08-29T15:58:00.000Z",
        "categoryId": 9999999999,
        "categoryTree": [77656,3535,353453],
        "productId": 9999999999,
        "mainProductId": 9999999999,
        "sku": "aaaaaaaaa",
        "name": "aaaaaaaaaaaa",
        "category": "bbbbbbbb",
        "barcode": "12344",
        "stock": 99,
        "quantity": 99,
        "maxInstallments": 3,
        "ICMS": 20.3,
        "unitCost": 999.99,
        "unitPrice": 999.99,
        "unitPriceOri": 999.99,
        "unitPriceNormal": 1999.99,
        "unitWeight": 10.234,
        "unitWeightOri": 10.234,
        "color": "amarelo",
        "d1": "aaaaaaaa",
        "d2": "aaaaaaaa",
        "d3": "aaaaaaaa",
        "s1": "aaaaaaaa",
        "s2": "aaaaaaaa",
        "s3": "aaaaaaaa",
        "filterItemIds": [23,45,67,89],
        "itemFilters": "aaa=123",
        "largeProduct": false,
        "itemWrap": true,
        "wrapPrice": 999.99,
        "ruleName": "Compre dois leve três"
      },
      ...
    ]
  }
}
                
              

Obs: O envio do JSON do carrinho é feito via POST. O user-agent é Fastcommerce Cart Interface.

2 - RETORNO

Formato do JSON de retorno.

                
{
  "cartChangesResponse":{
   "err": 123
   "errDescr": "error description"
    "commands":[
      {
        "command": "ADD/DELETE/UPDATE"
        ...
      },
      {
        "command": "ADD"
        "ruleName": "compre um sapato e ganhe um brinde legal"
        "productId": 9999999999
        "color": "amarelo"
        "d1": "aaaaaaaa"
        "d2": "aaaaaaaa"
        "d3": "aaaaaaaa"
        "s1": "aaaaaaaa"
        "s2": "aaaaaaaa"
        "s3": "aaaaaaaa"
        "filters": "aaa=123"
        "quantity": 99
        "unitPrice": 999.99
        "unitWeight": 10.234
        "itemWrap": true
        "wrapPrice": 999.99
      },
      {
        "command": "DELETE"
        "cartItemId": 99999999999
      },
      {
        "command": "UPDATE"
        "ruleName": "compre um sapato e ganhe um brinde legal"
        "cartItemId": 99999999999
        "quantity": 99
        "unitPrice": 999.99
        "unitWeight": 10.234
        "itemWrap": true
        "wrapPrice": 999.99
      }
    ]
  }
}
                
              

Obs: O retorno do JSON de alterações no carrinho deverá ser feito via POST. Utilize sempre um user-agent exclusivo da sua aplicação.

03 - Dicionário de dados

JSON ENVIO

Campo Tipo/Opções Descrição
storeId int ID interno do produto
sessionId int Identificador biunívoco da cesta
customerLogged bit Se TRUE, cliente logado
customerGroup varchar(100) Este campo indica o grupo numérico ao qual o cliente pertence (1 a 255).
Se não tiver, 0
customerDiscount real Desconto percentual no total sem frete do pedido, específico para este cliente.
Se não tiver, 0
partnerId varchar(100) IDs interno dos parceiros. Se não tiver, 0
couponId varchar(100) IDs interno do cupons. Se não tiver, 0
currency varchar(5) Moeda utilizada para a venda dos produtos da loja.
Ex: R$ 350,00
weightUnit varchar(2) Unidade de peso que será exibida pelas páginas com informações de produtos.
Ex: 30 kg
itemsWeight int Peso total do pedido
itemsQuantity int Quantidade de itens no carrinho
itemsTotal moeda Valor total dos itens no carrinho
wrapTotal moeda Valor total da embalagem de presente
cartItemId int ID Produtos Pedidos
cartItemDateTime date Data da cesta no formato: 2019-08-29T15:58:00.000Z
categoryId varchar(100) ID interno da categoria
categoryTree varchar(100) Array de IDCategorias do avô, pai e do próprio, nesta ordem. O último é o ID da categoria do produto
productId int ID interno do produto
mainProductId int ID interno do produto pai ou 0 se for o próprio produto pai
sku varchar(15) Código/referência que identifique o produto biunivocamente
name varchar(100) Nome do produto
category varchar(25) Nome da categoria
barcode varchar(25) Código de barras do produto
stock int Estoque com a quantidade disponível do produto para venda na loja virtual
quantity int Quantidade de itens no carrinho
maxInstallments int Número máximo de parcelas para pedidos que incluam este produto
ICMS moeda Valor percentual de ICMS que incide sobre o produto
unitCost moeda Valor de custo do produto
unitPrice moeda Preço unitário do produto na cesta
unitPriceOri moeda Preço unitário do produto. Será o valor promocional se a promoção estiver válida no momento.
unitPriceNormal moeda Preco unitário não promocional do produto
unitWeight int Peso do produto na cesta, na unidade da loja. Ex: kg
unitWeightOri int Peso original do produto, na unidade da loja. Ex: kg
color varchar(1024) Cores disponíveis no produto. Se multivalorado, serão apresentados entre vírgulas
d1 varchar(2048) Texto da informação adicional sobre o produto, indicado em Descritor simples 1
d2 varchar(2048) Texto da informação adicional sobre o produto, indicado em Descritor simples 2
d3 varchar(2048) Texto da informação adicional sobre o produto, indicado em Descritor simples 3
s1 varchar(1024) Texto da informação adicional sobre o produto, indicado em Descritor especial 1
s2 varchar(1024) Texto da informação adicional sobre o produto, indicado em Descritor especial 2
s3 varchar(1024) Texto da informação adicional sobre o produto, indicado em Descritor especial 3
filterItemIds varchar(100) Array com IDsFiltroItem
itemFilters varchar(512) Nomes dos itens do filtro
largeProduct bit Se TRUE, deve ser remetido somente por transportadoras que aceitem produtos de tamanho grande
itemWrap bit Se TRUE, cliente solicita que este produto deve ser embalado para presente
wrapPrice moeda Valor da embalagem de presente
ruleName varchar(512) Nome da regra

JSON RETORNO

Campo Tipo/Opções Descrição
err int Código do erro
errDescr varchar(200) Mensagem de erro
command varchar(6) Comandos para adicionar, alterar ou excluir uma regra. ADD / UPDATE / DELETE
ruleName varchar(50) Nome da regra. Obrigatório para comando UPDATE
productId int ID interno do produto. Obrigatório para comando ADD
color varchar(1024) Cores disponíveis no produto. Se multivalorado, serão apresentados entre vírgulas
d1 varchar(2048) Texto da informação adicional sobre o produto, indicado em Descritor simples 1
d2 varchar(2048) Texto da informação adicional sobre o produto, indicado em Descritor simples 2
d3 varchar(2048) Texto da informação adicional sobre o produto, indicado em Descritor simples 3
s1 varchar(1024) Texto da informação adicional sobre o produto, indicado em Descritor especial 1
s2 varchar(1024) Texto da informação adicional sobre o produto, indicado em Descritor especial 2
s3 varchar(1024) Texto da informação adicional sobre o produto, indicado em Descritor especial 3
filters varchar(512) Nomes dos itens do filtro
quantity int Quantidade de itens no carrinho
unitPrice moeda Preço unitário do produto na cesta
unitWeight int Peso do produto na cesta, na unidade da loja. Ex: kg
itemWrap bit Se TRUE, cliente solicita que este produto deve ser embalado para presente
wrapPrice moeda Valor da embalagem de presente
cartItemId int ID Produtos Pedidos. Obrigatório para comando DELETE