---
title: "Konektor Shopify"
description: "Panduan integrasi Shopify lengkap untuk menyinkronkan pelanggan, pesanan, produk, dan event keranjang dengan Brevo."
url: https://tajo.io/in/docs/connectors/ecommerce/shopify/
markdown: https://tajo.io/in/docs/connectors/ecommerce/shopify.md
lang: id-ID
robots: noindex
---

Ajukan akses awal

Masukkan nama depan dan alamat email kerja Anda. Kami akan mengirim tautan untuk mengonfirmasi permintaan akses Tajo.

# Konektor Shopify

Status konektor: Dalam pengerjaan Sedang dibangun. Belum terverifikasi.

| Field sumber | Field tujuan | Nilai contoh |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Hubungkan toko Shopify Anda ke Brevo untuk sinkronisasi data pelanggan yang lengkap, pemulihan keranjang yang ditinggalkan, dan kampanye pemasaran otomatis.

## Ikhtisar

| Properti | Nilai |
| --- | --- |
| **Platform** | Shopify |
| **Kategori** | E-commerce |
| **Kompleksitas penyiapan** | Mudah |
| **Integrasi resmi** | Tidak |
| **Data yang tersinkron** | Pelanggan, Pesanan, Produk, Keranjang, Event |
| **Skill yang tersedia** | 12 |

## Fitur

- **Sinkronisasi pelanggan real-time** - Data pelanggan tersinkron seketika ke kontak Brevo
- **Pelacakan pesanan** - Event pesanan untuk alur pascapembelian
- **Sinkronisasi katalog produk** - Produk tersedia untuk rekomendasi
- **Keranjang yang ditinggalkan** - Lacak dan pulihkan keranjang yang ditinggalkan
- **Perilaku penelusuran** - Pelacakan tampilan halaman dan minat produk
- **Dukungan multi-toko** - Hubungkan beberapa toko Shopify sekaligus

## Prasyarat

Sebelum memulai, pastikan Anda memiliki:

1. Toko Shopify dengan akses admin
2. Akun Brevo dengan akses API
3. Akun Tajo

## Instalasi

### Opsi 1: Shopify App Store (disarankan)

1. Kunjungi [aplikasi Tajo di Shopify App Store](https://apps.shopify.com/tajo)
2. Klik “Add app”
3. Berikan izin yang diminta
4. Hubungkan akun Brevo Anda

### Opsi 2: Instalasi manual

#### Langkah 1: Buat aplikasi Shopify

1. Buka admin Shopify Anda → Settings → Apps and sales channels
2. Klik “Develop apps” → “Create an app”
3. Beri nama “Tajo Integration”

#### Langkah 2: Konfigurasikan scope API

Aktifkan scope berikut:

```
read_customers
write_customers
read_orders
read_products
read_checkouts
write_script_tags
```

#### Langkah 3: Instal aplikasi

```bash
# Using Tajo CLI
tajo connectors install shopify \
  --shop-url your-store.myshopify.com \
  --api-key $SHOPIFY_API_KEY \
  --api-secret $SHOPIFY_API_SECRET
```

#### Langkah 4: Konfigurasikan webhook

Tajo secara otomatis mendaftarkan webhook berikut:

| Webhook | Tujuan |
| --- | --- |
| `customers/create` | Sinkronisasi pelanggan baru |
| `customers/update` | Perubahan data pelanggan |
| `customers/delete` | Penghapusan pelanggan |
| `orders/create` | Event pesanan dibuat |
| `orders/updated` | Perubahan status pesanan |
| `checkouts/create` | Keranjang dibuat |
| `checkouts/update` | Keranjang diperbarui |

## Konfigurasi

### Penyiapan dasar

```yaml
connectors:
  shopify:
    enabled: true
    shop_url: "your-store.myshopify.com"
    api_version: "2024-01"

    # Data sync options
    sync:
      customers: true
      orders: true
      products: true
      carts: true
      inventory: false  # Optional

    # List assignment
    lists:
      all_customers: 5
      buyers: 6
      abandoned_cart: 7
```

### Pemetaan field

Petakan field Shopify ke atribut kontak Brevo:

#### Pemetaan default

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Email pelanggan (identifier unik) |
| `first_name` optional | string | Dipetakan ke atribut FIRSTNAME |
| `last_name` optional | string | Dipetakan ke atribut LASTNAME |
| `phone` optional | string | Dipetakan ke atribut SMS untuk WhatsApp/SMS |
| `accepts_marketing` optional | boolean | Mengontrol status berlangganan |
| `orders_count` optional | integer | Jumlah total pesanan |
| `total_spent` optional | number | Nilai pelanggan seumur hidup |
| `tags` optional | array | Tag pelanggan dari Shopify |

#### Pemetaan atribut kustom

```yaml
field_mapping:
  # Standard fields
  email: email
  first_name: FIRSTNAME
  last_name: LASTNAME
  phone: SMS

  # E-commerce metrics
  orders_count: ORDER_COUNT
  total_spent: TOTAL_SPENT
  last_order_date: LAST_ORDER_DATE

  # Custom fields
  customer_type: CUSTOMER_TYPE
  preferred_language: LANGUAGE
  loyalty_tier: VIP_TIER

  # Computed fields
  average_order_value: AOV
  days_since_last_order: RECENCY
```

### Sinkronisasi produk

Sinkronkan produk untuk rekomendasi email:

```yaml
sync:
  products:
    enabled: true
    include_variants: true
    include_images: true
    categories_as_tags: true

    # Filter products
    filter:
      status: active
      exclude_tags: ["hidden", "wholesale-only"]
```

### Pelacakan inventaris

Aktifkan sinkronisasi level stok:

```yaml
sync:
  inventory:
    enabled: true
    low_stock_threshold: 10
    out_of_stock_events: true
```

## Event

### Event pelanggan

| Event | Pemicu | Kasus penggunaan |
| --- | --- | --- |
| `customer_created` | Pendaftaran pelanggan baru | Welcome series |
| `customer_updated` | Perubahan profil | Sinkronisasi data |
| `customer_tags_added` | Tag ditetapkan | Pembaruan segmen |

### Event pesanan

| Event | Pemicu | Kasus penggunaan |
| --- | --- | --- |
| `order_placed` | Checkout selesai | Konfirmasi pesanan |
| `order_fulfilled` | Pesanan dikirim | Notifikasi pengiriman |
| `order_cancelled` | Pesanan dibatalkan | Email pembatalan |
| `order_refunded` | Refund diproses | Konfirmasi refund |

### Event keranjang

| Event | Pemicu | Kasus penggunaan |
| --- | --- | --- |
| `cart_created` | Item ditambahkan ke keranjang | Pelacakan penelusuran |
| `cart_updated` | Keranjang diubah | Pelacakan nilai keranjang |
| `cart_abandoned` | Tidak checkout dalam 30 menit | Email pemulihan |

## Skill yang diaktifkan

Konektor Shopify mengaktifkan skill berikut:

| Skill | Deskripsi |
| --- | --- |
| [Customer Sync](https://tajo.io/in/docs/skills/data-sync/customer-sync) | Sinkronisasi pelanggan real-time |
| Order Events | Pelacakan siklus hidup pesanan |
| [Abandoned Cart](https://tajo.io/in/docs/skills/email-marketing/abandoned-cart) | Email pemulihan keranjang |
| Welcome Series | Onboarding pelanggan baru |
| Post-Purchase | Tindak lanjut pesanan |
| Win-Back | Aktifkan kembali pelanggan yang tidak aktif |
| Browse Abandonment | Tindak lanjut minat produk |
| Replenishment | Pengingat pemesanan ulang |

## Contoh kode

### Inisialisasi konektor

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

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

// Connect Shopify store
await tajo.connectors.connect('shopify', {
  shopUrl: 'your-store.myshopify.com',
  apiKey: process.env.SHOPIFY_API_KEY,
  apiSecret: process.env.SHOPIFY_API_SECRET
});
```

### Jalankan sinkronisasi awal

```javascript
// Full historical sync
await tajo.connectors.sync('shopify', {
  type: 'full',
  resources: ['customers', 'orders', 'products'],
  since: '2023-01-01'
});

// Check sync status
const status = await tajo.connectors.status('shopify');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-01-15T10:30:00Z',
//   customersCount: 15420,
//   ordersCount: 8234,
//   productsCount: 342
// }
```

### Lacak event keranjang

Tambahkan script Tajo ke tema Shopify Anda:

```liquid
<!-- Add to theme.liquid before </head> -->
{% if customer %}
<script>
  window.tajoConfig = {
    customerId: "{{ customer.id }}",
    customerEmail: "{{ customer.email }}",
    customerName: "{{ customer.first_name }}"
  };
</script>
{% endif %}
<script src="https://cdn.example.com/shopify.js"></script>
```

Caution

Alamat `example.com` di atas adalah placeholder sampai endpoint Tajo tersedia.

### Handler webhook kustom

```javascript
// Handle Shopify webhooks manually
app.post('/webhooks/shopify', async (req, res) => {
  const hmac = req.get('X-Shopify-Hmac-SHA256');

  // Verify webhook signature
  if (!verifyShopifyWebhook(req.body, hmac)) {
    return res.status(401).send('Unauthorized');
  }

  const topic = req.get('X-Shopify-Topic');

  // Forward to Tajo
  await tajo.connectors.handleWebhook('shopify', {
    topic,
    payload: req.body
  });

  res.status(200).send('OK');
});
```

## Pemantauan

### Metrik dasbor

Pantau koneksi Shopify Anda di dasbor Tajo:

- **Status sinkronisasi**: Kesehatan koneksi secara real-time
- **Pelanggan tersinkron**: Total kontak yang berasal dari Shopify
- **Pesanan terlacak**: Event pesanan yang telah diproses
- **Pemulihan keranjang**: Performa keranjang yang ditinggalkan
- **Tingkat error**: Upaya sinkronisasi yang gagal

### Log webhook

Lihat status pengiriman webhook:

```bash
tajo connectors logs shopify --type webhook --last 24h
```

### Riwayat sinkronisasi

Periksa riwayat operasi sinkronisasi:

```bash
tajo connectors history shopify --limit 10
```

## Pemecahan masalah

### Masalah umum

Batas rate API

Shopify menerapkan batas rate API sebesar 2 permintaan/detik. Gunakan sinkronisasi batch untuk impor data historis berukuran besar.

| Masalah | Penyebab | Solusi |
| --- | --- | --- |
| Webhook tidak diterima | Izin aplikasi | Instal ulang aplikasi dengan scope yang benar |
| Pelanggan tidak tersinkron | Email tidak ada | Shopify mewajibkan email untuk setiap pelanggan |
| Produk tidak muncul | Status produk | Pastikan produk berstatus “active” |
| Keranjang tidak terlacak | Script tidak termuat | Verifikasi script di theme.liquid |

### Mode debug

Aktifkan logging verbose:

```yaml
connectors:
  shopify:
    debug: true
    log_level: verbose
    log_webhooks: true
```

### Uji koneksi

```bash
tajo connectors test shopify
# ✓ API connection successful
# ✓ Webhooks registered
# ✓ Products accessible
# ✓ Customers readable
# ✓ Orders readable
```

## Praktik terbaik

1. **Mulai dengan toko uji** - Gunakan development store terlebih dahulu
2. **Jalankan sinkronisasi awal di luar jam sibuk** - Sinkronisasi berskala besar bisa berjalan lambat
3. **Petakan atribut kustom** - Jangan hanya mengandalkan pemetaan default
4. **Aktifkan pelacakan keranjang** - Krusial untuk pemulihan keranjang yang ditinggalkan
5. **Pantau kesehatan webhook** - Siapkan alert untuk pengiriman yang gagal
6. **Gunakan impor batch** - Untuk data historis di atas 10.000 record

## Keamanan

- **OAuth 2.0** - Autentikasi berbasis token yang aman
- **Verifikasi webhook** - Validasi tanda tangan HMAC
- **Penyimpanan terenkripsi** - Kredensial API dienkripsi saat disimpan
- **Akses ber-scope** - Hanya izin minimum yang diperlukan

## Sumber daya terkait

- [Konektor WooCommerce](https://tajo.io/in/docs/connectors/ecommerce/woocommerce)
- [Skill Customer Sync](https://tajo.io/in/docs/skills/data-sync/customer-sync)
- [Skill Abandoned Cart](https://tajo.io/in/docs/skills/email-marketing/abandoned-cart)
- [Brevo Contacts API](https://tajo.io/in/docs/contact-management)
