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 |