# 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) ```