Opencart adalah salah satu toko online paling umum. Dalam banyak kasus, tugas integrasi dengan sistem akuntansi gudang (paling sering dengan 1C) muncul.
Integrasi melibatkan, setidaknya, mentransfer pesanan dari IM ke sistem gudang untuk memproses dan mengirim barang ke pembeli dan memperbarui jumlah barang di IM sesuai dengan ketersediaan aktual di gudang.
Seringkali tugasnya adalah menyinkronkan barang itu sendiri, parameternya, foto, dan sebagainya.
Kesulitannya adalah bahwa, sebagai suatu peraturan, perubahan perlu dilakukan baik dalam IM dan dalam sistem gudang, yang berarti bahwa pengembang harus mengetahui kedua sistem atau perlu melibatkan pengembang lain. Ada solusi yang sudah jadi, tetapi mereka biasanya membutuhkan finishing atau dibayar, dan masih membutuhkan finishing.
Untuk mengatasi masalah ini, sebuah modul telah dibuat untuk OpenCard yang memperluas OpenCart API yang memungkinkan perubahan hanya dibuat di sisi sistem akuntansi.
Modul ini open source gratis, terletak di
github .
Modul ini dikembangkan untuk sistem akuntansi
tertentu , tetapi ditulis sehingga dapat digunakan oleh program pihak ketiga lainnya.
Modul ini dipasang di IM baik dengan cara standar melalui panel admin atau dengan hanya menyalinnya ke folder katalog / controller / api. Modul ini terdiri dari satu file. Tidak diperlukan perubahan pada pengaturan atau struktur opencard.
Tentu saja, di panel admin Anda perlu membuat API KUNCI, yang kemudian akan diatur dalam pengaturan sistem gudang untuk masuk ke API sebelum mengaksesnya.
Pekerjaan diverifikasi dengan OpenCart 2.3 dan 3.0
Modul ini menyediakan beberapa fungsi API untuk bekerja dengan pesanan dan barang.
Sesuai dengan perjanjian kartu terbuka, parameter dikirimkan menggunakan metode POST dan token khusus harus diperoleh sebelum mengakses API. Data dipertukarkan dalam format JSON. Semua ini adalah alat standar untuk bekerja dengan OpenCart API.
Bekerja dengan pesanan
Ketika pesanan baru muncul di IM, mereka harus diimpor ke sistem gudang, yaitu berdasarkan mereka, dokumen yang sesuai (catatan, dll.) Harus dibuat dalam sistem gudang, diproses dan dikirim ke pelanggan
Pesanan diimpor dengan memanggil fungsi
pesanan () .
Untuk mendapatkan hanya pesanan yang diperlukan, parameter status_id dengan status pesanan dilewati. Karena status di peta terbuka dibuat oleh panel admin dan bisa apa saja, pertama-tama Anda perlu mendapatkan daftar status menggunakan metode
statuses () , yang mengembalikan array nilai kunci dengan pengidentifikasi dan nama status.
Sistem akuntansi menyajikan status ini untuk klarifikasi dalam semacam daftar drop-down. Manajer memilih dari status ini status yang sesuai dengan orde baru.
Dengan pesanan muncul daftar barang dan data pelanggan untuk pengiriman.
Untuk mengidentifikasi pesanan, sistem akuntansi harus menulis ID pesanan di beberapa atribut pesanan internal. Pengidentifikasi ini memperbarui status di MI dan juga memverifikasi bahwa pesanan sudah diimpor.
Pembaruan status dalam IM dilakukan oleh fungsi
updateorder ()Manajer memilih pesanan yang diperlukan (sistem akuntansi) dalam keadaan yang diinginkan (misalnya, pesanan sedang diproses) dan memperbarui status pesanan awal yang sesuai dalam IM. Array nilai kunci ditransfer - ID pesanan MI dan ID status MI dari daftar drop-down yang diusulkan oleh sistem.
Misalnya, pesanan dapat diperbarui setelah diterima untuk diproses, dikirim ke pelanggan, dikirim ke pelanggan, dan ditutup. Ini adalah kebijaksanaan manajer.
Tentu saja, jika status di kedua sistem didefinisikan dengan jelas dan tidak berubah, maka panggilan API dengan status tetap dapat digantung pada beberapa penjadwal dan dipanggil secara otomatis.
Bekerja dengan barang
Ketika bekerja dengan barang, paling sering perlu memperbarui kuantitas barang aktual di gudang dan harga di toko.
Untuk bertukar data, barang di IM harus disinkronkan dengan barang di gudang. Kepatuhan diberikan oleh artikel, tetapi jika diinginkan, Anda dapat menyesuaikan kode dan menggunakan parameter lain, misalnya, nama (meskipun ini bukan ide yang baik).
Untuk menambahkan produk ke toko, gunakan fungsi
addproducts () .
Barang yang belum ada ditransfer ke toko. Agar tidak mentransfer duplikat, Anda bisa dapatkan dari toko daftar artikel yang ada menggunakan metode
artikel () .
Agar barang masuk langsung ke dalam kategori yang diinginkan, Anda harus terlebih dahulu mendapatkan daftar kategori menggunakan metode
kucing () dan memberi manajer kesempatan untuk memilih kategori yang diinginkan dari daftar. Setelah itu, barang didaftarkan ulang menggunakan alat standar di panel admin OpenCart.
Barang-barang ditransfer dalam bentuk nama, artikel, deskripsi (jika ada), harga dan kuantitas. Dalam beberapa kasus, tugasnya adalah mentransfer atribut, semua deskripsi, foto, dan sebagainya dari gudang. Tetapi dalam hal ini, ada keraguan tentang kelayakan menciptakan semua ini di sisi sistem akuntansi.
Pertama, untuk akuntansi gudang klasik, nama dan nomor artikel, yaitu, data yang digunakan dalam faktur dan pesanan, sudah cukup.
Kedua, panel admin IM sudah memiliki sarana reguler untuk membentuk kartu produk.
Ketiga, transfer dan koordinasi struktur kompleks seperti pohon kategori, atribut, gambar, dan sebagainya adalah bisnis yang sangat menyusahkan dan, seperti yang dijelaskan di atas, tidak perlu.
Solusi semacam itu masuk akal jika sistem akuntansi bekerja dengan sumber daya lain, mengunggah data ke pasar, misalnya. Meskipun saya yakin ada modul untuk kartu terbuka yang mengunggah karakteristik dan foto barang ke pasar dari kartu terbuka.
Jika ternyata sudah ada beberapa barang di IM pada saat sistem gudang diperkenalkan, maka Anda bisa mendapatkan daftar barang dari IM menggunakan metode
getproducts () dan menambahkan ke
katalog barang sistem akuntansi. Keunikan juga diperiksa oleh artikel.
Selanjutnya, fungsi utama
updatequantity () dan
updateprice () untuk memperbarui kuantitas dan harga dalam MI sesuai dengan data gudang. Fungsi mengirimkan array nilai kunci (nomor artikel atau harga) dan tidak memerlukan parameter, yaitu, mereka dapat dimulai oleh penjadwal.
Seperti yang telah disebutkan, kelebihan modul adalah tidak adanya perubahan dalam kode OpenCart. Jika perlu, modul ini mudah diselesaikan - untuk mentransfer data tambahan Anda hanya perlu menambahkan kunci baru ke array asosiatif yang sesuai. Data akan dikemas dan kemudian dibongkar dalam bentuk yang sama di sisi penerima.
Jika sistem akuntansi ditulis dalam PHP, ada
fungsi siap pakai untuk memanggil API pembuka (Anda dapat menghapus baris pesan kesalahan dari sistem).