Apresentamos abaixo os endpoints para consulta dos carrinhos abandonados. Temos três endpoints para esse conteúdo: o de listagem de carrinhos, o interno com informações de um carrinho específico e o de excluir um carrinho.
Lembrando que esses carrinhos ficam disponíveis por 30 dias.
Responses
| Retorno | Descrição |
|---|---|
| 200 | Sucesso |
| 201 | Criado |
| 204 | Sem conteúdo |
| 401 | Sem autorização |
| 403 | Acesso Negado |
| 404 | Not found |
Paginação
Parâmetro | Descrição | Tipo | Valores | Exemplos |
| page | Define a página de busca | number | ?page=2 | |
| limit | Define o número de registros por página | number | ?limit=150 | |
| sort | Define a ordenação da busca | string | ?sort=-id ?sort=id |
Com isso, já é possível realizar toda a paginação e ordenação de resultados.
O retorno segue essa interface:
{
"data": [], (array com os carrinhos, seguindo as interfaces abaixo)
"meta": {
"current_page": number,
"from": number,
"last_page": number,
"per_page": number,
"to": number,
"total": number
}
}
Listagem
GET https://api.dooca.store/checkout/abandoned
Interface de retorno:
{
"id": string,
"token": string,
"customer_id": number,
"type": "cart",
"total": number,
"subtotal": number,
"discount": number,
"quantity": number,
"customer": {
"email": string,
"first_name": string,
"last_name": string
"doc": string,
"phone": string
},
"items": [
{
"components": array|null,
"customize": array|null,
"has_gift_wrapping": boolean,
"image": string,
"name": string,
"price": number,
"quantity": number,
"total": number,
"uid": number,
"variation": string,
"variation_id": number,
"product_id": number
}
],
"created_at": string,
"updated_at": string
}
Os filtros disponíveis para esse endpoint, são os seguintes:
Parâmetro | Descrição | Tipo | Valores | Exemplos |
| q | Busca por nome, e-mail e documento do cliente | string | ?q=Maria | |
| product_name | Nome do Produto | string | ?product_name=Bolsa | |
| anonymous | Filtrar carrinhos com e sem cliente. | boolean | 1 = Com cliente 0 = Sem cliente | ?anonymous=1 |
| created_at | Data de criação do carrinho | string | ?created_at=2025-01-01--2025-01-05 |
Deletar Carrinho
DELETE/checkout/abandoned/{token}
Webhooks
O webhook de carrinhos é enviado ao criar/editar um carrinho, sempre que tiver um cliente vinculado ao mesmo. Para configurar um webhook, o administrador da loja deve incluir o endpoint para onde o webhook será enviado no painel, em Configurações > APIs e Webhooks e selecionar a opção carrinho.
Interface dos Webhooks:
{
"id": number,
"event": "cart.updated" / "cart.created",
"data": {
"available": boolean,
"coupon": string,
"coupon_errors": string,
"coupon_messages": string,
"customer_group_id": number,
"customer_id": number,
"discount": number,
"discount_buy_and_get": CartPromotionEntity[],
"discount_coupon": CartPromotionEntity[],
"discount_gifts": CartPromotionEntity[],
"discount_progressive": null,
"errors": string,
"gifts": CartPromotionEntity[],
"gift_price": number,
"is_draft": boolean,
"items": CartItemEntity[],
"min_purchase": number,
"min_quantity": number,
"overstocks": CartItemEntity[],
"inactive_items": CartItemEntity[],
"payments": PaymentEntity[],
"promotions": CartPromotionEntity[],
"quantity": number,
"quantity_was_changed": boolean,
"shipping_required": boolean,
"shipping_price": number,
"subtotal": number,
"tax": number,
"total": number,
"shipping": ShippingEntity[],
"cashback_balance": number,
"url": string,
"customer": {
"email": string,
"first_name": string,
"last_name": string,
"phone": number
}
}
}
CartPromotionEntity
{
"available": boolean,
"closest": boolean,
"entitled_category_ids": number[],
"entitled_category_names": string[],
"entitled_product_ids": number[],
"is_free_freight": boolean,
"min_purchase": number,
"min_purchase_remaining": number,
"min_quantity": number,
"min_quantity_remaining": number,
"type": string,
"value": number,
"value_type": string (percentage/fixed_amount)
}
CartItemEntity
{
"additional_shipping_time": number,
"additional_time_out_of_stock": number,
"balance": number,
"billet_discount": number,
"change_quantity_by_stock": boolean,
"customize": string,
"depth": number,
"discount": number,
"discount_quantity_applied": number,
"gift_wrapping_accept": boolean,
"gift_wrapping_price": number,
"gtin": string,
"has_gift_wrapping": boolean,
"height": number,
"image": string,
"is_virtual": boolean,
"order_bump_id": number,
"kit": boolean,
"name": string,
"ncm": string,
"price": number,
"price_compare": number,
"price_out_of_stock": number,
"product_id": number,
"quantity": number,
"reference": string,
"sell_out_of_stock": boolean,
"selling_out_of_stock": boolean,
"slug": string,
"sku": string,
"subtotal": number,
"subtotal_compare": number,
"tax": number,
"total": number,
"variation": string,
"variation_id": number,
"weight": number,
"width": number,
"components": CartItemEntity[],
"errors": string
}
PaymentEntity
{
"description": string,
"expire_days": number,
"gateway_id": number,
"gateway_name": string,
"gateway_public_key": number,
"gateway_slug": string,
"installments": [
{
"parcel": number,
"total": number,
"parcel_price": number,
"discount": number,
"discount_percentage": number,
"interest": number,
"interest_percentage": number,
"tax": number
}
],
"is_default": boolean,
"markup": number,
"max_parcels": number,
"method": string,
"name": string,
"parcels_no_interest": number,
"payment_id": number,
"token": string
}
ShippingEntity
{
"carrier_id": number,
"name": string,
"alias": string,
"api": string,
"price": number,
"price_cost": number,
"has_lower_price": boolean,
"additional_message": string,
"shipment_time": number,
"delivery_time": number,
"estimated_shipment_at": number,
"estimated_delivery_at": number,
"created_at": string,
"updated_at": string,
"selected": string,
"token": string
}
Para saber se um carrinho virou um pedido, basta acompanhar o webhook de pedidos order.created. Nele vem um cart_id que é o mesmo do id dos webhooks acima e aponta que um carrinho foi finalizado.
Comentários
0 comentário
Por favor, entre para comentar.