Magento custom order state


magento

Akhirnya diberi kesempatan untuk menuliskan sesuatu di blog ini. Sebenarnya sudah beberapa waktu lalu ingin menulis namun apadaya laptop error dan kerjaan di kantor tidak dapat disambi ngeblog. Dan tulisan kali ini ialah mengenai Magento. Magento adalah platform eCommerce yang cukup lengkap yang berdasar dari ZendPHP framework. Banyak toko jual beli online yang menggunakan platform ini dikarenakan fitur yang sangat banyak, namun salah satu kekurangan dari magento (yang sepertinya sekarang sudah sedikit teratasi) ialah dokumentasi program yang minim.

Kali ini saya akan membagi (sebenarnya sih menyimpan) cara membuat custom order state di Magento. Order state ialah state pesanan yang dikenali oleh program. Pada dasarnya ada 8 state di Magento yaitu :

new, pending_payment, holded, payment_review, cancelled, closed, processing, complete.

Namun ada kemungkinan suatu sistem jual beli membutuhkan state lain pada prosesnya semisal cicilan_pertama atau lainnya. Nah dikarenakan pengguna tidak dapat membuat order state baru melalui menu di backend, maka perlu dibuat modul/extension untuk custom orderstate.

Berikut beberapa langkah yang saya coba (dan telah diuji keberhasilannya) untuk membuat custom order state pada magento:

pertama buatlah modul dan tentukan namanya (misal. CustomState)

daftarkan modul pada aplikasi anda dengan membuat file pada : app/etc/modules/(nama_toko_anda)_CustomState.xml

format:

<?xml version="1.0"?>
    <config>
        <modules>
            <(nama_toko_anda)_CustomState>
                <active>true</active>
                <codePool>local</codePool>
            </(nama_toko_anda)_CustomState>
         </modules>
    </config>

kemudian buat configuration files dari modul anda pada : app/code/local/<nama_toko_anda>/CustomState/etc/config.xml

berikut contoh file konfigurasinya :

<?xml version="1.0"?>
<config>
<modules>
<(nama_toko_anda)_CustomState>
<version>0.1.0</version>
</(nama_toko_anda)_CustomState>
</modules>
<global>
<resources>
<orderstate_setup>
<setup>
<module>(nama_toko_anda)_CustomState</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</orderstate_setup>
<orderstate_write>
<connection>
<use>core_write</use>
</connection>
</orderstate_write>
<orderstate_read>
<connection>
<use>core_read</use>
</connection>
</orderstate_read>
</resources>
<sales>
<order>
<statuses>
<payment translate="label">
<label>Angsuran 1</label>
</payment>
</statuses>
<states>
<payment translate="label">
<label>Diangsur</label>
<statuses>
<payment default="1"/>
</statuses>
</payment>
</states>
</order>
</sales>
</global>
</config>

dan tahap berikutnya ialah membuat skrip untuk memasukkan dalam SQL database dengan membuat file pada:

app/code/local/<your_store>/CustomState/sql/customstate_setup/mysql4-install-0.1.0.php

<?php
    $installer = $this;

    // Required tables
    $statusTable = $installer->getTable('sales/order_status');
    $statusStateTable = $installer->getTable('sales/order_status_state');

    // Insert statuses
    $installer->getConnection()->insertArray(
        $statusTable,
        array('status', 'label'),
        array(
            array(
                'status' => 'angsuran_1', 
                'label' => 'Angsuran 1'
            )
        )
    );

    // Insert states and mapping of statuses to states
    $installer->getConnection()->insertArray(
        $statusStateTable,
        array('status', 'state', 'is_default'),
            array(
                array(
                    'status' => 'angsuran_1', 
                    'state' => 'Diangsur', 
                    'is_default' => 1
                )
            )
        );

setelah semua selesai, masuk ke backend, system → cache management → flush magento cache.

flush cache magento
flush cache

Logout kemudian login kembali, dan cek state dan status baru anda di System → order statuses.

Capture
new order state

Sekian, semoga tidak menyesatkan, semoga bermanfaat.

Advertisements

Tinggalkan komentar

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s