Ở phần 2 ta đã chọn xong "bản nào". Trước khi cài đặt và bắt tay thao tác ở phần 4, bạn nên có một tấm bản đồ trong đầu: Odoo được ghép từ những mảnh gì. Tin vui là chỉ cần nhớ bốn chữ — app, module, model, view — và một khi hiểu, bạn sẽ tự mò được gần như mọi màn hình mà không cần ai chỉ.

Cách dễ hình dung nhất là ví Odoo với một văn phòng đầy tủ hồ sơ:

  • Model = một cái tủ hồ sơ. Mỗi tủ chứa một loại dữ liệu. Có tủ "Liên hệ", tủ "Sản phẩm", tủ "Hoá đơn"... Mọi thứ cùng loại nằm chung một tủ.
  • Bản ghi (record) = một tờ hồ sơ trong tủ. Một khách hàng cụ thể là một tờ trong tủ Liên hệ.
  • Trường (field) = một ô điền trên tờ hồ sơ đó: Tên, Email, Điện thoại, Địa chỉ...
  • View = cách bạn bày các tờ ra bàn. Muốn lướt nhanh cả tủ thì bày thành danh sách; muốn xem kỹ một tờ thì mở nó ra. Cùng một tủ, nhiều cách bày.
  • App = bộ đồ nghề cho một nghiệp vụ, gói sẵn vài cái tủ liên quan cùng các cách bày và các nút bấm. App "Liên hệ", app "Bán hàng", app "Kho"...
  • Module là đơn vị kỹ thuật nhỏ hơn: một app thường gồm nhiều module, và có module chỉ thêm một tính năng con. Người dùng bình thường không cần bận tâm nhiều tới chữ này — cứ nghĩ "cài app" là đủ.

Nghe lý thuyết thì trừu tượng, nên hãy nhìn ngay một cái tủ thật.

Cùng một model, hai cách bày

Mở app Liên hệ, mặc định Odoo bày cả tủ ra thành danh sách để bạn lướt nhanh:

Danh sách Liên hệ trong Odoo, các cột Tên, Email, Điện thoại, Hoạt động, Quốc gia

Hình 1: Đây là list view (giao diện danh sách) của model Liên hệ. Mỗi dòng là một bản ghi, mỗi cột là một trường. Vì đây là bản vừa cài mới, tủ mới có 2 tờ: "Administrator" và "My Company". Góc trên phải có mấy nút đổi cách bày (danh sách / thẻ / lịch).

Giờ bấm vào một dòng, Odoo mở đúng bản ghi đó ra thành biểu mẫu:

Biểu mẫu một Liên hệ trong Odoo, các trường Email, Điện thoại, Địa chỉ, Mã số thuế và khung Chatter bên phải

Hình 2: Đây là form view (giao diện biểu mẫu) của cùng model Liên hệ — không phải tủ khác, chỉ là cách bày khác. Bạn thấy rõ từng trường: chọn Người/Công ty, Email, Điện thoại, Địa chỉ, Mã số thuế, Ngôn ngữ, Thẻ... Bên phải là Chatter — nơi ghi chú, lịch hoạt động và lịch sử trao đổi bám theo bản ghi.

Hai ảnh trên là một model, hai view. Đây là ý quan trọng nhất của bài: dữ liệu chỉ có một chỗ (cái tủ), còn màn hình bạn nhìn chỉ là cách trình bày dữ liệu đó. Cũng vì thế, sửa ở biểu mẫu thì danh sách đổi theo ngay — chúng soi vào cùng một tủ.

Vì sao bản đồ này hữu ích

Nắm được bốn chữ, ba thói quen sau sẽ theo bạn suốt loạt bài:

  1. Thấy màn hình lạ, hỏi ngay "đây là model gì, đang ở view nào". Một bảng nhiều dòng → thường là list view của một model; mở một dòng ra → form view. Câu hỏi này áp được cho mọi app, kể cả app bạn chưa từng dùng.
  2. Cùng một loại dữ liệu được dùng lại khắp nơi. Model Liên hệ không chỉ sống trong app Liên hệ: khách hàng bên Bán hàng, nhà cung cấp bên Mua hàng, đối tác trên hoá đơn — tất cả đều là bản ghi của cùng cái tủ đó. Sửa địa chỉ một khách ở đâu thì mọi nơi thấy cập nhật.
  3. "Cài app" nghĩa là mở thêm tủ + cách bày + nút bấm. Khi ở phần 7 bạn bấm "Kích hoạt" một app, thực chất Odoo đang thêm vào hệ thống vài model mới, các view cho chúng, và menu để bạn vào. Không có gì huyền bí.

Bạn chưa cần đụng tới model/view ở mức kỹ thuật (định nghĩa bằng Python/XML) — phần đó để dành cho những bài cuối loạt dành cho người muốn tự viết chức năng. Ở mức người dùng, chỉ cần tấm bản đồ này là đủ tự tin bấm khắp nơi mà không sợ lạc.

Xong bài này bạn cần nhớ: Odoo = nhiều app; mỗi app chứa các model (tủ dữ liệu); mỗi model hiện lên qua nhiều view (cách bày); một bản ghi là một tờ, một trường là một ô. Có bản đồ rồi, phần sau ta xắn tay cài Odoo 19 bằng Docker để có một hệ thống của riêng mình mà nghịch.