---
title: "Fulfillment check"
canonical: "https://ingrid-support.refined.site/space/KB/529563649/Fulfillment%20check"
format: markdown
---
## What is it?

**Fulfillment check** verifies whether items in a shopper's cart are available at nearby store locations before presenting them as pickup options in checkout. Only stores that can actually fulfill the order are shown — reducing failed pickups and improving the shopper experience.

Also known as **Click & Collect check**.

### Key benefits

- **No failed pickups** — shoppers only see stores with items in stock
- **Real-time availability** — stock is checked at the moment of checkout, not from a cached list
- **Seamless checkout experience** — Click & Collect appears alongside other delivery options without any extra steps for the shopper
- **Flexible integration** — works with your existing inventory or OMS API

---

## How it works

1. Shopper adds items to cart and reaches checkout
2. Ingrid identifies in-store delivery options configured for your site
3. Ingrid sends a request to your fulfillment check API with the cart contents and nearby store locations
4. Your API responds with which stores can fulfill the order
5. Only eligible stores are shown to the shopper as pickup options

If your API is unavailable, in-store pickup options are simply not displayed — no errors are shown to the shopper.

---

## Integration approaches

### Standard integration (recommended)

Ingrid provides a standard request and response format. If your fulfillment check API can accept this format, the integration works out of the box with no custom development.

**Standard request includes:**

- Cart items (SKU, quantity, and optional attributes)
- List of store location IDs to check

**Standard response includes:**

- List of store location IDs where items are available

**Authentication.** Ingrid can send any HTTP header you need with the request — an `Authorization` header, for example — so your endpoint can authenticate the call. Tell your implementation team which headers you need and they are configured for your shipping method.

Your endpoint must accept a **POST** request and return the response synchronously.

#### Example request

Ingrid sends the cart and the list of store locations to check. The `attributes` field on each item is optional.

```json
{
    "cart": {
        "cart_id": "123",
        "items": [
            {
                "sku": "a3ec72d0-836f-4668-9c54-5c86d67ca897",
                "name": "Keyboard",
                "attributes": [
                    "attribute1",
                    "attribute2"
                ],
                "quantity": 1,
                "price": 1000
            }
        ],
        "totalValue": 1000
    },
    "location_ids": [
        "location-ref-1",
        "location-ref-2",
        "location-ref-3"
    ]
}
```

#### Example response

Return the location IDs that can fulfill the cart. Any location you leave out is not shown to the shopper.

```json
["location-ref-1", "location-ref-2"]
```

### Custom integration

If your inventory system or OMS uses a different API format, Ingrid can adapt. Custom integrations map your API's request and response format to Ingrid's internal format — your API stays unchanged.

This means:

- No changes needed on your side
- Ingrid handles the format translation
- Your API continues to work as-is

---

## Setup overview

| Step | Description |
| --- | --- |
| 1 | **Store locations** — provide your store locations (address, coordinates). Ingrid sets up the location database. After initial setup, you maintain your own locations. |
| 2 | **Fulfillment check API** — provide the URL and endpoint of your inventory/availability API. Include any authentication details. |
| 3 | **Shipping method configuration** — Ingrid configures the in-store shipping method and connects it to your fulfillment check API. |
| 4 | **Testing** — verify end-to-end that the correct stores appear in checkout based on real stock availability. |

### What you need to provide

- API endpoint URL for fulfillment/availability check
- Authentication details (if applicable)
- Store location data (name, address, coordinates)
- Packaging time per location (optional — how long it takes to prepare an order for pickup)

---

## Use cases

### Click & Collect with real-time availability

A fashion retailer with 15 stores offers in-store pickup. Shoppers see only stores with items in stock. No custom code needed — the retailer's inventory API matches Ingrid's standard format.

### OMS-backed fulfillment check

A home goods retailer uses a third-party Order Management System with a proprietary API. Ingrid adapts to the OMS format — the retailer doesn't need to modify their system. Shoppers still see only available locations.

### Multi-store expansion

A retailer launches Click & Collect in 3 stores, then expands to 20. New locations are added to the existing setup — the fulfillment check logic scales automatically without reconfiguration.

---

## FAQ

**Q: Do I need to build a new API for this?**  
A: No — if you already have an inventory or availability API, Ingrid can connect to it. If your API format differs from Ingrid's standard, we handle the format translation.

**Q: What happens if my API is slow or down?**  
A: If your API doesn't respond in time, in-store pickup options simply won't appear in checkout. Shoppers still see all other delivery options. No error messages are shown.

**Q: Can I manage my own store locations?**  
A: Yes. After the initial setup, you can add, update, or remove store locations yourself.

**Q: Does this work for all products in my store?**  
A: The fulfillment check sends your full cart to the API. Your API decides which locations can fulfill it — so the logic is entirely in your hands. You can check availability at the item level, category level, or any other logic your system supports.

**Q: Can I set different preparation times per store?**  
A: Yes. Packaging time (how long it takes to prepare an order for pickup) can be configured per location.

**Q: Can I authenticate the requests Ingrid sends?**  
A: Yes. Ingrid can send any HTTP header with the request, including an Authorization header, so your endpoint can verify the call is genuine.

---

## Getting started

Contact your Ingrid implementation team to set up fulfillment check for your site. You'll need your fulfillment check API endpoint and store location data ready.