Từ ý tưởng áp dụng công nghệ thông tin vào việc quản lý, bớt phần gánh nặng về sổ sách cũng như đầu óc con người, sản phẩm này được ra đời nhằm hướng đến xây dựng một trang web hỗ trợ bá
GIỚI THIỆU CHUNG
Tên đề tài
Xây dựng Website bán điện thoại online dựa trên Thư viện Django
Lí do chọn đề tài
Tiềm năng kinh doanh lớn: Lĩnh vực bán hàng trực tuyến có tiềm năng lợi nhuận lớn
Khả năng tiếp cận mọi người: Một trang web bán hàng có thể giúp bạn tiếp cận một lượng lớn khách hàng tiềm năng trên toàn thế giới.
Tính linh hoạt và tiện lợi: Trang web bán hàng cho phép bạn cung cấp sản phẩm và dịch vụ của bạn 24/7 mà không cần sự can thiệp thường xuyên.
Thị trường mở rộng: Bạn có thể tập trung vào nhiều thị trường khác nhau, thậm chí cả quốc tế, nếu bạn muốn mở rộng doanh nghiệp của mình
Dễ quản lý và cập nhật: Trang web bán hàng có thể dễ dàng quản lý và cập nhật thông tin sản phẩm, giá cả và lựa chọn thanh toán
Thiết kế sáng tạo: Nếu bạn quan tâm đến phát triển kỹ năng thiết kế web và trải nghiệm người dùng,
Tạo thương hiệu: Trang web bán hàng của bạn có thể giúp bạn xây dựng và thúc đẩy thương hiệu cá nhân hoặc doanh nghiệp của bạn.
Khách thể và đối tượng nghiên cứu
Đối tượng nghiên cứu : Xây dựng một trang wep bán điện thoại cơ bản Các công cụ để xây dựng trang web:
- Sử dụng các ngôn ngữ lập trình như Python và HTML , CSS, Js
- Sử dụng các công cụ như Visual Code, thư viện Django để lập trình, thiết kế giao diện.
Giới hạn và phạm vi nghiên cứu
- Phạm vi xoay quanh các doanh nghiệp nhỏ, tuân theo nghiệp vụ quản lý bán hàng của trang web, đảm bảo đầy đủ các chức năng cần có của một trang web nhằm hỗ trợ quản lý bán hàng theo cách đơn giản, tiện ích mà hiệu quả.
Phương pháp nghiên cứu
- Tham khảo, nghiên cứu thiết kế từ các trang web lớn như Shoppee, Lazada, Cellphones,…
- Tìm và đọc các bài tập lớn về công nghệ phần mềm
- Thu thập thông tin dữ liệu từ các trang web có sẵn, dựa vào công cụ hỗ trợ để xây dựng chương trình mới.
Các giai đoạn thực hiện
Bước đầu tiên trong quá trình phát triển là thu thập thông tin toàn diện, bao gồm nghiên cứu nhu cầu của khách hàng, các phương pháp quản lý website bán hàng của các cửa hàng điện thoại, đánh giá các phần mềm trong nước và quốc tế, cũng như tham khảo tài liệu liên quan Đồng thời, cần tìm hiểu các trang web phổ biến, tìm hiểu các công cụ và ngôn ngữ lập trình, cùng kiến thức nền tảng về chủ đề.
- Giai đoạn 2: Nghiên cứu vấn đề: Nắm rõ các vai trò và chức năng của các công cụ hỗ trợ, ngôn ngữ lập trình Tìm hiểu cách xây dựng trang web, mô hình bán hàng khác để đề ra phương án giải quyết thích hợp
- Giai đoạn 3: Xây dựng trang web: Dựa vào các thông tin đã tham khảo đã tìm hiểu và nguồn kiến thức với các dữ liệu đã thu thập được, xây dựng trang web theo các công cụ và ngôn ngữ lập trình đã đề ra
- Giai đoạn 4: Kiểm thử web: Chạy demo, kiểm thử trang web, xem xét và đánh giá thiết kế cũng như hiệu quả của từng chức năng Sửa lỗi và hoàn thiện web
- GIai đoạn 5: Kết luận: Tổng kết, viết báo cáo, rút ra kết luận chung cho đề tài.
PHÂN TÍCH YÊU CẦU
Xác định yêu cầu
1.Giao diện đễ sử dụng.
Phải có giao diện dễ sử dụng và thân thiện với người dùng để đảm bảo khách hàng có trải nghiệm mua sắm thoải mái.
Chức năng tìm kiếm sản phẩm theo tên, loại, giá cả để người dùng có thể dễ dàng tìm kiếm sản phẩm mình muốn.
3 Giỏ Hàng và Thanh toán trực tuyến.
Người dùng có thể thêm sản phẩm vào giỏ hàng, xem lại giỏ hàng và thanh toán trực tuyến thông qua cổng thanh toán an toàn
4.Có tính bảo mật Hệ thống đảm bảo tính bảo mật, có biện pháp bảo vệ dữ liệu khách hàng và giao dịch trực tuyến
2.1.2 Đối với chủ sở hữu.
2.1.1.1.Về hợp đồng với bên phát triển
- Kinh phí phải nằm trong mức cho phép (bao gồm tất cả các dủi do phát sinh về chi phí trong khi phát triển và sử dụng).
- Thời gian thực hiện: thơi gian thực hiện được thỏa thuận một khoảng thời gian nhất định và có thể thương lượng thêm khi có sự cố sảy ra
- Bảo trì và nâng cấp: trong thời gian hợp đồng còn thời hạn việc bảo trì sẽ được bên phát triển hệ thống đảm nhận Việc nâng cấp sẽ thông qua thương lượng 2 bên.
Chỉ có quản lý mới được quyền truy cập toàn bộ chức năng của trang web, như kiểm tra thông tin về người dùng, thống kê số lượng hàng,…
- Hệ thống quản trị cho phép người quản trị thêm, sửa, xóa sản phẩm và quản lý đơn hàng của khách hàng.
- Có chức năng quản lí sản phẩm và đơn hàng cho người quản trị.
- Lưu trữ các thông tin cần thiết về sản phẩm và khách hàng
- Đảm bảo hiệu suất ổn định và thời gian tải trang nhanh chóng
2.1.3 Đối với bên phát triển.
- Cung cấp đủ các dũ liệu và nguồn lực để có thể phát triển và hoàn thành dự án
- Thanh toán đúng hạn và đảm bảo các yêu cầu lao động trong hợp đồng.
- Đối tượng phục vụ của web bán hàng là người dùng và quản lý, đối với phần mềm thì người chịu trách nhiệm toàn bộ sự hoạt động của phần mềm là người quản trị hệ thống
- Người quản trị thường có kiến thức am hiểu tin học nhất trong cơ quan, thực hiện các thao tác trên phần mềm với sự ủy nhiệm của người có trách nhiệm như quản lý,giám đốc,…
- Phần mềm cần có các chức năng sau:
Đăng ký, đăng nhập thành viên
Xem, sửa, xóa thông tin sản phẩm
Xem, sửa, xóa thông tin khách hàng
Chức năng giỏ hàng : thêm, xóa sản phẩm
Quản lý thông tin: quản lý thông tin danh mục sản phẩm, quản lý đơn hàng, quản lý khách hàng…
2.2.2 Yêu cầu phi chức năng:
- Giao diện web thân thiện với người dùng, tương thích trên các thiết bị khác nhau
- Hệ thống cung cấp các thông báo và hướng dẫn rõ ràng để hỗ trợ người dùng trong cách sử dụng web
- Hệ thống đảm bảo tính bảo mật, có biện pháp bảo vệ dữ liệu khách hàng và giao dịch trực tuyến
- Đảm bảo hiệu suất ổn định và thời gian tải trang nhanh chóng
- Phải có tính năng tích hợp các phương thức thanh toán.
ĐẶC TẢ CÁC USECASE
Xác định các đối tượng sử dụng
3.1.1 User (người truy cập website) :
- Xem website, thông tin sản phẩm
- Tìm kiếm thông tin sản phẩm
- Có thể thực hiện giao dịch
- Quản lý các hoạt động của trang web
- Thêm, sửa, xóa khách hàng
- Thêm, sửa, xóa sản phẩm
Xây dựng biểu đồ usecase
3.2.1 Usecase “Tổng quát hệ thống”
Xem thông 琀椀n Tìm kiếm Đăng kí
Thêm vào giỏ Đăng kí Thành viên Liên hệ
Quản Lí SP Quản lí KH
Quản lí hóa đơn Đăng nhập
\ Đăng nhập Kiểm tra Xác nhận thông 琀椀n
Chức năng này cho phép người dùng đăng nhập vào hệ thống để sử dụng các chức năng của chương trình
Usecase này bắt đầu khi người sử dụng chạy chương trình Hệ thống sẽ kiểm tra tính hợp lệ của Tài Khoản và Mật khẩu Nếu đúng sẽ đưa ra thông báo nhóm sử dụng của người dùng và hiện màn hình giao diện chính của chương trìnhvới hệ thống menu hiển thị phù hợp với chức năng của người đăng nhập, phụ thuộc vào nhóm sử dụng của tên đăng nhập đó Ngược lại, sẽ đưa ra thông báo lỗi và yêu cầu người dùng Đăng nhập lại – Điều kiện bổ sung: Nếu người dùng chưa nhập giá trị gì vào Username và
Password mà nhấn chuột vào nút đăng nhập thì coi trường hơp Tên đăng nhập và Mật khẩu là không hợp lệ.
Chức năng này cho phép người dùng đăng kí thành viên để đang nhập và sử dụng các dịch vụ của chương trình.
Khi điền thông tin đăng kí hệ thống sẽ kiểm tra các điều kiện về thông tin , nếu thỏa mãn thông tin sẽ được lưu vào hệ thống và người dung có thể đăng nhập theo thông tin được đăng kí Nếu thông tin đăng kí k thỏa mãn điều kiện sẽ hiện thông báo đề nghị nhập lại thông tin
Yêu cầu: nhập đúng các thông tin cá nhân được yêu cầu
Dòng sự kiện phụ: Nếu người dùng nhấn vào nút “Thoát”, usecase kết thúc Form được đóng lại Đăng kí Kiểm tra Xác nhận điều kiện Điền thông
3.1.4 Usecase “quản lý giỏ hàng”:
Cho phép người dung xem các mặt hàng đã được thêm vào giỏ , sửa số lượng hoặc xóa các sản phẩm sau khi thao tác thêm, sửa , xóa nội dung sẽ đucợ thêm vào hoặc xóa hoàn toàn khỏi cơ sở dữ liệu
Yêu cầu: đăng nhập đểu sử dụng
- Khách hàng click vào ô tìm kiếm sản phẩm Hệ thống hiển thị form tìm kiếm: tìm kiếm theo tên sản phẩm, giá cả, loại sản phẩm,…
- Khách hàng nhập thông tin cần thiết vào form tìm kiếm và nhấn nút tìm kiếm
- Hệ thống hiển thị kết quả tìm kiếm:
Hiển thị thành công nếu đúng thông tin tìm kiếm
Hiển thị không thành công nếu không đúng thông tin tìm kiếm
Người dùng Đăng nhập Xóa
3.1.6 Usecase “Quản lý thông tin điện thoại‘’
Chức năng này cho phép người dùng quản lý các thông tin của điện thoại trong trang wep (tên, giá, số lượng, danh mục) sau khi thao tác thêm, sửa, xóa nội dung sẽ đucợ thêm vào hoặc xóa hoàn toàn khỏi cơ sở dữ liệu.
Yêu cầu: đăng nhập để sử dụng điền đầy đủ nội dung sản phẩm trước khi thêm. kiểm tra thông tin trước khi sửa, xóa sản phẩm.
3.1.7 Usecase “Quản lý nhà cung cấp ‘’
TT điện thoại Đăng nhập
Sửa Quản lý Đăng nhập
Chức năng quản lý thông tin nhà cung cấp cho phép người dùng quản lý thông tin chi tiết của từng nhà cung cấp sản phẩm trên trang web, bao gồm họ tên, số điện thoại, Khi người dùng thực hiện các thao tác thêm, sửa, xóa thông tin, hệ thống sẽ tự động thêm hoặc xóa các thông tin tương ứng trong cơ sở dữ liệu.
Yêu cầu: đăng nhập để sử dụng điền đầy đủ nội dung nhà cung cấp trước khi thêm kiểm tra thông tin trước khi sửa, xóa nhà cung cấp
3.1.8 Usecase “Quản lý hóa đơn bán ‘’
Chức năng này cho phép người dùng quản lý các thông tin của nhà cung cấp các sản phẩm trong trang wep (tên, sdt , ) sau khi thao tác thêm, sửa , xóa nội dung sẽ đucợ thêm vào hoặc xóa hoàn toàn khỏi cơ sở dữ liệu
Yêu cầu: đăng nhập để sử dụng điền đầy đủ nội dung nhà cung cấp trước khi thêm kiểm tra thông tin trước khi sửa , xóa nhà cung cấp
3.1.9 Usecase “Quản lý khách hàng “
Chức năng này cho phép người dùng quản lý các thông tin khách hàng trong trang wep.(tên , sdt , ) sau khi thao tác thêm , sửa , xóa nội dung sẽ đucợ thêm vào hoặc xóa hoàn toàn khỏi cơ sở dữ liệu
Yêu cầu : đăng nhập để sử dụng điền đầy đủ nội dung khách trước khi thêm kiểm tra thông tin trước khi sửa , xóa.
Biểu đồ hoạt động của các usecase
3.3.4 Tiếp nhận và sử lí đơn hàng
Mô hình hóa tương tắc trong các usecase – biểu đồ tuần tự
3.4.1 Use case đăng ký thành viên
3.4.4 Mua hàng và tiếp nhận đơn hàng
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Xây dụng các lớp cơ sở dữ liệu
Name Quantity Price Category Supplier Quantity
Customer Order Address City State Phone numer
4.1.2 Chi tiết các lớp đối tượng :
STT Tên thuộc tính Ràng buộc Ý nghĩa
1 Name Primary key Họ tên
STT Tên phương thức Ghi chú
STT Tên thuộc tính Ràng buộc Ý nghĩa
1 Name Primary key Tên sản phẩm
STT Tên phương thức Ghi chú
STT Tên thuộc tính Ràng buộc Ý nghĩa
1 Customer Primary key Khách hàng
2 Order items Đặt sản phẩm
STT Tên phương thức Ghi chú
4.Lớp Shipping Addess (Địa chỉ giao hàng) :
STT Tên thuộc tính Ràng buộc Ý nghĩa
1 Customer Primary key Khách hàng
6 Phone number Số điện thoại
STT Tên phương thức Ghi chú
5.Lớp Supplier (Nhà cung cấp) :
STT Tên thuộc tính Ràng buộc Ý nghĩa
STT Tên phương thức Ghi chú
STT Tên thuộc tính Ràng buộc Ý nghĩa
1 Customer Primary key Khách hàng
6 Phone number Số điện thoại
STT Tên phương thức Ghi chú
hệ thống chức năng chính của chương trình
STT Tên chức năng Tên form Cách chọn từ chương trình
1 Đăng nhập Login Là giao diện của form đăng nhập
2 Đăng kí Register Là giao diện của form đăng kí
3 Trang chủ Trang chủ Là giao diện của form trang chủ
4 Admin Admin Là giao diện của trang quản lí
5 Giỏ Hàng Cart Là giao diện chủa trang giỏ hàng
6 Thanh toán Checkout Là giao diện của trang thanh toán
7 Hóa đơn Payment Là giao diện của trang hóa đơn.
8 Trang phân loại Catrgory Là giao diện của trang phân loại sản phẩm
9 Đăng xuất Logout Quay chở lại giao diện đăng nhập hoặc đăng kí
10 Tìm kiếm Search Là giao diện của trang tìm kiếm
11 Chi tiết sản phẩm Detail Là giao diện của trang chi tiết
Mô tả chi tiết từng chức năng
4.2.1, Form đăng nhập Để truy cập một số trang liên quan đến cá nhân như giỏ hàng và thanh toán cũng như mua hàng thì người dung bắt buộc phải đăng nhập vào hệ thống
Khi đăng nhập thành công bằng tên đăng nhập và mật khẩu chính xác, người dùng sẽ được phép truy cập vào tài khoản của mình Sau khi đăng nhập, người dùng có thể thực hiện các giao dịch như mua hàng, thanh toán, xem giỏ hàng, sửa đổi, xóa hoặc thêm sản phẩm vào giỏ hàng.
Khi nhập sai tên đăng nhập, hệ thống sẽ hiển thị thông báo lỗi "Sai tên đăng nhập hoặc mật khẩu" Để khắc phục, bạn có thể kiểm tra lại thông tin đã nhập và nhập lại chính xác Trong trường hợp chưa có tài khoản, bạn có thể tạo tài khoản mới bằng cách nhấn vào tùy chọn "Tạo tài khoản".
Nếu chưa có tài khoản bạn có thể tạo mới tài khoản sử dụng thông tin cá nhân của mình Để tạo tài khoản bạn cần nhập đúng hông tin cá nhân để đảm bảo sự chính xác và tránh nhầm lẫn khi đặt hàng và thanh toán
Bạn cần nhập thông tin tài khoản dựa trên một số yêu cầu được đưa ra : đúng email , mật khẩu mạnh …
Sau khi tạo tài khoản thành công hệ thống sẽ chuyển dến trang đăng nhập lúc này bạn có thể sử dụng tài khoản vừa tạo để đăng nhập và sử dụng hệ thống
Là trang chính của trang wep trưng bày các sản phẩm, quảng cáo , để người mua có thể xem xét và lụa chọn
Chứa các đường dẫn sang các phần khác của trang wep và các tính năng hỗ trợ người dung : tìm kiếm , xem thông tin , thêm vào giỏ , lựa chọn …
Một số tính năng được thể hiện trên trang chủ đòi hỏi người dung phải đăng nhập tài khoản thành viên để có thể sử dụng
Trang dành cho người quản lý yêu cầu phải đăng nhập đúng tài khoản và mật khẩu được chỉ định trước để đăng nhập vào trang
Sau khi đăng nhập người quản lý có quyền cập nhập thông tin (thêm, sửa xóa) của các class đước nhắc đến ở trên để phù hợp với công việc kinh doanh hoặc su hướng của người mua hàng nhàm mục đích tang doanh thu hoặc thống kê lại các danh mục có trong trang wep hoặc nâng cấp bảo trì trang wep
Trang admin lưu trữ tất cả các thông tin của trang wep nên cần được bảo mật tránh việc bị lộ thông tin hoặc mất trông tin khách hàng và các thông tin quan trong khác
Yêu cầu người dung phải đăng nhập tài khoản cá nhân để có thể truy cập
Chứa các sản phẩm đã được người dùng lựa chọn trước đó cùng số lượng , giá tiền và tổng tiền của từng mục sản phẩm Người dùng có thể dễ dàng chỉnh sửa số lượng hoặc xóa sản phẩm trong giỏ hàng cũng như thêm mới sản phẩm Để mua mới sản phẩm nhấn checkout để qua trang thanh toán Để quay lại trang chủ nhấn continue shopping hoặc nhấn vào thanh trang chủ
Yêu cầu người dung phải đăng nhập tài khoản cá nhân để có thể truy cập
Chỉ có thể truy cạp thông qua trang giỏ hàng
Chứa các thông tin sản phẩm đã được chọn mua trước đó cùng tổng tiền đơn hàng
Người dùng cần nhập một số thông tin thanh toán như tên , địa chỉ , phương thức thanh toán để có thể hoàn thành thanh toán và xác nhận đơn hàng
Sau khi nhập người dùng nên kiểm tra kĩ lại các thông tin đảm bảo sự chính xác của đơn hàng
Nhấn continue để xác nhận đơn hàng và chuyển đến trang hóa đơn
Sau khi nhập thông tin ở trang checkout và nhấn continue đơn hàng sẽ được xác nhận , người dung được chuyển đến form hóa đơn
Thông tin đơn hàng sẽ được lưu vào database lúc này admin có thể xem xét và chuẩn bị đơn hàng
4.4.8, Form trang phân loại Để thuận tiện cho việc lựa chọn sản phẩm người dùng có thể chọn lựa danh mục sản phẩm quan tâm để loại bỏ đi nhưng mặt hàng ít quan tâm khác
Danh mục sản phẩm có thể chỉnh sửa dễ dàng trong cơ sở dữ liệu thông qua trang quản trị Khi người dùng chọn loại sản phẩm quan tâm, các sản phẩm được gắn nhãn phân loại sẽ hiển thị, giúp người dùng tìm kiếm sản phẩm nhanh chóng và thuận tiện hơn.
Khi nhấn Logout người dùng sẽ thoát khỏi tài khoản đang được đang nhập trên trang wep , người dùng sẽ vẫn có thể xem sản phẩm tuy nhiên không thể thêm vào giỏ , mua hoặc tìm kiếm sản phẩm
4.4.10,Form 琀m kiếm Để tìm kiếm sản phẩm quan tâm người dùng có thể nhập tên sản phẩm vào ô tìm kiếm , nhấn Search để chuyển tới trang chứa sản phẩm mong muốn
4.4.11, Form chi tiết sản phẩm Để biết thêm thông tin chi tiết cũng như các tính năng nổi bật của sản phẩm người dùng có thể nhấn “View” để xem thông tin chi tiết
CÀI ĐẶT HỆ THỐNG
Cài đặt các thư viện
Để cài đặt thư viện Django phải đảm bảo thiết bị đã cài đặt ngôn ngữ Python
Sử dụng câu lệnh này để cài đặt Django trong cmd
Khỏi tạo các class
Tạo các class với thuộc tính đã được đề cập bên trên để có thể lưu trữ và sử dụng
Các class được hỗ trợ bởi thư viện Django với các phương thức ‘thêm , sửa , xóa ’ đã được tích hợp sẵn nên chúng ta chỉ cần khởi tạo các thuộc tinnhs cho từng class với các thuộc tính đã được đề cập ở phần xây dựng cơ sở dữ liệu
Khỏi tạo các thật toán
Thuật toán tìm kiếm dữ liệu từ biểu mẫu tìm kiếm, sau đó sử dụng dữ liệu này để truy vấn cơ sở dữ liệu, tìm các sản phẩm có tên chứa từ khóa tìm kiếm Nếu người dùng đã đăng nhập, thông tin của họ sẽ được lấy, đơn hàng của họ sẽ được tìm hoặc tạo, các mặt hàng trong đơn hàng sẽ được lấy và số lượng các mặt hàng trong giỏ hàng sẽ được tính toán.
Nếu người dùng chưa đăng nhập, các biến items và cartItems được gán giá trị mặc định products = Product.objects.all(): Truy vấn tất cả các sản phẩm từ cơ sở dữ liệu và gán vào biến products. context = {'products': products, 'cartItems': cartItems}: Tạo một từ điển context chứa thông tin sản phẩm và số lượng mặt hàng trong giỏ hàng để truyền vào template return render(request, 'app/search.html', {"searched": searched, "keys": keys,
'products': products, 'cartItems': cartItems}): Cuối cùng, hàm trả về một phản hồi sử dụng hàm render để hiển thị trang web search.html với dữ liệu được truyền qua biến context Dữ liệu tìm kiếm (searched) và danh sách sản phẩm tìm thấy (keys) cũng được truyền đến template để hiển thị kết quả tìm kiếm.
2.Đăng nhập và đăng kí def register(request):function được sử dụng để xử lý trang đăng ký người dùng. khởi tạo một biểu mẫu đăng ký mới (CreateUserForm).
Nếu phương thức yêu cầu là POST, hệ thống sẽ kiểm tra xem biểu mẫu có hợp lệ bằng cách sử dụng hàm form.is_valid() Nếu biểu mẫu hợp lệ, thông tin người dùng mới sẽ được lưu vào cơ sở dữ liệu bằng hàm form.save().
Sau khi đăng ký thành công, chuyển hướng người dùng đến trang đăng nhập
(redirect('login')) def loginPage(request): view function để xử lý trang đăng nhập
Nếu yêu cầu là phương thức POST, nó lấy tên người dùng và mật khẩu từ biểu mẫu đăng nhập và gọi authenticate để xác minh thông tin đăng nhập.
Nếu xác thực thành công, người dùng sẽ được đăng nhập (login(request, user)) và chuyển hướng đến trang chính (home).
Nếu xác thực không thành công, một thông báo lỗi sẽ được hiển thị
(messages.info(request, 'user or password not correct !!! ')). def logoutPage(request): view function để xử lý việc đăng xuất người dùng.
Khi người dùng đăng xuất, họ sẽ được chuyển hướng đến trang đăng nhập (login).
Nhập và xuất thông tin giỏ hàng
if request.user.is_authenticated:
Hàm kiểm tra xem người dùng đã đăng nhập hay chưa customer = request.user:
Nếu người dùng đã đăng nhập, lấy thông tin người dùng hiện tại và gán cho biến customer
Tìm kiếm hoặc tạo đơn hàng cho người dùng hiện tại Nếu đơn hàng đã tồn tại, nó sẽ được trả về, ngược lại thì một đơn hàng mới sẽ được tạo.
Lấy tất cả các mặt hàng trong đơn hàng (nếu có) bằng cách truy vấn tất cả các OrderItem liên quan đến đơn hàng này. cartItems = order.get_cart_items:
Lấy số lượng các mặt hàng trong giỏ hàng của đơn hàng thông qua phương thức get_cart_items
Nếu người dùng chưa đăng nhập (hoặc không có đơn hàng), các biến items và cartItems được gán giá trị mặc định active_category = request.GET.get('category', ''): return render(request, 'app/cart.html', context):
Cuối cùng, hàm trả về một phản hồi sử dụng hàm render để hiển thị trang web cart.html với dữ liệu được truyền qua biến context.Thông tin về danh mục, mặt hàng và đơn hàng được truyền vào template để hiển thị cho người dùng
4.Lưu thông tin đơn hàng và địa chỉ if request.method == 'POST':
Hàm kiểm tra xem yêu cầu từ trình duyệt là phương thức POST (người dùng đã gửi thông tin thanh toán) hay không. name = request.POST.get('name'), email = request.POST.get('email'), và các biến tương tự:
Lấy thông tin người dùng đã nhập từ biểu mẫu thanh toán bằng cách sử dụng request.POST.get()
Nếu người dùng đã đăng nhập (request.user.is_authenticated), hàm này lấy thông tin người dùng hiện tại và tạo một đơn hàng liên quan đến người dùng đó (hoặc tìm đơn hàng đã tồn tại) Sau đó, nó tạo một đối tượng ShippingAddress (địa chỉ giao hàng) và lưu thông tin giao hàng vào cơ sở dữ liệu
Sau khi thông tin thanh toán và địa chỉ giao hàng đã được lưu vào cơ sở dữ liệu, hàm chuyển hướng người dùng đến trang thanh toán hoặc trang tiếp theo của quy trình thanh toán (trang có tên payment).
Nếu yêu cầu không phải là phương thức POST hoặc người dùng chưa đăng nhập, hàm tiếp tục xử lý bằng cách lấy thông tin giỏ hàng (nếu có) và danh mục sản phẩm để hiển thị trên trang thanh toán.
Cuối cùng, hàm trả về một phản hồi sử dụng hàm render để hiển thị trang web checkout.html Dữ liệu về danh mục, mặt hàng và đơn hàng được truyền vào template để hiển thị cho người dùng Thông tin giao hàng có thể được nhập bởi người dùng trên trang web và sau đó được gửi lại dưới dạng yêu cầu POST để xử lý
5.Lưu và xuất hóa đơn if request.user.is_authenticated:: Hàm kiểm tra xem người dùng đã đăng nhập hay chưa order = Order.objects.get(customer=customer, completese): Lấy đơn hàng chưa hoàn thành của người dùng hiện tại (nếu có) shipping_address = ShippingAddress.objects.filter(customer=customer, order=order).first(): Lấy địa chỉ giao hàng của đơn hàng này (nếu có) Đoạn mã này sử dụng filter để tìm các địa chỉ giao hàng liên quan đến đơn hàng của người dùng và sau đó lấy địa chỉ giao hàng đầu tiên bằng first()
Kiểm tra xem order và shipping_address có tồn tại Nếu có, hàm tiếp tục xử lý để tạo hóa đơn thanh toán
Tạo một danh sách order_items bằng cách lấy tất cả các OrderItem liên quan đến đơn hàng
Tính tổng giá trị đơn hàng bằng cách gọi order.get_cart_total().
Tạo đối tượng hóa đơn và lưu trữ thông tin hóa đơn vào cơ sở dữ liệu, bao gồm thông tin khách hàng, địa chỉ giao hàng, giá trị đơn hàng và danh sách các mục trong đơn hàng.
Cuối cùng, hàm trả về phản hồi sử dụng hàm render để hiển thị trang thanh toán (payment.html) với thông tin hóa đơn và thông tin thanh toán của người dùng.
Nếu thiếu thông tin đơn hàng hoặc địa chỉ giao hàng thì hàm vẫn trả về trang thanh toán nhưng không hiển thị thông tin hóa đơn hoặc thanh toán.
Trang chủ
4 Admin Admin Là giao diện của trang quản lí
5 Giỏ Hàng Cart Là giao diện chủa trang giỏ hàng
6 Thanh toán Checkout Là giao diện của trang thanh toán
7 Hóa đơn Payment Là giao diện của trang hóa đơn.
8 Trang phân loại Catrgory Là giao diện của trang phân loại sản phẩm
9 Đăng xuất Logout Quay chở lại giao diện đăng nhập hoặc đăng kí
10 Tìm kiếm Search Là giao diện của trang tìm kiếm
11 Chi tiết sản phẩm Detail Là giao diện của trang chi tiết sản phẩm 4.2 Mô tả chi tiết từng chức năng
4.2.1, Form đăng nhập Để truy cập một số trang liên quan đến cá nhân như giỏ hàng và thanh toán cũng như mua hàng thì người dung bắt buộc phải đăng nhập vào hệ thống
Khi đăng nhập thành công, người dùng có thể truy cập tài khoản cá nhân, thực hiện các thao tác như mua hàng, thanh toán, xem giỏ hàng và quản lý sản phẩm trong giỏ Cụ thể, người dùng có thể chỉnh sửa, thêm hoặc xóa các sản phẩm theo nhu cầu.
Nếu nhập sai tên đăng nhập sẽ hiện thông báo sai tên đăng nhập hoặc mật khẩu lúc này bạn có thể kiểm tra lại và nhập lại thông tin hoặc tạo tài khoản mới
Nếu chưa có tài khoản bạn có thể tạo mới tài khoản sử dụng thông tin cá nhân của mình Để tạo tài khoản bạn cần nhập đúng hông tin cá nhân để đảm bảo sự chính xác và tránh nhầm lẫn khi đặt hàng và thanh toán
Bạn cần nhập thông tin tài khoản dựa trên một số yêu cầu được đưa ra : đúng email , mật khẩu mạnh …
Sau khi tạo tài khoản thành công hệ thống sẽ chuyển dến trang đăng nhập lúc này bạn có thể sử dụng tài khoản vừa tạo để đăng nhập và sử dụng hệ thống
Là trang chính của trang wep trưng bày các sản phẩm, quảng cáo , để người mua có thể xem xét và lụa chọn
Chứa các đường dẫn sang các phần khác của trang wep và các tính năng hỗ trợ người dung : tìm kiếm , xem thông tin , thêm vào giỏ , lựa chọn …
Một số tính năng được thể hiện trên trang chủ đòi hỏi người dung phải đăng nhập tài khoản thành viên để có thể sử dụng
Trang dành cho người quản lý yêu cầu phải đăng nhập đúng tài khoản và mật khẩu được chỉ định trước để đăng nhập vào trang
Sau khi đăng nhập người quản lý có quyền cập nhập thông tin (thêm, sửa xóa) của các class đước nhắc đến ở trên để phù hợp với công việc kinh doanh hoặc su hướng của người mua hàng nhàm mục đích tang doanh thu hoặc thống kê lại các danh mục có trong trang wep hoặc nâng cấp bảo trì trang wep
Trang quản trị lưu trữ toàn bộ thông tin của website, đóng vai trò vô cùng quan trọng Do đó, cần đảm bảo tính bảo mật tuyệt đối cho trang quản trị để tránh tình trạng bị lộ thông tin hoặc mất dữ liệu của khách hàng cũng như các thông tin quan trọng khác.
Yêu cầu người dung phải đăng nhập tài khoản cá nhân để có thể truy cập
Chứa các sản phẩm đã được người dùng lựa chọn trước đó cùng số lượng , giá tiền và tổng tiền của từng mục sản phẩm Người dùng có thể dễ dàng chỉnh sửa số lượng hoặc xóa sản phẩm trong giỏ hàng cũng như thêm mới sản phẩm Để mua mới sản phẩm nhấn checkout để qua trang thanh toán Để quay lại trang chủ nhấn continue shopping hoặc nhấn vào thanh trang chủ
Yêu cầu người dung phải đăng nhập tài khoản cá nhân để có thể truy cập
Chỉ có thể truy cạp thông qua trang giỏ hàng
Chứa các thông tin sản phẩm đã được chọn mua trước đó cùng tổng tiền đơn hàng
Để hoàn tất thanh toán và xác nhận đơn hàng, người dùng cần nhập thông tin thanh toán cá nhân, bao gồm tên, địa chỉ và phương thức thanh toán mong muốn Bước này rất quan trọng để đảm bảo giao dịch được xử lý chính xác và hàng hóa được giao đến đúng địa chỉ.
Sau khi nhập người dùng nên kiểm tra kĩ lại các thông tin đảm bảo sự chính xác của đơn hàng
Nhấn continue để xác nhận đơn hàng và chuyển đến trang hóa đơn
Sau khi nhập thông tin ở trang checkout và nhấn continue đơn hàng sẽ được xác nhận , người dung được chuyển đến form hóa đơn
Thông tin đơn hàng sẽ được lưu vào database lúc này admin có thể xem xét và chuẩn bị đơn hàng
4.4.8, Form trang phân loại Để thuận tiện cho việc lựa chọn sản phẩm người dùng có thể chọn lựa danh mục sản phẩm quan tâm để loại bỏ đi nhưng mặt hàng ít quan tâm khác
Phần danh mục có thể được chỉnh sửa trong cơ sở dữ liệu của trang admin Các sản phẩm được gắn nhãn phân loại sẽ được hiển thị khi người dung chọn loại sản phẩm quan tâm
Khi nhấn Logout người dùng sẽ thoát khỏi tài khoản đang được đang nhập trên trang wep , người dùng sẽ vẫn có thể xem sản phẩm tuy nhiên không thể thêm vào giỏ , mua hoặc tìm kiếm sản phẩm
4.4.10,Form 琀m kiếm Để tìm kiếm sản phẩm quan tâm người dùng có thể nhập tên sản phẩm vào ô tìm kiếm , nhấn Search để chuyển tới trang chứa sản phẩm mong muốn
Mục 4.4.11, "Chi tiết sản phẩm" cung cấp thông tin sâu hơn về sản phẩm Người dùng có thể nhấp vào nút "Xem" để biết thêm về thông số kỹ thuật và tính năng chính của sản phẩm.
CHƯƠNG 5 CÀI ĐẶT HỆ THỐNG
5.1.Cài đặt các thư viện Để cài đặt thư viện Django phải đảm bảo thiết bị đã cài đặt ngôn ngữ Python
Sử dụng câu lệnh này để cài đặt Django trong cmd
Tạo các class với thuộc tính đã được đề cập bên trên để có thể lưu trữ và sử dụng
Các class được hỗ trợ bởi thư viện Django với các phương thức ‘thêm , sửa , xóa ’ đã được tích hợp sẵn nên chúng ta chỉ cần khởi tạo các thuộc tinnhs cho từng class với các thuộc tính đã được đề cập ở phần xây dựng cơ sở dữ liệu
5.3 Khỏi tạo các thật toán
PHA BẢO TRÌ VÀ NÂNG CẤP
Tại sao cần bảo trì ?
Bảo trì là một phần quan trọng của quá trình duy trì và vận hành trang web bất kỳ. Một số lý do cần bảo trì trang wep thường xuyên Đảm Bảo Sự Ổn Định: Bảo trì định kỳ giúp đảm bảo rằng trang web của bạn hoạt động ổn định và không gặp phải lỗi hoặc sự cố hệ thống không mong muốn Sự ổn định là quan trọng để cung cấp trải nghiệm tốt cho người dùng.
Bảo Mật: Bảo trì bao gồm cập nhật và kiểm tra bảo mật của trang web Bảo mật là yếu tố quan trọng để đảm bảo rằng dữ liệu khách hàng và giao dịch được bảo vệ khỏi các cuộc tấn công mạng và lừa đảo
Cập Nhật Phần Mềm: Các phần mềm và framework sử dụng để xây dựng trang web thường cần được cập nhật để bảo đảm tính bảo mật và khả năng tương thích với các phiên bản mới của trình duyệt và hệ điều hành
Thêm Tính Năng Mới: Bảo trì không chỉ là việc duy trì trạng thái hiện tại mà còn có thể bao gồm việc thêm tính năng mới để cải thiện trải nghiệm của người dùng và tăng khả năng cạnh tranh.
Bảo trì trang web không chỉ bao gồm việc sửa chữa sự cố mà còn bao gồm cả việc kiểm tra và tối ưu hóa hiệu suất của trang web Bằng cách đảm bảo rằng trang web hoạt động nhanh chóng và hiệu quả, quá trình bảo trì giúp cải thiện trải nghiệm người dùng và duy trì hiệu suất tổng thể của trang web.
Sao Lưu Dữ Liệu: Bảo trì bao gồm việc thực hiện sao lưu định kỳ của dữ liệu trang web Điều này có nghĩa là bạn có khả năng khôi phục dữ liệu nếu xảy ra sự cố hoặc mất dữ liệu
Giảm Rủi Ro: Bảo trì định kỳ giúp giảm nguy cơ sự cố hệ thống đột ngột và giảm nguy cơ tiềm ẩn cho trang web
Tránh Thất Thoát Tài Chính: Bảo trì định kỳ giúp bạn tránh thất thoát tài chính do sự cố hệ thống không mong muốn hoặc cuộc tấn công mạng.
Tránh Mất Khách Hàng: Nếu trang web của bạn không được bảo trì và trải qua sự cố thường xuyên, điều này có thể dẫn đến mất khách hàng và danh tiếng tồi tệ
Tuân thủ pháp luật là một khía cạnh quan trọng của việc bảo trì, đảm bảo rằng website tuân thủ các quy định và luật pháp liên quan đến bảo mật và quyền riêng tư trực tuyến Điều này bao gồm việc bảo vệ thông tin cá nhân của người dùng, tuân thủ các quy định về cookie và thực hiện các biện pháp cần thiết để ngăn chặn việc sử dụng trái phép dữ liệu người dùng.
Tóm lại, bảo trì đóng vai trò quan trọng trong việc duy trì và vận hành trang web bán hàng hiệu quả Bằng cách bảo trì thường xuyên, doanh nghiệp có thể đảm bảo ổn định hệ thống, đáp ứng tiêu chuẩn bảo mật và thích ứng với những thay đổi liên tục trong môi trường trực tuyến luôn biến động.
các kế hoạch bảo trì
Kiểm tra và ghi nhận các lỗi hoặc sự cố hệ thống Đảm bảo sao lưu hệ thống và dữ liệu định kỳ để đối phó với mất dữ liệu.
Theo dõi hiệu suất trang web và tối ưu hóa nếu cần thiết
Cập nhật nội dung mới, sản phẩm và thông tin liên hệ.
Thực hiện cập nhật hệ thống và phần mềm để bảo đảm tính bảo mật và sự ổn định.
Kiểm tra bảo mật và thực hiện các biện pháp bảo mật cần thiết, bao gồm cả SSL và bảo mật thanh toán.
Kiểm tra và đảm bảo tích hợp đúng đắn với các bên thứ ba như cổng thanh toán và dịch vụ vận chuyển.
Theo dõi và xử lý các yêu cầu hỗ trợ từ khách hàng.
Nâng cấp cải tiến
Lắng nghe phản hồi của người dùng và thực hiện cải tiến dựa trên phản hồi đó
Thêm tính năng mới để tăng trải nghiệm của người dùng hoặc cải thiện quy trình mua hàng. Điều chỉnh giá cả và chính sách để cạnh tranh hiệu quả trên thị trường
CHƯƠNG 7 Pha Thôi Sử Dụng.
Xác định Lý Do Thôi Sử Dụng:
Xác định lý do chính để thôi sử dụng trang web bán hàng Có thể là do thay đổi nhu cầu kinh doanh, không có nguồn tài trợ, hoặc không còn có khách hàng sử dụng
Thông Báo Cho Khách Hàng:
Nếu trang web vẫn đang được sử dụng bởi khách hàng, cần thông báo về quyết định thôi sử dụng và cung cấp thông tin về thời gian và cách sao lưu dữ liệu cá nhân của họ
Lưu Trữ Dự Án và Dữ Liệu:
Lưu trữ dự án và dữ liệu của trang web một cách an toàn để đảm bảo khả năng truy cập trong tương lai hoặc để duy trì lịch sử dự án Dữ liệu này có thể hữu ích cho các mục đích kỷ niệm hoặc phân tích. Đóng Cửa Trang Web:
Sau khi đã sao lưu và lưu trữ đầy đủ dữ liệu, đóng cửa trang web Có thể đóng cửa trang web hoặc chỉ đóng cửa các tính năng mua sắm trực tuyến và duyệt trang web để hiển thị thông báo về việc thôi sử dụng.
Giải quyết Tài Chính: Điều này liên quan đến việc xem xét tài chính và giải quyết các khoản nợ hoặc hợp đồng với các đối tác liên quan đến trang web bán hàng
Cung cấp sự hỗ trợ cần thiết cho khách hàng để họ có thể tự giải quyết vấn đề hoặc trợ giúp họ trong việc sao lưu hoặc chuyển dữ liệu sang các nền tảng hoặc trang web khác khi cần thiết.
- Xây dựng được trang web bán hàng trực tuyến đơn giản, dễ sử dụng , dễ tiếp cận.
- Sử dụng đầy đủ các chức năng cần có của một trang web bán hàng.
- Web đáp ứng được phần lớn các nhu cầu cơ bản của người dùng cũng như khách hàng
- Củng cố, hiểu hơn về ngôn ngữ lập trình và công cụ hỗ trợ xây dựng trang web.
- Nắm được các bước cơ bản để có thể thiết kế xây dựng và phát triển 1 phầm mềm dựa theo nhung nội dung đề ra
- Hiểu dõ tầm quan trọng của công nghệ phầm mềm trong phát triển và xây dụng phầm mềm trong các dự án thực qua đó nâng cao hiệu quả , năng xuất công việc cũng như phầm mềm được phát triển
- Hoàn thiện về hệ thống quản lý bán hàng, hệ thống UI đầy đủ hơn.
- Phát triển thêm các chức năng mới hỗ trợ cho người dùng đa nền tảng.
- Phát triển thêm về giao diện, đồ họa để người dùng dễ tiếp cận, làm quen, dễ thao tác
- Phát triển thêm về hướng cá nhân hóa cho các doanh nghiệp nhỏ để dễ dàng tùy chỉnh theo phong cách của từng người.
Django documentation | Django documentation | Django (djangoproject.com) https://www.youtube.com/playlist?list=PLUocOGc7RDELdt7CdN3no1reQ4QRSfXdY
Bootstrap ã The most popular HTML, CSS, and JS library in the world (getbootstrap.com)