Tải bản đầy đủ (.pdf) (22 trang)

VIẾT MODULE CHO MAGENTO

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.13 MB, 22 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
-------------------------------------------

BÁO CÁO THỰC TẬP
NGÀNH: CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI: VIẾT MODULE CHO MAGENTO
Cán bộ hướng dẫn: Giáp Tùng Lân
Giảng viên đánh giá: ThS. Trần Mai Vũ
Sinh viên: Vũ Trung Triệu
Mã sinh viên:11020349
Lớp: K56-CB

Hà Nội, 9/2014
1


Mục Lục
1.Lời cám ơn .................................................................................................................... 3
2. Giới thiệu về công ty ................................................................................................... 4
3. Quá trình thực tập. ....................................................................................................... 5
4. Cơ bản về magento. ..................................................................................................... 6
4.1 Magento là gì? ....................................................................................................... 6
4.2. Cấu trúc một module magento .............................................................................. 7
5. Module Emailmarketing .............................................................................................. 9
5.1 Xây dựng front end ............................................................................................... 9
5.1.1 Hiển thị danh sách email khách hàng .............................................................. 9
5.1.2. Trang hiện thị thông tin group ...................................................................... 12
5.1.3.Gửi email khách hàng. ................................................................................... 13
5.2 Xây dựng backend ............................................................................................... 15


5.2.1. Contact .......................................................................................................... 15
5.2.2. Email group................................................................................................... 16
5.2.3. Cấu hình cho module ................................................................................... 18
6. Kết quả đạt được, hướng phát triển ........................................................................... 20
6.1 Kỹ năng & kiến thức thu thập được ..................................................................... 20
6.2 Hướng phát triển .................................................................................................. 20
7.Tài liệu tham khảo ...................................................................................................... 20

2


Lời cám ơn
Qua đợt thực tập vừa rồi giúp em có thêm nhiều kiến thức mới bổ ích, trau dồi
thêm kỹ năng làm việc nhóm cũng như được tiếp xúc và làm việc với môi trường làm
việc thực tế, giúp em tích lũy thêm kinh nghiệm làm việc
Em xin chân thành cảm ơn các thầy cô trong phòng thí nghiệm KTLab và khoa
Công nghệ thông tin đã tổ chức đợt thực tập bổ ích này.
Em xin gửi lời cảm ơn tới giảng viên hướng dẫn – thầy Trần Mai Vũ. Thầy đã chỉ bảo
giúp em có thể hoàn thành tốt báo cáo thực tập.
Em cũng xin gửi lời cảm ơn đến lãnh đạo công ty TruePlus đã tạo điều
kiện,giúp đỡ,tạo ra môi trường cho chúng em có cơ hội làm việc cũng như học tập
trong điều kiện rất tốt.
Cuối cùng em xin gửi lời cám ơn đến các anh,chị hướng dẫn: Giáp Tùng Lân,
Nguyễn Cẩm Ly ở công ty,đã giúp đỡ,giải đáp thắc mắc, giúp em hoàn thành các công
việc được công ty giao

3


2. Giới thiệu về công ty

Công ty Cổ phần Trueplus Việt Nam thành lập tháng 1 năm 2009 với tên sáng lập
là Công ty Cổ phần Giải pháp trực tuyến ( OSS) sau đổi tên thành Trueplus và là
doanh nghiệp tiên phong trong lĩnh vực sản xuất và xuất khẩu phần mềm, cung cấp
giải pháp thương mại điện tử hoàn hảo cho các business trên thế giới.
Hiện tại, Trueplus tập trung vào xây dựng các hệ thống thương mại điện tử và
phát triển các gói tính năng hữu ích cho Magento – nền tảng mã nguồn mở chuyên
nghiệp nhất dành cho E-Commerce.
Magestore – sản phẩm then chốt của TruePlus là một là hệ thống các module và
template cho Magento, hiện đang là một trong những đơn vị hàng đầu trên thế giới về
cung cấp những chương trình mở rộng cho nền tảng thương mại điện tử Magento
(thuật ngữ là Magento Extensions). Bằng việc tập trung vào phát triển các sản phẩm có
tính sáng tạo cao và cung cấp dịch vụ khách hàng tuyệt hảo, đến nay Magestore đã có
hơn 20,000 khách hàng trên toàn thế giới và đang phấn đấu đạt được vị trí số 1 trong
lĩnh vực phát triển module cho Magento trong năm 2014.

4


3. Quá trình thực tập.
17/06 – 13/7: Khóa học PHP căn bản.
14/07- 26/8 : Khóa học về Magento cơ bản và làm bài test Magento cơ bản.
: Bài tập magento cơ bản

21/7- 18/8
-

Hoàn thành bài tập xây dựng một module magento
Emailmarketing.

5



4. Cơ bản về magento.
4.1 Magento là gì?
Magento là một mã nguồn mở, được ra đời ngày 31 tháng 3 năm 2008, được sáng lập
bởi Varien. Phát triển dựa trên nền tảng từ Zend Framework.
Magento dùng để phát triển xây dựng hệ thống website bán hàng với nhiều tính năng
ưu việt dựa trên mã nguồn mở (OS). Magento kế thừa các tính năng của những open source
về shopping cart trước nó, như Zen cart- oscommerce, cùng với những tính năng vượt trội
của nền tảng website 2.0. Vì vậy, theo các chuyên gia dự đoán Magento chính là tương
lai của kỷ nguyên Thương Mại Điện Tử.
Một số đặc điểm khiến magento trở thành mã nguồn mở dùng để xây dựng hệ thống
thương mại điện tử tốt nhất:
Về mặt tính năng magento có 1 số chức năng nổi bật mà 1 số mã nguồn mở khác
không có được đó là:
- Wishlists: Bạn có thể tạo ra danh sách sản phẩm yêu thích của mình và chia
sẻ với bạn bè.
- Multi store/mall feature: bạn có thể tạo ra nhiều cửa hàng, kho hàng, địa
điểm bán hàng khác nhau, cùng 1 sản phẩm nhưng có thể bán với giá khác
nhau ở mỗi cửa hàng.
- Email lists: Magento có 1 hệ thống danh sách các email, lọc, sắp xếp, giúp
cho việc marketing dễ dàng với tính năng ưu việt.
- Compare product: Tạo ra danh sách các sản phẩm dùng để so sánh.
- Bundle/Grouped/Digital products & more: Hệ thống có thể tạo ra các gói,
nhóm sản phẩm với thuộc tính cho từng loại.
- Layered/ Filter naviagation: Giúp người dùng có thể lọc, tìm kiếm theo 1
hay
nhiều thuộc tính của sản phẩm.
- Advanced searching: Giúp tìm kiếm nâng cao, tìm kiếm tùy chỉnh.
- Seo performance: Magento đã tích hợp SEO giúp tối ưu hóa với công cụ tìm

kiếm.
- CMS page: giúp người dùng tạo ra những trang laddingpage dễ dàng...
- Tích hợp google checkout.
- Bộ nhớ cache ….
- Cấu trúc thư mục rõ ràng: Magento được phát triển dựa trên nền tảng Zend
Framework với mô hình MVC, giúp bạn có thể quản lý phát triển hệ thống
dễ dàng, khi có sự update của các phiên bản mới.

6


4.2. Cấu trúc một module magento
Các module của Magento được xây dựng theo mô hình MVC với đầy đủ các thành
phần: Controller, Model và View. Trong Magento, View bao gồm Block, layout và các file
template.

Controller: là thành phần tiếp nhận các request từ phía người dùng được gửi đến Server
thông qua browser. Controller yêu cầu View (Layout trong Magento) render ra các đoạn
mã HTML (bao gồm cả CSS và Javascript). Sau đó trả về phía browser để hiển thị cho người
dùng.
View: trong Magento, View bao gồm các Layout (định nghĩa bằng các file XML), Block (các
class PHP), và Template (các file .phtml). Layout có nhiệm vụ render ra các đoạn mã HTML.
Layout có thể lấy dữ liệu từ database thông qua các Model Objects.
Model: trong Magento, Model bao gồm 2 thành phần: Object Model và Resource
Model. Trong đó, Object Model không làm việc trực tiếp với database. Nó có nhiệm vụ
ưu trữ dữ liệu tạm thời sau khi được lấy ra từ database. Ngoài ra, nó cung cấp các operator
function như get(), set(), load(), delete(). Resource Model là thành phần làm việc trực tiếp với
database. Sau khi truy vấn database, dữ liệu sẽ được chuyển vào Object Model để lưu trữ
tạm thời.
7



 Cấu trúc thư mục
Các module của Magento được lưu trữ trong 3 thư mục:




app/code/core: đây là thư mục chứa các module core của Magento
app/code/local : thư mục này chứa các module mất phí do các provider phát
triển.
app/code/community : thư mục này chứa các module miễn phí được phát triển
bởi cộng đồng Magento.

8


5. Module Emailmarketing
Module cho phép các Account tạo và quản lý các group,các email trong group của
chính mình, và từ đó có thể gửi email đến cho bạn bè trong list contact của mình, tạo
event giảm giá cho sản phẩm, tạo invoice trong checkout

5.1 Xây dựng front end
5.1.1 Hiển thị danh sách email khách hàng
Tạo trang hiển thị thông tin khách hàng bao gồm:
- Name: họ tên khách hàng
- Email: Địa chỉ email khách hàng
- Group: Tên nhóm khách hàng
- Edit: Cho phép sửa đổi thông tin khách hàng như group,name,email.
- ADD NEW CONTACT: Thêm khách hàng vào contact

Thiết kế Cơ sở dữ liệu :
$installer = $this;
$installer->startSetup();
$installer->run("
DROP TABLE IF EXISTS {$this>getTable('emailmarketing/email')};
CREATE TABLE `{$installer->getTable('emailmarketing/email')}` (
`contact_id` int(11) NOT NULL auto_increment,
`name` varchar(50) NOT NULL default '',
`email` varchar(100) NOT NULL default '',
PRIMARY KEY(`contact_id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
");
$installer->endSetup();
- Thông tin acccount
Tạo trang hiển thị thông tin cá nhân của Emailmarketing tại frontend hiển thị:
- Name: Tên (Name + Email + Group)
- Form edit thông tin: Name, Email , Group. Click nút Save sẽ lưu thông tin
vào database thông qua model Emailmarketing /Account và
Customer/Customer. Hiển thị thông báo lỗi/ thành công
-

Hàm xử lý lưu thông tin khách hàng khi add new contact và edit:

public function saveAction() {
9


$id = $this->getRequest()->getParam('id');
$session = Mage::getSingleton('core/session');
$email = Mage::getModel('emailmarketing/email');

$data = $this->getRequest()->getPost();
if($id) {
$email->load($id);
}
$email->setData('name',$data['name']);
$email->setData('email',$data['email']);
$email->setData('group_id',Mage::helper('emailmarketing')>getGroupIdByGroupName($data['group_name']));
$email->setData('customer_id',Mage::getSingleton('customer/session')>getCustomer()->getId());
try{
$email->save();
$id? $session->addSuccess('Edit email successfully') :
12
$session->addSuccess('Add email successfully');
}catch(Exception $e) {
$session->addError($e->getMessage());
}
$this->_redirect('emailmarketing');
}
-

Giao diện trang Contact:

10


-

Giao diện Edit Delete email:

-


Giao diện Add New Contact:

11


5.1.2. Trang hiện thị thông tin group
Tạo trang hiển thị danh sách nhóm khách hàng bao gồm:
- Name: Tên nhóm khách hàng.
- Description: Mô tả về nhóm khách hàng.
- Edit: Cho phép sửa đổi thông tin nhóm như name,description.
- ADD NEW GROUP: Thêm nhóm khách hàng mới .
Giao diện hiển thị list group

12


Giao diện add new group

Giao diện edit group

5.1.3.Gửi email khách hàng.
Cho phép gửi email theo nhóm khách hàng. Hàm gửi email “sendemail” trong
controllers
public function sendAction() {
13


$data = $this->getRequest()->getPost();
// get group ID

if($this->getRequest()->getParam('id'))
$group_id = $this->getRequest()->getParam('id');
else
$group_id
=
Mage::helper('emailmarketing')>getGroupIdByGroupName($data['group_name']);
//get Message
if(($data['message']))
Mage::getSingleton('core/session')->setMessage($data['message']);
//get customer_id
$customer_id
=
Mage::getSingleton('customer/session')->getCustomer()>getId();
//get sent_time
$sent_time = date('Y-m-d H:i:s');
$model = Mage::getModel('emailmarketing/email')->getCollection()
->addFieldToFilter('group_id',$group_id);
foreach($model->getData() as $item){
$sendTo[] = array('email'=>$item['email'],'name'=>$item['name']);
}
try {
Mage::getModel('emailmarketing/sendemail')>sendEmail($sendTo,Mage::getSingleton('core/session')->getMessage());
Mage::getSingleton('core/session')->addSuccess('Sent Email successfully');
/*
* save email info into database
* $email_id pass into saveEmailInfo() either null or set by request
* $emailId 's value get from saveEmailInfo() 's return
*/
if($this->getRequest()->getParam('email'))
$email_id = $this->getRequest()->getParam('email');

$emailId
=
Mage::getModel('emailmarketing/sendemail')>saveEmailInfo($email_id,$data['message'],$customer_id,$group_id,$sent
_time);
}catch(Exception $e) {
Mage::getSingleton('core/session')->addError($e->getMessage());
}
$this->_redirect('*/*/view',array('id'=>$group_id,'email'=>$emailId));
}

14


-

Giao diện gửi email:

5.2 Xây dựng backend
5.2.1. Contact
Thêm menu Contact và Group vào trong backend:

-Thực hiện hiển thị contact và các action trong trang Contact:
+ Xây dựng block hiển thị danh sách email trong thư mục
\app\code\local\Magestore\Emailmarketing\Block\Adminhtml\contact.php
\app\code\local\Magestore\Emailmarketing\Block\Adminhtml\contact\Grid.php
+ Tạo form add contact và edit contact trong thư muc
15


\app\code\local\Magestore\Emailmarketing\Block\Adminhtml\Emailmarketing\

Edit\Tab\form.php
+ Các action trong trang contact
ADD NEW: Thêm email vào contact
Delete: Xóa email trong contact
Edit: Sửa thông tin email
Giao diện Contact hiển thị danh sách email khách hàng:

Giao diện thêm,sửa thông tin email khách hàng:

5.2.2. Email group
-Thực hiện hiển thị danh sách nhóm và các action trong trang Group:
+ Xây dựng block hiển thị danh sách nhóm trong thư mục
16


\app\code\local\Magestore\Emailmarketing\Block\Adminhtml\Emailgroup.php
\app\code\local\Magestor\Emailmarketing\Block\Adminhtml\Emailgroup\Grid.p
hp
+ Tạo form add group và edit group trong thư muc
\app\code\local\Magestore\Emailmarketing\Block\Adminhtml\Emailgroup\Edit\
Tab\form.php
+ Các action trong trang Group
 ADD NEW: Thêm nhóm mới vào danh sách group
 Delete: Xóa nhóm cũ trong danh sách
 Edit: Sửa thông tin nhóm
Giao diện hiển thị danh sách email group:

17



Giao diện thêm mới và sửa thông tin nhóm:

5.2.3. Cấu hình cho module
Phần cấu hình cho module tại Backend (System\Configuration\Email
Marketing)

18


Giao diện cấu hình:

19


6. Kết quả đạt được, hướng phát triển
6.1 Kỹ năng & kiến thức thu thập được
-

Kiến thức
+ Hiểu biết thêm về mã nguồn mở magento cho việc phát triển trang
thương mại điện tử.
+ Trau dồi ,rèn luyện thêm về ngôn ngữ PHP,HTML và Mysql.

-

Kỹ Năng
+ Rèn luyện kĩ năng giao tiếp,làm việc độc lập,làm việc nhóm.
+ Biết cách sắp xếp thời gian,công việc hợp lý để hoàn thành tốt công
việc.


6.2 Hướng phát triển
Tìm hiểu và củng cố vững chắc kiến thức về magento.Xây dựng hoàn chỉnh
Module emailmarketing với nhiều chức năng hơn như: thêm các event giảm
giá,khuyến mãi thêm sản phẩm...
Làm một trang thương mại điện tử hoàn chỉnh với đầy đủ các tính năng bằng
magento.

7.Tài liệu tham khảo
-

How-to-pass-magento-certification-exam-in-30-days(.pdf file)
/> /> />
20


Ý kiến đánh giá:

……………………………………….…………………………
……………………………………….…………………………
……………………………………….…………………………
……………………………………….…………………………
……………………………………….…………………………
……………………………………….…………………………
……………………………………….…………………………
……………………………………….…………………………

Hà Nội, ngày

tháng


năm 20

.

Người hướng dẫn
(Ký, ghi rõ họ tên & dấu công ty)

21


Ý kiến đánh giá:

……………………………………….…………………………
……………………………………….…………………………
……………………………………….…………………………
……………………………………….…………………………
……………………………………….…………………………
……………………………………….…………………………
……………………………………….…………………………
……………………………………….…………………………
……………………………………….…………………………
……………………………………….…………………………
Điểm số: ……. Điểm chữ: …………

Hà Nội, ngày tháng năm 20
Giảng viên đánh giá
(Ký, ghi rõ họ tên)

.


22



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×