# Panduan Pemasangan n8n-nodes-ecommerce-api

## 🚀 Cara Pemasangan

### Method 1: Community Nodes (Paling Mudah)

1. Buka n8n instance anda
2. Pergi ke **Settings > Community Nodes**
3. Klik **Install a community node**
4. Masukkan: `n8n-nodes-ecommerce-api`
5. Klik **Install**
6. Restart n8n instance

### Method 2: NPM Install Manual

```bash
# Dalam direktori n8n anda
npm install n8n-nodes-ecommerce-api

# Restart n8n
npm start
```

### Method 3: Development/Local Install

```bash
# Clone repository ini
git clone https://github.com/your-username/n8n-nodes-ecommerce-api.git
cd n8n-nodes-ecommerce-api

# Install dependencies
npm install

# Build nodes
npm run build

# Link ke n8n installation
npm link
cd /path/to/your/n8n
npm link n8n-nodes-ecommerce-api

# Restart n8n
npm start
```

## 🔧 Setup Credentials

### 1. Buat Credentials Baru

1. Dalam n8n, pergi ke **Credentials**
2. Klik **Add Credential**
3. Pilih **E-commerce API Credentials**
4. Isi maklumat berikut:
   - **API Secret Key**: Masukkan secret key anda
   - **API Base URL**: `https://woo.bizapp.my` (default)

### 2. Test Credentials

- Klik **Test** untuk memastikan credentials berfungsi
- Jika berjaya, anda akan melihat mesej "Connection successful"

## 📋 Penggunaan Nodes

### E-commerce API Node

**Fungsi**: Berinteraksi dengan API e-commerce untuk produk dan pesanan

**Setup**:
1. Drag node **E-commerce API** ke canvas
2. Pilih credentials yang telah dibuat
3. Pilih operation yang diperlukan:

#### Operation 1: Get Product List

**Konfigurasi options (optional)**:
- **Filter by SKU**: Filter produk mengikut pattern SKU
- **Include Stock Info**: Sertakan maklumat stok

**Output**: Array produk dengan maklumat SKU, nama, harga, stok

#### Operation 2: Submit Order

**Isi maklumat wajib**:
- **Customer Name**: Nama pelanggan
- **Customer Address**: Alamat lengkap
- **Customer Phone**: Nombor telefon
- **Customer Email**: Email pelanggan
- **Total Price**: Jumlah harga
- **Products**: Senarai produk (SKU + quantity)

**Isi maklumat tambahan (optional)**:
- **Shipping Price**: Kos penghantaran
- **Order Notes**: Nota pesanan
- **Payment Method**: Kaedah pembayaran
- **Website URL**: URL website sumber

## 🔄 Contoh Workflow

### Workflow 1: Sync Produk + Submit Order

```
[Manual Trigger] 
    ↓
[E-commerce API] → Operation: Get Product List
    ↓
[Code Node] → Process product data
    ↓
[E-commerce API] → Operation: Submit Order
    ↓
[Email Node] → Send confirmation
```

### Workflow 2: Automated Order Processing

```
[Webhook Trigger] → Receive order from website
    ↓
[E-commerce API] → Operation: Get Product List (validate SKUs)
    ↓
[IF Node] → Check stock availability
    ↓
[E-commerce API] → Operation: Submit Order
    ↓
[Slack Node] → Notify team
```

## 🛠️ Troubleshooting

### Error: "Node not found"

**Penyelesaian**:
1. Pastikan package telah dipasang dengan betul
2. Restart n8n instance
3. Clear browser cache

### Error: "Authentication failed"

**Penyelesaian**:
1. Semak secret key dalam credentials
2. Pastikan API base URL betul
3. Test credentials sekali lagi

### Error: "Invalid product SKU"

**Penyelesaian**:
1. Gunakan node **E-commerce Product List** untuk dapatkan SKU yang sah
2. Pastikan SKU format betul (case-sensitive)

### Error: "Missing required fields"

**Penyelesaian**:
1. Pastikan semua field wajib telah diisi
2. Semak format data input
3. Gunakan node **Set** untuk format data jika perlu

## 🔒 Keselamatan

### Best Practices:

1. **Jangan expose secret key** dalam workflow yang boleh dilihat orang lain
2. **Gunakan environment variables** untuk credentials sensitif
3. **Enable HTTPS** untuk semua API calls
4. **Monitor API usage** untuk detect aktiviti mencurigakan

### Tips Keselamatan:

- Guna nama node yang generic (sudah built-in)
- Jangan log sensitive data
- Regular update package untuk security patches

## 📊 Monitoring & Logging

### Built-in Features:

- **Error handling**: Automatic retry untuk network errors
- **Timeout protection**: 30 saat timeout untuk API calls
- **Response validation**: Validate API response format
- **Status reporting**: Laporan kejayaan/kegagalan pesanan

### Custom Monitoring:

Tambah nodes berikut untuk monitoring:
- **HTTP Request** untuk health checks
- **Email** untuk error notifications
- **Webhook** untuk external monitoring systems

## 🆘 Support

Jika menghadapi masalah:

1. **Check logs**: Semak n8n execution logs
2. **Test credentials**: Pastikan credentials masih valid
3. **Check API status**: Pastikan API endpoint accessible
4. **Update package**: Pastikan menggunakan versi terkini

Untuk bantuan lanjut, hubungi support team atau buat issue di GitHub repository.