> ## Documentation Index
> Fetch the complete documentation index at: https://fliqr.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Configure Your In-Chat Cart and Checkout in Fliqr AI

> Build an in-chat checkout flow that collects your customer's order, shipping address, and payment — from cart to confirmed order inside the conversation.

The checkout experience determines whether a customer completes a purchase or abandons it. Fliqr AI's cart and checkout system keeps the entire flow inside the conversation — customers do not open a separate browser tab or re-enter information they have already provided. This page covers how to configure each stage and connect them into a working checkout Flow.

## Overview

Checkout in Fliqr AI is a sequence of Flow blocks: the customer adds products to a cart, reviews what they have selected, enters shipping information, chooses a shipping method, and proceeds to payment. Each stage is a discrete block in the Flow Builder, which means you can insert custom steps — a discount code prompt, a product upsell, or a free-shipping threshold notice — at any point in the sequence.

## Prerequisites

* Products added to your catalog — see [Catalog](/docs/ecommerce/catalog)
* A payment provider connected — see [Payments](/docs/ecommerce/payments)
* A Fliqr AI account with at least one channel connected (WhatsApp, Website Chat, or Messenger)

## The Checkout Flow

A standard checkout moves through six stages:

1. **Customer adds products** — via a Send Product or Send Catalog block
2. **Cart review** — customer sees all items, quantities, and subtotal
3. **Shipping address** — customer enters their delivery address
4. **Shipping method** — customer selects from available shipping options
5. **Payment** — customer completes payment via the connected provider
6. **Order confirmation** — customer receives a confirmation message with order ID and estimated delivery

Each stage corresponds to a dedicated Flow block.

## Build the Checkout Flow

<Steps>
  <Step title="Start with an Add to Cart block">
    In the Flow Builder, after your product display block, add an **Add to Cart** block. Connect the Add to Cart button output from the Send Product block to this block.

    The Add to Cart block records the selected product in the customer's session cart. Multiple products can be added before proceeding to checkout.
  </Step>

  <Step title="Add a View Cart block">
    Add a **View Cart** block after Add to Cart. This displays the current cart contents with a subtotal, and gives customers the option to continue shopping or proceed to checkout.
  </Step>

  <Step title="Add the Checkout block">
    Add a **Checkout** block after View Cart. This block collects the shipping address and any other fields you have configured. Open the block settings to toggle which fields to collect:

    | Field                | Default |
    | -------------------- | ------- |
    | Full name            | On      |
    | Email address        | On      |
    | Phone number         | On      |
    | Shipping address     | On      |
    | Special instructions | Off     |

    Fields that are toggled off are not shown to the customer during checkout. Toggle off any field you already have from the contact record to reduce checkout friction.
  </Step>

  <Step title="Configure shipping methods">
    Within the Checkout block settings, add one or more shipping methods with names and prices (e.g., "Standard Shipping — $5.00", "Express Shipping — $12.00"). Customers select a method before proceeding to payment.

    To offer free shipping, add a method with a price of \$0.00.
  </Step>

  <Step title="Connect to a Payment block">
    Add a **Payment** block after the Checkout block. Select your connected payment provider (Stripe or PayPal). See [Payments](/docs/ecommerce/payments) for provider setup.
  </Step>

  <Step title="Add an Order Confirmation message">
    After the Payment block's success output, add a **Send Message** block with a confirmation message. Reference the order ID and estimated delivery using field variables:

    ```text theme={null}
    Your order {{order_id}} is confirmed! 🎉
    Estimated delivery: {{estimated_delivery_date}}.
    You'll receive a shipping notification once your order is on its way.
    ```
  </Step>
</Steps>

## Checkout Field Configuration

The Checkout block gives you fine-grained control over what information you collect. Access these settings by opening the Checkout block in the Flow Builder and clicking **Configure Fields**.

Fields that map to existing contact properties (name, email, phone) are pre-filled if those values are already stored against the contact — the customer only needs to confirm rather than re-type.

<Tip>
  Send an order confirmation message at the end of checkout that includes the order ID and an estimated delivery window. Customers who receive a clear confirmation are less likely to contact support to ask whether their order went through — which reduces your support volume directly.
</Tip>

## Testing Before Going Live

<Warning>
  Test the full checkout flow on your connected channel before launching. Some channels enforce specific layout requirements for interactive messages. On WhatsApp in particular, button labels are length-limited and list messages have a maximum of 10 items. A flow that renders correctly in Website Chat may display differently on WhatsApp — test on each channel you plan to deploy.
</Warning>

Use a Stripe test card (e.g., `4242 4242 4242 4242`) or PayPal Sandbox credentials to run a full end-to-end checkout without processing a real payment. Verify that:

* The order confirmation message sends after successful payment
* The order appears in **E-Commerce → Orders**
* Inventory counts decrement correctly

## What's Next

<CardGroup cols={2}>
  <Card title="Payments" icon="credit-card" href="/docs/ecommerce/payments">
    Connect Stripe or PayPal and understand how payment collection works in a Flow.
  </Card>

  <Card title="Order Management" icon="box" href="/docs/ecommerce/order-management">
    Track orders, update fulfillment status, and send shipping notifications.
  </Card>
</CardGroup>
