Xây dựng cổng thương mại điện tử cho doanh nghiệp dùng mô hình groupon
LỜI CẢM ƠN.
Tục ngữ Việt Nam có câu “ không thầy đó mày làm nên”. Vì lẽ đó, khi
khóa luận tốt nghiệp này hoàn thành chúng tôi chân thành biết ơn những công lao
cao quý của thầy cô đã dành cho tôi suốt những năm học qua.
Xin chân thành gửi lời cảm ơn đến quý thầy cô khoa Công Nghệ Thông Tin
đã tận tình giảng dạy chúng tôi trong hơn bốn năm học vừa qua. Đặc biệt, xin gửi
lời cảm ơn tới Ths. Đặng Nhân Cách vì sự chỉ bảo, góp ý tận tình và luôn tạo mọi
điều kiện thuận lợi nhất để chúng tôi hoàn thành kịp tiến độ.
Xin chân thành gửi lời cảm ơn đến các anh em trong công ty TiBi đã nhiệt
tình hỗ trợ thắc mắc và cung cấp nhiều tài liệu bổ ích để chúng tôi hoàn thành tốt
khóa luận của mình.
Cảm ơn những người thân và gia đình đã tạo điều kiện thuận lợi nhất, giúp
đỡ tôi trong suốt quá trình nghiên cứu và hoàn thành khóa luận.
Cảm ơn tập thể lớp CN07B và tập thể lớp CN07A, nguồn cổ vũ tinh thần
cho chúng tôi suốt hơn bốn năm học, cũng như quá trình làm khóa luận.
NHẬN XÉT CỦA GVHD
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
1
GVHD: Đặng Nhân Cách
Xây dựng cổng thương mại điện tử cho doanh nghiệp dùng mô hình groupon
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
CHƯƠNG 1: GIỚI THIỆU
1.1 Lý do chọn đề tài
Trong những năm gần đây với sự phát triển vượt trội của khoa học kỹ
thuật đặt biệt là công nghệ thông tin, cùng với những ứng dụng của nó
trong các lĩnh vực đã đáp ứng phần lớn những nhu cầu của con người.
Trong đó thì lĩnh vực áp dụng quản lý và mua bán bằng máy tính thay cho
3
GVHD: Đặng Nhân Cách
Xây dựng cổng thương mại điện tử cho doanh nghiệp dùng mô hình groupon
việc quản lý và mua bán thủ công ở các doanh nghiệp, công ty, cá nhân là
thực sự cần thiết. Do đó nhu cầu “giới thiệu thông tin về các sản phẩm, dịch
vụ đến với khách hàng” là không thể thiếu được đối với mọi doanh nghiệp
và công ty, cửa hàng vừa và nhỏ.
Cùng với việc Internet đang nhanh chóng lan rộng khắp toàn cầu thì
Website thương mại sẽ trở thành công cụ chủ yếu và đắc lực cho việc kinh
Tìm hiểu ứng dụng các module mà Drupal hỗ trợ.
Nghiên cứu phát triển các module mà Drupal cms không hỗ trợ.
CHƯƠNG 2: TỔNG QUAN MÔ HÌNH GROUPON
2.1 Nguồn gốc ra đời
Mô hình Groupon có nền tảng ban đầu là ThePoint.com do Andrew Mason
thành lập vào năm 2008. ThePoint hoạt động dựa trên nguyên lý khi có một số
lượng đủ lớn người quan tâm đến một vấn đề nào đó thì sẽ xảy ra hành động
thực hiện việc đó, ví dụ: Xem phim, chơi nhạc, đi du lịch… Sau đó trang web
này đổi tên site thành Groupon (Groupon = Group + Coupon, kết hợp giữa yếu
tố khuyến mãi và yếu tố cộng hưởng số đông). Và hiện nay mô hình này ngày
càng được áp dụng rộng rãi với sự ra đời của nhiều trang web như
phagia.com.vn, muachung.vn, nhommua.vn.
2.2 Khái niệm
Groupon là mô hình mua theo nhóm hay mua chung, được viết tắt từ 2 từ
Group (nhóm) và Coupon (phiếu mua hàng). Mô hình hoạt động của Groupon
dựa trên nguyên lý khi có một số lượng đủ lớn người đăng ký mua một sản
phẩm/dịch vụ nào đó thì sẽ được quyền mua sản phẩm/dịch vụ đó với giá thấp
hơn nhiều so với giá gốc (giảm từ 30%- 100%).
2.3 Bản chất mô hình groupon
Bản chất của mô hình Groupon là Win-Win-Win, tức là khách hàng được
lợi (giảm giá), doanh nghiệp đạt được mục tiêu quảng cáo trực tuyến và
Groupon hưởng % doanh thu.
Các nhà cung cấp đồng ý đưa ra các siêu khuyến mãi, siêu giảm giá tới
60%-70% thậm chí là trên 90%, mục đích chủ yếu là để quảng cáo, thu hút sự
chú ý, quan tâm của khách hàng. Nếu số người mua không đạt được số người
yêu cầu tối thiểu thì hoạt động mua theo nhóm đó coi như hủy bỏ
2.4 Ưu điểm
- Được sự chấp nhận của người mua.
- Đáp ứng nhu cầu mua hàng giá rẻ trong thời buổi giá cả hàng hóa,
dịch vụ tăng cao.
- Đẩy mạnh quảng cáo dịch vụ trên các mạng xã hội như facebook,
zingme, yahoo... và các cổng thông tin thương mại lớn khác.
- Quảng bá thông qua tờ rơi, truyền thông đại chúng.
- Tạo hộp thư phản hồi từ khách hàng về chính sản phẩm, dịch vụ mà
họ tham gia để biết rõ phần nào về chất lượng mà nhà cung cấp đưa đến cho
khách hàng.
2.7 Lĩnh vực nghiên cứu
CHƯƠNG 3: CƠ SỞ LÝ THUYẾT
3.1 Ngôn ngữ lập trình PHP
Ngôn ngữ PHP và MySQL được sử dụng khá phổ biến để xây dựng những
ứng dụng Web hiện nay. Khi kết hợp chung với nhau, PHP và MySQL cung
cấp một framework hấp dẫn trong đó có thể phát triển các ứng dụng Web
mạnh mẽ và linh hoạt. Trong xây dựng bất kỳ ứng dụng trang Web, PHP là
ngôn ngữ linh hoạt để viết các trang động (dynamic page) và tạo những tính
năng để xử lý các ngày tháng, xử lý dữ liệu, kết nối những nguồn tài nguyên,
quản lý những người dùng và giải quyết những thách thức phát triển thông
thường. MySQL là nơi hỗ trợ linh hoạt để lưu trữ dữ liệu, hiển thị, cập nhật,
loại bỏ, chỉnh sửa và trình diễn.
PHP là ngôn ngữ tạo script (kịch bản) cấp cao thông dụng được rất
nhiều tổ chức và nhà phát triển sử dụng. Ban đầu được Rasmus Lerdurf phát
triển dưới dạng một dự án Perl nhỏ vào cuối năm 1995, mục đích là một
6
GVHD: Đặng Nhân Cách
Xây dựng cổng thương mại điện tử cho doanh nghiệp dùng mô hình groupon
phương tiện nhằm hổ trợ phát triển trang chủ của ông nên được đặt tên là
Personal Home Page (PHP) Tools.
Khi dự án nhỏ đã phát triển, ông phân phát những thay đổi của mình lên
Internet dưới dạng một Open Source và nhận được những cải tiến. Sau đó,
ngôn ngữ đã được đổi tên thành từ ghép hiện nay PHP: Hypertext
Preprocessor bởi Zeev Suraski và Gutmans sau khi họ đã viết lại parser (bộ
quản trị cơ sở dữ liệu đối tượng - quan
hệ.
Hình 2-2: Hệ quản trị cơ sở dữ
liệu MySQL.
MySQL là một server cơ sở dữ
liệu quan hệ mạnh mẽ và toàn diện
Relational Database Management Systems (RDBMS) được phát triển đầu tiên
bởi David Axmark, Allan Larsson và Michael “Monty” Widenius.
MySQL cung cấp phương thức để lưu trữ và truy xuất lượng thông tin
lớn và phức tạp. MySQL dựa trên cơ sở SQL (Structure Query Language).
Ngoài Linux, MySQL cũng chạy trên các hệ điều hành khác, như Windows,
Mac OS X hay BSD và những loại hệ điều hành UNIX khác.
MySQL cũng hỗ trợ nhiều số ngôn ngữ lập trình để truy cập và truy
vấn cơ sở dữ liệu bao gồm: PHP, Python, Perl, C, C++ và java.. Sự hỗ trợ
nhiều ngôn ngữ chỉ hữu dụng khi viết các module và ứng dụng khác nhau
trong tương lai.
Cú pháp: SELECT <danh sách các field>
FROM <danh sách bảng>
WHERE <các điều kiện ràng buộc>
8
GVHD: Đặng Nhân Cách
Xây dựng cổng thương mại điện tử cho doanh nghiệp dùng mô hình groupon
3.3 Framework
3.3.1 Khái niệm
Framework là hệ thống một thư viện mã lệnh được xây dựng sẵn dựa
trên ngôn ngữ lập trình PHP. PHP framework làm cho sự phát triển của
những ứng dụng web viết bằng ngôn ngữ PHP trở nên trôi chảy hơn, bằng
cách cung cấp 1 cấu trúc cơ bản để xây dựng những ứng dụng đó.
PHP framework thúc đẩy nhanh chóng quá trình phát triển ứng
dụng, tiết kiệm được thời gian, tăng sự ổn định cho ứng dụng, và giảm
Model : Được giao nhiệm vụ cung cấp dữ liệu cho cơ sở dữ liệu và
lưu dữ liệu vào các kho chứa dữ liệu. Tất cả các nghiệp vụ logic được thực
thi ở Model. Dữ liệu vào từ người dùng sẽ thông qua View đến Controller
và được kiểm tra ở Model trước khi lưu vào cơ sở dữ liệu. Việc truy xuất,
xác nhận, và lưu dữ liệu là một phần của Model
View : View hiển thị các thông tin cho người dùng của ứng dụng và
được giao nhiệm vụ cho việc nhận các dữ liệu vào từ người dùng, gửi đi
các yêu cầu đến controller, sau đó là nhận lại các phản hồi từ controller và
hiện kết quả cho người dùng. Các trang HTML, JSP, các thư viện thẻ và các
file nguồn là một phần của thành phần View.
Trong các web framework, nó gồm 2 phần chính:
+ Template file định nghĩa cấu trúc và cách thức trình bày dữ liệu cho
user. Ví dụ như layout, color, windows …
+ Logic xử lý cách áp dụng dữ liệu vào cấu trúc trình bày. Logic này
có thể bao gồm việc kiểm tra định dạng dữ liệu, chuyển đổi định dạng dữ
liệu sang một dạng dữ liệu trung gian, lựa chọn một cấu trúc hiển thị phù
hợp.
Controller : Controller đảm nhiệm việc cập nhật bộ phận hiển thị
(View) khi cần thiết. Bộ điều khiển này nhận dữ liệu nhập từ người dùng,
truy xuất các thông tin cần thiết từ mô hình trong (Model), và cập nhật
thích hợp phần hiển thị (View). Giao diện với người sử dụng phần mềm
10
GVHD: Đặng Nhân Cách
Xây dựng cổng thương mại điện tử cho doanh nghiệp dùng mô hình groupon
được thiết lập nhờ sự tương tác qua lại giữa View và Controller: Hai bộ
phận này chính là phần trình bày bên ngoài của đối tượng biểu diễn bên
trong.
MVC chia nhỏ quá trình xử lý của một ứng dụng, giúp người lập
trình làm việc trên từng thành phần riêng lẻ, không ảnh hưởng đến các
thành phần khác giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp.
Hình 2-5: giao diện cài đặt Drupal.
Bước 5: Tạo database có tên : dulichdeal.
Bước 6: Nhập : database name: dulichdeal. Database username :root.
Hình 2-7: Chọn database .
13
GVHD: Đặng Nhân Cách
Xây dựng cổng thương mại điện tử cho doanh nghiệp dùng mô hình groupon
Sau khi cài đặt hoàn tất .
Hình 2-8 : Giao diện trang chủ sau khi cài đặt thành công.
3.4.3 Các thành phần chính trong drupal
3.4.3.1 Module
Module là phần mềm mở rộng các tính năng Drufpal và các
chức năng. Các module core được tích hợp trong bộ tải về của
Drupal, và có thể bật chức năng của nó mà không cần cài đặt phần
mềm bổ sung. Các module đóng góp được tải về trong mục
download các module của drupal.org, và cài đặt trong thư mục cài
đặt Drupal. Ngoài ra cũng có thể tạo ra các module riêng, điều này
đòi hỏi một sự hiểu biết thấu đáo về Drupal, lập trình PHP, và các
module của Drupal API.
Thự mục đặt module gồm các thư mục sau:
- ./modules/
- ./sites/all/modules/
- ./sites/default/modules/
- ./sites/domain_name/modules/
Cấu trúc của một module có thể có nhiều tập tin khác nhau, nhưng
phải có ít nhất hai tập tin: tên_module.info và tên_module.module.
14
GVHD: Đặng Nhân Cách
Xây dựng cổng thương mại điện tử cho doanh nghiệp dùng mô hình groupon
Tập tin .info thông báo cho Drupal biết một số thông tin cơ bản của
cho phù hợp với nhu cầu.
Hình 2-10: Quản lý người dùng website .
16
GVHD: Đặng Nhân Cách
Xây dựng cổng thương mại điện tử cho doanh nghiệp dùng mô hình groupon
3.4.3.3 Node
Một Node trong Drupal là một thuật ngữ chung cho một phần
của nội dung trên trang web, là kiểu dữ liệu trung tâm của Drupal.
Một số ví dụ về các Node:
• Các trang của các quyển sách (Pages in books).
• Các chủ đề thảo luận trong diễn đàn(Discussion topics in
forums).
• Các trang trong blog ( Entries in blogs).
• Các bài viết tin tức (News article stories).
Node là thành phần đơn giản nhất của Website, nếu muốn có
một trang tin tức sẽ bắt đầu xây dựng từ Node, hay muốn website có
một trang hiển thị 1 Video Clip cũng bắt đầu tạo ra trang đó từ Node.
Mỗi Node trên trang web có một kiểu nội dung (Content
type). Node cũng có ID, tiêu đề, ngày viết, tác giả (một người dùng
trên trang web), Nội dung…. Bằng cách sử dụng Module (CCK).
Node có: Tiêu đề là Text field, Nội dung là Text area.
Một số chức năng đã được xây dựng sẵn để hỗ trợ cho node: Access
control, Alias URL, caching, category, comment, file, search,
recision…
Xây dựng các kiểu nội dung dựa trên Node là một trong những quy
tắc đầu tiên mà các Web Developer cần tuân thủ, bởi tất cả những
Modules của Drupal đều được thiết kế cho Node. Nếu không tuân
thủ theo quy tắc này, tức là tạo ra một trang tin không dựa trên nền
tảng Node thì kể từ đây phải tự làm lấy tất cả mọi việc có liên quan
đến kiểu nội dung ngoại lai này, bao gồm cả việc: Phân Loại (tags),
Comment và User cũng có các bảng cơ sở dữ liệu riêng, và
Role, Permission, và các thiết lập khác cũng được lưu trữ trong các
bảng cơ sở dữ liệu.
3.4.3.7 Path
Khi truy cập một địa chỉ URL trong trang web của
Drupal, một phần của địa chỉ URL sau địa chỉ cơ bản của trang web
được gọi là Path.
Các module đường dẫn chính cho phép tùy chọn tạo đường
dẫn URL cho các trang Drupal. Theo mặc định, Drupal sẽ tự động
tạo các địa chỉ web như .
Công cụ tìm kiếm sẽ cung cấp bảng xếp hạng tốt hơn đến các
trang có nhiều đường dẫn URL, đặc biệt là bao gồm các từ khóa có
liên quan. Một số ví dụ về các đường dẫn URL:
• image/tid/16 => lưu trữ
• taxonomy/term/7 19 20 21 => cửa hàng / sản phẩm / whirlygigs
• node/3 => liên hệ
18
GVHD: Đặng Nhân Cách
Xây dựng cổng thương mại điện tử cho doanh nghiệp dùng mô hình groupon
• node/10 => sản phẩm / hàng hóa / ly
• node/10 => ly
• node/11 => sản phẩm / hàng hóa / coffeemakers
Có thể tạo URL như nhiều cấp độ sâu trong cấu trúc thư mục
ảo. Mặc dù nó có thể chỉ định cùng một URL nội bộ cho nhiều
đường dẫn, điều này thường không phải là một ý tưởng tốt cho các
bảng xếp hạng công cụ tìm kiếm.
Những đường dẫn cũ cần cho phép các đường dẫn module và
gán tên cho nội dung ngay từ đầu, vì vậy không phải đối phó với
những hậu quả của công cụ tìm kiếm và các trang web bên ngoài đã
được liên kết đến các trang thông qua / node / xx URL. Nếu chuyển
Xây dựng cổng thương mại điện tử cho doanh nghiệp dùng mô hình groupon
phong cách khác.
Website sử dụng Drupal có thể có một hoặc nhiều theme.
Người quản trị website quyết định bật hay tắt những theme nào theo
nhu cầu. Người dùng chọn sử dụng một theme trong những theme
hợp lệ mà người quản trị đã kích hoạt. Theme định nghĩa một cách
khái quát của website: Site name, Slogan, Mission, Layuot, Css,
Block style, Node style…
3.4.3.9 Region, Block, Menu
Các trang trên trang web của Drupal được đặt ra trong
Region, mà bao gồm các header, footer, sidebars, và phần nội dung
chính, theme xác định các Region khác. Ngăn chặn được các đoạn
rời rạc của thông tin được hiển thị ở Region của các trang web.
Block có mang hình thức của menu (trong đó có liên quan với điều
hướng trang web), nội dung từ các module (ví dụ các chủ đề diễn
đàn nóng), hoặc các khối thông tin tĩnh hoặc động đã tạo ra (ví dụ,
một danh sách các sự kiện sắp tới).
Block là những khối nội dung bao gồm những thuộc tính.
- Region: (vị trí trình bày) Được trình bày ở trái/ phải /trên /dưới/…
của website. Region được theme định nghĩa.
- Weight: (thứ tự trình bày) Xác định thứ tự trình bày block. Block có
Weight càng nhỏ có độ ưu tiên càng cao.
- Title: Tiêu đề của block.
- Body: Nội dung của block.
- Access: Xác định block có được trình bày hay không đối với người
dùng có những vai trò nhất định.
- Custom pages: Giới hạn trình bày block ở một số trang xác định.
20
GVHD: Đặng Nhân Cách
Xây dựng cổng thương mại điện tử cho doanh nghiệp dùng mô hình groupon
hệ thống cũng được xây dựng theo hướng này, thích hợp để sử dụng ở hầu
hết các site và để tham khảo.
Các module của hệ thống:
22
GVHD: Đặng Nhân Cách
Xây dựng cổng thương mại điện tử cho doanh nghiệp dùng mô hình groupon
- Aggregator: Lấy tin tin từ các website khác thông qua RSS.
- Block: Điều khiển các ô hiển thị xung quanh nội dung chính.
- Blog: Giúp người dùng tạo các blog entry.
- Blogapi: Hỗ trợ tạo blog entry từ xa.
- Book : Hỗ trợ người dùng cộng tác xây dựng những trang sách.
- Color: Hỗ trợ người dùng thay đổi tông màu của một theme.
- Comment: Chức năng gửi phản hồi của người dùng trên một trang nội
dung.
- Contact: Cho phép sử dụng cả biểu mẫu liên hệ cá nhân và liên hệ toàn hệ
thống.
- Filter: Điều khiển lọc nội dung để chuẩn bị cho việc hiển thị.
- Forum: Diễn đàn thảo luận.
- Help: Tạo các trang trợ giúp người quản trị website sử dụng các module.
- Legacy: Hỗ trợ các hàm hệ thống cũ đã bị bỏ đi.
- Locale: Cho phép dịch giao diện người dùng sang các ngôn ngữ khác ngoài
Tiếng Anh.
- Menu: Cho phép quản trị hệ thống tùy biến menu chính.
- Node: Cho phép nội dung được gửi đến và hiện thị trên các trang.
- Path: Cho phép người dùng đổi tên đường dẫn URL.
- Ping: Nhắn tin đến những site khác khi hệ thống cập nhật.
- Poll: Chức năng bình chọn trên website.
- Profile: Tùy biến các thông số người sử dụng .
- Search: Hỗ trợ tìm kiếm từ khóa trên toàn hệ thống.
- System: Điều khiển cấu hình chung dành cho quản trị website.
- Open source – Mã nguồn của Drupal hoàn toàn tự do dưới giấy phép
GNU/GPL 2.
- Cá nhân hóa – Có sẵn ngay trong nhân Drupal. Cả nội dung lẫn cách trình
bày đều có thể cá nhân hóa theo các tiêu chuẩn được người dùng đặt ra.
- Hệ thống phân quyền theo vai trò (role based) – Có thể tạo ra các vai trò
mang các quyền hạn khác nhau, sau đó gán những vai trò này cho người
24
GVHD: Đặng Nhân Cách
Xây dựng cổng thương mại điện tử cho doanh nghiệp dùng mô hình groupon
dùng.
- Tìm kiếm – Mọi nội dung đều được đánh chỉ mục và có thể tìm
kiếm bởi module tìm kiếm tích hợp sẵn.
3.5.1 Quản lý thành viên
Xác thực người dùng – Người dùng có thể đăng ký và xác thực
tại trang web, hoặc thông qua các nguồn xác thực khác như Jabber,
Blogger, LiveJournal hoặc một site Drupal khác hoặc máy chủ LDAP.
3.5.2 Quản trị nội dung
Bình chọn – Module bầu chọn của Drupal cho phép người dùng tạo
các bầu chọn và gắn vào các trang khác nhau.
- Khuôn mẫu (template) – Hệ thống khuôn mẫu của Drupal phân
tách nội dung với cách trình bày. Khuôn mẫu được xây dựng trên PHP và
HTML chuẩn, có nghĩa là không cần phải học một ngôn ngữ khuôn mẫu
(templating language) nào cả.
- Bình luận theo luồng – Mô hình bình luận theo luồng mạnh mẽ của
Drupal cho phép bình luận bất cứ nội dung nào. Các bình luận có chia cấp
như ở một nhóm tin (newsgroup) hoặc diễn đàn.
Điều khiển phiên bản – Hệ thống điều khiển phiên bản của Drupal
cho phép lưu giữ thông tin của các lần cập nhật (ai, cái gì, khi nào). Có thể
dễ dàng quay lại (roll-back) một phiên bản trước đó.
3.5.3 Blogging