Bối cảnh và vấn đề nghiên cứu
Sự bùng nổ của công nghệ thông tin và làn sóng Cách mạng Công nghiệp 4.0 đã thúc đẩy mạnh mẽ sự hình thành và phát triển của thương mại điện tử (TMĐT). Việc chuyển đổi phương thức mua bán truyền thống sang không gian số đòi hỏi các hệ thống TMĐT phải giải quyết đồng thời nhiều bài toán phức tạp về thời gian xử lý, quản lý định mức, kiểm soát lượng hàng tồn kho và điều phối đơn hàng. Trước nhu cầu đó, các nền tảng mã nguồn mở ngày càng được ứng dụng rộng rãi nhờ khả năng tùy biến linh hoạt thông qua hệ thống giao diện (theme), phần mềm mở rộng (extension) và trình cắm (plugin).
Trong số các nền tảng TMĐT hiện hành, Magento 2 là hệ quản trị mã nguồn mở được thiết kế chuyên biệt cho các giao dịch trực tuyến quy mô lớn. Nhằm đáp ứng các yêu cầu kinh doanh đặc thù mà hệ thống gốc chưa hỗ trợ đầy đủ, các nhà phát triển thường xây dựng các module mở rộng độc lập để tích hợp vào lõi hệ thống. Đề tài "Phát triển phần mềm nhúng cho hệ thống thương mại điện tử Magento" do sinh viên Mai Đức Long thực hiện (dưới sự hướng dẫn của TS. Nguyễn Trịnh Đông, Trường Đại học Dân lập Hải Phòng, năm 2019) tập trung nghiên cứu cơ chế mở rộng tính năng của Magento 2 thông qua việc phân tích kiến trúc module và hiện thực hóa chức năng điểm thưởng (Reward Points).
Mục tiêu và nhiệm vụ nghiên cứu của đồ án bao gồm:
- Tổng hợp các khái niệm nền tảng về thương mại điện tử, các điều kiện phát triển, hình thức hoạt động chủ yếu và phân loại các dạng phần mềm mở rộng/phần mềm nhúng.
- Tìm hiểu lịch sử hình thành, công nghệ nền tảng, cơ chế kiểm định mã nguồn và kiến trúc Model - View - Controller (MVC) kết hợp Zend Framework trong hệ thống Magento 2.
- Phân tích cấu trúc thư mục, tệp tin cấu hình, hệ thống theme, bộ điều khiển (Controller), khối hiển thị (Block), tác vụ định kỳ (Cron jobs) và lớp trợ giúp (Helper) của một extension trên Magento.
- Ứng dụng quy trình phân tích thiết kế hệ thống hướng đối tượng để xây dựng và thử nghiệm extension điểm thưởng (BrainActs_RewardPoints) cho hệ thống Magento 2, đáp ứng luồng nghiệp vụ tích lũy và sử dụng điểm của khách hàng cũng như quyền quản trị cấu hình của người quản lý.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Nền tảng thương mại điện tử mã nguồn mở Magento 2; kiến trúc cấu trúc module và quy trình phát triển, tích hợp extension phần mềm nhúng vào Magento.
- Phạm vi không gian và công nghệ: Nghiên cứu và cài đặt thử nghiệm trên môi trường máy chủ cục bộ (Localhost) sử dụng gói phần mềm XAMPP, phiên bản Magento 2.2 kết hợp dữ liệu mẫu (sample data) và gói mã nguồn mở mở rộng BrainActs_RewardPoints.
- Phạm vi thời gian: Đề tài được giao ngày 18/03/2019 và hoàn thành vào tháng 06/2019.
Cơ sở lý thuyết và phương pháp
Đồ án tiếp cận vấn đề dựa trên khung lý thuyết về hệ thống thông tin thương mại điện tử và các tiêu chuẩn kỹ thuật phần mềm:
- Khái niệm và quy chuẩn pháp lý thương mại điện tử: Sử dụng định nghĩa tổng quát về thương mại điện tử và trao đổi dữ liệu điện tử (EDI) của Ủy ban Liên Hợp quốc về Luật Thương mại Quốc tế (UNCITRAL), bao quát toàn bộ các hoạt động thương mại số hóa có hoặc không có hợp đồng.
- Khung cấu trúc chức năng hệ thống TMĐT: Phân loại 12 phân hệ nghiệp vụ chính bao gồm quản lý kho, cửa hàng trực tuyến, tìm kiếm, quản lý đơn hàng, quản lý vận chuyển, phương thức thanh toán, quản lý và chăm sóc khách hàng, quảng cáo, thư điện tử/tin nhắn, hệ thống báo cáo, bảo mật thông tin và kế toán tài chính.
- Hạ tầng công nghệ Magento 2: Nền tảng xây dựng trên ngôn ngữ lập trình PHP, khung ứng dụng Zend Framework, cơ sở dữ liệu MySQL (MySQLi, PDO/MySQL), định dạng cấu hình XML (SimpleXML, DOM), mã hóa bảo mật (Mcrypt, Mhash, hàm băm hashing algorithms), thư viện giao tiếp mạng (cURL, SOAP), thư viện xử lý hình ảnh (GD2, ImageMagick 6.7+) và tầng giao diện (HTML5, CSS3, JavaScript/jQuery).
- Mô hình kiến trúc phần mềm: Kiến trúc Model - View - Controller (MVC) định hướng module hóa; mô hình phát triển phần mềm mở rộng (Extension/Plugin) cho phép nhúng mã nguồn bổ sung mà không can thiệp trực tiếp vào mã nguồn lõi (core).
Phương pháp nghiên cứu thực tế được tác giả áp dụng:
- Phương pháp phân tích - tổng hợp tài liệu: Thu thập, đối chiếu tài liệu kỹ thuật của Magento, các bài viết chuyên ngành về TMĐT và tài liệu hướng dẫn phát triển module của cộng đồng Magento.
- Phương pháp phân tích và thiết kế hệ thống hướng đối tượng: Sử dụng hệ thống biểu đồ Unified Modeling Language (UML) gồm biểu đồ ca sử dụng (Use Case) để phân định tác nhân và biểu đồ tuần tự (Sequence Diagram) để mô tả luồng thông điệp giữa các đối tượng trong nghiệp vụ mua hàng, đăng ký và thanh toán tích điểm.
- Phương pháp thực nghiệm phát triển và tích hợp hệ thống: Cấu hình môi trường máy chủ web nội bộ, triển khai mã nguồn Magento 2, cài đặt cấu trúc thư mục extension, chỉnh sửa mã tệp cấu hình và chạy các lệnh giao diện dòng lệnh (CLI) để biên dịch và kiểm thử giao diện quản trị lẫn giao diện người dùng.
Nguồn dữ liệu sử dụng trong đồ án:
- Bản phát hành mã nguồn mở Magento phiên bản 2.2 kèm gói dữ liệu mẫu (Magento with sample data).
- Gói extension điểm thưởng mã nguồn mở
BrainActs_RewardPoints.
- Cấu trúc lược đồ quan hệ trong cơ sở dữ liệu cơ bản của Magento và các bảng dữ liệu bổ sung của extension điểm thưởng.
Thiết kế và triển khai
Hệ thống được thiết kế theo đúng quy chuẩn module hóa của Magento 2, tách biệt rõ ràng giữa logic nghiệp vụ, giao diện người dùng và cơ sở dữ liệu.
Yêu cầu cấu hình môi trường máy chủ
Hệ thống Magento 2.2 đòi hỏi môi trường vận hành đáp ứng các thông số kỹ thuật tối thiểu trên máy chủ Apache và phiên bản PHP 7. Quá trình cấu hình tệp php.ini trên máy chủ cục bộ (XAMPP) được tác giả thiết lập như sau:
| Thông số cấu hình |
Giá trị thiết lập |
Mục đích |
memory_limit |
512M |
Cấp phát giới hạn bộ nhớ tối đa cho quá trình thực thi mã PHP |
max_execution_time |
18000 |
Thiết lập thời gian chờ tối đa cho các tác vụ tải và cài đặt dữ liệu |
max_input_nesting_level |
64 |
Giới hạn độ sâu lồng nhau của biến dữ liệu đầu vào |
max_input_time |
60 |
Thời gian tối đa tiếp nhận dữ liệu đầu vào |
| Kích hoạt tiện ích mở rộng |
php_intl.dll, php_soap.dll, php_xsl.dll |
Đảm bảo đáp ứng đầy đủ điều kiện kiểm tra hệ thống (Readiness Check) |
Kiến trúc phân tầng và thư mục của Extension
Cấu trúc thành phần của extension BrainActs_RewardPoints được định vị trong không gian tên app/code/BrainActs/RewardPoints, bao gồm:
- Block: Xử lý và tiền chế biến dữ liệu từ cơ sở dữ liệu trước khi chuyển ra tầng hiển thị (View/Template).
- Controller: Tiếp nhận yêu cầu người dùng qua HTTP, phân luồng điều hướng tới các lớp xử lý tương ứng trên Frontend và Backend.
- Etc: Chứa các tệp XML (
config.xml, module.xml, system.xml, adminhtml.xml) nhằm khai báo cấu hình, định nghĩa thuộc tính quản trị và thông tin module.
- Helper: Chứa các phương thức tiện ích dùng chung trong toàn hệ thống, mở rộng từ các lớp gốc của Magento.
- Model: Chứa logic nghiệp vụ cốt lõi và các thao tác truy vấn, ánh xạ thực thể dữ liệu với các bảng cơ sở dữ liệu.
- Setup/Sql: Tập hợp các đoạn mã PHP thực thi việc khởi tạo và cập nhật cấu trúc bảng dữ liệu trong cơ sở dữ liệu trong quá trình cài đặt module.
Cấu trúc cơ sở dữ liệu của chức năng điểm thưởng
Chức năng điểm thưởng được liên kết thông qua hệ thống các bảng dữ liệu chuyên biệt cùng các bảng thực thể mặc định của Magento:
| Tên bảng dữ liệu |
Loại bảng |
Chức năng nghiệp vụ |
Brainacts_points_history |
Module mở rộng |
Lưu trữ toàn bộ lịch sử biến động điểm: lý do nhận, số điểm tích lũy, số điểm đã sử dụng của từng khách hàng. |
Brainacts_points_rule_earning |
Module mở rộng |
Lưu trữ các quy tắc tích lũy điểm thưởng do quản trị viên thiết lập (điều kiện đơn hàng, tỷ lệ điểm). |
Brainacts_points_rule_earning_website |
Module mở rộng |
Xác định phạm vi áp dụng quy tắc tích điểm trên từng website trong hệ thống. |
Brainacts_points_rule_earning_customer_group |
Module mở rộng |
Ánh xạ quy tắc tích lũy điểm cho từng nhóm đối tượng khách hàng cụ thể. |
Customer_entity |
Hệ thống Magento |
Quản lý thông tin tài khoản và danh tính khách hàng trong hệ thống. |
customer_group |
Hệ thống Magento |
Phân loại các nhóm người dùng (khách vãng lai, khách thông thường, khách sỉ...). |
Admin_user |
Hệ thống Magento |
Quản lý tài khoản và phân quyền của cán bộ quản trị. |
store, store_group, Store_website |
Hệ thống Magento |
Quản lý phân cấp cấu trúc cửa hàng, nhóm cửa hàng và website trong kiến trúc đa cửa hàng. |
Quy trình triển khai qua giao diện dòng lệnh (CLI)
Sau khi đưa mã nguồn module vào thư mục app/code, quá trình cài đặt và kích hoạt extension trên hệ thống Magento 2 được thực hiện tuần tự qua các lệnh CLI sau:
# Xóa bộ nhớ đệm hệ thống
php bin/magento c:f
# Nâng cấp cấu trúc cơ sở dữ liệu và schema module
php bin/magento setup:upgrade
# Triển khai tệp tĩnh giao diện người dùng
php bin/magento setup:static-content:deploy -f
# Triển khai tệp tĩnh cho gói ngôn ngữ tiếng Việt
php bin/magento setup:static-content:deploy -f vi_VN
Nội dung chính theo từng chương
Mở đầu
Tác giả trình bày tính cấp thiết của việc áp dụng CNTT và mã nguồn mở trong việc xây dựng website TMĐT hiện đại. Nêu bật sự phức tạp của các giao dịch mua bán trực tuyến về mặt quản lý số lượng, định mức và thời gian xử lý. Đặt ra mục tiêu nghiên cứu nền tảng Magento 2 và phương thức xây dựng phần mềm nhúng (extension) nhằm mở rộng tính năng nền tảng. Đồng thời, phần mở đầu đưa ra bố cục tổng quát gồm 3 chương nội dung cùng phần kết luận.
Chương 1: Kiến thức cơ bản
Chương 1 hệ thống hóa toàn bộ lý thuyết nền tảng về TMĐT và kiến trúc kỹ thuật của Magento 2:
- Bản chất TMĐT: Trích dẫn định nghĩa của UNCITRAL; phân tích 4 đặc trưng phân biệt với thương mại truyền thống (không tiếp xúc trực tiếp, thị trường toàn cầu, các bên tham gia đa dạng, mạng lưới thông tin đóng vai trò là thị trường).
- Hệ thống chức năng TMĐT: Mô tả chi tiết 12 chức năng cơ bản cần có trong một sàn giao dịch trực tuyến hoàn chỉnh.
- Điều kiện phát triển TMĐT: 6 trụ cột thiết yếu gồm hạ tầng viễn thông, khung pháp lý, hệ thống thanh toán điện tử, chuỗi logistics - giao vận, hệ thống an toàn bảo mật và nguồn nhân lực chuyên môn.
- Hình thức hoạt động: Phân tích phương thức thư điện tử, thanh toán điện tử (tiền số hóa digital cash, ví điện tử smart card, thanh toán ngân hàng) và chuẩn trao đổi dữ liệu điện tử (EDI).
- Khái niệm phần mềm nhúng/mở rộng: Phân định hai hình thức mở rộng chức năng: phần mềm mở rộng dựa trên bộ khung (Wordpress, Magento) và phần mềm dạng plugin cắm vào phần mềm lõi (Eclipse, Sublime Text, Microsoft Office).
- Lịch sử và công nghệ Magento 2: Tóm tắt tiến trình phát triển từ Varien Inc. (2007 - 2008), các giai đoạn sáp nhập với eBay (2011), chuyển giao cho nhóm quỹ đầu tư Permira (2015) và sự ra mắt của phiên bản Magento 2 vào tháng 11/2015. Liệt kê các công nghệ lõi (PHP, Zend Framework, MySQL, HTML5/CSS3/jQuery) và 5 quy trình kiểm định mã nguồn tích hợp (Integration Testing, Unit Testing, Static Testing, Performance Testing, JavaScript Testing).
- Kiến trúc và cấu trúc module: Phân tích mô hình MVC kết hợp Zend Framework; trình bày cấu trúc module và hướng dẫn cài đặt Magento 2 bản có dữ liệu mẫu trên XAMPP kèm cách sửa lỗi thiếu các thư viện PHP (
intl, soap, xsl).
- Quản trị và giao diện Frontend: Giới thiệu các khu vực chức năng trong trang quản trị (Dashboard, Products, Customers, Marketing, Content, System); phân tích tối ưu giao diện Frontend (hỗ trợ thanh toán không cần tài khoản, giỏ hàng chi tiết) cùng cơ chế bảo mật mật khẩu bằng thuật toán băm (hashing algorithms).
Chương 2: Kiến trúc Extension và cài đặt Extension cho Magento
Chương này đi sâu vào chi tiết kỹ thuật về cách xây dựng và cài đặt một tiện ích mở rộng:
- Cấu trúc thư mục gốc Magento: Giải thích chức năng của các thư mục (
app, downloader, errors, includes, js, lib, media, pkginfo, shell, skin, var) và các tệp tin hệ thống quan trọng (.htaccess, cron.php, cron.sh, index.php, get.php).
- Khái niệm Code Pools: Phân tích cơ chế 3 phân vùng mã nguồn (
core, community, local) và nguyên tắc lựa chọn codePool dựa trên mục đích chia sẻ cộng đồng hay nội bộ.
- Cấu trúc thư mục của một module chuẩn: Trình bày chi tiết vai trò của các thư mục
Block, Controllers, Etc, Helper, Model, sql.
- Hệ thống theme (The theme system): Cấu trúc phân tách giữa
app/design (chứa các tệp mẫu PHP, bố cục XML tại các phân vùng adminhtml, frontend, install) và thư mục skin (chứa CSS, JavaScript, hình ảnh giao diện).
- Tệp cấu hình mở rộng cơ bản: Hướng dẫn tạo tệp XML khai báo module trong
app/etc/modules/ để kích hoạt hoặc vô hiệu hóa trạng thái hoạt động của extension (<active>true</active>).
- Các thành phần cốt lõi: Phân biệt Controller frontend (
Mage_Core_Controller_Front_Action) và Controller admin (Mage_Adminhtml_Controller_Action); định nghĩa Block và vai trò tách biệt logic khỏi giao diện; cơ chế chạy định kỳ qua Magento cron jobs (cron.sh kích hoạt qua crontab với chu kỳ 5 phút/lần: */5 * * * *); vai trò của lớp Helper (Mage_Core_Helper_Data / Mage_Core_Helper_Abstract).
- Kỹ thuật cài đặt Extension Magento 2: Thao tác kích hoạt tên module trong tệp
app/etc/config.php, đưa thư mục mã nguồn vào app/code và thực thi các câu lệnh CLI biên dịch hệ thống.
Chương 3: Xây dựng chức năng mở rộng điểm thưởng cho Magento 2
Chương 3 tập trung vào thiết kế và cài đặt thực nghiệm extension BrainActs_RewardPoints:
- Bài toán nghiệp vụ và lợi ích: Tự động hóa chính sách khen thưởng để chuyển đổi khách hàng truy cập thành khách hàng tiềm năng và khách hàng trung thành; người dùng nhận điểm khi đăng ký tài khoản hoặc thanh toán đơn hàng; cho phép quy đổi điểm thưởng để giảm trừ tiền trực tiếp trên hóa đơn.
- Phân rã chức năng nghiệp vụ:
- Phía khách hàng: Đăng ký tài khoản nhận điểm; tích lũy điểm khi thanh toán đơn hàng hợp lệ; tiêu điểm thưởng trên trang giỏ hàng; tra cứu chi tiết lịch sử nhận và tiêu điểm.
- Phía quản trị viên: Bật/tắt trạng thái hoạt động của module; cấu hình quy tắc (sửa điều kiện hưởng điểm, sửa số điểm được nhận, sửa giá trị quy đổi của mỗi điểm); theo dõi lịch sử điểm thưởng của từng khách hàng.
- Thiết kế mô hình UML: Xây dựng biểu đồ use case tổng quát; giải thích chi tiết luồng nghiệp vụ giữa khách hàng và quản trị viên; xây dựng biểu đồ tuần tự cho ca sử dụng mua hàng (khách hàng chọn sản phẩm, số lượng -> Controller nhận và gửi tới hệ thống giỏ hàng -> hệ thống tính toán phản hồi -> hiển thị thông tin giỏ hàng); biểu đồ tuần tự đăng ký tài khoản nhận điểm, thanh toán nhận điểm và quản lý điểm thưởng.
- Mô hình dữ liệu: Lập sơ đồ liên kết cơ sở dữ liệu và chi tiết cấu trúc 10 bảng dữ liệu liên quan trực tiếp đến hoạt động của module điểm thưởng.
- Kết quả đạt được: Minh họa các giao diện thực nghiệm bao gồm khu vực quản trị cấu hình điểm thưởng trong backend và giao diện tích lũy/sử dụng điểm trên frontend.
Kết luận
Tổng kết lại các nội dung nghiên cứu lý thuyết về TMĐT, kỹ thuật phân tích kiến trúc Magento 2 và kết quả cài đặt thực nghiệm extension điểm thưởng. Đánh giá mức độ hoàn thành nhiệm vụ và nêu các hạn chế cùng hướng phát triển đề tài.
Kết quả và đóng góp
Đồ án ghi nhận các kết quả cụ thể thông qua hệ thống thực nghiệm:
- Môi trường vận hành thử nghiệm: Thiết lập hoàn chỉnh hệ thống Magento 2.2 kèm dữ liệu mẫu trên nền tảng máy chủ XAMPP (Localhost), xử lý triệt để các xung đột thư viện PHP (
intl, soap, xsl) và cấu hình tối ưu các tham số bộ nhớ/thời gian thực thi trong php.ini.
- Hiện thực hóa quy trình nghiệp vụ điểm thưởng: Tích hợp thành công module
BrainActs_RewardPoints vào mã nguồn Magento 2, đáp ứng đầy đủ các ca sử dụng:
- Tự động cộng điểm thưởng cho khách hàng mới ngay sau khi hoàn tất đăng ký tài khoản.
- Tính toán và tích lũy điểm thưởng dựa trên điều kiện giá trị đơn hàng khi khách hàng thanh toán thành công.
- Cung cấp cơ chế trừ tiền trực tiếp vào hóa đơn thanh toán tương ứng với số điểm thưởng khách hàng lựa chọn sử dụng.
- Ghi nhận và hiển thị minh bạch danh mục lịch sử giao dịch điểm (thời gian, lý do nhận, số lượng điểm tiêu) cho khách hàng.
- Phân hệ quản trị cấu hình: Triển khai giao diện cho phép người quản trị linh hoạt bật/tắt module, thay đổi giá trị quy đổi của điểm thưởng, tùy chỉnh số điểm được tặng theo từng điều kiện đơn hàng và truy xuất dữ liệu lịch sử điểm của toàn bộ khách hàng.
- Mô hình hóa hệ thống: Cung cấp tài liệu thiết kế chi tiết bao gồm biểu đồ use case tổng quát, 4 biểu đồ tuần tự mô tả các luồng nghiệp vụ chính và thiết kế chi tiết lược đồ CSDL gồm 10 bảng (4 bảng nghiệp vụ điểm thưởng và 6 bảng hệ thống gốc).
Đóng góp của tác giả tập trung vào việc tổng hợp và làm rõ quy trình tích hợp một extension hoàn chỉnh vào hệ thống Magento 2 theo đúng tiêu chuẩn kỹ thuật (từ cấu hình XML, phân quyền controller, xử lý cơ sở dữ liệu đến các bước biên dịch bằng lệnh CLI), đóng vai trò như một bài toán thực nghiệm điển hình về phát triển phần mềm mở rộng cho các hệ thống TMĐT mã nguồn mở.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên các nội dung tác giả tự nhận định và phạm vi nghiên cứu thực tế, đề tài tồn tại một số điểm hạn chế cùng các hướng nghiên cứu mở rộng:
- Về môi trường triển khai: Hệ thống mới chỉ dừng lại ở việc cài đặt, cấu hình và thử nghiệm trên môi trường máy chủ cục bộ (Localhost/XAMPP) với dữ liệu mẫu, chưa được đưa vào vận hành trên môi trường máy chủ sản xuất (production server) có tên miền và chứng chỉ bảo mật thực tế.
- Về tính năng nghiệp vụ: Cơ chế điểm thưởng mới chỉ xử lý các kịch bản cơ bản (đăng ký tài khoản và thanh toán đơn hàng). Hệ thống chưa mở rộng các quy tắc tích điểm phức tạp khác như: tặng điểm sinh nhật, đánh giá sản phẩm, giới thiệu người dùng mới hoặc trừ điểm theo thời hạn hết hạn (expiration date).
- Về tích hợp thanh toán: Chưa tích hợp với các cổng thanh toán điện tử thực tế tại Việt Nam mà chủ yếu hoạt động dựa trên các phương thức thanh toán thử nghiệm mặc định của nền tảng.
- Hướng phát triển: Nghiên cứu tối ưu hóa hiệu năng module khi cơ sở dữ liệu có lượng bản ghi lịch sử lớn; xây dựng thêm các quy tắc khuyến mại đa dạng theo nhóm khách hàng; triển khai thử nghiệm trên hạ tầng đám mây và kết nối các dịch vụ giao vận, thanh toán trực tuyến bên thứ ba.
Giá trị tham khảo
Đồ án là tài liệu kỹ thuật có giá trị thực tiễn đối với:
- Sinh viên ngành Công nghệ thông tin và Hệ thống thông tin: Cung cấp tài liệu tham khảo chi tiết về quy trình phân tích thiết kế hệ thống hướng đối tượng ứng dụng vào một nền tảng thực tế quy mô lớn; cách tiếp cận kiến trúc MVC và Zend Framework trong mã nguồn mở.
- Lập trình viên bắt đầu tiếp cận Magento 2: Nắm bắt nhanh cấu trúc thư mục, quy tắc đặt tên, ý nghĩa của các tệp cấu hình XML, vai trò của các khối Controller/Block/Helper và các câu lệnh CLI thiết yếu để biên dịch, xóa cache, nâng cấp schema hệ thống.
- Người nghiên cứu về giải pháp TMĐT: Phần trình bày tổng quan ở Chương 1 cung cấp góc nhìn toàn diện về các phân hệ chức năng, điều kiện hạ tầng và các tiêu chuẩn quốc tế (UNCITRAL, EDI) liên quan đến xây dựng nền tảng giao dịch trực tuyến.
Câu hỏi thường gặp
Đề tài sử dụng thuật ngữ "phần mềm nhúng" với hàm ý như thế nào trong ngữ cảnh của đồ án?
Trong đồ án, tác giả sử dụng khái niệm "phần mềm nhúng" để chỉ các thành phần phần mềm mở rộng (Extension, Module, Plugin) được lập trình độc lập và "nhúng" (tích hợp/cài đặt) vào một bộ khung mã nguồn mở có sẵn (cụ thể là Magento 2) nhằm bổ sung chức năng mà không làm thay đổi mã nguồn lõi của hệ thống.
Khi cài đặt Magento 2 trên môi trường XAMPP, hệ thống thường báo lỗi thiếu các extension PHP nào và cách khắc phục ra sao?
Theo hướng dẫn tại Chương 1, hệ thống thường gặp lỗi thiếu 3 tiện ích mở rộng của PHP khi chạy kiểm tra tính tương thích (Readiness Check): php_intl.dll, php_soap.dll và php_xsl.dll. Cách khắc phục là mở tệp cấu hình php.ini trong XAMPP, tìm đến 3 dòng khai báo tương ứng, xóa bỏ dấu chấm phẩy (;) ở đầu dòng để kích hoạt tiện ích rồi lưu lại và khởi động lại dịch vụ Apache.
Extension điểm thưởng tích hợp trong đồ án có tên mã là gì và được đặt ở đường dẫn thư mục nào?
Extension có tên mã là BrainActs_RewardPoints. Trong cấu trúc Magento 2, mã nguồn của extension được đặt tại thư mục app/code/BrainActs/RewardPoints (cụ thể trên máy thử nghiệm là C:\xampp2\htdocs\magento225\app\code).
Sau khi sao chép mã nguồn extension vào thư mục app/code, người phát triển cần thực thi những câu lệnh CLI nào để hoàn tất cài đặt?
Người phát triển cần mở cửa sổ dòng lệnh tại thư mục gốc của Magento và thực thi tuần tự 4 lệnh:
php bin/magento c:f (xóa cache hệ thống).
php bin/magento setup:upgrade (cập nhật module và cấu trúc bảng dữ liệu).
php bin/magento setup:static-content:deploy -f (triển khai tài nguyên tĩnh).
php bin/magento setup:static-content:deploy -f vi_VN (triển khai tài nguyên tĩnh cho gói ngôn ngữ tiếng Việt).
Cơ chế tích lũy và sử dụng điểm thưởng của extension hỗ trợ những hành động cụ thể nào của khách hàng?
Khách hàng được nhận điểm thưởng trong 2 trường hợp: đăng ký tài khoản thành công và hoàn tất thanh toán đơn hàng đáp ứng đủ điều kiện quy định. Khi thực hiện thanh toán sản phẩm, khách hàng có thể nhập số điểm hiện có để quy đổi trừ bớt số tiền trực tiếp trên hóa đơn, đồng thời có thể tra cứu chi tiết lịch sử điểm thưởng (lý do nhận, số điểm đã tiêu) trong tài khoản cá nhân.
Kết luận
Đồ án tốt nghiệp "Phát triển phần mềm nhúng cho hệ thống thương mại điện tử Magento" của sinh viên Mai Đức Long đã hệ thống hóa các kiến thức cơ bản về thương mại điện tử và kiến trúc kỹ thuật module hóa của nền tảng Magento 2. Tác giả đã thiết lập thành công môi trường thử nghiệm và tích hợp extension điểm thưởng BrainActs_RewardPoints, cho phép tự động hóa quy trình tích lũy, quy đổi điểm cho khách hàng cũng như quản lý cấu hình từ trang quản trị. Mặc dù kết quả mới dừng lại ở quy mô thử nghiệm cục bộ với các tính năng cơ bản, công trình đã mô tả chi tiết quy trình thiết kế hướng đối tượng và kỹ thuật triển khai module mở rộng trên Magento 2.