Technology

Solusi pada 7 Masalah Umum CMS OpenCart

 
  • 1
    Share

   

Opencart merupakan CMS paling populer digunakan untuk membangun website toko online. Karena selain gratis, dia memiliki berbagai pilihan fitur yang lengkap dan mudah digunakan. Namun kemudahan ini seringkali datang bersama beberapa problem yang umum ketika proses instalasi, pemasangan tema dan plugin, hingga modifikasi tampilan website. Berikut adalah beberapa problem umum tersebut, dan sejumlah solusi untuk mengatasinya. Semoga bermanfaat.

Halaman Putih (Blank Page) dan 500 Internal Server Error

Halaman putih (blank page) merupakan problem PHP yang untuk beberapa kasus, pesan errornya tidak muncul. Hal ini biasanya karena server hosting anda tidak di setup untuk menampilkan pesan error. Sedangkan 500 Internal Server Error artinya ada suatu setting yang tidak tepat, tetapi server hosting tidak dapat secara spesifik menyatakan problem apa yang sebenarnya terjadi. Kesamaan dari kedua problem tersebut adalah mereka tidak bisa memberi kita petunjuk apa yang sebenarnya terjadi, atau file apa yang memicu problem tersebut. Jadi, langkah pertama sebelum kita mencoba untuk memecahkan problem adalah mencoba untuk menampilkan pesan errornya. Kemudian manfaatkan pesan error tersebut sebagai titik awal untuk menyelidiki apa penyebabnya. Berikut adalah beberapa cara untuk menampilkan pesan error tersebut:

1. Masuk ke halaman administrator OpenCart anda dan atur “Output Compression Level” ke 0 dalam menu System > Settings > Server tab.

2. Kemudian buka php.ini dan tambahkan kode di bawah ini:

display_errors = 1;

error_reporting = E_ALL;

log_errors = 1;

3. Jika server hosting anda tidak dapat membaca konfigurasi file php.ini, anda bisa menggunakan alternatif lain. Buka file index.php dan tambahkan kode berikut di posisi paling atas (line 2):

ini_set(‘display_errors’, 1);

ini_set(‘log_errors’, 1);

error_reporting(E_ALL);

4. Namun jika langkah 2 dan 3 masih belum bisa memecahkan problem Opencart anda, anda bisa mencoba untuk rename file .htaccess pada cpanel hosting anda, atau mengubah permission dari direktori public_html pada cPanel anda.

Undefined Index / Variable

Dalam pendekatan pemrograman, pengaturan variabel atau penggunaan isset () adalah untuk memeriksa apakah variabel tersebut telah di-setting untuk mendeteksi & memecahkan problemnya atau tidak. Namun ketika sebuah aplikasi/program mendapatkan problem dengan variasi seperti:

  • PHP Notice: Undefined index: company in /path/public_html/catalog/model/account/customer.php on line 8
  • PHP Notice: Undefined variable: order_id in /path/public_html/catalog/controller/account/order.php on line 149
  • PHP Notice: Undefined variable: product in /path/public_html/vqmod/vqcache/vq2-catalog_view_theme_default_template_product_product.tpl on line 272

Maka bisa dipastikan kalau ada bug di dalamnya. Entah itu dari Opencart sendiri atau dari file ekstensi/plugin. Atau bisa jadi karena Anda melakukan beberapa modifikasi yang rupanya tidak tepat. Solusinya adalah

  1. Jika Anda mendapatkan problem ini pada instalasi Opencart yang masih fresh, Anda bisa share bug tesebut di forum Opencart (forum.opencart.com). Hal ini akan membantu Developer untuk mengembangkan perbaikan terhadap bug Opencart tersebut. Sementara anda bisa install ulang Opencart dengan cara lain (secara manual / lewat Softaculous).
  2. Namun ketika Anda mendapatkan problem ini setelah menginstal ekstensi/plugin, disable ekstensi/plugin tersebut, kemudian laporkan ke Developer Opencart.
  3. Dan jika problemnya merujuk ke file di dalam folder “/ vqmod / vqcache”, bisa dikarenakan hal ini disebabkan oleh berkas vQmod. Silahkan nonaktifkan file vQmod tersebut dengan mengganti nama ke xml_ vqmod_file. Dan melaporkan bug tersebut ke Developer Opencart.

Undefined Function / Method

Jika Anda mendapatkan pesan error “Fatal error: Call to undefined function” atau “Fatal error: Call to undefined method” berarti Opencart Anda mencoba untuk memanggil fungsi / metode yang tidak ada. Hal ini umumnya terjadi jika file tidak di-upload dengan benar atau ekstensi tidak kompatibel dengan versi Opencart Anda, atau bisa jadi bukan keduanya. Berikut sejumlah klasifikasi masalah berdasarkan pesan error yang muncul. Sekaligus solusinya.

Terkait dengan file inti Opencartnya:

  • Fatal error: Call to undefined function utf8_strlen() in /path/public_html /system/helper /utf8.php on line 39
  • Fatal error: Call to undefined method Customer::isLogged() in /path/public_html /catalog/model /catalog/product.php on line 8
  • Warning: require_once (/path/public_html/system/library/customer.php) [function.require-once]: failed to open stream: No such file or directory in /path/public_html/index.php on line 22
  • Fatal error: require_once() [function.require]: Failed opening required ‘/path/public_html/system/library/customer.php’ (include_path=’.:/usr/lib/php’) in /path/public_html/index.php on line 22

Solusinya:

  1. Beberapa file tidak ter-upload atau rusak / corrupt selama proses upload. Reupload file bersangkutan ke hosting Anda dengan mode ASCII, jangan binary.
  2. Dalam beberapa kasus, problem ini muncul karena konfigurasi path hosting anda belum benar di file config.php. Jadi periksa kembali jalur hosting anda di file config.php dan admin/config.php
  3. Peringatan / Fatal error: require_once” berarti file tersebut tidak tersedia. Anda perlu reupload kembali file yang disebutkan pada pesan errornya atau memperbaiki path hosting di file config.php seperti yang disebutkan di atas.

Terkait dengan file vQmod:

  • Fatal error: Call to undefined method ModelAccountCustomer::getPaymentAddress() in /path/public_html /vqmod/vqcache /vq2-catalog_controller_checkout_confirm.php on line 38

Solusinya adalah:

  1. vQmod gagal untuk menghasilkan cache yang baru dari file vQmod ekstensi. Periksa permission folder vqmod / cache, lalu pastikan writtable dan hapus semua file cachenya.
  2. Enable / disable satu per satu file vQmod yang Anda miliki. Setelah Anda mendapatkan penyebabnya, silahkan hubungi pihak Developernya.
  3. Ekstensi/plugin tidak kompatibel dengan versi OpenCart Anda atau terdapat bug. Langsung hubungi ke pihak Developer.

Terkait dengan PHP built-in functions:

  • Fatal error: Call to undefined function imagecreatefromjpeg() in /path/public_html/system/library/image.php on line 34

Solusinya:

  • PHP mempunyai banyak fungsi built-in, Anda dapat check di sini. Problem yang berhubungan dengan fungsi PHP built-in adalah masalah server. Silahkan hubungi pihak hosting Anda untuk memecahkan problem tersebut.

Headers Already Sent

Setelah instal, modifikasi, ataupun ketika memperbarui Opencart, anda mungkin pernah mendapatkan pesan error “headers already sent” dengan beberapa variasi seperti:

  • Warning: Cannot modify header information – headers already sent by (output started at /path/public_html/config.php:31) in /path/public_html/index.php on line 175.
  • Warning: session_start() [function.session-start]: Cannot send session cookie – headers already sent by (output started at /path/public_html/config.php:31) in /path/public_html/system/library/session.php on line 11.
  • Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /path/public_html/config.php:31) in /path/public_html/system/library/session.php on line 11.

Ada salah satu referensi yang baik untuk menjelaskan masalah ini yang bisa anda lihat di sini. Sejumlah solusi yang dapat anda terapkan:

1. Download file yang menyatakan pesan error tersebut. Kemudian baca baik-baik.

2. Biasanya karena ada spasi di awal dan akhir file PHP yang ditunjukkan. Maka hapus spasi di awal dan diakhir file.

<?php //contain space

echo “remove all space or line-break before <?php and after ?>”;

?>

3. Simpan kembali file tersebut dengan menggunakan Notepad ++ atau editor yang lain (encode file sebagai ANSI atau UTF-8 tanpa BOM).

4. Reupload kembali ke hosting anda melalui FTP dalam mode ASCII, bukan binary.

Masalah Session

PHP Session menyimpan informasi pengguna pada server untuk digunakan kemudian (yaitu status login, item belanja, dll) di seluruh permintaan halaman. Session adalah informasi sementara dan akan dihapus setelah pengguna meninggalkan situs web. OpenCart menggunakan session pada banyak aspek seperti status login, shopping cart, compare, dll. Dalam kebanyakan kasus, masalah session akan memunculkan pesan error. Tapi ada beberapa waktu ketika dia tidak menunjukkan pesan error apapun, baru kemudian menunjukkannya di kemudian hari. Ada beberapa indikasi perihal problem session ini:

  1. Produk pada keranjang belanja tiba-tiba kosong sendiri.
  2. Produk pada keranjang belanja kosong setelah user log in.
  3. Sistem administrator OpenCart selalu meminta untuk login dan mendapatkan pesan “Invalid token session. Please login again”.

Berikut beberapa varian error sekaligus bagaimana mengatasinya:

  • Warning: session_start () [function.session-start]: open (/tmp/sess_41abirkdiesf9efwej46wtib2, O_RDWR) failed: No such file or directory (2) in /path/public_html/system /library /session.php on line 11. Solusi:
  1. Buka file php.ini pada cPanel hosting anda dan tambahkan kode berikut: session.save_path = / tmp;
  2. Jika solusi di atas tidak berhasil, hubungi hosting Anda untuk bantuan mengatur session.save_path.
  • Warning: session_start () [function.session-start]: open (/tmp/sess_41abirkdiesf9efwej46wtib2, O_RDWR) failed: Permission denied (13) in /path/public_html/system /library /session.php on line 11. Solusi: Mintalah bantuan ke pihak hosting anda untuk memeriksa permission dari direktori session.
  • Warning: session_start() [function.session-start]: open(/tmp/sess_41abirkdiesf9efwej46wtib2, O_RDWR) failed: No space left on device (28) in /path/public_html/upload/system/library/session.php on line 11. Solusi: Tanyakan pada pihak hosting anda perihal masalah hosting anda. Apakah Anda perlu upgrade ke space hosting yang lebih besar (misalnya space anda rupanya sudah habis).

Allowed Memory Size Exhausted

Problem ini terjadi karena memori limit hosting Anda tidak cukup untuk menjalankan kode php  dari script website anda (misalnya upload gambar besar, menghapus banyak produk, mengirim email secara massal ,dll). Variasi error:

  • Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 47200 bytes) in /path/public_html/system/library/image.php on line 34
  • Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 13069817 bytes) in /path/public_html/system/library/mail.php on line 144
  • Fatal error: Out of memory (allocated 33554432) (tried to allocate 14024 bytes) in /path/public_html/library/image.php on line 34

Solusinya: Terapkan salah satu solusi berikut untuk meningkatkan limit memory PHP hosting anda ke 64MB, 128MB, 256MB atau 512MB tergantung dari kebijakan pihak penyedia hosting. Namun sangat dianjurkan untuk berkonsultasi terlebih dahulu perihal problem ini ke penyedia hosting anda, untuk dibantu menyesuaikan memori limit yang cocok.

  1. Edit file php.ini di cpanel hosting anda (bila servernya mendukung php.ini): memory_limit = 128M
  2. Atau tempatkan kode berikut untuk file.htaccess di cpanel hosting anda (bila servernya mendukung .htaccess): php_value memory_limit 128M
  3. Jika Anda terkadang mendapatkan error ini dan solusi di atas tidak berhasil, hubungi pihak hosting Anda. Dalam kebanyakan shared hosting, ada batasan memory_limit maksimal. Sehingga Anda tidak dapat mengatur memori limit 64 Mb atau berapapun jika secara default servernya mendapatkan maksimalnya 32 Mb.

Restriction in effect

Anda mendapatkan pesan error “SAFE MODE Restriction in effect”. Ini adalah problem pembatasan PHP, dan akun hosting Anda mencoba untuk menjalankan fungsi built-in PHP tetapi tidak memiliki akses untuk menjalankannya. Problem ini tidak ada hubungannya dengan Opencart, tapi berhubungan dengan konfigurasi server Anda. Varian Error:

  • Warning: session_start() [function.session-start]: SAFE MODE Restriction in effect. The script whose uid is 10025 is not allowed to access /path/public_html/system/library/session.php on line 11
  • Warning: imagejpeg() [function.imagejpeg]: SAFE MODE Restriction in effect. The script whose uid is 10305 is not allowed to access /path/public_html/image/cache/data owned by uid 48 in /path/public_html/system/library/image.php on line 44
  • Warning: is_dir(): open_basedir restriction in effect. File(/path/public_html/image/87cngmlc22pe96fof5fhmq9c290phri7) is not within the allowed path(s): (/path/server/) in /path/public_html/catalog/controller/checkout/confirm.php on line 248

Solusinya: Safe Mode dan pembatasan open_basedir adalah masalah server, mematikan pembatasan adalah cara terbaik untuk memperbaiki problem ini, jika hosting anda mengijinkan. Atau jika Anda bisa mengatasinya, anda bisa mencoba solusi berikut :

  1. Letakkan kode dibawah pada php.ini (bila servernya mendukung php.ini): safe_mode = Off;
  2. Letakkan kode dibawah pada .htaccess (bila servernya mendukung .htaccess): php_value safe_mode off

Sekian tutorial untuk memperbaiki problem yang umum terjadi pada CMS Opencart. Semoga dapat sedikit banyak membantu anda mengatasi problem yang mungkin sedang anda temui.

           
  • 1
    Share

Artikel Terkait

14 komentar

  • umay
    23 September 2013 - pukul 19:54

    mantaf broo…thanks bantuannya….

  • Muhamad Inas Hariri
    23 December 2013 - pukul 20:37

    Sama-sama pak :)

  • noel
    30 April 2014 - pukul 0:04

    Sumpah keren abis pembahasannya :twotumbs

  • 9 June 2014 - pukul 2:37

    Mohon pencerahannya, bagaimana cara untuk mengupload massal produk yang kita jual. Karena kendalanya harus input produk satu-satu, selain memakan waktu karena proses upload ke hostingan biasa lambat. Terima kasih.

    • Administrator
      9 June 2014 - pukul 8:42

      Menurut pengetahuan dan pengalaman dari kami, seperti yang sudah ada di CMS Jagoanstore.com, kami menggunakan teknik input di Excel. Jadi untuk data produk seperti nama, kode, harga, dan deskrispi lainnya kita tuliskan di MS. Excel, sedangkan untuk gambar kita compress menjadi .zip. Lalu kedua file tersebut kita upload secara bersamaan di menu upload produk yang biasanya sudah ada di dalam CMS itu sendiri. Ini akan memudahkan kita dalam mengupload produk yang banyak dalam waktu bersamaan :)

  • 31 October 2014 - pukul 14:09

    Selamat siang mastah….
    saya minta bantuan nih…
    langsung aja
    ” Pada saat saya mengganti status pesanan di bagian admin, ga bisa terus…
    misalnya mau ganti pesanan dalam proses menjadi complete
    muncul error seperti ini
    SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

    OK

    Notice: Use of undefined constant HTTPS_CATALOG – assumed ‘HTTPS_CATALOG’ in /home/u826506268/public_html/admin/controller/sale/order.php on line 2342

    terima kasih atas bantuannya

  • 13 November 2014 - pukul 14:37

    gan atau mas kenapa ya saya menambah kan bahasa dan saya rubah di setting nah pass klik save saya tidak bisa masuk dasboard malah saya gk bisa masuk login admin tolong pencerahaan dong

    • Administrator
      14 November 2014 - pukul 14:20

      apakah file modul bahasanya sudah ditaruh di
      direktori /catalog/language/your-language-here/module ? Atau mungkin
      file modul bahasanya ga sesuai dengan versi opencart yang digunakan,
      sehingga ada ketidaksesuaian pada sistem cmsnya. :)

  • 25 November 2014 - pukul 15:32

    mohon bantuannya,, saya menggunakan opencart 1.5.3.1 dan menginstal tema, fashionstret semua baik2 saja,, cm satu setiap unggah produk , pas dilihat di pilihan prduk kategori salalu ada notif Notice: Array to string conversion in C:\xampp\htdocs\ghauni\catalog\model\tool\image.php on line 4 hanya itu, lain normal,, apa yg harus saya lakukan,, makasih admin

  • Nyimas
    24 December 2014 - pukul 18:32

    Mohon pertolongannya, waktu saya nambahin produk terus saya isi harga sebanyak 85.000 kemudian setelah saya save, saya lihat di tabel produk, harganya berubah menjadi 85.0000. Saya coba lagi, tapi begitu terus jadinya. Terus, waktu saya coba liat di toko online saya (untuk mengecek harganya berubah jadi seperti itu atau tidak) justru lebih parah menjadi Rp1,067,500 aduh itu gimana cara mengatasinya ya? maaf panjang lebar =D terima kasih pertolongannya

  • adhi
    10 January 2015 - pukul 18:06

    Gan numpang tanya dong

    SESSION saya pas di hosting kok aneh ya pas pertama muncul sessionnya pindah page lain abis itu balik lg tiba” jadi ilang padahal di localhost baik” aja mohon bantuannya soalnya msh pertama kali buat hosting hehe

  • 26 January 2015 - pukul 13:26

    terimakasih infonya

  • Jimmy
    15 April 2017 - pukul 8:36

    Saya menggunakan Opencart 2.1.0.2. Itu Lokasi path/folder nya dmn? Yg perlu dicek ada whitespace. Ini email sya Jimmygun19@gmail.com. Harap bntuannya. Untuk masalah yg headers already sent. Tolong gak ngerti neh

  • 7 November 2017 - pukul 13:48

    thx for the info

Berikan Komentar

Your email address will not be published. Required fields are marked *