BAB III METODE PENELITIAN
3.9 Perancangan User Interface
3.9.2 Perancangan User Interface Admin
Rancangan tampilan menu dan fitur pada sistem admin meliputi tampilan login, Halaman Admin, Data Barang, Data Customer, Data Transaksi Pembayaran, Laporan Transaksi.
112
1. Form Login Admin
Gambar 3.36 Form Login Admin
2. Halaman Admin
Gambar 3.37 Halaman Admin
3. Rancangan Data Barang
Gambar 3.38 Data Produk
114
4. Rancangan Data Customer
Gambar 3.39 Data Customer.
5. Rancangan Data Transaksi Pembayaran
Gambar 3.40 Data Transaksi Pejualan/Order.
116
6. Rancangan Laporan Transaksi
Gambar 3.41 Data Laporan Transaksi.
117 4.1 Hasil
Setelah dilakukan analisa dan perancangan, penulis melanjutkan dengan mewujudkan hasil yang nantinya akan digunakan untuk menguji kesesuaian aplikasi dengan sistem yang telah dirancang pada bab sebelumnya.
4.2 Spesifikasi Sistem
Setelah dilakukan analisa dan perancangan, penulis melanjutkan dengan mewujudkan hasil yang nantinya akan digunakan untuk menguji kesesuaian aplikasi dengan sistem yang telah dirancang pada bab sebelumnya.
1. Perangkat Keras
Perangkat keras yang digunakan didalam penelitian ini yaitu laptop sebagai perangkat untuk melakukan perancangan sistem web. Adapun spesifikasi laptop yang digunakan penelitian ini adalah sebagai berikut:
a. Tipe : Acer Aspire V5-471g
b. Processor Intel Core i3-3227U CPU 1.90GHz c. Memory : 4.00 GB
d. VGA Intel Graphics 3000
e. Display : 1366x768 (64 bit) (60Hz)
118
2. Perangkat Lunak
Perangkat lunak yang digunakan didalam penelitian ini adalah sebagai berikut:
a. Sistem Operasi Windows 7 Ultimate 64 bit b. Sublime Text
c. Xampp
d. Google Chrome 3. Bahasa Pemrograman
Adapun bahasa pemrograman yang digunakan penulis dalam merancang sistem e-market berbasis web adalah bahasa pemrograman php.
Selain itu penulis menggunakan CMS opencart untuk memudahkan merancang sistem web e-market.
4.3 Implementasi Sistem
Hasil dari penelitian ini adalah sebuah sistem informasi e-market berbasis web yang di implementasikan menjadi 2 sistem yaitu sistem web E-Market dan sistem web admin. Dalam tahap ini penulis mengimplementasikan user interface aplikasi sistem web E-Market yang telah dibuat.
1. Sistem web E-Market Sion Jaya.
Implementasi user interface dari aplikasi sistem web E-Market adalah sebagai berikut:
a. Form Halaman Utama E-Market .
Form ini merupakan tampilan halaman utama web E-Market Sion Jaya.
Gambar 4.1 Halaman Utama Web E-Market.
120
b. Form Login
Form ini memungkinkan bagi customer untuk memasukkan email dan password untuk dapat masuk ke halaman utama.
Gambar 4.2 Form Login Customer.
c. Form Registrasi
Form ini untuk pendaftaran customer baru.
Gambar 4.3 Form Registrasi Customer.
122
d. Form Detail Produk
Form ini menampilkan deskripsi produk yang dijual.
Gambar 4.4 Form detail produk.
e. Form Proses Pemesanan Produk/Transaksi Pembayaran
Form ini dimana customer akan melakukan proses pemesanan produk yang di beli.
Gambar 4.5 Form Proses Pemesanan/Transaksi Pembayaran.
124
f. Form Pencarian Produk
Form ini untuk melakukan pencarian produk yang diinginkan.
Gambar 4.6 Form Pencarian Produk.
g. Form Profile Customer.
Form ini untuk melihat dan merubah informasi data pada customer itu sendiri.
Gambar 4.7 Form Profile customer.
2. Sistem web Admin.
Implementasi user interface dari aplikasi sistem web Admin adalah sebagai berikut:
126
a. Form Login Admin.
Form ini memungkinkan bagi admin untuk memasukkan username dan password untuk dapat masuk ke halaman utama admin.
Gambar 4.8 Form Login Admin.
b. From Halaman Utama Admin
Form ini menampilkan halaman utama admin dan menu – menu yang ada.
Gambar 4.9 Form Halaman Utama Admin.
128
c. From Menu Produk
Form ini untuk mengolah data barang/produk yang akan di jual pada web e-market.
Gambar 4.10 Form Menu Produk.
d. From Menu Customer.
From ini untuk mengolah data customer yang terdaftar.
Gambar 4.11 Form Menu Customer.
130
e. Form Menu Transaksi Penjualan/Pesanan.
Form ini untuk melakukan proses transaksi pemesanan produk yang telah dipesan oleh customer.
Gambar 4.12 From Menu Transaksi Penjualan/Pesanan.
f. Form Menu Laporan Transaksi.
Form ini untuk melihat jenis laporan transaksi yang ingin dilihat.
Gambar 4.13 Form Menu Laporan Transaksi.
132
g. Form Print Catatan Pengiriman
Form ini untuk mencetak catatan pengiriman.
Gambar 4.14 Form Print Catatan Pengiriman h. From Print Faktur/Tagihan.
Form ini untuk mencetak tagihan pesanan untuk arsip laporan admin.
Gambar 4.14 From Print Faktur/Tagihan.
4.4 Pembahasan
Dalam subbab ini penulis akan melakukan pembahasan mengenai pengujian perangkat lunak yang telah dibuat. Pengujian perangkat lunak ini bertujuan untuk menguji komponen sistem yang telah dirancang dan untuk memastikan bahwa setiap komponen dari sistem telah berfungsi seperti yang diharapkan. Adapun pengujian ini dilakukan dengan menggunakan tehnik pengujian black box testing.
4.5 Pengujian Black Box.
Dalam tahap ini akan di uraikan rencana pengujian terhadap aplikasi sistem web E-market dan sistem web admin.
1. Rencana pengujian aplikasi sistem web E-market.
Berikut adalah tabel rencana pengujian black box dari aplikasi sistem web e-market.
Tabel 4.1 Rencana pengujian aplikasi sistem web E-market.
No Form Detail Pengujian Jenis Uji
1. Registrasi
Dapat menyimpan data profile
Black Box Saat customer selesai mengisi data,
customer menekan tombol “ Lanjutkan “ maka data akan
tersimpan.
134
2 Login
Jika email dan password benar, maka akan masuk ke akun web
E-Market.
Black Box Jika email dan password salah ,
maka akan tampil pesan” email dan password tidak terdaftar.”
3
Halaman Utama
Saat customer menekan tombol “ Ambil Produk “ maka produk akan
masuk keranjang belanja.
Black Box Saat customer menekan” Nama
produk” maka akan muncul halaman detail produk.
Saat cutomer ingin melakukan proses pemesanan dengan menekan
tombol “Keranjang Belanja” maka akan muncul halaman Keranjang
belanja.
Saat customer menekan tombol “ Kategori “ , maka akan tampil
beberapa kategori porduk.
Saat customer menekan tombol
“Halaman Utama” , maka halaman akan me-refresh kembali halama
utama.
Saat customer mencari produk dan menekan tombol “ cari “ maka halaman akan menampilkan produk
yang dicari.
4
Keranjang Belanja
Dapat melakukan pesanan.
Black Box Dapat melakukan Transaksi
5
Akun Customer
Dapat merubah data profile customer.
Black Box Dapat melihat laporan
transaksi/order.
2. Rencana pengujian aplikasi sistem Web Admin.
Berikut adalah tabel rencana pengujian black box dari aplikasi sistem web Admin.
136
Tabel 4.2 Rencana pengujian aplikasi sistem web Admin.
No Form Detail Pengujian Jenis Uji
1 Login
Jika username dan password benar, maka akan
masuk ke sistem beranda admin.
Black Box Jika username dan
password salah , maka akan tampil pesan “username dan password tidak sesuai.”
2 Menu Produk
Dapat menambah data produk
Black Box Dapat merubah data produk
Dapat menghapus data produk
Dapat menampilkan list produk
3 Menu Customer
Dapat menambah data customer
Black Box Dapat mengubah data
customer
Dapat menghapus data customer
Dapat menampilkan list data customer
4
Menu
Penjualan/Transaksi
Dapat menambah pesanan
Black Box Dapat merubah pesanan
Dapat melihat detail pesanan
Dapat menghapus pesanan Dapat menapilkan list
order.
Dapat mencetak catatan pengiriman Dapat mencetak invoice.
5 Menu Laporan
Dapat melihat laporan pemesanan
Black Box Dapat melihat laporan
barang yang dikirim
Dapat melihat laporan transaksi customer.
138
4.6 Hasil Pengujian
Berdasarkan rencana pengujian yang telah dibuat , maka hasil pengujian perangkat lunak dari sistem web E-market akan dijelaskan pada bagian ini.
1. Hasil Pengujian Aplikasi Sistem Web E-Market
Hasil Pengujian Aplikasi Sistem Web E-Market adalah sebagai berikut:
a. Form Registrasi.
Tabel 4.3 Hasil Pengujian Form Registrasi Hasil Uji
Kelas Uji
Hasil Yang Diharapkan
Hasil Pengujian Kesimpulan
Form Registrasi
Jika pengisian data lengkap dan
sesuai , maka sistem menympan
data akan masuk ke halaman akun
customer. tidak sesuai dan
kurang lengkap
maka akan tampil pesan sesuai data
yang kurang lengkap/tidak
valid.
sesuai data yang kosong/salah.
b. Form Login
Tabel 4.4 Hasil Pengujian Form Login Hasil Uji
Kelas Uji
Hasil Yang Diharapkan
Hasil Pengujian Kesimpulan
Form Login
Jika email dan password benar, maka akan masuk
ke halaman akun customer.
Masuk ke halaman akun customer jika
email dan password benar.
[ x ]Berhasil [ ]Gagal
Jika email dan password salah, maka akan tampil
pesan “email dan
Tampil Pesan
140
password tidak terdaftar”.
input email dan password salah.
c. Form Halaman Utama
Tabel 4.5 Hasil Pengujian Form Halaman Utama Hasil Uji
Kelas Uji
Hasil Yang Diharapkan
Hasil Pengujian Kesimpulan
Form Halaman Utama
Jika customer menekan tombol
“Ambil Produk”, maka akan masuk
ke Keranjang Belanja
Produk masuk ke Keranjang
Jika customer menekan tombol “
Keranjang
“Kategori” , maka akan muncul list kategori produk.
142
“cari” maka akan tampil halaman pencarian produk.
d. Form Keranjang Belanja
Tabel 4.6 Hasil Pengujian Form Keranjang Belanja.
Hasil Uji
Kelas Uji
Hasil Yang Diharapkan
Hasil Pengujian Kesimpulan
Form Keranjang menekan tombol “
Konfirmasi Pesanan” , maka
Tampil Halaman
Pesanan Berhasil [ x ]Berhasil [ ]Gagal
akan tampil halaman Pesanan
Berhasil
e. Form Akun Customer.
Tabel 4.7 Hasil Pengujian Form Akun Customer.
Hasil Uji
Kelas Uji
Hasil Yang Diharapkan
Hasil Pengujian Kesimpulan
Form Akun Customer
Jika customer menekan tombol “
Ubah Profil “
,maka akan tampil halaman informasi alamat
Tampil Halaman Informasi Alamat
[ x ]Berhasil [ ]Gagal
144
,maka akan tampil list riwayat
2. Hasil Pengujian Aplikasi sistem web Admin.
Hasil Pengujian Aplikasi sistem web admin adalah sebagai berikut:
a. Form Login
Tabel 4.8 Hasil Pengujian Form Login.
Hasil Uji
Kelas Uji
Hasil Yang Diharapkan
Hasil Pengujian Kesimpulan
Form Login
Jika username dan password benar, maka akan masuk
ke halaman password benar.
[ x ]Berhasil [ ]Gagal
Jika username dan password salah, maka akan tampil
pesan “username
146
b. Form Menu Produk
Tabel 4.9 Hasil Pengujian Form Menu Produk.
Hasil Uji
Kelas Uji
Hasil Yang Diharapkan
Hasil Pengujian Kesimpulan
Form Menu Produk
Dapat melakukan proses menambah data produk baru
Dapat melakukan proses menambah data produk baru
[ x ]Berhasil
c. Form Menu Customer.
Tabel 4.10 Hasil Pengujian Form Menu Customer.
Hasil Uji
Kelas Uji
Hasil Yang Diharapkan
Hasil Pengujian Kesimpulan
Form Menu
148
d. Form Menu Transaksi/Order.
Tabel 4.11 Hasil Pengujian Form Menu Transaksi/Order.
Hasil Uji
Kelas Uji
Hasil Yang Diharapkan
Hasil Pengujian Kesimpulan
Form Menu Transaksi
Dapat melakukan proses menambah data pesanan baru
Dapat melakukan proses menambah data pesanan baru
[ x ]Berhasil
Dapat menyajikan laporan catatan
Dapat menyajikan laporan catatan
[ x ]Berhasil [ ]Gagal
pengiriman
150
e. Form Menu Laporan
Tabel 4.12 Hasil Pengujian Form Menu Laporan.
Hasil Uji
Kelas Uji
Hasil Yang Diharapkan
Hasil Pengujian Kesimpulan
Form Menu
151 5.1 Kesimpulan
Dari hasil penelitian yang dilakukan penulis mulai dari awal hingga proses pengujian dapat disimpulkan bahwa aplikasi sistem E-Market berbasis web dengan menggunakan metode Extreme Programming ini mampu memberikan solusi terhadap permasalahan yang dihadapi CV. Sion Jaya dalam memasarkan produk anak-anak yang dijual. Selain itu dapat menekan biaya produksi brosur dan meningkatkan minat pelanggan melalui tampilan yang ada pada sistem E-Market . Diharapkan melalui aplikasi sistem E-Market ini dapat meningkatkan keuntungan perusahaan dimasa yang akan datang.
5.2 Saran
Berdasarkan hasil penelitian yang telah dilakukan, maka ada beberapa hal yang penulis perlu sarankan yaitu:
1. Sistem e-market ini dapat menjadi referensi bagi toko-toko yang belum memliki sistem berbasis web atau toko online.
2. Untuk perancangan sistem ini selain CMS(Content Management System) opencart bisa juga menggunakan CMS lainnya.
3. Sistem ini bisa dikembangkan lagi dengan merubah tema web toko dan menambah fitur-fitur lainnya.
152
DAFTAR PUSTAKA
A.S., Rosa, M.Shalahuddin . 2014. Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek. Bandung: Informatika.
Al Fatta, Hanif. 2007. Analisis dan Perancangan Sistem Informasi untuk Keunggulan Bersaing Perusahaan dan Organisasi Modern.Yogyakarta: Andi.
Chen-Ling F., & Lie T.2006. Assessment of internet marketing and competitive strategies for leisure farming industry in Taiwan. Jurnal of American Academy of Business, vol 8,No.2,p296.
Ependi, Usman. 2012. Pengembangan E-Trace Alumni Dengan Menggunakan Pendekatan Metode Agile.Seminar Nasional Informatika 2012.
Gunardi, I Made , Lirva32. 2007. Joomla website magic : dengan joomla membuat website semudah memasak mie instan. Jakarta: JasaKom
Kottler , Amstrong. 2004. Prinsip-prinsip Pemasaran. Alih Bahasa oleh Wisnu Chandra Kristiaji. Jilid 2.Edisi Kedelapan .Jakarta: Erlangga.
Mulhim, Imam. 2013. Aplikasi Toko Bangunan Online dengan PHP & MySql.
Palembang: Maxikom.
Mulyanto, Agus.2009. Sistem Informasi Konsep dan Aplikasi. Pustaka Pelajar.
Yogyakarta
Oktavian, Diar Puji.2013 .Menjadi Programmer Jempolan Menggunakan PHP.Yogyakarta: Penerbit MediaKom.
Romney, Paul John Steinbart . 2015. Accounting Information Systems, 13 th ed.
England: Pearson Educational Limited.
Sadeli, Muhammad.2014 . Aplikasi Bisnis dengan PHP dan MySQL. Palembang:
MaxiKom.
Shore, James, Shane Warden. 2008. The Art Of Agile Development. Sebastopol,CA:
O'Reilly Media.
Susanto, Azhar .2013 . Sistem Informasi Akuntansi . Bandung: Lingga Jaya.
Sutabri, Tata. 2012. Analisis Sistem Informasi. Yogyakarta: Andi Utomo, Sutarman . 2012 .Pengantar Teknologi Informasi.Jakarta: Bumi Aksara
Widodo. 2008. Extreme Programming: Pengembangan Perangkat Lunak Semi Formal. Konferensi dan Temu Nasional Teknologi Informasi dan Komunikasi untuk Indonesia. Jakarta: e-Indonesia Initiative 2008.
154 LAMPIRAN
1. Account.php
<?php
class ControllerAccountAccount extends Controller { public function index() {
if (!$this->customer->isLogged()) {
$this->session->data['redirect']=$this->url>link('account/account','', true);
$this->response->redirect($this->url->link('account/login', '', true));
}
$this->load->language('account/account');
$this->document->setTitle($this->language->get('heading_title'));
$data['text_wishlist'] = $this->language->get('text_wishlist');
$data['breadcrumbs'] = array();
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home') );
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_account'), 'href' => $this->url->link('account/account', '', true) );
if (isset($this->session->data['success'])) {
$data['success'] = $this->session->data['success'];
unset($this->session->data['success']);
} else {
$data['success'] = '';
}
$data['edit'] = $this->url->link('account/edit', '', true);
$data['password'] = $this->url->link('account/password', '', true);
$data['address'] = $this->url->link('account/address', '', true);
$data['credit_cards'] = array(); $files=glob(DIR_APPLICATION.'controller/extension/credit_card/*.php');
foreach ($files as $file) {
$code = basename($file, '.php');
if ($this->config->get('payment_' . $code . '_status') && $this->config->get('payment_' . $code . '_card')) {
$this->load->language('extension/credit_card/' . $code, 'extension');
$data['credit_cards'][] = array(
'name' => $this->language->get('extension')->get('heading_title'), 'href' => $this->url->link('extension/credit_card/' . $code, '', true)
);
} }
$data['wishlist'] = $this->url->link('account/wishlist');
$data['order'] = $this->url->link('account/order', '', true);
$data['download'] = $this->url->link('account/download', '', true);
if ($this->config->get('total_reward_status')) {
$data['reward'] = $this->url->link('account/reward', '', true);
} else {
$data['reward'] = '';
}
$data['return'] = $this->url->link('account/return', '', true);
$data['transaction'] = $this->url->link('account/transaction', '', true);
$data['newsletter'] = $this->url->link('account/newsletter', '', true);
$data['recurring'] = $this->url->link('account/recurring', '', true);
$this->load->model('account/customer');
$affiliate_info = $this->model_account_customer->getAffiliate($this->customer->getId());
if (!$affiliate_info) {
$data['affiliate'] = $this->url->link('account/affiliate/add', '', true);
} else {
$data['affiliate'] = $this->url->link('account/affiliate/edit', '', true);
}
if ($affiliate_info) {
$data['tracking'] = $this->url->link('account/tracking', '', true);
} else {
$data['tracking'] = '';
}
$data['column_left'] = $this->load->controller('common/column_left');
$data['column_right']=$this->load->controller('common/column_right');
156
$data['content_top'] = $this->load->controller('common/content_top');
$data['content_bottom']=$this>load>controller('common/content_bottom');
$data['footer'] = $this->load->controller('common/footer');
$data['header'] = $this->load->controller('common/header');
$this->response->setOutput($this->load>view('account/account', $data));
}
public function country() {
$json = array();
$this->load->model('localisation/country');
$country_info=$this->model_localisation_country->getCountry($this->request->get['country_id']);
if ($country_info) {
$this->load->model('localisation/zone');
$json = array(
'country_id' => $country_info['country_id'], 'name' => $country_info['name'],
'iso_code_2' => $country_info['iso_code_2'], 'iso_code_3' => $country_info['iso_code_3'], 'address_format' =>$country_info['address_format'], 'postcode_required' =>$country_info['postcode_required'],
'zone'=>$this->model_localisation_zone>getZonesByCountryId($this->request-
>get['country_id']),
'status' => $country_info['status']
);
class ControllerAccountAddress extends Controller { private $error = array();
public function index() {
if (!$this->customer->isLogged()) {
$this->session->data['redirect'] = $this->url->link('account/address', '', true);
$this->response->redirect($this->url->link('account/login', '', true));
}
public function add() {
if (!$this->customer->isLogged()) {
$this->session->data['redirect'] = $this->url->link('account/address', '', true);
$this->response->redirect($this->url->link('account/login', '', true));
}
if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {
$this->model_account_address->addAddress($this->customer->getId(), $this->request->post);
$this->session->data['success'] = $this->language->get('text_add');
$this->response->redirect($this->url->link('account/address', '', true));
}
$this->getForm();
}
public function edit() {
if (!$this->customer->isLogged()) {
$this->session->data['redirect'] = $this->url->link('account/address', '', true);
$this->response->redirect($this->url->link('account/login', '', true));
}
$this->load->language('account/address');
$this->document->setTitle($this->language->get('heading_title'));
158
if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {
$this->model_account_address->editAddress($this->request->get['address_id'], $this->request->post);
// Default Shipping Address
if (isset(>session->data['shipping_address']['address_id']) && (>request->get['address_id'] ==
$this->session>data['shipping_address']['address_id'])) {
$this->session->data['shipping_address']=$this->model_account_address->getAddress($this->request->get['address_id']);
unset($this->session->data['shipping_method']);
unset($this->session->data['shipping_methods']);
}
// Default Payment Address
if (isset(>session->data['payment_address']['address_id']) && (>request->get['address_id'] ==
$this->session>data['payment_address']['address_id'])) {
$this->session->data['payment_address']=$this->model_account_address->getAddress($this->request->get['address_id']);
unset($this->session->data['payment_method']);
unset($this->session->data['payment_methods']);
}
$this->session->data['success'] = $this->language->get('text_edit');
$this->response->redirect($this->url->link('account/address', '', true));
}
$this->getForm();
}
public function delete() {
if (!$this->customer->isLogged()) {
$this->session->data['redirect'] = $this->url->link('account/address', '', true);
$this->response->redirect($this->url->link('account/login', '', true));
}
$this->load->language('account/address');
$this->document->setTitle($this->language->get('heading_title'));
$this->load->model('account/address');
if (isset($this->request->get['address_id']) && $this->validateDelete()) {
$this->model_account_address->deleteAddress($this->request >get['address_id']);
// Default Shipping Address
if (isset(>session->data['shipping_address']['address_id']) && ($this >request->get['address_id'] ==
$this->session>data['shipping_address']['address_id'])) { unset($this->session->data['shipping_address']);
unset($this->session->data['shipping_method']);
unset($this->session->data['shipping_methods']);
}
// Default Payment Address
if (isset(>session->data['payment_address']['address_id']) && (>request->get['address_id'] ==
$this->session>data['payment_address']['address_id'])) { unset($this->session->data['payment_address']);
unset($this->session->data['payment_method']);
unset($this->session->data['payment_methods']);
}
$this->session->data['success'] = $this->language->get('text_delete');
$this->response->redirect($this->url->link('account/address', '', true));
}
$this->getList();
}
protected function getList() {
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home') );
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_account'), 'href' => $this->url->link('account/account', '', true) );
$data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'), 'href' => $this->url->link('account/address', '', true) );
if (isset($this->error['warning'])) {
160
$data['error_warning'] = $this->error['warning'];
} else {
$data['error_warning'] = '';
}
if (isset($this->session->data['success'])) {
$data['success'] = $this->session->data['success'];
unset($this->session->data['success']);
} else {
$data['success'] = '';
}
$data['addresses'] = array();
$results = $this->model_account_address->getAddresses();
foreach ($results as $result) { if ($result['address_format']) {
$format = $result['address_format'];
} else {
$replace = array(
'firstname' => $result['firstname'], 'lastname' => $result['lastname'], 'company' => $result['company'],
'address_1' => $result['address_1'], 'address_2' => $result['address_2'], 'city' => $result['city'], 'postcode' => $result['postcode'], 'zone' => $result['zone'], 'zone_code' => $result['zone_code'], 'country' => $result['country']
);
$data['addresses'][] = array(
'address_id' => $result['address_id'],
'address'=>str_replace(array("\r\n","\r","\n"),'<br/>',preg_replace(array("/\s\s+/", "/\r\r+/", "/\n\n+/"),'<br />', trim(str_replace($find, $replace, $format)))),
'update'=>$this->url->link('account/address/edit','address_id='.$result ['address_id'], true), 'delete'=>$this->url->link('account/address/delete','address_id=' . $result ['address_id'], true) );
}
$data['add'] = $this->url->link('account/address/add', '', true);
$data['back'] = $this->url->link('account/account', '', true);
$data['column_left'] = $this->load->controller('common/column_left');
$data['column_right'] = $this->load->controller('common/column_right');
$data['content_top'] = $this->load->controller('common/content_top');
$data['content_bottom'] = $this->load->controller('common/content_bottom');
$data['footer'] = $this->load->controller('common/footer');
$data['header'] = $this->load->controller('common/header');
$this->response->setOutput($this->load->view('account/address_list', $data));
}
protected function getForm() {
$data['breadcrumbs'] = array();
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home') );
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_account'), 'href' => $this->url->link('account/account', '', true)
162
);
$data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'), 'href' => $this->url->link('account/address', '', true) );
if (!isset($this->request->get['address_id'])) {
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_address_add'), 'href' => $this->url->link('account/address/add', '', true) );
} else {
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_address_edit'),
'href' => $this->url->link('account/address/edit', 'address_id=' . $this->request->get['address_id'], true) );
}
$data['text_address']=!isset($this->request->get['address_id'])?$this->language->get('text_address_add'):
$this->language->get('text_address_edit');
if (isset($this->error['firstname'])) {
$data['error_firstname'] = $this->error['firstname'];
} else {
$data['error_firstname'] = '';
}
if (isset($this->error['lastname'])) {
$data['error_lastname'] = $this->error['lastname'];
} else {
$data['error_lastname'] = '';
}
if (isset($this->error['address_1'])) {
$data['error_address_1'] = $this->error['address_1'];
} else {
$data['error_address_1'] = '';
}
if (isset($this->error['city'])) {
$data['error_city'] = $this->error['city'];
} else {
$data['error_city'] = '';
}
if (isset($this->error['postcode'])) {
$data['error_postcode'] = $this->error['postcode'];
} else {
$data['error_postcode'] = '';
}
if (isset($this->error['country'])) {
$data['error_country'] = $this->error['country'];
} else {
$data['error_country'] = '';
}
if (isset($this->error['zone'])) {
$data['error_zone'] = $this->error['zone'];
} else {
$data['error_zone'] = '';
}
if (isset($this->error['custom_field'])) {
$data['error_custom_field'] = $this->error['custom_field'];
} else {
$data['error_custom_field'] = array();
}
if (!isset($this->request->get['address_id'])) {
$data['action'] = $this->url->link('account/address/add', '', true);
} else {
$data['action'] = $this->url->link('account/address/edit', 'address_id=' . $this->request->get['address_id'], true);
}
if(isset($this->request->get['address_id'])&&($this->request >server ['REQUEST_METHOD'] != 'POST')) {
$address_info=$this->model_account_address->getAddress($this- >request->get['address_id']);
}
if (isset($this->request->post['firstname'])) {
$data['firstname'] = $this->request->post['firstname'];
164
} elseif (!empty($address_info)) {
$data['firstname'] = $address_info['firstname'];
} else {
$data['firstname'] = '';
}
if (isset($this->request->post['lastname'])) {
$data['lastname'] = $this->request->post['lastname'];
} elseif (!empty($address_info)) {
$data['lastname'] = $address_info['lastname'];
} else {
$data['lastname'] = '';
}
if (isset($this->request->post['company'])) {
$data['company'] = $this->request->post['company'];
} elseif (!empty($address_info)) {
$data['company'] = $address_info['company'];
} else {
$data['company'] = '';
}
if (isset($this->request->post['address_1'])) {
$data['address_1'] = $this->request->post['address_1'];
} elseif (!empty($address_info)) {
$data['address_1'] = $address_info['address_1'];
} else {
$data['address_1'] = '';
}
if (isset($this->request->post['address_2'])) {
$data['address_2'] = $this->request->post['address_2'];
} elseif (!empty($address_info)) {
$data['address_2'] = $address_info['address_2'];
} else {
$data['address_2'] = '';
}
if (isset($this->request->post['postcode'])) {
$data['postcode'] = $this->request->post['postcode'];
} elseif (!empty($address_info)) {
$data['postcode'] = $address_info['postcode'];
} else {
$data['postcode'] = '';
}
if (isset($this->request->post['city'])) {
$data['city'] = $this->request->post['city'];
} elseif (!empty($address_info)) {
$data['city'] = $address_info['city'];
} else {
$data['city'] = '';
}
if (isset($this->request->post['country_id'])) {
$data['country_id'] = (int)$this->request->post['country_id'];
} elseif (!empty($address_info)) {
$data['country_id'] = $address_info['country_id'];
} else {
$data['country_id'] = $this->config->get('config_country_id');
}
if (isset($this->request->post['zone_id'])) {
$data['zone_id'] = (int)$this->request->post['zone_id'];
} elseif (!empty($address_info)) {
$data['zone_id'] = $address_info['zone_id'];
} else {
$data['zone_id'] = '';
}
$this->load->model('localisation/country');
$data['countries']=$this->model_localisation_country->getCountries();
// Custom fields
$data['custom_fields'] = array();
$this->load->model('account/custom_field');
$custom_fields=$this->model_account_custom_field
>getCustomFields($this->config->get('config_customer_group_id'));
166
foreach ($custom_fields as $custom_field) { if ($custom_field['location'] == 'address') {
$data['custom_fields'][] = $custom_field;
} }
if (isset($this->request->post['custom_field']['address'])) {
$data['address_custom_field']=$this->request->post ['custom_field']['address'];
} elseif (isset($address_info)) {
$data['address_custom_field'] = $address_info['custom_field'];
} else {
$data['address_custom_field'] = array();
}
if (isset($this->request->post['default'])) {
$data['default'] = $this->request->post['default'];
} elseif (isset($this->request->get['address_id'])) {
$data['default'] = $this->customer->getAddressId() == $this->request- >get['address_id'];
} else {
$data['default'] = false;
}
$data['back'] = $this->url->link('account/address', '', true);
$data['column_left'] = $this->load->controller('common/column_left');
$data['column_right'] = $this->load->controller('common/column_right');
$data['content_top'] = $this->load->controller('common/content_top');
$data['content_bottom'] = $this->load->controller('common/content_bottom');
$data['footer'] = $this->load->controller('common/footer');
$data['header'] = $this->load->controller('common/header');
$this->response->setOutput($this->load->view('account/address_form', $data));
}
protected function validateForm() {
if((utf8_strlen(trim($this->request->post['firstname']))<1)||(utf8_strlen(trim ($this->request->post['firstname'])) > 32)) {
$this->error['firstname'] = $this->language->get('error_firstname');
}
if((utf8_strlen(trim($this->request->post['lastname']))<1)||(utf8_strlen(trim ($this->request->post['lastname'])) > 32)) {
$this->error['lastname'] = $this->language->get('error_lastname');
}
if((utf8_strlen(trim($this->request->post['address_1'])) < 3) || (utf8_strlen(trim ($this->request->post['address_1'])) >
128)) {
$this->error['address_1'] = $this->language->get('error_address_1');
}
if ((utf8_strlen(trim($this->request->post['city'])) < 2) || (utf8_strlen(trim($this->request->post['city'])) > 128)) {
$this->error['city'] = $this->language->get('error_city');
}
$this->load->model('localisation/country');
$country_info=$this->model_localisation_country->getCountry($this->request->post['country_id']);
if($country_info&&$country_info['postcode_required']&&(utf8_strlen(trim($this->request->post['postcode']))
<2||utf8_strlen(trim($this->request>post ['postcode'])) > 10)) {
$this->error['postcode'] = $this->language->get('error_postcode');
}
if ($this->request->post['country_id'] == '' || !is_numeric($this->request->post['country_id'])) {
$this->error['country'] = $this->language->get('error_country');
}
if (!isset($this->request->post['zone_id']) || $this->request->post['zone_id'] == '' ||
!is_numeric($this->request->post['zone_id'])) {
$this->error['zone'] = $this->language->get('error_zone');
}
// Custom field validation
$this->load->model('account/custom_field');
$custom_fields=$this->model_account_custom_field->getCustomFields
($this->config->get('config_customer_group_id'));
foreach ($custom_fields as $custom_field) { if ($custom_field['location'] == 'address') {
if($custom_field['required']&&empty($this->request->post['custom_field']
[$custom_field['location']][$custom_field['custom_field_id']])) {
$this->error['custom_field'][$custom_field['custom_field_id']] = sprintf($this->language->get('error_custom_field'),
$custom_field['name']);
}elseif(($custom_field['type']=='text') && !empty($custom_field['validation']) &&!filter_var($this->request
>post['custom_field'][$custom_field['location']] [$custom_field['custom_field_id']], FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => $custom_field['validation'])))) {
$this->error['custom_field'][$custom_field['custom_field_id']] = sprintf($this->language->get('error_custom_field'),
$custom_field['name']);
168
protected function validateDelete() {
if ($this->model_account_address->getTotalAddresses() == 1) {
$this->error['warning'] = $this->language->get('error_delete');
}
if ($this->customer->getAddressId() == $this->request->get['address_id']) {
$this->error['warning'] = $this->language->get('error_default');
}
class ControllerAccountEdit extends Controller { private $error = array();
public function index() {
if (!$this->customer->isLogged()) {
$this->session->data['redirect'] = $this->url->link('account/edit', '', true);
$this->response->redirect($this->url->link('account/login', '', true));
}
if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
$this->model_account_customer->editCustomer($this->customer->getId(), $this->request->post);
$this->session->data['success'] = $this->language->get('text_success');
$this->response->redirect($this->url->link('account/account', '', true));
}
$data['breadcrumbs'] = array();
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home') );
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_account'), 'href' => $this->url->link('account/account', '', true) );
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_edit'), 'href' => $this->url->link('account/edit', '', true) );
if (isset($this->error['warning'])) {
$data['error_warning'] = $this->error['warning'];
} else {
$data['error_warning'] = '';
}
if (isset($this->error['firstname'])) {
$data['error_firstname'] = $this->error['firstname'];
} else {
$data['error_firstname'] = '';
}
if (isset($this->error['lastname'])) {
$data['error_lastname'] = $this->error['lastname'];
} else {
$data['error_lastname'] = '';
}
if (isset($this->error['email'])) {
$data['error_email'] = $this->error['email'];
170
} else {
$data['error_email'] = '';
}
if (isset($this->error['telephone'])) {
$data['error_telephone'] = $this->error['telephone'];
} else {
$data['error_telephone'] = '';
}
if (isset($this->error['custom_field'])) {
$data['error_custom_field'] = $this->error['custom_field'];
} else {
$data['error_custom_field'] = array();
}
$data['action'] = $this->url->link('account/edit', '', true);
if ($this->request->server['REQUEST_METHOD'] != 'POST') {
$customer_info=$this->model_account_customer->getCustomer($this->customer->getId());
}
if (isset($this->request->post['firstname'])) {
$data['firstname'] = $this->request->post['firstname'];
} elseif (!empty($customer_info)) {
$data['firstname'] = $customer_info['firstname'];
} else {
$data['firstname'] = '';
}
if (isset($this->request->post['lastname'])) {
$data['lastname'] = $this->request->post['lastname'];
} elseif (!empty($customer_info)) {
$data['lastname'] = $customer_info['lastname'];
} else {
$data['lastname'] = '';
}
if (isset($this->request->post['email'])) {
$data['email'] = $this->request->post['email'];
} elseif (!empty($customer_info)) {
$data['email'] = $customer_info['email'];
} else {
$data['email'] = '';
}
if (isset($this->request->post['telephone'])) {
$data['telephone'] = $this->request->post['telephone'];
} elseif (!empty($customer_info)) {
$data['telephone'] = $customer_info['telephone'];
} else {
$data['telephone'] = '';
}
// Custom Fields
$data['custom_fields'] = array();
$this->load->model('account/custom_field');
$custom_fields=$this->model_account_custom_field->getCustomFields($this->config->get('config_customer _group_id'));
foreach ($custom_fields as $custom_field) { if ($custom_field['location'] == 'account') {
$data['custom_fields'][] = $custom_field;
} }
if (isset($this->request->post['custom_field']['account'])) {
$data['account_custom_field']=$this->request->post['custom_field'] ['account'];
} elseif (isset($customer_info)) {
$data['account_custom_field'] = json_decode($customer_info['custom_field'], true);
} else {
$data['account_custom_field'] = array();
}
$data['back'] = $this->url->link('account/account', '', true);
$data['column_left'] = $this->load->controller('common/column_left');
$data['column_right'] = $this->load->controller('common/column_right');
$data['content_top'] = $this->load->controller('common/content_top');
$data['content_bottom'] = $this->load->controller('common/content_bottom');
$data['footer'] = $this->load->controller('common/footer');
$data['header'] = $this->load->controller('common/header');
172
$this->response->setOutput($this->load->view('account/edit', $data));
}
protected function validate() {
if ((utf8_strlen(trim($this->request->post['firstname'])) < 1) || (utf8_strlen(trim ($this->request->post['firstname'])) >
32)) {
$this->error['firstname'] = $this->language->get('error_firstname');
}
if ((utf8_strlen(trim($this->request->post['lastname'])) < 1) || (utf8_strlen(trim ($this->request->post['lastname'])) >
32)) {
$this->error['lastname'] = $this->language->get('error_lastname');
}
if ((utf8_strlen($this->request->post['email']) > 96) || !filter_var($this->request->post['email'], FILTER_VALIDATE_EMAIL)) {
$this->error['email'] = $this->language->get('error_email');
}
if (($this->customer->getEmail() != $this->request->post['email']) &&
$this->model_account_customer->getTotalCustomersByEmail($this->request->post['email'])) {
$this->error['warning'] = $this->language->get('error_exists');
$this->error['warning'] = $this->language->get('error_exists');