---
title: "Oporavak napuštene korpe"
description: "Oporavite izgubljene prodaje inteligentnom višestepenom e-mail sekvencom koja vraća kupce da završe kupovinu."
url: https://tajo.io/sr/docs/skills/email-marketing/abandoned-cart/
markdown: https://tajo.io/sr/docs/skills/email-marketing/abandoned-cart.md
lang: sr-Latn-RS
robots: noindex
---

Zatražite rani pristup

Unesite ime i poslovnu adresu e-pošte. Poslaćemo vam vezu za potvrdu zahteva za pristup Taju.

# Oporavak napuštene korpe

Oporavite izgubljene prodaje inteligentnom višestepenom e-mail sekvencom. Ovaj skill prati napuštanje korpi i automatski šalje personalizovane e-mailove za oporavak koji vraćaju kupce.

## Pregled

| Svojstvo | Vrednost |
| --- | --- |
| **Kategorija** | E-mail marketing |
| **Status** | Stabilan |
| **Verzija** | 3.0 |
| **Okidači** | `cart_abandoned`, `cart_recovered` |
| **Prosečna stopa oporavka** | 10–15 % |

## Kako funkcioniše

```mermaid
graph TD
    A[Kupac dodaje u korpu] -->|Napušta sajt| B{Korpa napuštena?}
    B -->|Bez naplate za 30 min| C[Okidač: cart_abandoned]
    C --> D[Čekaj 1 sat]
    D --> E{Kupio?}
    E -->|Ne| F[Pošalji e-mail #1]
    F --> G[Čekaj 24 sata]
    G --> H{Kupio?}
    H -->|Ne| I[Pošalji e-mail #2 + popust]
    I --> J[Čekaj 48 sati]
    J --> K{Kupio?}
    K -->|Ne| L[Pošalji e-mail #3 – finalni]
    E -->|Da| M[Zaustavi sekvencu]
    H -->|Da| M
    K -->|Da| M
    L --> N[Označi kao izgubljeno]
```

## Konfiguracija

### Osnovno podešavanje

```yaml
skills:
  abandoned-cart:
    enabled: true

    # Detekcija napuštanja korpe
    detection:
      inactivity_threshold: 30m  # Minuti pre napuštanja korpe
      min_cart_value: 25         # Minimalna vrednost korpe za aktiviranje
      exclude_logged_out: false  # Uključi korpe gostiju

    # Sekvenca e-mailova
    sequence:
      - delay: 1h
        template_id: 101
        subject: "Zaboravili ste nešto?"

      - delay: 24h
        template_id: 102
        subject: "Vaša korpa čeka"
        include_discount: true
        discount_percent: 10

      - delay: 48h
        template_id: 103
        subject: "Poslednja šansa – artikli se brzo prodaju"
        include_discount: true
        discount_percent: 15
        discount_expiry: 24h

    # Uslovi zaustavljanja
    stop_on:
      - cart_recovered
      - order_placed
      - unsubscribe
```

### Napredna konfiguracija

```yaml
skills:
  abandoned-cart:
    # Vremenski raspored prema segmentu
    timing:
      vip_customers:
        first_email: 30m
        discount_threshold: 0  # Uvek uključi popust
      new_customers:
        first_email: 2h
        discount_threshold: 50  # Popust samo ako je korpa > 50 €
      repeat_customers:
        first_email: 1h
        discount_threshold: 100

    # A/B testiranje
    ab_testing:
      enabled: true
      variants:
        - name: "urgency"
          subject: "Artikli u vašoj korpi se brzo prodaju!"
          weight: 50
        - name: "friendly"
          subject: "Zaboravili ste nešto?"
          weight: 50

    # Isključivanja
    exclude:
      - email_domain: ["temp-mail.com", "disposable.com"]
      - customer_tag: ["wholesale", "staff"]
      - product_category: ["gift-cards"]
```

## Okidači

### cart\_abandoned

Aktivira se kada je korpa neaktivna za konfigurisani prag.

#### Podaci događaja

| Parameter | Type | Description |
| --- | --- | --- |
| `cart_id` required | string | Jedinstveni identifikator korpe |
| `customer_email` required | string | E-mail adresa kupca |
| `items` required | array | Niz stavki korpe sa imenom, cenom, količinom, image\_url |
| `total` required | number | Ukupna vrednost korpe |
| `currency` optional | string | Kod valute (npr. USD, EUR) Default: `USD` |
| `recovery_url` required | string | URL za oporavak korpe |
| `abandoned_at` required | datetime | Kada je korpa napuštena |

Primer podataka:

```json
{
  "event": "cart_abandoned",
  "timestamp": "2024-01-15T14:30:00Z",
  "data": {
    "cart_id": "cart_abc123",
    "customer_email": "jane@example.com",
    "items": [
      {
        "id": "prod_123",
        "name": "Premium Headphones",
        "price": 199.99,
        "quantity": 1,
        "image_url": "https://cdn.example.com/headphones.jpg",
        "variant": "Black"
      },
      {
        "id": "prod_456",
        "name": "Phone Case",
        "price": 29.99,
        "quantity": 2,
        "image_url": "https://cdn.example.com/case.jpg"
      }
    ],
    "subtotal": 259.97,
    "shipping": 0,
    "tax": 20.80,
    "total": 280.77,
    "currency": "USD",
    "recovery_url": "https://store.example.com/cart/recover/abc123",
    "abandoned_at": "2024-01-15T14:00:00Z"
  }
}
```

### cart\_recovered

Aktivira se kada se kupac vrati i završi naplatu.

```json
{
  "event": "cart_recovered",
  "timestamp": "2024-01-15T16:45:00Z",
  "data": {
    "cart_id": "cart_abc123",
    "customer_email": "jane@example.com",
    "order_id": "order_789",
    "recovered_via": "email_1",  // Koji e-mail je pokrenuo oporavak
    "time_to_recover": "2h15m"
  }
}
```

## E-mail predlošci

### Promenljive predložaka

Koristite ove promenljive u vašim Brevo e-mail predlošcima:

| Promenljiva | Opis | Primer |
| --- | --- | --- |
| `params.FIRSTNAME` | Ime kupca | Jana |
| `params.CART_URL` | URL za oporavak korpe | https://… |
| `params.CART_TOTAL` | Formatiran ukupan iznos korpe | 280,77 € |
| `params.ITEM_COUNT` | Broj artikala | 3 |
| `params.ITEMS` | JSON niz artikala | \[…\] |
| `params.DISCOUNT_CODE` | Generisani kod popusta | SAVE10-ABC |
| `params.DISCOUNT_PERCENT` | Procenat popusta | 10 |
| `params.EXPIRY_DATE` | Datum isteka popusta | 17\. jan 2024. |

### Preporučena e-mail sekvenca

**E-mail 1 (1 sat)**: Blagi podsetnik

- Predmet: „Zaboravili ste nešto, {{ params.FIRSTNAME }}?”
- Fokus: Podsetnik na sadržaj korpe
- Bez popusta

**E-mail 2 (24 sata)**: Dodavanje hitnosti + podsticaja

- Predmet: „Vaša korpa čeka + 10 % popust”
- Fokus: Vremenski ograničen popust
- Uključite kod popusta

**E-mail 3 (48 sati)**: Finalni poziv

- Predmet: „Poslednja šansa – 15 % popust uskoro ističe”
- Fokus: Oskudica + veći popust
- 24-satni rok važenja popusta

## Primeri koda

### Aktivacija skill napuštene korpe

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

await tajo.skills.enable('abandoned-cart', {
  detection: {
    inactivityThreshold: '30m',
    minCartValue: 25
  },
  sequence: [
    { delay: '1h', templateId: 101 },
    { delay: '24h', templateId: 102, discountPercent: 10 },
    { delay: '48h', templateId: 103, discountPercent: 15 }
  ]
});
```

### Praćenje napuštanja korpe

```javascript
// Pozovite kada se detektuje aktivnost korpe
await tajo.events.track('cart_updated', {
  cartId: 'cart_abc123',
  customerEmail: 'jane@example.com',
  items: cartItems,
  total: 280.77
});

// Pozovite kada kupac ode bez naplate
// (tipično iz beforeunload događaja ili isteka sesije)
await tajo.events.track('cart_abandoned', {
  cartId: 'cart_abc123',
  customerEmail: 'jane@example.com',
  items: cartItems,
  total: 280.77,
  recoveryUrl: 'https://store.example.com/cart/recover/abc123'
});
```

### Generisanje kodova popusta

```javascript
// Generisanje jedinstvenog koda popusta
const discount = await tajo.discounts.create({
  type: 'percentage',
  value: 10,
  expiresIn: '7d',
  usageLimit: 1,
  prefix: 'SAVE10'
});

// discount.code => "SAVE10-ABC123"
```

## Analitika

Pratite performanse oporavka napuštene korpe:

| Metrika | Opis |
| --- | --- |
| **Stopa napuštanja** | % korpi koje su napuštene |
| **Stopa oporavka** | % napuštenih korpi koje su oporavljene |
| **Oporavljeni prihod** | Ukupan prihod od oporavljenih korpi |
| **Stopa otvaranja e-maila** | % otvorenih e-mailova za oporavak |
| **Stopa klikova e-maila** | Stopa klikova na e-mailovima za oporavak |
| **Vreme do oporavka** | Prosečno vreme od napuštanja do kupovine |

```javascript
const stats = await tajo.skills.getStats('abandoned-cart', {
  period: '30d'
});

console.log(stats);
// {
//   abandonmentRate: 68.5,
//   recoveryRate: 12.3,
//   revenueRecovered: 15420.50,
//   emailsSent: 2340,
//   emailOpenRate: 45.2,
//   emailCtr: 8.7,
//   avgTimeToRecovery: '4h32m'
// }
```

## Najbolje prakse

Vreme je ključno

Pošaljite prvi e-mail u roku od 1–2 sata od napuštanja. Stopa oporavka značajno opada posle 24 sata.

1. **Personalizujte naslove** – Koristite ime kupca i sadržaj korpe
2. **Prikažite sadržaj korpe** – Uključite slike proizvoda u e-mail
3. **Kreirajte hitnost** – Pominjite niske zalihe ili vremenski ograničene popuste
4. **Olakšajte oporavak** – Linkovi za oporavak korpe jednim klikom
5. **Testirajte svoju sekvencu** – A/B testiranje vremena, naslova i popusta
6. **Poštujte odjave** – Odmah zaustavite sekvencu pri odjavi

## Srodni Skills

- Događaji korpe – Praćenje aktivnosti korpe
- Napuštanje pregledanja – Oporavak sesija pregledanja
- Povratak kupaca – Ponovna veza sa neaktivnim kupcima

## Sledeći koraci

1. Podesite praćenje korpe na vašoj platformi
2. Kreirajte e-mail predloške u Brevo
3. Konfigurišite integraciju kodova popusta
4. Pratite performanse na kontrolnoj tabli
