Blog_

Create lead in Odoo from web form

Odoo là một phần mềm mã nguồn mở tuyệt vời dành cho Quản lý quan hệ khách hàng ( CRM) và Hoạch định nguồn lực doanh nghiệp (ERP). Nó được sử dụng bởi hàng triệu người trên khắp thế giới.

Để cải thiện quy trình bán hàng của mình, chúng tôi đã thêm một tính năng trên trang web của mình để tự động tạo khách hàng tiềm năng trong Odoo khi khách truy cập điền vào biểu mẫu liên hệ với chúng tôi.

Để tạo khách hàng tiềm năng mới, chúng tôi sẽ sử dụng trình kết nối được tạo bằng NodeJS và gói npm odoo-xmlrpc. Trình kết nối có một lợi thế là giữ cho Odoo không bị sửa đổi ngay lập tức bằng cách sử dụng XML-RPC API. Một điểm bất tiện là bạn phải lưu trữ thêm dịch vụ Node của bên thứ ba này ở đâu đó.


Thiết lập trình kết nối NodeJS

git clone https://github.com/acte-technology/odoo-lead-connector.git
cd odoo-lead-connector/
npm install
cp .env.example .env

Chỉnh sửa tệp .env:

PORT=8081

#Odoo
ODOO_HOST="https://odoo.com"
ODOO_USER=""
ODOO_PASS=""
ODOO_DB=""

Để tăng tính bảo mật, bạn nên thiết lập người dùng Odoo mới với quyền truy cập rất hạn chế.

Sau đó khởi động máy chủ:

node server.js

Kiểm tra với Postman

Screenshot 2020-10-17 at 15.30.28.png


Tích hợp với biểu mẫu web của bạn

Cách bạn triển khai điều này sẽ phụ thuộc vào hệ thống quản lý nội dung (CMS) và ngôn ngữ giao diện người dùng mà bạn có thể sử dụng (React, Angular, HTML5...).

Yêu cầu POST tới trình kết nối có thể được triển khai trực tiếp ở phía front-end bằng cách sử dụng, ví dụ: axios hoặc JS fetch API.

Dưới đây là một ví dụ sử dụng Tìm nạp:


/*
const formData = {
    "name":"John Doe",
    "email":"john@doe.com",
    "description":"Hello"    
}
*/

function createLead(formData){
    var myHeaders = new Headers();
    myHeaders.append("Content-Type", "application/json");

    var raw = JSON.stringify(formData);

    var requestOptions = {
      method: 'POST',
      headers: myHeaders,
      body: raw,
      redirect: 'follow'
    };

    fetch("http://localhost:8081/crm/lead/create", requestOptions)
      .then(response => response.text())
      .then(result => console.log(result))
      .catch(error => console.log('error', error));
}

Tuy nhiên, để ngăn việc lộ trình kết nối ra công chúng, chúng tôi khuyên bạn nên triển khai trình kết nối đó ở phía back-end, trong chức năng hiện có đã xử lý biểu mẫu của bạn.


Issues

Để biết thêm chi tiết về code và issues, vui lòng xem kho lưu trữ của chúng tôi.


Cổng và trình kết nối tùy chỉnh

Bạn cần hệ thống kết nối liên kết với đám mây?

Vui lòng liên hệ với chúng tôi.