# कार्ट

> शेयर करने लायक कार्ट जो WhatsApp पर पूरे होते हैं

- पेज: https://tbit.app/hi/docs/api/carts
- Base URL: `https://rest-api.tbit.app/v1`
- ऑथेंटिकेशन: हर request में आपकी key के साथ `X-API-Key` header (उदाहरण इसे `TBIT_API_KEY` environment variable से पढ़ते हैं)

## परिचय

कार्ट की मदद से आपके स्टोर पर आया विज़िटर प्रोडक्ट्स की लिस्ट बनाता है और उसे पूरे संदर्भ के साथ WhatsApp की बातचीत में ले जाता है। कार्ट एक छोटी अवधि का स्नैपशॉट है: उसे 7 कैरेक्टर का कोड मिलता है, वह 90 दिन तक वैध रहता है और बदला नहीं जा सकता: बदलना हो तो नया कार्ट बनाएँ।

## फ़्लो कैसे काम करता है

1. आपके स्टोर पर आया विज़िटर प्रोडक्ट्स की लिस्ट बनाता है।
2. आपका स्टोर POST /v1/carts से कार्ट बनाता है और एक छोटा कोड पाता है।
3. आप विज़िटर को WhatsApp पर https://<आपका-स्टोर>/c/<कोड> जैसा लिंक भेजते हैं।
4. जब बातचीत शुरू होती है, तब तक आपके एजेंट के पास पूरा संदर्भ होता है कि विज़िटर ने क्या चुना।

## Endpoints

| Method | Path | विवरण |
| --- | --- | --- |
| `POST` | `/v1/carts` | Create a shareable cart |
| `GET` | `/v1/carts/:code` | Resolve a cart by code |

## कार्ट बनाएँ

1 से 50 items भेजें, हर एक में प्रोडक्ट id और 1 से 99 के बीच qty हो। Response में कार्ट का छोटा कोड आता है:

`POST /v1/carts`

```bash
curl -X POST "https://rest-api.tbit.app/v1/carts" \
  -H "X-API-Key: $TBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {
        "id": "prod_id_1",
        "qty": 2
      },
      {
        "id": "prod_id_2",
        "qty": 1
      }
    ]
  }'
```

Response:

```json
{
  "data": {
    "code": "K3F9X2A"
  }
}
```

## कार्ट पाएँ

किसी कोड से उसके items वापस पाएँ, हर item एक पूरा प्रोडक्ट ऑब्जेक्ट और साथ में qty। कार्ट हर अकाउंट के लिए अलग रहते हैं: कोई key सिर्फ़ अपने एजेंट के लिए बने कार्ट ही खोलती है: बाकी सब 404 लौटाता है:

`GET /v1/carts/K3F9X2A`

```bash
curl "https://rest-api.tbit.app/v1/carts/K3F9X2A" \
  -H "X-API-Key: $TBIT_API_KEY"
```

Response:

```json
{
  "data": {
    "code": "K3F9X2A",
    "created_at": "2024-09-01T12:00:00Z",
    "items": [
      {
        "_id": "prod_id_1",
        "kind": "product",
        "title": "Kit fiesta dinosaurios",
        "currency": "COP",
        "base_price": 95000,
        "qty": 2
      },
      {
        "_id": "prod_id_2",
        "kind": "product",
        "title": "Piñata dinosaurio",
        "currency": "COP",
        "base_price": 45000,
        "qty": 1
      }
    ]
  }
}
```

## नोट्स

- कोड 7 कैरेक्टर के होते हैं।
- कार्ट 90 दिन तक वैध रहते हैं।
- कार्ट बदले नहीं जा सकते: items बदलने के लिए नया कार्ट बनाएँ।
- दूसरे एजेंट्स के कार्ट (या अनजान कोड) 404 लौटाते हैं।
