---
# System prepended metadata

title: Retry-iQ setup

---

# Retry-iQ setup

Reference: 

- https://docs.google.com/document/d/1_03nAszAOXpLraofE8v7ZNH1Ih_2tShAMQv5GEu2BwM/edit#

- https://kb.ematicsolutions.com/quick-start/data-event-tracking-vn.html
## Khởi tạo dịch vụ Ematic

Để sử dụng dịch vụ Bye/Retry-iQ đầu tiên cần sao chép và dán đoạn code JavaScript dưới đây trước thẻ </head>

```javascript=
<script>
    (function(i,s,o,g,r,a,m){i['EmaticsObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    })(window,document,'script','//api.ematicsolutions.com/v1/ematic.min.js','ematics');
var ematicApikey = ""; // update here

var opt = {
    email: "",//gán email lấy đc từ log in page, giúp pop up Bye sẽ ko hiện thị cho những user đăng nhập email
    country_iso: "vietnam",
    currency_iso: "vnd",
    language_iso: "vietnam"
  };
    
    //initialize
    ematics("create", ematicApikey, opt);
</script>

```

Khi chạy đoạn code trên, thư viện của Ematic sẽ được tải về và sau đó tạo ra một tracker object với ematicApiKey đã khai báo



## Hướng dẫn set up Retry-iQ

Để sử dụng Retry-iQ đầu tiên website cần tích hợp đoạn code trên để khởi tạo dịch vụ của Ematic 

Sau đó chuẩn bị biến thông tin mảng products kèm theo khi gọi api có cấu trúc như sau:


```javascript=
var products = [{
      id: "<id>", //bắt buộc
      categoryId: <category id>,
      transactionId: <transaction id>,
      price: "<gía sản phầm>", // bắt buộc
      priceNumber:<giá sản phẩm bằng số với 3 số thập phân ví dụ:20000.000>,// bắt buộc, mục đích để track được total revenue mang lại từ retry email
      priceCurrency: "VND", // bắt buộc    
      quantity: <số lượng sản phẩm>, // bắt buộc
      name: "<tên sản phẩm>", // bắt buộc
      misc1: "<giá sản phẩm chưa giảm>", // nếu có
      imageUrl: "<image url>", // bắt buộc
      link: "<link sản phẩm>" // bắt buộc
  },
  ...
  {
      id: "<id>", //bắt buộc
      categoryId: <category id>,
      transactionId: <transaction id>,
      price: "<gía sản phầm>", // bắt buộc
      priceNumber:<giá sản phẩm bằng số với 2 số thập phân ví dụ:20000.000>,// bắt buộc, mục đích để track được total revenue mang lại từ retry email
      priceCurrency: "VND", // bắt buộc
      quantity: <số lượng sản phẩm>, // bắt buộc
      name: "<tên sản phẩm>", // bắt buộc
      misc1: "<giá sản phẩm chưa giảm>", // nếu có
      imageUrl: "<image url>", // bắt buộc
      link: "<link sản phẩm>" // bắt buộc

  }];

```

### Bước 1: Khi khách hàng xem chi tiết một sản phẩm

Ví dụ: khi khách hàng vào trang product detail
https://coupletx.com/products/mts-3085

Call api gửi thông tin products:

```javascript=
ematics("log", "product", "browse", products);
```



###  Bước 2: Khi khách hàng click “Thêm vào giỏ hàng” 

Call api gửi thông tin thêm sản phẩm vào giỏ hàng:
ematics("log", "product", "cart", products);

Tại page này nếu khách hàng update thêm item vào giỏ hàng hoặc remove sản phẩm ra khỏi giỏ hàng gọi  để update lại giỏ hàng.

```javascript=
ematics("log", "product", "cart", products);
```

###  Bước 3: Khi khách hàng đặt hàng thành công

Sau khi khách hàng thanh toán thành công, gọi api dưới đây:


```javascript=
ematics("log", "product", "convert", products);
```



## Tích hợp API (API Integration)

Việc tích hợp API này sẽ giúp mình thu thập được email của khách hàng một cách tự động có nghĩa là khi khách nhập email trên website, thì sẽ tự động bắn email vào Campaign Monitor (CM)

Để tích hợp API một cách hiệu quả nhất (thu thập được email của khách nhiều nhất có thể), mình cần cài đoạn script bên dưới vào các trang mà khách hàng cần nhập email. Lưu ý đoạn code này chỉ thực hiện khi website đã tích hợp đoạn code khởi tạo dịch vụ của Ematic ở mục A

```javascript=
var email = "example@test.com";

var mergeVars = {};// biến này bên em đang set default là vào 1 group trên CM

ematics("subscribe","", email, mergeVars, function(e){
 if (e["error"] == 0) { 
   // Success
 } else { 
   // Error
   // console.log(e["errorMessage"])
 }
});

```

Ví dụ: Những trang có thể tích hợp API

- Trang có ô đăng kí nhận bản tin

- Trang đăng nhập https://coupletx.com/account/login

- Trang nhập thông tin để mua hàng ở phần checkout (dành cho khách hàng chưa đăng nhập)




Helpful function
```
Number(price.split(".").join("").replace(" đ", "")).toFixed(3)
```