Bỏ qua, đến nội dung

Ví dụ sử dụng - JavaScript

Ví dụ 1: Tính giá theo bảng chiết khấu nhiều tầng

Tính giá sau chiết khấu theo số lượng: 1-10 giữ nguyên, 11-50 giảm 5%, 51-100 giảm 10%, trên 100 giảm 15%.

Cấu hình node JavaScript:

  • scope: { "price": "record.unitPrice", "qty": "record.quantity" }
javascript
const tiers = [
  { min: 101, discount: 0.15 },
  { min: 51, discount: 0.10 },
  { min: 11, discount: 0.05 },
  { min: 1, discount: 0 }
];
const tier = tiers.find(t => qty >= t.min);
return price * qty * (1 - tier.discount);

Logic phân tầng phức tạp không thể cấu hình bằng UI. JavaScript node cho phép viết logic tùy ý rồi return kết quả.

Ví dụ 2: Parse thông tin từ email content

Trích xuất mã đơn hàng và số tiền từ nội dung email text.

Cấu hình node JavaScript:

  • scope: { "emailBody": "webhookData.body.content" }
javascript
const orderMatch = emailBody.match(/Order[:#]\s*(\w+)/i);
const amountMatch = emailBody.match(/(\d[\d,.]+)\s*(VND|USD)/i);
return {
  orderId: orderMatch ? orderMatch[1] : null,
  amount: amountMatch ? parseFloat(amountMatch[1].replace(/,/g, '')) : 0,
  currency: amountMatch ? amountMatch[2] : 'VND'
};

Regex và string manipulation là thế mạnh của JavaScript node. Kết quả trả về là object chứa thông tin đã parse.

Ví dụ 3: Gộp và sắp xếp dữ liệu từ nhiều nguồn

Kết hợp sản phẩm từ 2 API khác nhau, loại bỏ trùng lặp, sắp xếp theo giá.

Cấu hình node JavaScript:

  • scope: { "list1": "api1.body.items", "list2": "api2.body.items" }
javascript
const merged = [...list1, ...list2];
const unique = merged.filter((item, idx, arr) =>
  arr.findIndex(i => i.sku === item.sku) === idx
);
return unique.sort((a, b) => a.price - b.price);

Array processing phức tạp (merge, deduplicate, sort) vượt quá khả năng cấu hình UI. JavaScript node xử lý gọn trong vài dòng code.