Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

Membangun Tautan Afliasi Kostum dengan Amazon Product Merchandising API

by
Difficulty:IntermediateLength:LongLanguages:

Indonesian (Bahasa Indonesia) translation by Husain Ali Yahya (you can also view the original English article)

Program Amazon Associates, bersama dengan program Amazon Web Services (AWS), menawarkan pengembang kekuatann untuk mencari di katalog Amazon Store menggunakan RESTful API dan mengintegrasikan data pada produk apapun ke sebuah halaman situs. Jika kamu adalah seorang programmer dengan pola  pikir bisnis dan mencari cara menuangkan situs mu, kamu bisa mendaftar untuk menjadi seorang Amazon affliate dan mendapatkan komisi setiap kali pengguna mengirim tautan produksi dan melakukan pembelian.  (dan selama penghasilan dari program berjalan, komisi Amazon adalah satu dari yang paling berlimpah)

Untuk mereka yang masih baru dengan konsep dari affliate marketing. Anggap kamu menjalankan sebuah situs atau blog yang berisi tinjauan film. Untuk film yang kamu tinjau, kamu bisa mendapatkan keuntungan dengan meletakkan tautan pada pembaca untuk membeli filmnya. Untuk membuatnya lebih menarik untuk diklik, tautannya bisa melingkupi sebuah gambar DVD beserta nama lengkap film, harga film terendah dan sebuah tombol "Beli".

Di panduan ini saya akan menunjukkanmu csra membuat sebuah dedicated reusable class di PHP yang menghubungkan ke Product Merchandising API dan mengambil data XML berdasarkan nama dari produk dan kategori belanja (pada kasus ini "Movies"). Di bagian akhir, kita akan meletakkan data nya ke sebuah template HTML kecil yang bisa dikostumisasi sehingga kita berakhir dengan sebuah demo modul afliasi mini yang bekerja. Mari mulai.

[Mohon ingat sebelum mengakses contoh demo bahwa jika kamu memilih untuk membeli atau menyewa DVD dari tautan yang disediakan, itu akan menghasilkan pembayaran komisi ke Envato Tuts+]

Mendaftar untuk mendapatkan Affliate ID dan Kredensial

Pertama daftar sebuah akun di affliate-program.amazon.com. Gratis, dan kamu hanya perlu mengikuti langkah-langkahnya untuk membuat profil situsmu. Kamu akan dimintai untuk memverifikasikan identitasmu di akhir proses dengan memasukkan nomor telepon, menerima sebuah telepon otomatis, dan memasukkan passcode yang diberikan.

Setelah kamu menyelesaikan pendaftarannya, kamu akan diberikan sebuah ID Amazon Affliate (pada contoh ini adalah "evtuts-20") Masuj ke akun utamamu dengan username dan paddword-mu dan klik di Product Merchandising API. Di sana, klik pada tautan untuk mulai menggjnakan API-nya,

Kamu harus mendaftar ke Amazon Web Services (aws.amazon.com), jika kamu belum melakukannha. Di AWS, di bawah Security Credentials, kamu bisa membuat sebuah access dan secret key untum membuag API request. (Catatan: penting untuk menjaga kredensial rahasia dan aman. Jangan pernah publikasi mereka di GitHub atau dimanapun.)

Mengatur PHP Helper Class

Untuk contoh ini dan membuat semuanya relatif sederhana, kita akan mengimplementasikan pola desain Singleton jntuk membuat class statis pembantu bernama AmazonAssocHelper. Dia akan mencakuo sebuah metode pubkim yang terhbung ke API, mencari katalognya, dan mengembalikan data produk menggunakan parameter tertentu yang kita lewatkan. Seperti ini cara saya mengaturnya:

Beberapa baris pertama mendeklarasikan sebuah namespace untuk class kita dan mencakup sebuah class pihak ketiga yang kita butunkan untuk menandatangani permintaan ke API dengan kredesial kita. Ketiga constant yang saya definisikan adalah affliate ID, yang kita dapat setelah mendaftar,  AWS access key dan secret key. Saat kita membuat permintaan API kita, affliatr ID akan secara otomatis masuk kedalam tautan produk yang ambil sehingga pembelian bisa dilacak ke akun kita dan kita dibayar! Pastikan mengisi ketiga nilainha dengan milikmu.

Ketiga variabel pribadi akan mengacu ke parameter pencarian yang akan kita sediakan untuk setiap permintaan, saya menggunakan "ItemSearch" sebagai operasi yang mencari hasil-hasilnya. "2013-08-01" adalah tanggal dari versi API terbaru yang akan kita sediakan juga untuk menandatangani permintaan. Dan terakhir, kita harus menunjuk grup-grup respon yang kita kembalikan. Ada 55 pilihan, dan mereka berbeda dari ukuran dan jenis data yang dikembalikan. Untuk panduan ini, kita akan mencsri judul lengkap dari film beserta tautan ke halaman detilnya. Keduanya ada di dalam grup respon "Small". Kita juga membutuhkan gamba thumbnail untuk grup respon "Images" dan harga baru terrendah dari grup "OfferSummary".

Fungsi fecth_product_data() adalah metode kita yang diekspos secara publik dan memiliki dua parameter:

  1. Sebuah frasa kunci spesifik yang mengacu ke nama produk yang kita cari
  2. Sebuah kategori produk yang diterima Amazon

Dia akan mengembalikan sebuah array dari data yang berkaitan ke bagian atas hasil pencarian yang diuraikan dari sebuah respon XML. (Pada banyak kasus, hasil pertamanha akan menjadi produk yang kita inginkan, dengan asumsi bahwa frasa kunci yang kita sediakan cukup spesifik. Jika tidak, kamu bisa memutuskan untuk memodifikasi contoh ini untuk mencari dengan ASIN tertentu atau number ID dari produknya, namu ada beberapa kekurangan dan kelebihan dari metode ini. Jika kamu memiliki sebuah database besar dari laman-laman artikel utuk film berbeda, menggunakan pendekatan berbasis nama terbukti lebih efisien, karena dia akan mengizinkanmu secara otomatis membuat tautan produk untuk semua produkmu secara instan. Dan akan menghemat waktu dan tenaga ketimbang membuatnya secara manual untuk tiap ID.)

Membuat Sebuah Permintaan Tertanda Tangan

Langkah selanjutnya adalah membuat sebuah class pembantu yang akan membuat permintaan tertanda tangan ke API produk. Saya menggunakan fugsi pihak ketiba yang ditulis pleh Ulrich Mierendorff and membugkusnya dalam class statis bernama AWSSignedRequest. Dia membutuhkan beberapa parameter, termasuk regionnya (untuk toko di AS, kita menggunakan "com"), sebuah array dark parameter-parameter permintaan, AWS kyes kita, grup respon, dan versi API yang telah kita definisikan. Metode get_signed_request() membangun dan mengembalikan sebuah URL penuh daro semua bagian ini.

URL permintaan tertanda tangan akhir akan terlihat seperti ini:

Di class AmazonAssocHelper, letakkab panggilan ke get_signed_request() dalam metode bernama get_search_results() dan lewatkan dalam sebuah array yang berisi 4 parameter pencsrian ($params) bersama degan argumen lainnya seperti berikut:

Array $params mencakup operasi dan respon yang tekah kita definisikan, dengan nilai untuk 'Title' dan 'SearchIndex. Pada kasus ini, SearchIndex adalah kategori produk yang kita cari. Sekarang kita bisa meminta fungsi file_get_contents() bawaan PHP untuk membuat sebuah formulir respon ke permintaanbya, dan karena formulir responnya adalah dokumen XML, kita menggunakan fungsi bawaan lain yaitu simplexml_load_string(), untuk memuatnya sebagai sebuah objek ysng bisa kita urai.

Mengetes Respon dan Mempratinjau data XML

Ada tahap ini, kita ingin mencoba permintaan API kita dengan beberapa nilai produk asli sehingga kita bisa melihat contoh asli dari data XML yang dikembalikan sebelum mengurainya. Seperti yang ditunjukkan di atas, tambahkan beberapa baris uji coba untuk mengstur header ke application/XML dan cetak $response sebelum dia dikembalikan.

Sekarang, buat sebuah berkas yang akan hadir sebagai halaman utama di mana tautan produk ditampilkan. Saya telah memutuskan untuk menamainya index.php. di bagian atas, tambahkan sedikit kode berikut:

Dua baris pertama mendeklarasikan namespace dan memasukkan sebuah fungsi global yang mengizinkan berkas class kita dimuat secara otomatis, semenjak kita tidak menggunakan framework PHP. Baris berikutnya adalah baris yang oenting. Kita memanggil metode publik fetch_product_data() pada class AmazonAssocHelper dan memberikannya ke sebuah array variabel bernama $product_data, melewatkan sebuah nama film spesifik sebagai frasa kunci (saya pilih "Jurassic World" dari daftar best seller saat ini)  dan "movies" sebagai kategorinya.

Saat kamu memuat halaman, bagian awal dari respon XML harusnya tampak seperti ini:

Jika kamu menggulung dsn memindai keluaranya, kamu harusnya bisa melihat semua data yang akan berguna pada demo kita, termasuk <DetailPageURL>, <Title>, <LargeImage>, <LowestNewPrice>. Ada beberapa node di mana kita akan fokus pada penguraian.

Mengurai Objek Respon

Dalam class AmazonAssocHelper, buat sebuah metode bernama get_top_result_data() yang memngambil objek respon XML kita sebagai parameter. Sekarang kita bisa mulai membaca node yang mengandung data yang ingin kita tangkap, tapi sebekum ke sana, mari rencanakan pengecekkan beberapa error. Saya telah m3nambahkan beberapa baris di atas fungsi kita untuk meminta sebuah metode yang akan mengatur penguraian node error utuk kita, dan saya akan pergi lebih detil pada bagian akhir dari panduan ini.

Seperti yang bisa kamu lihat pada kode di atas, kita mulai mengsmbil item node pertama (Item[0]) dari objek XML dan menyimpannya ke sebuah variabel ($first_item) Lalu, kita melakukannya ke tiap anaknya untuk mengumpukjan pecahana informasi yang kita inginkan ($item_title, $item_link, $item_image, $item_price). Akhirnya, kita mempaketkannya ke sebuah array dengan atribut ternamai dan mengembalikan array-nya.

Menangani Error

Buat sebuah metode bernama handle_errors() dan lewatkan objek XML yang sama. Berdasarkan cara API ini diatur, aneka node error dengan kode spesifik dan pesat diatur untuk muncul baik di node <OperationRequest> maupun pada item node <Request>. Kamu bisa menguji mereka dengan mengatur sebuah index pencarian atau grup respon yang tidak valid. Kode berikut mengulang tiap node dan mendorong pesan error ke semua array yang kita kembalikan.

Mengisi Data ke Sebuah Template HTML

Pada titik ini, kam bisa menghapus panggilan XML percobaan karena kita akan melihat data keluaran akhir. Di index.php, cetak $product_data array dan muat halamanya. Kamu akan melihat sesuatu seperti ini:

Setelah kamu memverifikasi bahwa data-nya terluhat baik untuk keempat properti yang kita minati. Kamu bisa coba menjalankan panggilan pada film atau produk lain sebagai perbandingan. Ingat bahwa affliate ID (pada kasus ini "evtut-20") telah dimasukkan secara otomatis ke 'link' seperti yang kita harapkan,

Sebagai langkah akhir, mari tulis sebuah blok HTML sederhana utuk menampilkan data film kita dan buat dia tertaut ke halaman pembelian. Di index.php tambahkan hal berikut di bawah blok PHP:

Ingat bahwa pada event di mana sebuah error dihasilkan, saya telah memilih untuk menhembunyikan display-nya. Namun, kamj bisa juha menampilan pesan error yang tepat pada tempatnya.

Sekarang, dengan CSS styles ditambahkan, keluaran akhir akan tampak seperti ini:

Amazon Affiliate Link Demo

Dan sekarang kamu memilikinha! Ketika kamu meluncurkan modul afliasimu ke dunia, kamu bisa melacak semua pembelian dan pendapatan dengan memasukkannya ke akunmu.

Kesimpulan

Pada panduan ini, kita telah membahas semua langkah hang dibutujkan untuk seorang PHP programmer untuk membsngun solusi kode yang secara instan menghasilkan tautan afliasi kostum untuk produk apapun di AmazonStore. Berdasarkan kebutuhan atau preferensimu, kamu bisa memutuskan untuk mengubah atau memperluas contoh ini dengan parameter ysng berbeda.

Kam juga bisa menelusuri dokumentasi API untuk detil lebih mengenak hal yang mungkin. Kekuatan sesungguhnya dari oenggunaan Product Merchandising API terletak padak fleksibilitas ysng ditawarkan untuk mengatur dan menampilkan rentang penuh dari informasi real-time mengenai sebuah atau sekumoulan produk. Dengan Amazon link generator bawaan (tanla pengetahuan pemograman dibutjhkan), kamu tidak mendapatkan nilai kontrol yang sama. Pilihanmu juga dibatasi.

API-nya bersinar terang pada situs yang dibuat secara dinamis atau pada halaman di mana kamu membutuhkan sebuah kontrok ysng lebih tinggi pada penamlilan dsri tautanmu. Jadi jika kamu bekerja pada situs atau blog bersama baris-baris ini dan ingin memonetisasi-nya. Saya harap panduan ini bermanfaat bagimu.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.