Pages

Showing posts with label Magento. Show all posts
Showing posts with label Magento. Show all posts

Thursday, April 23, 2015

Konfirmasi Pembayaran Magento Module



Di kebanyakan Toko Online yang ada di Indonesia masih menggunakan pembayaran secara manual, seperti Setor Tunai, Internet Banking, SMS Banking dll pada saat pelanggan melakukan transaksi. Lalu, bagaimana cara agar pemilik Toko Online tahu bahwa pelanggan sudah melakukan pembayaran terhadap barang atau jasa yang dibeli? Tentunya dibutuhkan sebuah konfirmasi oleh pembeli yang sudah melakukan pembayaran. Bisa menghubungi pemilik Toko Online lewat SMS, email atau pemilik Toko Online menyediakan sebuah form yang dapat diakses oleh pembeli untuk melakukan konfirmasi terhadap pembayaran yang sudah dilakukan.

Disini saya membuat sebuah Modul Konfirmasi Pembayaran / Payment Confirmation yang dapat digunakan pada Toko Online yang menggunakan Magento sebagai engine nya. Di dalam Module Konfirmasi Pembayaran/ Payment Confirmation ini, pembeli yang sudah melakukan pembayaran dapat mengisikan form-form yang berisi data-data transfer yang sudah dilakukan. Kemudian, data-data tersebut akan tersimpan di Backend Magento. Dan, sebagai notifikasi akan terkirim sebuah email kepada pemilik Toko Online / Store Owner.

Untuk Demo Magento Module Konfirmasi Pembayaran Backend dan Frontend, silakan Klik link dibawah :

Demo Frontend | Demo Backend

Magento Backend Username dan password :
Username : demo
Password : admin1234

Magento Module Frontend

Pada halaman frontend, terdapat form yang berisi inputan dan wajib diisi oleh pembeli yang sudah melakukan pembayaran. Halaman ini terdapat di app\design\frontend\base\default\template\konfirmasipembayaran\index.phtml. Anda bisa mengedit halaman ini untuk menambahkan kalimat penjelasan sesuai keperluan. Setelah data di submit, maka akan muncul halaman sukses. Halaman ini ada di app\design\frontend\base\default\template\konfirmasipembayaran\sukses.phtml

Magento Module Backend

Pada demo backend, login telebih dahulu menggunakan username dan password diatas. Data-data yang diinput di frontend akan tampil di halaman backend ini. Notifikasi email diterima oleh store owner. Jika ingin mengganti masuk ke magento backend-> System->Configuration->Store Email Address. Email notifikasi akan diterima oleh General Contact. Sedangkan email yang tertera pada halaman sukses adalah support email (Customer Support).

Module ini dapat anda download melalui link dibawah. Semoga membantu teman-teman pemilik Toko Online magento agar bisnis nya lebih berkembang. :D Jika memiliki kesulitan dalam menginstall module silakan masukkan komentar di bawah atau email saya melalui info@adisthana.com

Demo Frontend | Demo Backend | Download

Thursday, July 31, 2014

Play with Magento API SOAP V1

Sesuai judul, kali ini saya akan mencoba untuk berbagi tips dan trik bagaimana membuat Aplikasi di luar Magento tapi dengan mengandalkan API dari magento itu sendiri. Banyak sekali hal yang dapat kita lakukan pada penggunaan Magento API ini, seperti dijelaskan disini “The Magento SOAP v1 API provides you with the ability to manage your eCommerce stores by providing calls for working with resources such as customers, categories, products, and sales orders. It also allows you to manage shopping carts and inventory.” Kita juga bisa mengembangkan aplikasi iOS dan Android dengan menggunakan API SOAP method ini.

Koneksi

Setting SOAP account
Hal pertama yang harus dilakukan adalah membuat koneksi antara aplikasi yang kita buat dengan API dari magento. Untuk itu kita membutuhkan SOAP account yang terintegrasi dan mendapatkan role-role seperti yang kita inginkan. Caranya :

- Login ke backend magento
- System -> Web Services -> SOAP/XML-RPC – Roles
- Add New Role
- Resource Access -> All -> Save Role
- System -> Web Services -> SOAP/XML-RPC – Users
- Add New User
- Pada Tab ‘User Role’ pilih role yang kita buat tadi
- Save User

Sekarang kita sudah mempunyai username dan password yang akan kita gunakan untuk login nanti.

Login dengan SOAP account
Masuk ke server/hosting aplikasi anda, dan buat sebuah file baru dengan nama magehost.php. Kita akan membuat simple script untuk login dengan SOAP account.

$config=array();
$config["hostname"] = "namahost.com"; //ini adalah host magento anda
$config["login"] = "apiuser"; //ini adalah user API anda
$config["password"] = "apipassword"; //ini adalah password magento anda
 
$proxy = new SoapClient('http://'.$config["hostname"].'/index.php/api/soap/?wsdl', array('trace'=>1));
$sessionId = $proxy->login($config["login"], $config["password"]);


Tahan sampai disini, kemudian kita akan membuat sebuah file lagi untuk testing koneksi dan script kita apakah sukses atau gagal.

Get Customer via API SOAP
Untuk testing, kita akan mencoba memanggil data customer dengan sudah mengetahui ID dari customer tersebut. Buat file dengan nama getcustomer.php, dan isikan script di bawah :

require_once('magehost.php');
$customerId = '2';
$result = $proxy->call($sessionId, 'customer.info', $customerId);
var_dump($result);


Buka browser, masukkan url : namahost.com/getcustomer.php . Jika sukses data-data customer akan tampil pada browser anda dan jika gagal akan tampil juga pesan gagal. Pesan gagal bisa dilihat disini

Diatas adalah contoh yang sangat sederhana sekali pada penggunaan Magento API SOAP. Pada tulisan berikutnya kita akan mencoba hal yang lebih menantang yaitu memangil list customer dan memanfaatkan jQuery Autocomplete.

Semoga membantu :D

Monday, December 30, 2013

#Magento Send Email dengan Custom Email Template

Setelah membaca judul artikel pastilah muncul pertanyaan, kenapa mengirim email dengan custom email template? Saya mempunyai 2 alasan. Yang pertama adalah email yang kita kirimkan akan memiliki desain yg lebih cantik daripada hanya sekedar email text saja. Tentu akan menarik lebih banyak pengunjung ke website kita (untuk SEO). Yang kedua adalah kita dapat mengontrol variabel yang kita kirimikan kepada klien.

Jika anda seorang web developer pastilah anda pernah sesekali menemukan kebutuhan pengiriman email menggunakan custom template, baik itu equest dari klien ataupun untuk kerperluan sendiri.

Disini saya mendesain email menggunakan Transactional Email pada magento tepatnya di System -> Transactional Emails
Buatlah email baru dengan Add New Template. Disini saya menggunakan template yang sudah ada. Misalkan kita pilih template ‘New Invoice’. Kemudian Load Template.
Template Name dan Template Subject kita isi dengan ‘Test Custom Email’.
Dengan isinya :

Nama1(email1) mendapat undangan dari Nama2(email2) untuk datang pada tanggal : (tanggal) menghadiri acara pertemuan Magento Indonesia di Bali


Dengan Variable =>

{{htmlescape var=$nama1.nama1}}({{htmlescape var=$email1.email1}}) mendapat undangan dari {{htmlescape var=$nama2.nama2}}({{htmlescape var=$email2.email2}}) untuk datang pada tanggal : {{htmlescape var=$tanggal.tanggal}} menghadiri acara pertemuan Magento Indonesia di Bali


Edit Template content sesuai keinginan anda. Save template.

Kemudian buatlah sebuah file .phtml untuk tampilan frontend dan tampilkan melalui CMS.
Misalkan form dan proses pengirimannya sebagai berikut.

if(!empty($_GET['name1']) && !empty($_GET['name2']) && !empty($_GET['email1']) && !empty($_GET['email2'])){

 $mailTemplate = Mage::getModel('core/email_template');
 /* @var $mailTemplate Mage_Core_Model_Email_Template */

 $translate  = Mage::getSingleton('core/translate');

 $templateId = 56; //id transactional email template yang anda buat tadi
 $template_collection =  $mailTemplate->load($templateId);
 $template_data = $template_collection->getData();
 if(!empty($template_data))
 {
  $templateId = $template_data['template_id'];
  $mailSubject = $template_data['template_subject'];                         

  //Mengambil data pengirim dari Backend > System > Configuration > Store Email Addresses > General Contact
  $from_email = Mage::getStoreConfig('trans_email/ident_general/email'); //email pengirim
  $from_name = Mage::getStoreConfig('trans_email/ident_general/name'); //nama pengirim

  $sender = array('name'  => $from_name,
      'email' => $from_email);                                

  $vars = array('name1'=>$_GET['name1'],
      'name2'=>$_GET['name2'],
      'email1'=>$_GET['email1'],
      'email2'=>$_GET['email2'],
      'tanggal'=>$_GET['tanggal']);                   

  $storeId = Mage::app()->getStore()->getId();
  $model = $mailTemplate->setReplyTo($sender['email'])->setTemplateSubject($mailSubject);

  $email = $_GET['email1'];
  $name = $_GET['name1'];
  $model->sendTransactional($templateId, $sender, $email, $name, $vars, $storeId);
  if (!$mailTemplate->getSentSuccess()) {
    throw new Exception();
  }
  $translate->setTranslateInline(true);

 }
}

Undang Teman Untuk Bergabung pada Workshop Magento di Bali 15-10-2013 dan dapatkan diskon 10%



Penjelasan : Pada email yg dikirimkan (email1) sebagai email pengirim adalah email website pada magento anda ($from_email) dan Nama Pengirim adalah nama website Magento anda ($from_name).

Violaaa , anda sudah bisa mengirim email dengan custom template pada Magento.

Selamat mencoba dan semoga artikel saya membantu :D

Sumber : #Magento Send Email dengan Custom Email Template

Saturday, December 21, 2013

#magento : Payment method tidak tampil saat checkout

Kasus Payment method tidak tampil saat checkout saya dapatkan ketika produk yang dibeli mendapat diskon 100% alias gratis dan hanya dikenakan biaya pengiriman saja. Magento yang saya gunakan disini adalah magento CE 1.5. Aneh sekali menurut saya kasus ini karena jika diisikan harga, payment method tampil seperti biasa.

Setelah mencari cari di beberapa site akhirnya saya menemukan solusinya.

Pertama buat copy file dari app/code/core/Mage/Payment/Block/Form/Container.php ke folder local app/code/local/Mage/Payment/Block/Form/Container.php

Dan ‘goto’ line 119

$total = $quote->getBaseSubtotal();


ganti dengan :

$total = $quote->getBaseGrandTotal();


Saya sudah test scriptnya dan berjalan normal.
Penjelasan : script dari core memanggil Subtotal saja, jadi karena subtotal 0 maka payment method tidak muncul, lalu kita ganti dengan mamanggil grand total (sub total + tax) maka valuenya terdeteksi dan tidak 0.

Semoga membantu :)

Sumber : Payment method tidak tampil saat checkout

Thursday, December 19, 2013

#Magento Newsletter Subscriber Form di CMS Page

Pada magento kita diperbolehkan untuk menggunakan block newsletter form subscriber pada CMS yang kita inginkan. Cukup menggunakan kode block berikut :

{{block type="newsletter/subscribe" template="newsletter/subscribe.phtml"}}
Jika ingin mengedit tampilannya, dapat mengedit file phtml di app->design->frontend->default->nama themes->neswletter->subscribe.phtml

Semoga membantu :D

Sumber : #Magento Newsletter Subscriber Form di CMS Page

Tuesday, December 17, 2013

Magento : Filter Kategori pada View.phtml

Berikut adalah code untuk memfilter kategori pada view.phtml.

Misalkan anda punya 3 kategori dengan urutan :
Kategori A -> id = 1
Ketagori B -> id = 2
Kategori C -> id = 3

pada kategori A anda ingin memasukkan ‘link 1′, pada kategori B ‘link 2′ dan kategori C ‘link 3′ :

$categoryId =  Mage::getModel('catalog/layer')->getCurrentCategory()->getId(); //untuk mendapatkan kategori yg aktif pada produk
 
if ($categoryId=='1'){
echo 'link 1';
} elseif ($categoryId=='2'){
echo 'link 2';
} else {
echo 'link 3';
}
Semoga membantu :D

Sumber : Magento : Filter Kategori pada View.phtml

Saturday, December 14, 2013

Magento : Cek User Login

Berikut adalah code untuk menegcek apakah user sudah login atau belum. Anda bisa menempatkan di file phtml mana saja.

$loggedIn = $this->helper('customer')->isLoggedIn();

Contoh penggunaannya : Misal pada menu content website terdapat sebuah link yg akan terbuka jika user sudah login

$loggedIn = $this->helper('customer')->isLoggedIn();
if ($loggedIn==''){
  echo 'Silakan login dulu untuk buka link'
} else {
  echo 'Link'
}

Semoga membantu :D
Sumber : AW Bali Web Design and Development

Friday, December 13, 2013

Magento : Konversi Harga dari Current Currency ke Base Currency

Berikut adalah code untuk konversi Harga dari Current Currency ke Base Currency. Code bisa diaplikasikan jika website mempunyai multiple currency. Dari kode di bawah, anda bisa mengkonversi sesuai keinginan. Hanya memerlukan ‘Dari Currency Code‘ dan ‘Ke Currency Code’. Pada contoh dibawah, saya akan mencoba mengkonversi dari current currency ke base currency. Anda juga bisa melakukan vice-versa. Fungsi konversi Currency mengikuti parameter berikut : currencyConvert($amount, $from, $to=null)
$baseCurrencyCode = Mage::app()->getStore()->getBaseCurrencyCode();
$currentCurrencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();
$price = 100;
// convert price from current currency to base currency
$priceOne = Mage::helper('directory')->currencyConvert($price, $currentCurrencyCode, $baseCurrencyCode);
// convert price from base currency to current currency
$priceTwo = Mage::helper('directory')->currencyConvert($price, $baseCurrencyCode, $currentCurrencyCode);
Merubah harga dari satu currency ke currency yang lain. Anda bisa merubah secara manual dari satu currency ke currency yang lain. Misal, saya mempunyai harga dalam ‘USD’ dan saya ingin merubah ke ‘IDR’, maka codenya adalah sebagai berikut :
$from = 'USD';
$to = 'IDR';
$price = 10;
$newPrice = Mage::helper('directory')->currencyConvert($price, $from, $to);
Semoga membantu. Sumber : AW Bali Web Design and Development

Wednesday, November 13, 2013

10 Tips Meningkatkan Penjualan Toko Online

10 Tips Meningkatkan Penjualan Toko Online

Seorang teman saya pernah mengeluh kenapa penjualan online nya segitu segitu saja alias tidak pernah meningkat. Dari hari ke hari bulan ke bulan barang dagangannya tidak begitu laris. Selidik punya selidik ternyata pemasaran yang dilakukan hanya sebatas Broadcast melalui BBM (Blackberry Messenger) saja. Hmm, saya jadi berpikir sejauh mana lingkup sebuah toko online? Apakah dengan membuat group 'jualan' pada social chat seperti BBM sudah bisa dikatakan anda mengelola toko online? Rancu memang, tapi kita tidak akan membahas itu disini.
Saya lebih tertarik dengan bagaimana agar teman saya bisa meningkatkan penjualan onlinenya. Disini kita misalkan saja teman saya sudah mempunyai sebuah website toko online, namun penjualannya masih di bawah harapan. Tidak pernah mencapai target. Padahal barang dan harga yang ditawarkan berkualitas dan bisa dibilang murah. Tapi kalau pemasarannya hanya sebatas yang saya sebutkan di atas tadi non-sense penjualannya akan meningkat. Jadi, dengan senang hati, saya tuliskan beberapa tips sederhana untuk teman saya. Berikut 10 Tips Meningkatkan Penjualan Toko Online yang saya sarankan pada teman saya.
  1. Lakukan update minimal 1x sehari pada toko online anda.
    Bisa update barang, bisa update post/ artikel/ tampilan. Semakin sering anda melakukan update semakin mudah mesin pencari mengindeks situs anda. Semakin banyak situs anda di indeks semakin banyak pengunjung yang mengunjungi situs anda.
  2. Share setiap terdapat produk baru di sosial media seperti twitter, facebook, pinterest dll.
    Post yang anda share akan membawa pengunjung ke situs anda. Share gambar yang menarik agar orang penasaran dan mengklik link anda. Tetapi saya sarankan jangan lakukan spam pada post orang lain karena itu sangat mengganggu dan terlihat toko online anda tidak profesional.
  3. Selain pada sosial media , akan sangat membantu untuk mendapatkan backlink dari produk anda jika anda menulis thread pada forum seperti kaskus, forum detik dll
    Pada saat membuat thread jangan lupa untuk memberikan link pada post yang anda share di forum agar orang lain dapat dengan mudah berkunjung ke situs anda.
  4. Buatlah tampilan website yang responsive karena tampilan sangat berpengaruh pada jumlah pengunjung anda.
    Responsive Design adalah sebuah teknik yang digunakan untuk membuat layout website menyesuaikan diri dengan tampilan device pengunjung, baik ukuran maupun orientasinya. Jadi tampilan yang berada pada desktop komputer dengan tampilan yang diakses melalui mobilephone ataupun tablet, itu akan berbeda tampilannya.
  5. Raih pelanggan dengan menyediakan form Subscribe Newsletter pada website anda.
    Jika anda mempunyai produk/promo/post/artikel baru beritahukan subscriber anda melalui email. Desain emailpun juga berpengaruh. Kirimlah email yang menarik dengan terdapat gambar dan link ke produk.
  6. Buatlah promo sesering mungkin pada toko online anda untuk menarik pelanggan.
    Misalnya, Gratis pengiriman setiap berbelanja 3 produk atau lebih, Beli 2 gratis 1 dll. Semakin banyak anda membuat promo semakin banyak akan mendatangkan pengunjung.
  7. Sediakan sistem pembayaran minimal 2 sistem.
    Misalnya bank transfer dan pembayaran melalui paypal. Tujuannya agar memudahkan pengunjung anda dalam melakukan transaksi pembayaran. Karena tidak sedikit pengunjung yang mengurungkan niatnya untuk berbelanja karena tidak terdapat sistem pembayaran yang diinginkan.
  8. Sediakan support yang siap melayani pengunjung 24/7.
    Sediakan juga form email dan no telp yang dapat dihubungi pengunjung.
  9. Buatlah halaman landing/home yang tidak terlalu berat untuk diakses.
    Kadang pengunjung akan bosan menunggu jika loading website anda terlalu lama dan pengunjung hanya melihat layar putih pada monitornya dan akhirnya si pengunjung batal mengunjungi website anda.
  10. Jika modal anda cukup besar, maka mulailah menggunakan facebook adsense dan google adwords
    Dengan pengguna Facebook yang hampir mencapai 1,2 Miliar saya rasa akan sangat mudah untuk memasarkan website anda pada salah satu sosial media terbesar ini, dan jika anda ingin website toko online anda tampil pada website-website PR 3 ke atas gunakanlah google adwords. Dan tentu Facebook dan Google tidak memberikan layanan beriklan ini dengan murah.
Tips yang saya sebutkan di atas sangat dasar dan untuk pemula saja. Hanya tips dari teman untuk teman. Tapi jika dilakukan berlanjut dan fokus, maka sangat mungkin website Toko Online anda menjadi salah satu website toko online terbaik yang pernah ada (lebay ini kata2 nya). Semoga 10 Tips Meningkatkan Penjualan Toko Online dari saya dapat membantu penjualan toko online anda. Selamat mencoba :D

Wednesday, August 29, 2012

Magento - Send Email

Untuk mengirim email di magento kita dapat dengan mudah melakukannya dengan menggunakan Zend_Mail
Berikut contohnya :

/**
 * Send email
 */
public function sendEmail()
{
    $fromEmail = "from@example.com"; // sender email address
    $fromName = "John Doe"; // sender name
 
    $toEmail = "to@example.com"; // recipient email address
    $toName = "Mark Doe"; // recipient name
 
    $body = "This is Test Email!"; // body text
    $subject = "Test Subject"; // subject text
 
    $mail = new Zend_Mail();        
 
    $mail->setBodyText($body);
 
    $mail->setFrom($fromEmail, $fromName);
 
    $mail->addTo($toEmail, $toName);
 
    $mail->setSubject($subject);
 
    try {
        $mail->send();
    }
    catch(Exception $ex) {
        // Saya asumsikan anda mempunyai custom_modul.
        // Jika tidak, anda dapat mengganti 'modulku' dengan default magento 'customer'
        Mage::getSingleton('core/session')
            ->addError(Mage::helper('modulku')
            ->__('Unable to send email.'));
    }
}
Selesai, semoga membantu :D

Monday, August 13, 2012

Magento - Menggunakan jQuery di Magento

Secara default Magento menggunakan Prototype untuk library javascriptnya. Namun terkadang kita membutuhkan beberapa hal yang sulit untuk dilakukan prototype, maka kita disini akan mencoba untuk menginstall dan menggunakan jQuery sebagai library tambahan. Oh, ya sempat beberapa waktu lalu ada yang memberi tahu saya bahwa kedepannya magento tidak akan menggunakan prototype lagi dan akan bermigrasi total ke jQuery.

Wednesday, July 25, 2012

Magento - Upgrade Sql Setup Module

Magento – Upgrade Sql Setup Module Saya asumsikan anda sudah membaca artikel terdahulu tentang 'Setup SQL Magento Modul' . Sekarang kita sudah mempunyai module dengan nama Modulku dengan versi 0.1.0. Anda ingin menambahkan table atau menambahkan field pada database module anda. Anda sudah mempunyai file mysql4-install-0.1.0.php (mysql setup file) di Modulku/sql/modulku_setup folder.
  • Buat sebual file baru di dalam folder Modulku/sql/modulku_setup dengan nama mysql4-upgrade-0.1.0-0.1.1.php. Format penulisannya adalah mysql4-upgrade-CURRENT_VERSION-UPGRADED_VERSION.php
  • Tulisakan sintak sql untuk upgrade atau membuat table baru.

  • startSetup();
    
    $installer->run("
    
    script upgrade anda
    
    ");
    $installer->endSetup();
    

  • Buka file config.xml di Modulku/etc/config.xml. Ubah versi module 0.1.0 menjadi 0.1.1

  • 
    
    
    
    0.1.1
    
    
    

  • Refresh website dan selesai.
  • Tuesday, July 24, 2012

    Magento - Form dan Controller Frontend

    Untuk membuat form di frontend pada Magento banyak cara yang dapat digunakan. Disini saya akan membahas bagaimana membuat form lewat phtml dan membuat controllernya. Disini saya menamai 'name_space' dengan nama Adisthana dan 'modul' dengan nama Modulku. Saya asumsikan anda sudah mempunya modul tersebut pada magento anda.

    Monday, July 23, 2012

    Magento - Install Sample Data

    Magento - Install Sample Data
    Install sample data sangat mudah di magento. Yang anda perlukan adalah sample data yang dapat di download disini dan akses ke phpmyadmin. Ekstrak sample data, copykan media ke media. Lalu masuk ke phpmyadmin, pilih database magento anda lalu paste script sql sample data yang anda download tadi. Pada kasus saya setelah install sample data saya tidak bisa login ke admin/backend situs. Kenapa? karena pada saat menginstall sample data tadi