Aplikasi Toko Online dengan Google AppEngine

Ceritanya Risna dan temennya mau buka toko online (needleyarn.com). Risna dah mencoba-coba aneka shopping cart, baik yang populer ataupun yang nggak. Selama beberapa minggu Risna mencoba memakai dan mengkustomisasi Joomla + Virtuemart. Fiturnya memang sip, tapi ada beberapa kelemahannya. Kelemahan pertama loadingnya berat (ketika loading, total ukuran halaman utama saja sudah 1.5 mb), kelemahan berikutnya adalah proses pembelian tidak seperti yang diharapkan (harus ada registrasi dsb). Proses managemennya juga sulit dan kadang membingungkan (misalnya untuk insert video youtube saja harus menginstall modul tertentu).

needleyarn

Sebenarnya banyak sekali orang Indonesia yang membuat situs belanja (online shop) kecil di multiply dan blogspot, dan cara belanja yang sederhana itu cukup diminati banyak orang. Biasanya toko di multiply/blogspot itu hanya sekedar etalase. Setelah melihat gambar dan deskripsinya, orang bisa memesan via email dengan menyebutkan produknya. Karena tokonya kecil, maka belum tentu produk tersedia, dan ongkos kirim juga belum bisa dihitung. Untuk produk handmade, pemilik toko belum tentu sempat membuatkan pesanan. Pemilik toko akan mengkonfirmasi mengenai ketersediaan dan harga. Jika sudah, maka transfer melalui rekening bank akan dilakukan (mengingat banyak yang belum punya paypal dan kartu kredit, serta banyak yang tidak yakin memakai kartu kredit di Internet). Tidak ada proses registrasi, jadi sifat tokonya semi manual.

Proses sederhana itu malah sulit ditangani dengan software shopping cart yang terlalu canggih. Software yang “ideal” untuk toko online kecil di Indonesia, menurut Risna dan saya adalah seperti ini:

  1. Pengisian produk oleh administrator gampang, cukup mengisi spreadsheet dan bisa dilakukan offline
  2. Foto cukup diletakkan di Flickr atau layanan gratis lain, jadi tidak perlu upload ulang benda yang sudah ada
  3. Tidak perlu ada proses registrasi, pengguna cukup memilih barang, isi informasi mengenai email dan alamat pengiriman
  4. Pembayaran lewat bank, dan konfirmasi manual saja
  5. Bisa dihosting di tempat yang gratis

Nah weekend kemarin kebetulan libur panjang, jadi saya coba menulis sebuah aplikasi shopping cart sendiri untuk platform Google AppEngine, sambil berusaha memenuhi angan-angan software shopping sederhana yang “ideal”. Google AppEngine ini merupakan layanan gratis dari Google (detailnya nanti saya jelaskan), dan kita bisa memakai domain gratis namaaplikasi.appspot.com, atau memakai domain kita sendiri.

Untuk managemen data, ini dilakukan via spreadsheet, jadi tidak perlu form yang “ribet”. Saya memakai teknologi Google API untuk mengakses spreadsheet dari Google docs, sehingga manajamen data bisa dilakukan via Google spreadsheet (Google spreadsheet juga mendukung import/export file Excel, jadi managemen bisa dilakukan offline). Untuk masalah foto, saya mengunakan Flickr (sebenarnya memakai Picasa juga bisa, tapi foto-foto sudah terlanjur diupload di flickr). Di awal saya akan menceritakan dulu seperti apa hasil aplikasinya (supaya bisa dinikmati yang bukan programmer), lalu saya akan masuk ke bagian teknis.

Tampilan situsnya kira-kira seperti di bawah ini. Gambar bagian atas ada carousel untuk menunjukkan kategori. Secara teknis ini memakai YUI (yahoo ui library). Kami berdua bukan designer, tapi kami berusaha sebisa mungkin supaya situsnya tidak terlalu jelek.

Tampilan Toko
Tampilan Toko

Produk tertentu sudah memiliki harga yang diketahui. Ada produk tertentu yang harganya harus ditanyakan (tergantung warna, benang, ukuran, dsb). Untuk produk seperti itu, akan ada link untuk form hubungi kami.

Contoh Pilihan Produk
Contoh Pilihan Produk

Berikutnya beginilah kira-kira spreadsheet yang perlu diisi. Ini akan disinkronisasi dengan produk di situs. Perhatikan bahwa untuk memasukkan gambar, cukup URLnya saja yang dituliskan. Program akan otomatis mengambil gambar, meresize, dsb. Gambar versi paling besar akan merujuk langsung ke halaman flickr (sesuai term of service mereka).

Contoh spreadsheet
Contoh spreadsheet

Supaya aman dari spam, semua form di situs memakai Captcha. Teknisnya, captcha ini disediakan oleh Recaptcha.

captcha

Risna ingin supaya bisa ada artikel, tutorial dan tips, supaya orang-orang mau menengok situsnya. Untuk itu disediakan fitur untuk menambahkan artikel. Teks menggunakan format HTMLsehingga bisa dengan mudah memasukkan gambar dan video youtube. Editor HTML-nya menggunakan TinyMCE. Untuk sistem komentarnya, saya memakai Disqus.

Contoh Artikel
Contoh Artikel

Google AppEngine mungkin kurang dikenal oleh non developer. Ini merupakan layanan gratis dari Google yang memungkinkan kita membuat aplikasi dan aplikasi ini akan dihosting oleh Google menggunakan infrastrukturnya yang canggih. Kelebihan menggunakan appengine dilihat dari sisi user adalah: cepat diakses dari mana saja, dan ketersedian (availibility) tinggi. Aplikasi untuk appengine harus ditulis dalam Python atau Java (atau bahasa lain yang menggunakan JVM). Dukungan terhadap Java baru-baru ini ditambahkan, dan sifatnya masih kurang stabil, jadi saya memilih menulis aplikasi menggunakan Python.

Saya sendiri bukan ahli Python, jarang sekali memakai Python, dan belum pernah menulis aplikasi serius dengan Python (aplikasi python yang pernah saya tulis semuanya sederhana sekali). Saya juga sekaligus ingin belajar mengenai framework aplikasi web yang bernama Django. Memakai framework akan mempermudah pembuatan website. Sebenarnya ada banyak framework lain, tapi saya memakai Django karena dari dulu memang sudah ingin mempelajarinya, dan belum lama ini framework django sudah didukung resmi dan dimasukkan dalam appengine. Perlu dicatat, saya ini bukan lagi web developer, terakhir bekerja dengan aplikasi web adalah 5 tahun yang lalu. Sekarang saya lebih banyak berurusan dengan sistem dan low level programming (C, C++, kernel hacking), jadi pengetahuan saya mengenai web programming sudah agak berkarat.

Proses development cukup lancar, tapi saya sering harus berhenti, melihat dokumentasi. Beberapa yang harus dicek adalah: kalo saya ingin melakukan ini, apakah sudah ada modul pythonnya? lalu berikutnya: apakah modul ini bisa dipakai di appengine? (karena ada batasan tertentu yang diberikan Google). Lalu muncul juga pertanyaan: apakah sudah ada tag tertentu dalam sistem templatenya Django?. Umumnya jawaban bisa dicari dengan cepat menggunakan Google. Tapi kadang-kadang ada masalah yang agak sulit, yang butuh waktu agak lama mencarinya solusinya. Mencari error yang berhubungan dengan appengine cukup gampang, lalu mencari error yang berhubungan dengan django cukup gampang, tapi mencari error yang berhubungan dengan django di appengine kadang-kadang sulit.

Python sudah memiliki banyak library yang memudahkan pengembangan, misalnya untuk akses spreadsheet Google sudah ada gdata. Untuk captcha, sudah ada library Python untuk Recaptcha. Dari membuat aplikasi ini, saya banyak belajar mengenai Google AppEngine, dan teknologi DataStore yang mereka pakai. Selain itu saya juga belajar mengenai Google Data API untuk akses spreadsheet. Saya juga belajar mengenai django, dan bahkan saya juga belajar hal-hal mengenai python yang tadinya belum saya ketahui.

Demikianlah cerita development appengine ini. Jika ada banyak yang tertarik dengan aplikasi ini, saya berencana untuk merilisnya, tapi saat ini masih terlalu sederhana (terutama bagian halaman adminnya), dan meskipun secara keseluruhan situs sudah generik, masih ada beberapa hal yang spesifik situs needleyarn yang perlu dipisahkan.

6 thoughts on “Aplikasi Toko Online dengan Google AppEngine”

  1. alo mbak saya tertarik dengan buat app di google app engine, mudah2an bisa di update lagi tutorial nya..:D apalagi kalu dirilis seperti yang mbak tulis diatas heheh thanks

  2. saya tertarik dengan aplikasi buatan om joe. apa aplikasinya sudah jadi dan dirilis?

  3. Keren banget, saya lg mau bikin web toko online. Semoga bisa saya dipraktekan. Tp sekarang needleyarn.com kok ga bs dibuka lg?

Tinggalkan Balasan ke khamimBatalkan balasan

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.