Chuyện nghiên cứu khoa học và phần còn lại là lịch sử trong tôi phần 3
Nhật kí coding,  Chuyện học

Chuyện nghiên cứu khoa học và phần còn lại là lịch sử trong tôi-Phần 3

Phần 3: Bàn về đề tài “Xây dựng website bán hàng theo gói sản phẩm”

| Bài viết “Chuyện nghiên cứu khoa học và phần còn lại là lịch sử trong tôi” được chia thành 3 phần:

👉🏻Mimi sẽ khép lại series đáng nhớ về chuyện nghiên cứu khoa học trong sinh viên bằng phần 3 – Bàn về đề tài “Xây dựng website bán hàng theo gói sản phẩm”.

Đây là bài viết dành riêng cho đề tài nghiên cứu mang tên “Xây dựng website bán hàng theo gói sản phẩm”. Tổng quan đề tài được

thiết kế và triển khai một nền tảng thương mại điện tử, kết hợp mô hình bán hàng B2C (Business to Customer) với phương thức cung cấp sản phẩm theo gói. Công nghệ được sử dụng bao gồm:

  • Laravel: Được chọn để phát triển các chức năng xử lý phía backend dành cho quản trị viên (Admin). Laravel, với khả năng quản lý dữ liệu và bảo mật cao, sẽ giúp tạo ra một hệ thống quản lý hiệu quả và dễ dàng mở rộng.
  • ReactJS: Được sử dụng để xây dựng các tính năng phía frontend cho người dùng (User). ReactJS cung cấp giao diện người dùng động và tương tác tốt, đảm bảo trải nghiệm mua sắm trực tuyến mượt mà và hấp dẫn.

Việc kết hợp hai công nghệ này nhằm tối ưu hóa hiệu suất và tính năng của website, mang đến giải pháp toàn diện cho việc quản lý và bán hàng theo gói sản phẩm trong môi trường thương mại điện tử.

Giải thích các thuật ngữ liên quan trong đề tài “Xây dựng website bán hàng theo gói sản phẩm”

– B2C (Business To Consumer) trong tiếng Anh có nghĩa là Doanh nghiệp tới Người tiêu dùng. B2C là một thuật ngữ được sử dụng để mô tả giao dịch giữa doanh nghiệp với người tiêu dùng. Đó là một giao dịch thương mại điện tử trong đó các doanh nghiệp đóng vai trò là người bán  sản phẩm hoặc dịch vụ cho người tiêu dùng. Trong đề tài, mô hình B2C thể hiện ở việc thông qua website bán hàng, doanh nghiệp hay người bán hàng sẽ trực tiếp quản lý sản phẩm, đơn hàng và giao hàng đến tận tay người tiêu dùng theo combo mà họ đã lựa chọn và đăng ký trên website.

– Laravel  là một trong những framework phát triển web PHP phổ biến nhất và mạnh mẽ hiện nay. Laravel là một framework mạnh mẽ và linh hoạt, rất thích hợp cho việc xây dựng các trang web bán hàng combo sản phẩm định kỳ. Sự kết hợp của các tính năng tiện ích và cấu trúc mạnh mẽ của Laravel giúp tăng hiệu suất phát triển và giảm thiểu thời gian và công sức cần thiết cho việc phát triển và duy trì trang web.

– React JS là một thư viện JavaScript phổ biến được sử dụng rộng rãi trong phát triển ứng dụng web hiện đại. Sử dụng React JS trong xây dựng đề tài website thương mại điện tử bán hàng combo định kỳ mang lại lợi ích về hiệu suất, bảo trì và mở rộng ứng dụng một cách hiệu quả.

– Gói sản phẩm (Product Package):

+ Định nghĩa: Gói sản phẩm là một bộ các sản phẩm hoặc dịch vụ được kết hợp lại với nhau để đáp ứng một nhu cầu cụ thể của khách hàng.

+ Ví dụ: Trong ngữ cảnh xây dựng website bán hàng, một gói sản phẩm bao gồm các sản phẩm như Nước xả vải Downy, Dầu gội Dove, Nước rửa chén Sunlight,..thuộc các danh mục đã trình bày ở trên khi khách hàng tiến hành tạo gói và thêm sản phẩm ở giao diện website.

– Combo gói sản phẩm định kỳ (Subscription Product Package Combo):

+ Định nghĩa: Là một dạng gói sản phẩm được cung cấp theo chu kỳ định kỳ (thường là hàng tháng, hàng quý, hoặc hàng năm). Khách hàng đăng ký và thanh toán một khoản phí định kỳ để tiếp tục sử dụng các dịch vụ và tính năng của gói sản phẩm.

+ Ví dụ: Trong ngữ cảnh website bán hàng, một combo gói sản phẩm định kỳ là “Gói dịch vụ hàng tháng” bao gồm các sản phẩm khách hàng đã lựa chọn bỏ vào gói cùng với thời gian ngày đặt hàng và khoảng cách giao hàng (có thể là 2 tuần, 1 tháng, 2 tháng hay 3 tháng). Khách hàng phải thanh toán phí hàng tháng để duy trì các dịch vụ này.

Ý nghĩa trong xây dựng website bán hàng theo gói sản phẩm định kỳ

– Đảm bảo ổn định tài chính: Khách hàng có thể dễ dàng dự đoán chi phí sử dụng dịch vụ hàng tháng, giúp họ quản lý tài chính hiệu quả hơn.

– Duy trì và cập nhật: Các dịch vụ trong gói sản phẩm định kỳ thường bao gồm bảo trì, hỗ trợ kỹ thuật và cập nhật các tính năng mới, giúp website luôn hoạt động hiệu quả và an toàn.

Jasmy shop admin

– Tăng tính trung thành của khách hàng: Bằng cách cung cấp các gói sản phẩm định kỳ hữu ích và thuận tiện, doanh nghiệp có thể giữ chân khách hàng lâu dài và tăng sự trung thành của họ.

Có thể thấy, xây dựng website bán hàng theo gói sản phẩm định kỳ là một chiến lược hữu hiệu để cung cấp giá trị liên tục cho khách hàng và duy trì một mô hình kinh doanh ổn định và bền vững.

Bàn về website bán hàng theo gói sản phẩm

*Mô tả hệ thống: Như những website thông thường, cấu trúc của “Website bán hàng theo combo sản phẩm định kỳ” cũng được xây dựng với 2 phần chính được gọi là giao diện người dùng (Frontend) và Quản lý website (Backend). Cụ thể:

– Frontend (Giao diện người dùng):

+ Trang chủ: Hiển thị các danh mục sản phẩm cho phép người dùng bấm vào xem các sản phẩm có trong danh mục.

+ Trang sản phẩm: Cho phép người dùng xem thông tin chi tiết, đánh giá, và thêm sản phẩm vào giỏ hàng.

+ Giỏ hàng: Hiển thị danh sách các giỏ hàng đang tồn tại và cho phép người dùng chuyển đổi giữa chúng.

+ Thanh toán: Quy trình thanh toán với thông tin địa chỉ và phương thức thanh toán.

– Backend (Phía server):

+ Quản lý sản phẩm: Lưu trữ thông tin về sản phẩm, bao gồm giá, mô tả, và số lượng tồn kho.

+ Quản lý người dùng: Lưu trữ thông tin về người dùng và đảm bảo tính bảo mật của thông tin cá nhân.

+ Quản lý session: Lưu trữ thông tin giỏ hàng của người dùng dựa trên session ID.

+ Quản lý đơn hàng: Xử lý việc đặt hàng, tạo và lưu trữ đơn hàng cho mỗi giao dịch.

Ngoài ra, quản lý session người dùng là phần rất quan trọng trong việc phân tích thiết kế website, do đó session trong website này đã được quản lý theo mô tả sau:

+ Sử dụng session ID để duy trì trạng thái giỏ hàng của người dùng khi họ thêm sản phẩm vào giỏ hàng.

+ Mỗi session ID sẽ được tạo khi người dùng truy cập trang web và sẽ được lưu trữ tạm thời.

+ Thông tin về giỏ hàng được liên kết với session ID, cho phép người dùng duyệt qua nhiều giỏ hàng.

– Tính năng quản lý đa giỏ hàng:

+ Cho phép người dùng tạo và quản lý nhiều giỏ hàng, chẳng hạn như “Giỏ hàng combo 1” và “Giỏ hàng combo 2”.

+ Cung cấp cách dễ dàng để chuyển đổi giữa các giỏ hàng và xem nội dung của chúng

*Cơ sở dữ liệu: Để đáp ứng được yêu cầu quản lý và mua bán theo gói hàng, cơ sở dữ liệu của website được thiết kế với các bảng chính như customers(Khách hàng), orders(Đơn hàng), packages(Gói hàng), products(Sản phẩm), packages_products(Gói hàng với sản phẩm), users(Người dùng),… Theo đó, các mối quan hệ được thiết lập giữa các bảng như sau:

– customers với orders: quan hệ một – nhiều, bởi một khách hàng thì có thể có một hoặc nhiều đơn đặt hàng khác nhau.

– categories với products: quan hệ một – nhiều vì một danh mục thì có nhiều sản phẩm.

– products với bảng packages_products: quan hệ nhiều – nhiều vì một sản có thể ở trong một hay nhiều gói hàng và ngược lại các gói hàng cũng có thể chứa một hay nhiều sản phẩm.

Jasmy cơ sở dữ liệu

– packages với packages_products: bảng packages_products là bảng trung gian nên tương tự ta cũng có mối quan hệ của hai bảng này là nhiều – nhiều bởi các gói tạo ra (packages) cũng có nhiều danh sách sản phẩm trong gói (packages_products) và nhiều danh sách sản phẩm trong gói cũng có thể ở trong nhiều gói do người dùng tạo ra.

– packages với users: quan hệ nhiều – nhiều bởi một gói sản phẩm có thể có nhiều người đăng ký và ngược lại.

–  orders với packages: quan hệ một-nhiều, nghĩa là một bản đặt hàng thì có thể tương ứng với nhiều gói hàng.

– orders với users quan hệ: nhiều – một bởi một người dùng thì có thể có nhiều order.

*Xây dựng website: Sau khi xây dựng xong cơ sở dữ liệu, tiến hành xây dựng giao diện ban đầu cho dự án gồm:

– Về phía backend (Quản trị viên): nhóm đề tài sử dụng Laravel để xây dựng các trang giao diện nằm trong phần thư mục Resource của cấu trúc thư mục Laravel và tiến hành xây dựng các Routes trong app.php để gọi các Controllers  đã được tạo ra trước đó để xử lí vấn đề quản lý dữ liệu cho phía Admin.

– Về phía Frontend (Người dùng): để hiển thị giao diện cho người dùng tương tác, nhóm đề tài đã sử dụng ReactJs để viết nên giao diện người dùng, sau đó viết thêm phần Route kết nối với api gọi api của bên Laravel để thực hiện những xử lí phía sau đó.

*Giải thích: Vì đề tài được xây dựng bằng hai thư viện mã nguồn mở là Laravel và ReactJS nên giữa chúng cần có sự kết nối đó chính là các “api”. Trước khi tiến hành phân tích các chức năng xây dựng được cần làm rõ mô hình kết nối đó như sau:

  • Laravel là một framework phía server, cung cấp một API RESTful để tương tác với dữ liệu từ cơ sở dữ liệu.
  • React.js là một thư viện JavaScript phía client, xây dựng giao diện người dùng của ứng dụng web.
  • HTTP được sử dụng để giao tiếp giữa Laravel và React.js, thông qua các yêu cầu và phản hồi HTTP.
  • Dữ liệu được truy xuất hoặc cập nhật thông qua Laravel API, mà sau đó được hiển thị hoặc xử lý bởi React Frontend.
  • Laravel có thể kết nối với cơ sở dữ liệu (đề tài sử dụng MySQL) để lưu trữ và truy xuất dữ liệu.
  • React Frontend tương tác với người dùng và gửi các yêu cầu đến Laravel API để lấy hoặc cập nhật dữ liệu.

*Kết quả: Đến thời điểm kết thúc nghiệm thu nghiên cứu, đề tài đã đáp ứng cơ bản những yêu cầu về 03 nội dung nêu trong thuyết minh với kết quả tổng quan đạt được là:

– Phân tích được hệ thống, cơ sở dữ liệu và xây dựng được giao diện website:

+ Phân tích hệ thống bằng các sơ đồ, biểu đồ chức năng, ngữ cảnh và luồng dữ liệu.

+ Thiết kế được cơ sở dữ liệu phục vụ quản lí đa cart (combo sản phẩm).

+ Xây dựng giao diện phục vụ cho quản lí phía quản trị viên (Backend) và xử lý người dùng (Frontend).

– Phân tích, lựa chọn ra các danh mục sản phẩm phù hợp với website bán hàng theo mô hình combo.

– Xây dựng được các chức năng căn bản cho trang web:

+ Xây dựng được chức năng cho phép đặt hàng theo combo trên một session.

+ Xây dựng chức năng đặt hàng và giải quyết bài toán thời gian giao hàng định kỳ.

– Hạn chế: Trang web chạy cần có sự kết nối api giữa hai thư viện để lấy dữ liệu nên tốc độ tải trang còn chậm.

*Link Github của đề tài “xây dựng website bán hàng theo gói sản phẩm”: Bạn đọc có thể vào xem và tham khảo trên Github sản phẩm của mình tại Jasmy Ecommerce

Lưu ý: Vì sản phẩm còn sơ sài và mới đạt được một số kết quả cơ bản của nghiên cứu nên trong tương lai mình sẽ còn chỉnh sửa, thay đổi để hoàn thiện thêm sản phẩm khi có thời gian. Do đó, sản phẩm sẽ được cập nhật lại trên link Github và có sự thay đổi so với kết quả mình đã chỉ ra ở trên.

👉🏻Vậy là đã kết thúc chuỗi câu chuyện về nghiên cứu khoa học trong sinh viên của mình tại phần 3 này. Các bài viết trong series sẽ mãi là kỉ niệm và là dẫn chứng sống cho hành trình nghiên cứu đầu tiên trong đời của Mimi khi còn là sinh viên. Để đọc thêm những bài viết hay trong Mimibeoxu blog các bạn có thể ghé xem Những bài viết hay nhé!🥰

Don’t get older. I level up.

Leave a Reply

Your email address will not be published. Required fields are marked *