Đăng ký Đăng nhập
Trang chủ Xây dựng plugin bán vé trên magento 2...

Tài liệu Xây dựng plugin bán vé trên magento 2

.DOC
76
2876
113

Mô tả:

MỤC LỤC LỜI CẢM ƠN 1 DANH MỤC VIẾT TẮT 2 ĐẶT VẤN ĐỀ 3 CHƯƠNG I: CỞ SỞ LÍ THUYẾT 6 1. Tổng quan về thương mại điện tử 6 1.1. Khái niệm 6 1.2. Đặc điểm của thương mại điện tử khác với thương mại thông thường 6 1.3. Ứng dụng trong thực tiễn đời sống 7 2. Mã nguồn mở Magento 2 7 2.1. Lịch sử ra đời và phát triển 7 2.2. Các thay đổi của magento 2 so với magento 1.x 8 2.3. Cấu trúc của một website làm bằng Magento 2 15 2.4. Đặc điểm nổi bật của Magento 2 16 3. Giới thiệu các công nghệ sử dụng 17 3.1. Ngôn ngữ lập trình PHP 5 17 3.2. Giới thiệu về MySql 5.6 17 3.3. Giới thiệu về Zend Framework 1.x 18 3.4. Giới thiệu về HTML 5 và CSS 3 18 3.5 Giới thiệu hoạt động của Magento 2 19 CHƯƠNG II: PHÂN TÍCH NHIỆM VỤ VÀ LỰA CHỌN GIẢI PHÁP 20 1. Phân tích nhiệm vụ 20 1.1. Phía người dùng 20 1.2. Phía quản trị viên 20 2. Phân tích các chức năng chính của website 20 2.1. Phía người dùng 20 2.2. Phía quản trị viên 21 3. Lựa chọn giải pháp 22 3.1. Giải pháp 22 3.2. Môi trường phát triển 22 3.3. Công cụ phát triển 22 CHƯƠNG III: XÂY DỰNG CHỨC NĂNG BÁN VÉ TRÊN WEBSITE 24 1. Phân tích các chức năng 24 1.1. Chức năng mua hàng online 24 1.2. Chức năng thanh toán online 24 1.3. Chức năng đăng nhập, đăng kí và quản lí thông tin cá nhân 24 1.5. Chức năng tìm kiếm 25 1.6. Chức năng lọc sản phẩm 25 1.7. Giao diện tương thích với các loại thiết bị 25 1.8. Chức năng quản lý sản phẩm 26 1.9. Chức năng quản lý khách hàng 27 1.10. Chức năng quản lý nhóm khách hàng 27 1.11. Chức Pnăng quản lý đơn hàng 27 1.12. Chức năng thống kê 27 1.13. Chức năng phân quyền 28 2. Biểu đồ Use Case tổng quát 28 3. Biểu đồ tuần tự 30 3.1.Biểu đồ xem sản phẩm 30 3.2.Biểu đồ đăng nhập tài khoản khách hàng 30 3.3. Biểu đồ tìm kiếm sản phẩm 31 3.4. Biểu đồ lọc sản phẩm 32 3.5. Biểu đồ mua hàng 33 3.6. Biểu đồ thanh toán 34 3.7. Biểu đồ thêm sản phẩm 35 3.8. Biểu đồ cập nhật thông tin khách hàng 36 3.9. Biểu đồ cập nhật thông tin đơn hàng 37 4. Biểu đồ lớp 38 4.1. Lớp Product 39 4.2. Lớp Category 40 4.3.Lớp Customer 41 4.4.Lớp Order 42 4.5. Lớp Admin 43 CHƯƠNG IV: XÂY DỰNG PLUGIN HỖ TRỢ ĐẶT VÉ 45 1. Plugin Magenest Ticket 45 1.1. Giới thiệu về plugin 45 1.2 Biểu đồ lớp dữ liệu 46 3. Kết Qủa Đạt Được 50 3.1 Phần Backend 50 CHƯƠNG V: TRIỂN KHAI VÀ THỬ NGHIỆM ỨNG DỤNG 60 1. Môi trường triển khai 60 2. Mục tiêu đặt hàng thành công và gửi mã code về cho người dung 60 CHƯƠNG VI: KẾT LUẬN 63 1. Các kết quả đạt được 63 1.1. Ưu điểm 63 1.2. Nhược điểm 63 2. Hướng phát triển trong tương lai 63 TÀI LIỆU THAM KHẢO 64 DANH MỤC HÌNH VẼ Hình 1: Cấu trúc thư mục 10 Hình 2: Bảng đăng nhập 11 Hình 3: Trang chủ 12 Hình 4: Chọn nhóm sản phẩm 13 Hình 5: Cài đặt cơ bản và thiết lập nâng cao 13 Hình 6: Cài đặt cơ bản 14 Hình 7: Danh mục quản trị 15 Hình 8:Bảng database 16 Hình 9: Biểu đồ use case tổng quát 28 Hình 10: Biều đồ tuần tự chi tiết sản phẩm 30 Hình 11: Biều đồ tuần tự đăng nhập tài khoản khách hàng 31 Hình 12: Biều đồ tuần tự tìm kiếm sản phẩm 32 Hình 13: Biều đồ tuần tự chức năng lọc sản phẩm 33 Hình 14: Biều đồ tuần tự chức năng mua hàng 34 Hình 15: Biều đồ tuần tự chức năng thanh toán 35 Hình 16: Biểu đồ tuần tự thêm sản phẩm mới 36 Hình 17: Biểu đồ tuần tự tính năng cập nhật thông tin khách hàng 37 Hình 18: Biều đồ tuần tự chức năng cập nhật đơn hàng 38 Hình 19: Biểu đồ liên kết cơ sở dữ liệu 46 Hình 20: Chức năng tạo Event Ticket Product 50 Hình 21: Giao diện tạo vé 51 Hình 22 : Cấu hình vé của plugin 51 Hình 23: Cấu hình background vé để gửi cho khách 52 Hình 24: Cấu hình các trường vé để gửi cho khách 52 Hình 25: Cấu hình cho plugin 53 Hình 26: Các chức năng của plugin 53 Hình 27: Chức năng tạo địa điểm tổ chức 54 Hình 28: Giao diện insert ,edit sự kiện 54 Hình 29: Chức năng xem sự kiện đã tạo 55 Hình 30: Bảng chi tiết event 55 Hình 31 :Kiểm tra order 56 Hình 32: Chức năng xem vé và check vé sử dụng hay chưa sử dụng 56 Hình 33 : Trang mua sản phẩm khi khách hàng xem 57 Hình 34 : Hình ảnh vé được in ra gửi vào mail cho khách 57 Hình 35: Hình ảnh trang thông tin khách hàng 58 Hình 36: Vé của khách 58 Hình 37: Thông tin về các order 59 Hình 38: Thông tin về sản phẩm 61 Hình 39: Khi chọn vé vào giỏ sẽ có thông báo thanh toán 61 Hình 40: Email gửi về kèm theo vé 62 DANH MỤC BẢNG Bảng 1: Bảng chi tiết lớp product 40 Bảng 2: Bảng chi tiết lớp category 40 Bảng 3: Bảng chi tiết lớp Customer 41 Bảng 4: Bảng chi tiết lớp Order 43 Bảng 5: Bảng chi tiết lớp Admin 44 Bảng 6: Chi tiết Magenest_Ticket_Event 47 Bảng 7: Bảng chi tiết lớp Magenest Ticket Eventoption 47 Bảng 8: Bảng chi tiết Magenest_Ticket_Eventoption_Date 47 Bảng 9: Bảng chi tiết Magenest_Ticket_Eventoption_Session 48 Bảng 10: Bảng chi tiết Magenest_Ticket_Eventoption_Type 49 Bảng 11: Bảng chi tiết Magenest_Ticket_Location 49 Bảng 12: Bảng Chi tiết Magenest_Ticket_Ticket 50 LỜI CẢM ƠN Để có được ngày hôm nay, lời đầu tiên con xin chân thành cảm ơn bố mẹ đã tạo điều kiện cho con ăn học, trưởng thành như ngày hôm nay. Em xin gửi lời cảm ơn sâu sắc tới cô giáo – ThS. Bành Thị Quỳnh Mai đã chỉ bảo, giúp đỡ, tạo điều kiện cho em hoàn thành tốt đồ án này. Cuối cùng em xin cám ơn toàn thể các thầy cô và bạn bè đã chỉ bảo, giúp đỡ em tận tính trong suốt những năm tháng theo học dưới mái trường Bách Khoa thân yêu. Hà Nội, ngày 18 tháng 12 năm 2016 Sinh viên thực hiện: DANH MỤC VIẾT TẮT PHP : Viết tắt của "Hypertext Preprocessor", MySQL : Hệ quản trị cơ sở dữ liệu Js : Viết tắt của javascript WTO : Tổ chức Thương mại thế giới APEC : Tổ chức Hợp tác kinh tế châu Á – Thái Bình Dương MVC : Viết tắt của “model – view –controller” CSS : Viết tắt của “ Cascading Style Sheets” PDO : Viết tắt của “PHP Data Object” ĐẶT VẤN ĐỀ Lời nói đầu Trong vài thập kỉ trở lại đây, với sự bùng nổ của ngành công nghệ thông tin đã mang lại cho chúng ta những thành tựu công nghệ mới, việc này tạo điều kiện cho sự phát triển và ra đời của thương mại điện tử. Bằng việc sử dụng mã nguồn mở các nhà thiết kế, lập trình viên đã tạo ra những website thương mại điện tử với những plugin, theme,extension… giải quyết các vẫn đề nan giải của hình thức mua bán, trao đổi hàng hóa trước đó như thời gian, định mức, số lượng, quản lí .... Để góp phần làm phát triển hơn hệ thống mã nguồn mở Magento 2, trong đồ án tốt nghiệp này em đã lựa chọn đề tài : “ Xây dựng plugin bán vé trên magento 2“ Nhu cầu thực tế Với đồ án này, em xin được trình bày chi tiết phân tích, thiết kế và xây dựng ứng dụng bán vé trên nền tảng mã nguồn mở Magento 2. Thông tin lấy về sẽ từ các trang web bán khóa học và vé xem phim tại các rạp với tính năng khá thân thuộc với người tiêu dùng hiện nay như : vietjet.net,….. Đây sẽ là trang web vô cùng hữu ích với nhu cầu đặt vé trước của người dùng.Đồng thời giúp cho người quản trị viên quản lí gian hàng, đơn đặt hàng và mọi thứ liên quan một cách đơn giản, dễ tiếp cận. Ngoài ra, em còn viết một plugin cho website nhằm đáp ứng yêu cầu cần thiết trong việc đặt vé. Nội dung đề tài Tên đề tài Xây dựng viết plugin hỗ trợ đặt vé Nhiệm vụ của đề tài Đề tài này là một hệ thống chạy trên: - Server: VPS - Mã nguồn PHP. - Platform: Magento 2. - Tính năng chính:  Phía người dùng:  Cho phép người dùng có thể xem thông tin (giá cả,ngày ,giờ địa điểm diễn ra chương trình) của các sản phẩm vé  Tìm kiếm vé  Mua hàng và thanh toán  Tạo tài khoản, quản lý thông tin tài khoản khách hàng  Viết bình luận cho vé  Phía admin:  Quản lý đơn hàng  Quản lý vé  Quản lý kho  Quản lý khách hàng  Quản lý giảm giá ( thời gian, địa điểm, số lượng,…)  Quản lí plugin Những công việc cần phải thực hiện như sau: Phía Frontend:  Xây dựng trang chủ bao gồm: Danh mục vé thông tin vé  Trang danh mục: Danh sách vé, phân trang, lọc.  Trang chi tiết vé: Ảnh vé, tiêu đề, mô tả, giá, ngày giờ địa điểm, đánh giá của khách hàng về vé.  Giỏ hàng: Hiển thị thông tin các vé khách hàng đã thêm vào giỏ hàng, có chức năng cập nhật, nhập mã giảm giá, lựa chọn hình thức vận chuyển.  Quản lý thông tin cá nhân: Quản lý địa chỉ vận chuyển và thanh toán, hóa đơn, tìm kiếm, và nhiều sự kiện mở rộng khác  Thanh toán.  Xử lí giao diện hiển thị trên nhiều loại thiết bị với kích thước màn hình khác nhau: Mobile, Tablet, Laptop. Phía Backend:  Xây dựng hệ thống quản lý vé: Thêm, sửa, xóa, quản lý kho hàng.  Hệ thống quản lý đơn hàng.  Hệ thống quản lý thông tin khách hàng: Địa chỉ, Tên, Thuộc tính, Nhóm khách hàng.  Quản lý các chương trình giảm giá.  Phân quyền: phân quyền người quản lí gian hàng với mục đích sử dụng CHƯƠNG I: CỞ SỞ LÍ THUYẾT 1. Tổng quan về thương mại điện tử 1.1. Khái niệm Theo Tổ chức Thương mại thế giới (WTO), "Thương mại điện tử bao gồm việc sản xuất, quảng cáo, bán hàng và phân phối sản phẩm được mua bán và thanh toán trên mạng Internet, nhưng được giao nhận một cách hữu hình, cả các sản phẩm giao nhận cũng như những thông tin số hoá thông qua mạng Internet" Theo Ủy ban Thương mại điện tử của Tổ chức Hợp tác kinh tế châu Á – Thái Bình Dương (APEC) định nghĩa: "Thương mại điện tử liên quan đến các giao dịch thương mại trao đổi hàng hóa và dịch vụ giữa các nhóm (cá nhân) mang tính điện tử chủ yếu thông qua các hệ thống có nền tảng dựa trên Internet." Tổng kết lại, thương mại điện tử chỉ xảy ra trong môi trường kinh doanh mạng internet và các phương tiện điện tử giữa các nhóm (cá nhân) với nhau thông qua các công cụ, kỹ thuật và công nghệ điện tử. 1.2. Đặc điểm của thương mại điện tử khác với thương mại thông thường - Các bên tiến hành giao dịch trong thương mại điện tử không tiếp xúc trực tiếp với nhau và không đòi hỏi phải biết nhau từ trước. - Các giao dịch thương mại truyền thống được thực hiện với sự tồn tại của khái niệm biên giới quốc gia, còn thương mại điện tử được thực hiện trong một thị trường không có biên giới (thị trường thống nhất toàn cầu). Thương mại điện tử trực tiếp tác động tới môi trường cạnh tranh toàn cầu. -Trong hoạt động giao dịch thương mại điện tử đều có sự tham gia của ít nhất ba chủ thể, trong đó có một bên không thể thiếu được là người cung cấp dịch vụ mạng, các cơ quan chứng thực. - Đối với thương mại truyền thống thì mạng lưới thông tin chỉ là phương tiện để trao đổi dữ liệu, còn đối với thương mại điện tử thì mạng lưới thông tin chính là thị trường. 1.3. Ứng dụng trong thực tiễn đời sống - Tự động hóa ở chuỗi cung ứng và hậu cần - Hệ thống thanh toán trong nước và quốc tế - Quản lí nội dung doanh nghiệp - Nhóm mua - Trợ lí tự động trức tuyến - Nhóm tin - Mua sắm trực tuyến và theo dõi đặt hàng - Ngân hàng điện tử - Văn phòng trực tuyến - Phần mềm giỏ hàng - Hội thảo truyền thông trực tuyến - vé điện tử - Nhắn tin nhanh - Mạng xã hội - Mua bán dịch vụ trực tuyến ….v…v… 2. Mã nguồn mở Magento 2 2.1. Lịch sử ra đời và phát triển Sau sự thành công rực rỡ của Magento 1, Magento đã cho ra mắt thêm rất nhiều các phiên bản khác nhau và kết thúc ở phiên bản .1.9.0.1. Tuy vậy sự ra đời của các phiên bản Magento trước vẫn còn nhiều vấn đề chưa khắc phục được. Chính vì điều này mà 17/11/ 2015, Magento chính thức cho ra mắt phiên bản Magento hoàn toàn mới : Magento 2 với rất nhiều những tính năng ưu việt so với Magento 1.x. Magento 2 được ra mắt nhằm phát triển mạnh mẽ trong lĩnh vực thương mại điện tử, bán hàng trực tuyến với khả năng quản lí số lượng số phẩm cực lớn, tốc độ xử lí nhanh hơn. So với thế hệ trước Magento 2 đã được nấp cấp mạnh mẽ ở giao diện, cấu trúc, công nghệ... 2.2. Các thay đổi của magento 2 so với magento 1.x Magento là nền tảng thương mại điện tử ra đời từ năm 2008. Hệ thống được thiết kế tối ưu cho thương mại điện tử và các tính năng mở rộng (extension, theme) hoạt động độc lập với code core là những lý do chính giúp magento phát triển nhanh và hình thành cộng đồng mạnh mẽ. Tuy nhiên magento 1 (phiên bản đầu tiên) còn có những hạn chế nhất định tiêu biểu sau đây: – Hiệu suất : tốc độ load website magento chậm vì bản thân nó rất nặng, đòi hỏi máy chủ xử lí mạnh mới chạy nhanh được. – Cấu trúc magento 1.x rất phức tạp. – Ngoài hỗ trợ cơ sở dữ liệu MySQL thì magento 1.x chưa hỗ trợ các cơ sở dữ liệu khác. Thư viện javascript thường bị conflict giữa Prototype với Jquery. Vấn đề nêu trên nếu được giải quyết thì sẽ làm cho website xây dựng bằng mã nguồn mở Magento thêm phần thân thiện, tiện ích và dễ dàng sử dụng hơn, lượng người dùng sẽ tăng lên. 2.2.1. Công nghệ nâng cấp Magento 2 sử dụng các công nghệ mới nhất trong lập trình web để cải thiện hiệu suất, khả năng bảo mật tăng cường hơn. * Yêu cầu hệ thống là: 1. PHP 5.4 trở lên thêm phần mở rộng sau đây a. PDO / MySQL b. MySQLi c. mbstring d. Mcrypt e. mhash (sha-256) f. SimpleXML g. DOM (điều này được bao gồm theo mặc định trong PHP 5.4) h. curl i. GD2 hoặc ImageMagick 6.3.7 (hoặc mới hơn) hoặc cả hai j. soap 2. Mysql phiên bản 5.6 trở lên 3. Zend Framework 1.x 4. Javascript: jQuery 5. HTML5 và CSS3: Tăng hiệu suất, cải thiện các thiết kế bố trí, đáp ứng thiết kế web 2.2.2. Kiểm định Code (Code Quality) Magento 2 tập trung vào việc cải thiện chất lượng code. Các tính năng kiểm định tích hợp sẵn trong magento 2 như sau: • Integration Testing (Test tích hợp) • Unit Testing(Test cấp đơn vị) • Static Testing(Test kiểm thử tĩnh) • Performance Testing(Test hiệu suất) • JavaScript Testing 2.2.3. Sự thay đổi của Frontend và Backend Frontend a)Thay đổi cấu trúc thư mục và tập tin • Cấu trúc thư mục của Magento 2 là nhiều hơn so với cấu trúc thư mục Magento 1.x • Đã chuyển thư mục js, media, skin từ gốc đến thư mục pub • Các công cụ cho chuyển đổi và thử nghiệm Hình 1: Cấu trúc thư mục 1. App / Design/ /base => app/ code /// view 2. app/locale/en_US/template/email/*.html => app/code///view/email/*.html 3. errors => pub/errors, 4. Js => pub/js, 5. Media => pub/media, 6. shell => dev/shell Như vậy trong Magento 2, một thư mục mới có tên là "view" dưới app / code / core / Mage / module_name. b) Kích hoạt module Trong Magento 1.x, kích hoạt các module bằng cách sử dụng các tập tin module.xml trong app / etc / module. Nhưng trong Magento2, sử dụng các config.xml để kích hoạt module. c) Java thay đổi kịch bản thư viện Nó sử dụng các thư viện JQuery như là mặc định thư viện Java script, vì vậy nó loại bỏ các nguyên mẫu và xung đột jQuery. d) Magento Switchability ( liên kết trong Magento) Trong phiên bản Magento 1.x tất cả các module chính như: catalog, cms, customer, order reports là có sự liên kết với nhau. Khi vô hiệu hóa bất kì một trong các module đó thì sẽ làm cho hệ thống bị phá vỡ.Nhưng trong Magento 2 lại có sự linh hoạt để chuyển đổi và vô hiệu hóa. Và module không được quan hệ với nhau về mức độ cấu hình. Backend Những thay đổi quan trọng nhất phía backend : • Trong Magento 1.x, URL của phần admin là default_url / admin . Nhưng trong Magento2, URL sẽ được default_url / backend • Thiết kế lại các phần Backend • Danh mục trình đơn đã được thay đổi và toàn bộ khu vực admin có giao diện dễ sử dụng hơn. a) Cái nhìn trực quan mới b) Một trong những thay đổi lớn nhất của phần admin là cái nhìn trực quan mới thân thiện hơn c) Hình 2: Bảng đăng nhập Hình 3: Trang chủ b) Thay đổi quản lí sản phẩm Khi tạo ra một sản phẩm mới trong Magneto 1.x, cần phải chọn các thuộc tính sản phẩm thiết lập và loại sản phẩm, sau khi lựa chọn xong mới tiếp tục các bước tiếp theo. Sau đó khi hoàn tất, sản phẩm thêm mới sẽ được thêm vào quản lý sản phẩm.Nhưng trong Magento 2, loại sản phẩm có một trình đơn thả xuống nhanh chóng bổ sung thêm vé mới của bất kỳ loại sản phẩm nào: Hình 4: Chọn nhóm sản phẩm Ngoài ra có hai tab chính, cài đặt cơ bản và thiết lập nâng cao (Basic Settings And Advanced Settings) Hình 5: Cài đặt cơ bản và thiết lập nâng cao • Việc lựa chọn hình ảnh và thư mục cha cùng chung một mục (Basic Settings). • Ngoài ra có thể thay đổi các thuộc tính thiết lập khi tạo hay chỉnh sửa vé. Hình 6: Cài đặt cơ bản c) Thay đổi quản lý thuế Có một số tính năng mới để quản lý thuế là: System -> Import bao gồm một tab mới bổ sung cho importing/exporting theo mức thuế suất. New menu named Tax là lựa chọn thuế theo hệ thống. Điều đó cho phép bạn quản lý các khai bảo thuế và quản lý thuế giá zone Ngoài ra magento 2 sử dụng Composer.json (một công cụ để quản lý thành phần trong môi trường PHP), cho phép bạn quản lý cài đặt hoặc cập nhật các thành phần thư viện của mình. - PSR Compliance: chuẩn hóa PHP cho phép các thư viện code khác nhau làm việc cùng nhau - Thư viện tài nguyên JS giúp giảm thời gian tải trang, nó cũng được sử dụng để thiết kế các gói mở rộng (extension, themes) 2.3. Cấu trúc của một website làm bằng Magento 2 Chia làm ba phần chính đó là :bộ quản trị, giao diện người dùng, cơ sở dữ liệu a) Bộ quản trị : Chia làm 9 phần chính . Hình 7: Danh mục quản trị Bộ quản trị + Dashboard : quản lý chung, thông báo cập nhật + Sales : quản lí đơn hàng và các thông tin liên quan + Products : quản lí vé và các danh mục vé + Customer : quản lí người dùng + Maketing : quản lí các danh mục quảng cáo + Content: quản lí giao diện website + Report: quản lí thông báo và các thông tin liên quan đến báo cáo lỗi và sự cố + Store: thiết đặt các chức năng phụ trợ cho website + System: thiết đặt hệ thống, các module b) Giao diện người dùng Chính là nội dung website khi mà người dùng truy cập vào tên miền đó. Phần nội dung hiển thị này còn tùy thuộc vào admin sử dụng theme và widget nào chứ không có form cố định. c) Cơ sở dữ liệu Bất kì một website nào cũng cần có cơ sở dữ liệu (chính là nơi lưu trữ những thông tin trên website ), và những thông tin này được quản trị bởi admin, có thể thêm, sửa, xóa hay hủy toàn bộ. Hình 8:Bảng database 2.4. Đặc điểm nổi bật của Magento 2 - Magento 2 kế thừa đầy đủ các tính năng cửa Magento 1.x - Hiệu suất tăng lên từ 20% đến 30% - Cấu trúc magento 2 giảm bớt sự phức tạp cho người dùng và nhà phát triển. - Giao diện quản trị thân thiện hơn. - Hỗ trợ rất nhiều công nghệ mới. - javascript không còn bị conflict với nhau nữa. 3. Giới thiệu các công nghệ sử dụng 3.1. Ngôn ngữ lập trình PHP 5 PHP - viết tắt của "Hypertext Preprocessor", là một ngôn ngữ lập trình kịch bản được chạy ở phía server nhằm sinh ra mã html trên client. PHP đã trải qua rất nhiều phiên bản và được tối ưu hóa cho các ứng dụng web, với cách viết mã rõ rãng, tốc độ nhanh, dễ học nên PHP đã trở thành một ngôn ngữ lập trình web rất phổ biến và được ưa chuộng. PHP 5 là một ngôn ngữ được sử dụng rỗng rãi hiện nay vì những cải tiến tối ưu của nó và được sử dụng trong Magento 2. PHP 5 khắc phục được những hạn chế của các bản PHP trước đó như khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lý XML, không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợ dịch vụ web yếu. Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team công bố đánh dấu sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trong việc tạo ra một hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện các câu truy vấn. Ngoài ra, trong PHP 5.1, các nhà phát triển PHP tiếp tục có những cải tiến trong nhân Zend Engine 2, nâng cấp môđun PCRE lên bản PCRE 5.0 cùng những tính năng và cải tiến mới trong SOAP, streams và SPL. 3.2. Giới thiệu về MySql 5.6 MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới. MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh.Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập database trên internet. Điểm nổi bật của MySql 5.6 là: - Động cơ lưu trữ InnoDB và bộ tối ưu đều được tân trang nhằm cải thiện tốc độ load trang. - Khả năng khởi động sớm cache (vùng bộ đệm). - Cơ sở dữ liệu có thể tự động được sao lưu đến nhiều vị trí khác nhau. - Trì hoãn thời gian sao lưu, làm cho quá trình này có thể bị chậm lại bằng cách hẹn thời gian trước. 3.3. Giới thiệu về Zend Framework 1.x Zend Framework là 1 PHP Framework đuợc lập trình trên PHP dựa theo mô hình MVC sẽ giúp tách riêng các phần xử lý riêng biệt cho website của bạn, nó giúp cho code của bạn trong sáng hơn, dễ quản lý, chỉnh sửa và nâng cấp. Điểm nổi bật của Zend Framework: • Tạo ứng dụng web theo mô hình chuẩn MVC • Url tiêu chuẩn, ngắn gọn • Hỗ trợ phân quyền tới từng Action • Có các thành phần thư viên hỗ trợ API của các nhà cung cấp như Google, Yahoo, Flick • Quản lý code dễ dàng, liệt kê và lấy các truy vấn history • Dễ dàng phát triển thêm các ứng dụng nhúng, sử dụng Plugins 3.4. Giới thiệu về HTML 5 và CSS 3 HTML5 là một ngôn ngữ cấu trúc và trình bày nội dung cho World Wide Web. Đây là phiên bản thứ 5 của ngôn ngữ HTML - được tạo ra năm 1990 và chuẩn hóa như HTML4 năm 1997 - và xuất hiện vào tháng 12 năm 2012, là một ứng viên được giới thiệu bởi World Wide Web Consortium (W3C). Mục tiêu cốt lõi khi thiết kế ngôn ngữ này là cải thiện khả năng hỗ trợ đa phương tiện mới nhất trong khi vẫn giữ được khả năng dễ dàng đọc được bởi con người và luôn hiểu được bởi các thiết bị và các chương trình máy tính như trình duyệt web, phân tích cú pháp, v.v... HTML5 vẫn sẽ giữ lại những đặc điểm cơ bản của HTML4 và bổ sung thêm các đặc tả nổi trội của XHTML, đặc biệt là JavaScript. CSS viết tắt của từ Cascading Style Sheets, là những file hỗ trợ cho trình duyệt Web trong việc hiển thị một trang HTML. CSS 3 là một phiên bản cải tiến và được dùng khá phổ biến hiện nay vì những cải tiến của nó như : • Các cách bố trí nhiều cột mới • Các phông chữ phi tiêu chuẩn nhờ sử dụng thẻ @font-face • Hỗ trợ HSL (Hue, Saturation và Lightness) và các mô hình màu RGBA (đỏ, xanh lá, xanh da trời và alpha). 3.5 Giới thiệu hoạt động của Magento 2 - Magento 2 sử dụng PHP làm ngôn ngữ kịch bản cho Web Server và cơ sở dữ liệu MySQL. - Các module dữ liệu dựa trên mô hình EAV ( thực thể – thuộc tính – giá trị) mà lưu trữ dữ liệu về đối tượng theo cấu trúc cây. - Module là phần cốt lõi của của Magento 2 + Magento 2 hiện tại chưa hỗ trợ cài đặt các modul thông qua một giao diện web của trang quản lý như magento 1.x mà phải download về để cài đặt thủ công. + Các Modules được lưu trữ trên website thương mại điện tử . CHƯƠNG II: PHÂN TÍCH NHIỆM VỤ VÀ LỰA CHỌN GIẢI PHÁP 1. Phân tích nhiệm vụ Ở nội dung website bán vé cần đạt được các mục tiêu cơ bản sau: 1.1. Phía người dùng - Có thể mua bán, giao dịch trực tuyến trên nền website. - Khách hàng có thể tìm kiếm, lọc thông tin một cách thuận tiện dựa trên các thuộc tính của vé:  Giá.  Tên. - Khách hàng có thể tạo tài khoản, quản lý tài khoản, cách thức thanh toán. - Comment vào các blog trước đó. - Giao diện thân thiện, tương thích với các thiết bị Mobile, Laptop, Tablet. 1.2. Phía quản trị viên - Quản lý vé, quản lý đơn hàng - Phân quyền các chức năng - Quản lí plugin - Quản lí người dùng - Thiết kế và chỉnh sửa giao diện Ở nội dung xây dựng các plugin cần đạt các mục tiêu cơ bản sau : - Phải có ý nghĩa trong kinh doanh vé . - Hoạt động một cách độc lập với các module - Thực hiện đúng với nội dung đề ra - Dễ dàng cho việc cài đặt và sử dụng 2. Phân tích các chức năng chính của website 2.1. Phía người dùng - Chức năng mua bán, giao dịch trực tuyến:  Chức năng thêm, sửa, xóa giỏ hàng  Chức năng thanh toán  Hệ thống tự động tính giá vé và gửi vé cho khách qua mail. - Chức năng tìm kiếm, lọc vé:  Cần có thanh tìm kiểm hiển thị tại mọi trang con của trang web, sau khi khách hàng nhập nội dung từ khóa, kết quả các vé liên quan sẽ được hiển thị.  Trên mỗi trang danh mục: Hiển thị các thông tin để khách hàng có thể lọc vé: ( Hiển thị số lượng vé ứng với các thuộc tính )  Danh mục vé  Sau mỗi bước lọc, người dùng đều có thể trở về trạng thái cũ. - Chức năng tạo tài khoản, quản lý thông tin tài khoản.  Khách hàng điền họ tên, email, địa chỉ… để tạo tài khoản mới.  Khách hàng sau khi đăng nhập có các tiện ích:  Quản lý thông tin địa chỉ  Quản lý thông tin đơn hàng  Thêm vé vào danh mục yêu thích (wishlist) - Giao diện: Phù hợp với tất cả các thiết bị điện tử màn hình lớn hiện nay 2.2. Phía quản trị viên - Quản lý vé:  Thêm, sửa, xóa vé  Tạo các thuộc tính cho vé  Thêm danh mục cho vé  Tạo các loại giá cho vé  Giá thường  Giá khuyến mại ( Trong 1 khoảng thời gian khuyến mại)  Giá theo thuộc tính  Quản lý hàng tồn kho - Quản lý đơn hàng:  Theo dõi thông tin đơn hàng:  Thông tin vé trong đơn hàng.  Phương thức thanh toán.  Thông tin người mua  In hóa đơn. - Quản lý khách hàng:  Quản lý thông tin khách hàng: họ tên, địa chỉ, giới tính, …  Quản lý nhóm khách hàng:  Tạo nhóm khách hàng.  Thêm khách hàng vào nhóm. - Phân quyền: dựa trên mục đích của chủ cửa hàng muốn cấp quyền gì cho những người quản trị viên. - Đưa ra các hoạt động giảm giá vé và quản lí nó. - Quản lí extension : • Thêm, xóa extension • Cài đặt các chức năng muốn sử dụng - Thiết kế và chỉnh sửa giao diện: thay đổi giao diện website theo ý mình 3. Lựa chọn giải pháp 3.1. Giải pháp Do website có rất nhiều chức năng, số lượng vé lớn, tìm kiếm lớn và đòi hỏi khả năng đáp ứng nhanh nên cần sử dụng một hệ thống lớn như Magento 2 – Nền tảng thương mại điện tử trực tuyến cực kì mạnh mẽ . 3.2. Môi trường phát triển - Ngôn ngữ phát triển: PHP – Phiên bản 5.4 trở lên. - Sử dụng MYSQL 5.6 để quản trị cơ sở dữ liệu. - Sử dụng Javascript, jQuery, Prototype . - Sử dụng AJAX để tăng tốc độ xử lý của Website - Sử dụng HTML 5 kết hợp với CSS 3 3.3. Công cụ phát triển - Hệ điều hành Linux 14.04 - PHP Storm 10 - Ứng dụng viết mã nguồn PHP. - Zend Server - Một phần mềm giả lập server ảo để quản lí site và database http://www.zend.com/en/products/server/downloads#Windows - Mã nguồn Magento 2: https://github.com/magento/magento2 - Và một số công cụ hỗ trợ khác …. CHƯƠNG III: XÂY DỰNG CHỨC NĂNG BÁN VÉ TRÊN WEBSITE 1. Phân tích các chức năng Từ việc phân tích yêu cầu của đề tài em đã xây dựng các chức năng chính của website như sau : Phía người dùng: 1.1. Chức năng mua hàng online Người dùng sau khi vào trang web, tại trang chủ các thông tin được hiển thị: - Danh mục sản phẩm - Sản phẩm đặc biệt - Sản phẩm mới - Ngay tại trang chủ, người dùng có thể thêm sản phẩm vào giỏ hàng. Sau khi thêm thành công, hiện thông báo đã cập nhật giỏ hàng ( Sử dụng kỹ thuật Ajax, không cần tải lại trang ). - Người dùng có thể thêm, sửa, xóa số lượng các sản phẩm hiện đang có trong giỏ hàng. 1.2. Chức năng thanh toán online - Khách hàng sau khi thêm hàng vào giỏ, chuyển vào trang giỏ hàng. Thông tin về các mặt hàng mình mua, tổng hóa đơn, địa chỉ vận chuyển, địa chỉ thanh toán sẽ được cập nhật. - Phí vận chuyển hàng: tùy thuộc vào cách thức vận chuyển và cách thức tính phí vận chuyển của chủ vé mà phí vận chuyển khác nhau. - Phương thức thanh toán ( Khách hàng có thể lựa chọn ): • Thanh toán trực tiếp. • Thanh toán qua cổng thanh toán online :Paypal 1.3. Chức năng đăng nhập, đăng kí và quản lí thông tin cá nhân - Khách hàng có thể tạo tài khoản bằng cách ấn vào nút create account trên trang chủ. - Đăng kí tài khoản: • Khách hàng điền đầy đủ các thông tin liên quan đến cá nhân để tạo một tạo khoản trong danh mục vé như: first name, last name, email, tel, address… • Sau khi gửi Form đăng kí thì một email xác nhận sẽ gửi lại cho khách hàng để xác thực tài khoản . - Đăng nhập: • Khách hàng nhập Username và Password để đăng nhập vào cửa hàng online. - Quản lý thông tin cá nhân khách hàng: Khách hàng sau khi đăng nhập có thể quản lí các thông tin của mình như : • Thêm, sửa, xóa các thông tin về địa chỉ thanh toán, địa chỉ nhận hàng • Quản lý thông tin các đơn hàng các đơn đã mua : xem lại đơn hàng, thay đổi đơn hàng tùy trường hợp 1.5. Chức năng tìm kiếm Một khung tìm kiếm sẽ được tạo ra trên các page để giúp khách hàng tìm kiếm được sản phẩm mình muốn mua một cách nhanh nhất theo gợi ý tên sản phẩm. 1.6. Chức năng lọc sản phẩm - Lọc sản phẩm giúp phân loại sản phẩm theo các cách khác nhau để người dùng tìm kiếm được một cách nhanh nhất theo mục đích sử dụng của mình. - Các thông tin lọc bao gồm: • Lọc theo danh mục sản phẩm. • Lọc theo địa điểm. - Sau khi lọc, các sản phẩm thỏa mãn điều kiện lọc sẽ hiện ra. 1.7. Giao diện tương thích với các loại thiết bị - Laptop: Phù hợp với các độ phân giải:  Full HD.  1366 x 768.  1360 x 768.  1280 x 768.  1280 x 720.  1024 x 768. - Mobile: Tương thích với các hệ điều hành dành cho mobile mới nhất  Android.  IOS.  Windows Phone. - Các loại thiết bị Tablet. Phía quản trị viên: 1.8. Chức năng quản lý sản phẩm - Admin có thể thêm, sửa, xóa sản phẩm. - Với mỗi sản phẩm, admin có thể thêm các thông tin: o Tên sản phẩm o Mô tả sản phẩm o Giá sản phẩm:  Giá gốc.  Giá khuyến mại: • Dựa theo địa điểm • Dựa theo tuổi o Thuộc tính sản phẩm:  Thời gian  Trọng lượng  Số Lượng o Danh mục sản phẩm  Admin có thể thêm, sửa, xóa sản phẩm vào danh mục sản phẩm. o Trạng thái sản phẩm:  Admin có thể chuyển trạng trái sản phẩm về dạng có cho phép hiển thị hay không hiển thị. 1.9. Chức năng quản lý khách hàng - Admin có thể thêm, sửa, xóa thông tin khách hàng. - Với mỗi tài khoản khách hàng, Admin có thể thêm các thông tin: o Họ, tên, tên đệm, tiền tố, hậu tố o Email o Số điện thoại o Ngày sinh o Giới tính o Mã số thuế o Thông tin địa chỉ:  Đường  Tỉnh, thành phố  Bang  Đất nước.  Số Fax. - Admin có thể xem được các thông tin order của tài khoản khách hàng. 1.10. Chức năng quản lý nhóm khách hàng - Admin có thể thêm, sửa, xóa nhóm khách hàng. - Giá sản phẩm có thể thay đổi tùy theo mỗi loại nhóm khách hàng. - Admin có thể thêm khách hàng vào nhóm khách hàng. 1.11. Chức Pnăng quản lý đơn hàng - Admin có thể xem được tất cả các đơn hàng trên website. - Mỗi đơn hàng có 9 trạng thái nhưng chủ yếu là 4 trạng thái sau: o Pending: sau khi khách hàng submit đơn hàng o Complete: sau khi đơn hàng được hoàn tất o Canceled: khi đơn hàng bị từ chối o Processing: Khi đơn hàng đang được vận chuyển. - Admin có thể in thông tin đơn hàng ra file PDF.
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ──────── * ─────── ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH CÔNG NGHỆ THÔNG TIN XÂY DỰNG PLUGIN BÁN VÉ TRÊN MAGENTO 2 Sinh viên thực hiện : ……………… Lớp : CNTT&TT 1.2 – K56 Giáo viên hướng dẫn : ThS.Bành Thị Quỳnh Mai HÀ NỘI, 2016 PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 1. Thông tin về sinh viên Họ và tên sinh viên: …………… Điện thoại liên lạc: Email: Lớp: CNTT&TT 1.2 – K56 Hệ đào tạo: Đại học chính quy Đồ án tốt nghiệp được thực hiện tại: Hà Nội Thời gian làm ĐATN: Từ tháng 02/2016 đến tháng 05/2016 2. Mục đích nội dung của ĐATN Tìm hiểu mã nguồn mở Magento 2 và tiến hành xây dựng plugin phục vụ bán vé cho magento 2 3. Các nhiệm vụ cụ thể của ĐATN  Tìm hiểu kiến thức cơ bản về mã nguồn mở Magento 2  So sánh điểm nổi bật của mã nguồn mở Magento 2 so với mã nguồn mở Magento 1.x trước đó  Xây dựng plugin bán vé  Nhận xét kết quả đạt được và đề xuất hướng phát triển. 4. Lời cam đoan của sinh viên: Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ công trình nào khác. Hà Nội, ngày 23 tháng 12 năm 2016 Tác giả ĐATN 5. Xác nhận của giáo viên hướng dẫẫn vêề mức độ hoàn thành c ủa ĐATN và cho phép b ảo v ệ: Hà Nội, ngày tháng năm Giáo viên hướng dẫn ThS.Bành Thị Quỳnh Mai MỤC LỤC LỜI CẢM ƠN.......................................................................................................1 DANH MỤC VIẾT TẮT.......................................................................................2 ĐẶT VẤN ĐỀ.......................................................................................................3 CHƯƠNG I: CỞ SỞ LÍ THUYẾT........................................................................6 1. Tổng quan về thương mại điện tử.................................................................6 1.1. Khái niệm 6 1.2. Đặc điểm của thương mại điện tử khác với thương mại thông thường 1.3. Ứng dụng trong thực tiễn đời sống 6 7 2. Mã nguồn mở Magento 2...............................................................................7 2.1. Lịch sử ra đời và phát triển 7 2.2. Các thay đổi của magento 2 so với magento 1.x 8 2.3. Cấu trúc của một website làm bằng Magento 2 15 2.4. Đặc điểm nổi bật của Magento 2 16 3. Giới thiệu các công nghệ sử dụng................................................................17 3.1. Ngôn ngữ lập trình PHP 5 17 3.2. Giới thiệu về MySql 5.6 17 3.3. Giới thiệu về Zend Framework 1.x 18 3.4. Giới thiệu về HTML 5 và CSS 3 18 3.5 Giới thiệu hoạt động của Magento 2 19 CHƯƠNG II: PHÂN TÍCH NHIỆM VỤ VÀ LỰA CHỌN GIẢI PHÁP...........20 1. Phân tích nhiệm vụ.......................................................................................20 1.1. Phía người dùng 20 1.2. Phía quản trị viên 20 2. Phân tích các chức năng chính của website.................................................20 2.1. Phía người dùng 20 2.2. Phía quản trị viên 21 3. Lựa chọn giải pháp......................................................................................22 3.1. Giải pháp 22 3.2. Môi trường phát triển 22 3.3. Công cụ phát triển22 CHƯƠNG III: XÂY DỰNG CHỨC NĂNG BÁN VÉ TRÊN WEBSITE.......24 1. Phân tích các chức năng..............................................................................24 1.1. Chức năng mua hàng online 24 1.2. Chức năng thanh toán online 24 1.3. Chức năng đăng nhập, đăng kí và quản lí thông tin cá nhân 24 1.5. Chức năng tìm kiếm 25 1.6. Chức năng lọc sản phẩm 25 1.7. Giao diện tương thích với các loại thiết bị 1.8. Chức năng quản lý sản phẩm 25 26 1.9. Chức năng quản lý khách hàng 27 1.10. Chức năng quản lý nhóm khách hàng27 1.11. Chức Pnăng quản lý đơn hàng 27 1.12. Chức năng thống kê 27 1.13. Chức năng phân quyền 28 2. Biểu đồ Use Case tổng quát........................................................................28 3. Biểu đồ tuần tự.............................................................................................30 3.1.Biểu đồ xem sản phẩm 30 3.2.Biểu đồ đăng nhập tài khoản khách hàng 3.3. Biểu đồ tìm kiếm sản phẩm 3.4. Biểu đồ lọc sản phẩm 3.5. Biểu đồ mua hàng33 32 31 30 3.6. Biểu đồ thanh toán 34 3.7. Biểu đồ thêm sản phẩm 35 3.8. Biểu đồ cập nhật thông tin khách hàng 36 3.9. Biểu đồ cập nhật thông tin đơn hàng 37 4. Biểu đồ lớp...................................................................................................38 4.1. Lớp Product 39 4.2. Lớp Category 40 4.3.Lớp Customer 41 4.4.Lớp Order 42 4.5. Lớp Admin43 CHƯƠNG IV: XÂY DỰNG PLUGIN HỖ TRỢ ĐẶT VÉ................................45 1. Plugin Magenest Ticket..............................................................................45 1.1. Giới thiệu về plugin 45 1.2 Biểu đồ lớp dữ liệu 46 3. Kết Qủa Đạt Được........................................................................................50 3.1 Phần Backend 50 CHƯƠNG V: TRIỂN KHAI VÀ THỬ NGHIỆM ỨNG DỤNG........................60 1. Môi trường triển khai.................................................................................60 2. Mục tiêu đặt hàng thành công và gửi mã code về cho người dung...........60 CHƯƠNG VI: KẾT LUẬN.................................................................................63 1. Các kết quả đạt được....................................................................................63 1.1. Ưu điểm 63 1.2. Nhược điểm 63 2. Hướng phát triển trong tương lai..................................................................63 TÀI LIỆU THAM KHẢO...................................................................................64 DANH MỤC HÌNH VẼ Hình 1: Cấu trúc thư mục....................................................................................10 Hình 2: Bảng đăng nhập......................................................................................11 Hình 3: Trang chủ................................................................................................12 Hình 4: Chọn nhóm sản phẩm.............................................................................13 Hình 5: Cài đặt cơ bản và thiết lập nâng cao......................................................13 Hình 6: Cài đặt cơ bản........................................................................................14 Hình 7: Danh mục quản trị..................................................................................15 Hình 8:Bảng database..........................................................................................16 Hình 9: Biểu đồ use case tổng quát.....................................................................28 Hình 10: Biều đồ tuần tự chi tiết sản phẩm.........................................................30 Hình 11: Biều đồ tuần tự đăng nhập tài khoản khách hàng.................................31 Hình 12: Biều đồ tuần tự tìm kiếm sản phẩm.....................................................32 Hình 13: Biều đồ tuần tự chức năng lọc sản phẩm..............................................33 Hình 14: Biều đồ tuần tự chức năng mua hàng...................................................34 Hình 15: Biều đồ tuần tự chức năng thanh toán..................................................35 Hình 16: Biểu đồ tuần tự thêm sản phẩm mới.....................................................36 Hình 17: Biểu đồ tuần tự tính năng cập nhật thông tin khách hàng....................37 Hình 18: Biều đồ tuần tự chức năng cập nhật đơn hàng.....................................38 Hình 19: Biểu đồ liên kết cơ sở dữ liệu...............................................................46 Hình 20: Chức năng tạo Event Ticket Product....................................................50 Hình 21: Giao diện tạo vé....................................................................................51 Hình 22 : Cấu hình vé của plugin........................................................................51 Hình 23: Cấu hình background vé để gửi cho khách..........................................52 Hình 24: Cấu hình các trường vé để gửi cho khách............................................52 Hình 25: Cấu hình cho plugin.............................................................................53 Hình 26: Các chức năng của plugin....................................................................53 Hình 27: Chức năng tạo địa điểm tổ chức...........................................................54 Hình 28: Giao diện insert ,edit sự kiện................................................................54 Hình 29: Chức năng xem sự kiện đã tạo.............................................................55 Hình 30: Bảng chi tiết event................................................................................55 Hình 31 :Kiểm tra order......................................................................................56 Hình 32: Chức năng xem vé và check vé sử dụng hay chưa sử dụng................56 Hình 33 : Trang mua sản phẩm khi khách hàng xem........................................57 Hình 34 : Hình ảnh vé được in ra gửi vào mail cho khách..................................57 Hình 35: Hình ảnh trang thông tin khách hàng...................................................58 Hình 36: Vé của khách........................................................................................58 Hình 37: Thông tin về các order..........................................................................59 Hình 38: Thông tin về sản phẩm.........................................................................61 Hình 39: Khi chọn vé vào giỏ sẽ có thông báo thanh toán.................................61 Hình 40: Email gửi về kèm theo vé.....................................................................62 DANH MỤC BẢNG Bảng 1: Bảng chi tiết lớp product........................................................................40 Bảng 2: Bảng chi tiết lớp category......................................................................40 Bảng 3: Bảng chi tiết lớp Customer....................................................................41 Bảng 4: Bảng chi tiết lớp Order..........................................................................43 Bảng 5: Bảng chi tiết lớp Admin.........................................................................44 Bảng 6: Chi tiết Magenest_Ticket_Event............................................................47 Bảng 7: Bảng chi tiết lớp Magenest Ticket Eventoption.....................................47 Bảng 8: Bảng chi tiết Magenest_Ticket_Eventoption_Date...............................47 Bảng 9: Bảng chi tiết Magenest_Ticket_Eventoption_Session...........................48 Bảng 10: Bảng chi tiết Magenest_Ticket_Eventoption_Type.............................49 Bảng 11: Bảng chi tiết Magenest_Ticket_Location............................................49 Bảng 12: Bảng Chi tiết Magenest_Ticket_Ticket...............................................50 LỜI CẢM ƠN Để có được ngày hôm nay, lời đầu tiên con xin chân thành cảm ơn bố mẹ đã tạo điều kiện cho con ăn học, trưởng thành như ngày hôm nay. Em xin gửi lời cảm ơn sâu sắc tới cô giáo – ThS. Bành Thị Quỳnh Mai đã chỉ bảo, giúp đỡ, tạo điều kiện cho em hoàn thành tốt đồ án này. Cuối cùng em xin cám ơn toàn thể các thầy cô và bạn bè đã chỉ bảo, giúp đỡ em tận tính trong suốt những năm tháng theo học dưới mái trường Bách Khoa thân yêu. Hà Nội, ngày 18 tháng 12 năm 2016 Sinh viên thực hiện: 1 DANH MỤC VIẾT TẮT PHP : Viết tắt của "Hypertext Preprocessor", MySQL : Hệ quản trị cơ sở dữ liệu Js : Viết tắt của javascript WTO : Tổ chức Thương mại thế giới APEC : Tổ chức Hợp tác kinh tế châu Á – Thái Bình Dương MVC : Viết tắt của “model – view –controller” CSS : Viết tắt của “ Cascading Style Sheets” PDO : Viết tắt của “PHP Data Object” 2 ĐẶT VẤN ĐỀ Lời nói đầu Trong vài thập kỉ trở lại đây, với sự bùng nổ của ngành công nghệ thông tin đã mang lại cho chúng ta những thành tựu công nghệ mới, việc này tạo điều kiện cho sự phát triển và ra đời của thương mại điện tử. Bằng việc sử dụng mã nguồn mở các nhà thiết kế, lập trình viên đã tạo ra những website thương mại điện tử với những plugin, theme,extension… giải quyết các vẫn đề nan giải của hình thức mua bán, trao đổi hàng hóa trước đó như thời gian, định mức, số lượng, quản lí .... Để góp phần làm phát triển hơn hệ thống mã nguồn mở Magento 2, trong đồ án tốt nghiệp này em đã lựa chọn đề tài : “ Xây dựng plugin bán vé trên magento 2“ Nhu cầu thực tế Với đồ án này, em xin được trình bày chi tiết phân tích, thiết kế và xây dựng ứng dụng bán vé trên nền tảng mã nguồn mở Magento 2. Thông tin lấy về sẽ từ các trang web bán khóa học và vé xem phim tại các rạp với tính năng khá thân thuộc với người tiêu dùng hiện nay như : vietjet.net,….. Đây sẽ là trang web vô cùng hữu ích với nhu cầu đặt vé trước của người dùng.Đồng thời giúp cho người quản trị viên quản lí gian hàng, đơn đặt hàng và mọi thứ liên quan một cách đơn giản, dễ tiếp cận. Ngoài ra, em còn viết một plugin cho website nhằm đáp ứng yêu cầu cần thiết trong việc đặt vé. Nội dung đề tài Tên đề tài Xây dựng viết plugin hỗ trợ đặt vé Nhiệm vụ của đề tài Đề tài này là một hệ thống chạy trên: - Server: VPS 3 - Mã nguồn PHP. - Platform: Magento 2. - Tính năng chính:  Phía người dùng:  Cho phép người dùng có thể xem thông tin (giá cả,ngày ,giờ địa điểm diễn ra chương trình) của các sản phẩm vé  Tìm kiếm vé  Mua hàng và thanh toán  Tạo tài khoản, quản lý thông tin tài khoản khách hàng  Viết bình luận cho vé  Phía admin:  Quản lý đơn hàng  Quản lý vé  Quản lý kho  Quản lý khách hàng  Quản lý giảm giá ( thời gian, địa điểm, số lượng,…)  Quản lí plugin Những công việc cần phải thực hiện như sau: Phía Frontend:  Xây dựng trang chủ bao gồm: Danh mục vé thông tin vé  Trang danh mục: Danh sách vé, phân trang, lọc.  Trang chi tiết vé: Ảnh vé, tiêu đề, mô tả, giá, ngày giờ địa điểm, đánh giá của khách hàng về vé.  Giỏ hàng: Hiển thị thông tin các vé khách hàng đã thêm vào giỏ hàng, có chức năng cập nhật, nhập mã giảm giá, lựa chọn hình thức vận chuyển. 4  Quản lý thông tin cá nhân: Quản lý địa chỉ vận chuyển và thanh toán, hóa đơn, tìm kiếm, và nhiều sự kiện mở rộng khác  Thanh toán.  Xử lí giao diện hiển thị trên nhiều loại thiết bị với kích thước màn hình khác nhau: Mobile, Tablet, Laptop. Phía Backend:  Xây dựng hệ thống quản lý vé: Thêm, sửa, xóa, quản lý kho hàng.  Hệ thống quản lý đơn hàng.  Hệ thống quản lý thông tin khách hàng: Địa chỉ, Tên, Thuộc tính, Nhóm khách hàng.  Quản lý các chương trình giảm giá.  Phân quyền: phân quyền người quản lí gian hàng với mục đích sử dụng 5 CHƯƠNG I: CỞ SỞ LÍ THUYẾT 1. Tổng quan về thương mại điện tử 1.1. Khái niệm Theo Tổ chức Thương mại thế giới (WTO), "Thương mại điện tử bao gồm việc sản xuất, quảng cáo, bán hàng và phân phối sản phẩm được mua bán và thanh toán trên mạng Internet, nhưng được giao nhận một cách hữu hình, cả các sản phẩm giao nhận cũng như những thông tin số hoá thông qua mạng Internet" Theo Ủy ban Thương mại điện tử của Tổ chức Hợp tác kinh tế châu Á – Thái Bình Dương (APEC) định nghĩa: "Thương mại điện tử liên quan đến các giao dịch thương mại trao đổi hàng hóa và dịch vụ giữa các nhóm (cá nhân) mang tính điện tử chủ yếu thông qua các hệ thống có nền tảng dựa trên Internet." Tổng kết lại, thương mại điện tử chỉ xảy ra trong môi trường kinh doanh mạng internet và các phương tiện điện tử giữa các nhóm (cá nhân) với nhau thông qua các công cụ, kỹ thuật và công nghệ điện tử. 1.2. Đặc điểm của thương mại điện tử khác với thương mại thông thường - Các bên tiến hành giao dịch trong thương mại điện tử không tiếp xúc trực tiếp với nhau và không đòi hỏi phải biết nhau từ trước. - Các giao dịch thương mại truyền thống được thực hiện với sự tồn tại của khái niệm biên giới quốc gia, còn thương mại điện tử được thực hiện trong một thị trường không có biên giới (thị trường thống nhất toàn cầu). Thương mại điện tử trực tiếp tác động tới môi trường cạnh tranh toàn cầu. -Trong hoạt động giao dịch thương mại điện tử đều có sự tham gia của ít nhất ba chủ thể, trong đó có một bên không thể thiếu được là người cung cấp dịch vụ mạng, các cơ quan chứng thực. 6 - Đối với thương mại truyền thống thì mạng lưới thông tin chỉ là phương tiện để trao đổi dữ liệu, còn đối với thương mại điện tử thì mạng lưới thông tin chính là thị trường. 1.3. Ứng dụng trong thực tiễn đời sống - Tự động hóa ở chuỗi cung ứng và hậu cần - Hệ thống thanh toán trong nước và quốc tế - Quản lí nội dung doanh nghiệp - Nhóm mua - Trợ lí tự động trức tuyến - Nhóm tin - Mua sắm trực tuyến và theo dõi đặt hàng - Ngân hàng điện tử - Văn phòng trực tuyến - Phần mềm giỏ hàng - Hội thảo truyền thông trực tuyến - vé điện tử - Nhắn tin nhanh - Mạng xã hội - Mua bán dịch vụ trực tuyến ….v…v… 2. Mã nguồn mở Magento 2 2.1. Lịch sử ra đời và phát triển Sau sự thành công rực rỡ của Magento 1, Magento đã cho ra mắt thêm rất nhiều các phiên bản khác nhau và kết thúc ở phiên bản .1.9.0.1. Tuy vâ ây sự ra đời của các phiên bản Magento trước vẫn còn nhiều vấn đề chưa khắc phục được. Chính vì điều này mà 17/11/ 2015, Magento chính thức cho ra mắt phiên bản Magento hoàn toàn mới : Magento 2 với rất nhiều những tính năng ưu viê ât so với Magento 1.x. Magento 2 được ra mắt nhằm phát triển mạnh mẽ trong lĩnh vực thương mại điê ân tử, bán hàng trực tuyến với khả năng quản lí số lượng số 7 phẩm cực lớn, tốc độ xử lí nhanh hơn. So với thế hê â trước Magento 2 đã được nấp cấp mạnh mẽ ở giao diê ân, cấu trúc, công nghê â... 2.2. Các thay đổi của magento 2 so với magento 1.x Magento là nền tảng thương mại điện tử ra đời từ năm 2008. Hệ thống được thiết kế tối ưu cho thương mại điện tử và các tính năng mở rộng (extension, theme) hoạt động độc lập với code core là những lý do chính giúp magento phát triển nhanh và hình thành cộng đồng mạnh mẽ. Tuy nhiên magento 1 (phiên bản đầu tiên) còn có những hạn chế nhất định tiêu biểu sau đây: – Hiệu suất : tốc độ load website magento chậm vì bản thân nó rất nặng, đòi hỏi máy chủ xử lí mạnh mới chạy nhanh được. – Cấu trúc magento 1.x rất phức tạp. – Ngoài hỗ trợ cơ sở dữ liệu MySQL thì magento 1.x chưa hỗ trợ các cơ sở dữ liệu khác. Thư viện javascript thường bị conflict giữa Prototype với Jquery. Vấn đề nêu trên nếu được giải quyết thì sẽ làm cho website xây dựng bằng mã nguồn mở Magento thêm phần thân thiện, tiện ích và dễ dàng sử dụng hơn, lượng người dùng sẽ tăng lên. 2.2.1. Công nghệ nâng cấp Magento 2 sử dụng các công nghệ mới nhất trong lập trình web để cải thiện hiệu suất, khả năng bảo mật tăng cường hơn. * Yêu cầu hệ thống là: 1. PHP 5.4 trở lên thêm phần mở rộng sau đây a. PDO / MySQL b. MySQLi c. mbstring d. Mcrypt e. mhash (sha-256) f. SimpleXML 8 g. DOM (điều này được bao gồm theo mặc định trong PHP 5.4) h. curl i. GD2 hoặc ImageMagick 6.3.7 (hoặc mới hơn) hoặc cả hai j. soap 2. Mysql phiên bản 5.6 trở lên 3. Zend Framework 1.x 4. Javascript: jQuery 5. HTML5 và CSS3: Tăng hiệu suất, cải thiện các thiết kế bố trí, đáp ứng thiết kế web 2.2.2. Kiểm định Code (Code Quality) Magento 2 tập trung vào việc cải thiện chất lượng code. Các tính năng kiểm định tích hợp sẵn trong magento 2 như sau:  Integration Testing (Test tích hợp)  Unit Testing(Test cấp đơn vị)  Static Testing(Test kiểm thử tĩnh)  Performance Testing(Test hiệu suất)  JavaScript Testing 2.2.3. Sự thay đổi của Frontend và Backend Frontend a)Thay đổi cấu trúc thư mục và tập tin  Cấu trúc thư mục của Magento 2 là nhiều hơn so với cấu trúc thư mục Magento 1.x  Đã chuyển thư mục js, media, skin từ gốc đến thư mục pub  Các công cụ cho chuyển đổi và thử nghiệm 9 Hình 1: Cấu trúc thư mục 1. App / Design/ /base => app/ code /// view 2. app/locale/en_US/template/email/*.html => app/code///view/email/*.html 3. errors => pub/errors, 4. Js => pub/js, 5. Media => pub/media, 6. shell => dev/shell Như vậy trong Magento 2, một thư mục mới có tên là "view" dưới app / code / core / Mage / module_name. b) Kích hoạt module Trong Magento 1.x, kích hoạt các module bằng cách sử dụng các tập tin module.xml trong app / etc / module. Nhưng trong Magento2, sử dụng các config.xml để kích hoạt module. c) Java thay đổi kịch bản thư viện Nó sử dụng các thư viện JQuery như là mặc định thư viện Java script, vì vậy nó loại bỏ các nguyên mẫu và xung đột jQuery. d) Magento Switchability ( liên kết trong Magento) Trong phiên bản Magento 1.x tất cả các module chính như: catalog, cms, 10 customer, order reports là có sự liên kết với nhau. Khi vô hiệu hóa bất kì một trong các module đó thì sẽ làm cho hệ thống bị phá vỡ.Nhưng trong Magento 2 lại có sự linh hoạt để chuyển đổi và vô hiệu hóa. Và module không được quan hệ với nhau về mức độ cấu hình. Backend Những thay đổi quan trọng nhất phía backend :  Trong Magento 1.x, URL của phần admin là default_url / admin . Nhưng trong Magento2, URL sẽ được default_url / backend  Thiết kế lại các phần Backend  Danh mục trình đơn đã được thay đổi và toàn bộ khu vực admin có giao diện dễ sử dụng hơn. a) Cái nhìn trực quan mới b) Một trong những thay đổi lớn nhất của phần admin là cái nhìn trực quan mới thân thiện hơn c) Hình 2: Bảng đăng nhập 11
- Xem thêm -

Tài liệu liên quan