tabel pajak untuk ekspor Netsuite dalam format ramah Magento

Apakah Anda tahu bahwa Anda dapat mengekspor pajak adalah format Magento Netsuite? NO? READ ON!

Untuk menyelesaikan tugas ini, Anda harus membuat script server-side di Netsuite dan ‘mengatur’ ke url-nya. Netsuite script sisi server yang akan memiliki akses ke back-end Netsuite memungkinkan Anda untuk mengakses catatan pajak

Tapi pertama, catatan server-side Javascript. Jika Anda selalu lebih mengandalkan console.log () atau (ketika dramatis perasaan) alert (), Anda akan perlu untuk menyesuaikan. panah ini adalah Anda bergetar ketika sisi lokasi server. Dalam contoh ini, kita menghasilkan HTML untuk menguji dan melihat kesalahan tidak sulit. Tapi jika Anda berurusan dengan script suitescript lainnya, mereka tidak menghasilkan konten dari situs, saya sarankan Anda mengawasi nlapiLogExecution. Hal ini sangat berguna. Anda juga dapat menggunakan SuiteScript Debugger.


Konfigurasi Netsuite

Sebelum memulai kode, yang merupakan bagian utama dari blog ini Anda perlu menyiapkan script baru untuk beradaptasi dan menyebarkan. Saya kira kebanyakan orang membaca ini tahu bagaimana melakukan ini, tetapi hanya dalam kasus Anda tidak, saya akan menyarankan untuk menempatkan:

Buat script server-side yang baru

Mulailah dengan menjaga file js (menyebutnya “tax_export.js”) di suatu tempat pada hard drive Anda

Access Netsuite, kemudian pergi ke:. kustomisasi & amp; amp; gt; & Amp; amp; gt; script scripting. Klik “New Script” di bawah “Pilih jenis”, klik “suitelet.

Setelah itu, nama tulisan” tax_export “, klik panah bawah di” file script ” window data dan klik “New” (ini dapat dicapai dengan mengklik tanda plus yang muncul saat melayang “file script” dari jendela depan). Sebuah pop up akan muncul. klik “Pilih file” dari “Pilih file” data panel dan arahkan ke file yang dibuat Js earler (kami menyebutnya “tax_export.js”).

setelah selesai, klik tombol “Simpan” untuk menampilkan panel. Pop up harus pergi.

kembali jendela utama, ketik fungsi password “suitelet” di jendela masukan. nilai data ini jendela harus sesuai dengan nama fungsi dukungan js. Pastikan bahwa jika Anda mengubah nama fungsi di tax_export.js (yang tidak ditambahkan), Anda juga mengubah nama fungsi di bidang entri teks

Putuskan ditulis Netsuite:.

Hanya jika Anda berada di tempat lain di NetSuite, ikuti ini kustomisasi rantai baru & amp; amp; gt; scripting & amp; amp; gt; Skrip. Anda akan melihat artikel Anda dalam daftar pada halaman. Jika Anda tidak, perluasan “filter” dengan mengklik tanda plus di sebelah kata “filter” dan pilih “suitelet” dari “Type” drop. Harus ada sekarang.

Klik “lihat” di samping naskah Anda (yang harus disebut “tax_export”), maka ketika jendela skrip, klik “set Script”. Selamat datang di “Deployment Script!”

Beberapa parameter untuk cakupan. Klik “set” dan “masuk gratis.” Anda harus membuat penilaian, dengan beberapa pilihan lain. Tempatkan kursor pada “tingkat Log” dan melihat pilihan untuk melihat apa yang baik untuk Anda. Typicall “Error” adalah tingkat yang tepat, tetapi Anda mungkin ingin mengatur “debug”, sementara mengembangkan keluaran lihat debug. Lakukan hal yang sama dengan “Jalankan Peran” (saya menggunakan “Administrator”), dan window “Public” menggunakan penilaian Anda. Saya klik pada “Pilih Semua” di samping “peran”.

Kemudian klik “Save.” ! Kami sangat dekat dengan coding yang sebenarnya, melalui membaca di

Sekarang, untuk menemukan lokasi dari script set:

Sekali lagi, kunjungi: kustomisasi & amp; amp; gt; scripting & amp; amp; gt, skrip. Klik “Settings” di samping nama script ( “tax_export”) dan klik “view” di samping pengaturan.

Dan di sana, di bawah “URL eksternal” adalah produk dari semua pekerjaan sejauh ini. Ini akan menjadi alamat dari pajak ekspor. Jadi copy / paste di jendela baru, bookmark, bercinta dengan dia, menampar cincin di atasnya dan tahu bahwa Anda tidak akan pernah meninggalkannya, karena Anda bekerja untuk itu!


waktu coding!

Nah, hampir. Saya hanya ingin menunjukkan Anda di mana Anda akan menyisipkan script lagi menjadi, sekali lagi, pergi ke: kustomisasi & amp; amp; gt; scripting & amp; amp; gt; Skrip. Klik pada ‘melihat’ melalui tulisan Anda ( “tax_export”), kemudian klik “Edit” di samping nama file script ( “tax_export.js”). Ini adalah di mana Anda memotong dan menyisipkan kode Anda ketika selesai.

Ok, siap coding ?? !! Sangat baik – tax_export.js terbuka di komputer Anda. Tambahkan kode berikut:

 fungsi suitelet (permintaan, respon) {if (request.getMethod () == 'GET') {// sinilah kami akan menempatkan kode kita}} 

ini adalah bagian dari Netsuite (suitelet) kode kita akan menulis. Pengaturan yang cukup jelas: “permintaan” adalah metode (GET atau POST) data fungsi masa depan “balasan” adalah produksi

Sekarang kita akan sampai di sana. Kode. Pertama versi sederhana:

 fungsi suitelet (permintaan, respon) {if (request.getMethod () == 'GET') {var = searchresults nlapiSearchRecord ( 'taxgroup', null, [], []); jika (searchresults = nol & amp; amp; amp;! & amp; amp; amp; searchresults = '') {response.write ( '& amp; amp; lt; Tabel & amp; amp; gt; & amp; amp; lt; tbody & amp ; amp; gt; '); response.write ( '& amp; amp; lt; tr & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; kabupaten & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; USA & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; AK & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; kode pos (s) & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; tarif pajak dan amp ;; gt lt; / th & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; bawaan & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; / tr & amp; amp; gt; '); Hasil pencarian // loop untuk (var di searchresults kunci) {if (searchresults [key]) {// menarik catatan individu dari hasil pencarian: var = nlapiLoadRecord urut (searchresults dari taxgroup [utama]. getId ()); order.getFieldValue zipString var = ([ 'zip']); order.getFieldValue rateString var = ([ 'standar']); order.getFieldValue countyString var = ([ 'county']); jika (countyString) countyString countyString.replace = (/ s / g, '_'); response.write ( '& amp; amp; lt; tr & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; US-AK' + countyString + '& amp; amp; lt; / td & amp; amp ; gt; & amp; amp; lt; TD & amp; amp; gt; US & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; CA & amp; amp; lt ; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; "+ newZipString + '& amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; "+ rateString + '& amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; TD & amp; amp; gt; bawaan & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; / tr & amp; amp; gt; ");}} Response.Write ( '& amp; amp; lt; / tbody & amp; amp; gt ;; gt; & amp; amp; lt; / meja & amp; amp "); } Lain {response.write ( "tidak ada hasil pencarian di sana.");}} Lain {response.write ( 'Error:. Situs ini hanya dapat diakses dengan metode GET');}} 

baris pertama kami kode dari metode baru yang disebut ” suitescript yang nlapiSearchRecord. Metode ini membutuhkan tipe record sebagai parameter pertama. tabel pajak disimpan dalam sebuah objek “Jenis taxgroups. Pada akhir posting ini, ada referensi tentang suitescript untuk lebih mengeksplorasi bahasa, jika Anda ingin. Tapi untuk saat ini, metode ini mengembalikan sebuah objek (yang kita cerdik disebut “searchresults”) yang berisi hasil pencarian. dalam hal ini, ringkasan dari semua data perpajakan kelompok.

Kami kemudian melintasi melalui penelitian hasil bertentangan, dan menarik data yang diinginkan dari yang diberikan. untuk setiap record, kami memeriksa yang tidak nol (mungkin terlalu banyak) dan menetapkan bidang minat untuk variabel lokal. tujuan kami di sini adalah untuk meniru format pajak Magento, yang harus mendapatkan kita data yang kita butuhkan.

sisa kode HTML untuk struktur tabel yang akan memberikan catatan pajak.

Jika Anda memuat URL yang Anda disalin, Anda akan melihat beberapa data. Jika situs tersebut tidak memuat, Anda dapat memilih untuk keluar dari loop setelah 50 entri.


Magento Format

Ada lagi, karena kita benar-benar belum mencapai tujuan kami. Kode di atas memberikan bukti bahwa Magento perlu, tetapi tidak dalam format Magento.

Format Magento memungkinkan kode kelompok pos berturut-turut dengan tarif pajak yang sama pada rentang (misalnya, 92.121-92.127 mewakili semua kode pos di kisaran ini), yang memungkinkan Anda untuk menurunkan pendapatan toko tunggal sejumlah pajak.

Saya kira Anda tahu JavaScript, jadi saya tidak akan menjelaskan kode di bawah secara lebih rinci.

Hal lain tentang kode di bawah ini:

Ada banyak data, jadi saya berbagi catatan ini halaman 50 masing-masing. Jangan ragu untuk mengubah “pertumbuhan” variabel dalam kode berikut untuk mengubah

 fungsi suitelet (permintaan, respon) {if {response.write ( '& amp; amp; lt; gaya & amp; amp; gt; # headTable meja {width (permintaan GetMethod () ==' GET '.). 600px; text-align: center; margin: 10px auto;} a {text-decoration: none;} yang {width: 200px; margin: 5px; height: 50px; text-decoration: none;} tabel # Data {border-collapse: collapse; width: 1000px; margin: 5px auto;} td, th {kata-break: break-semua; padding: 5px; border: 1px solid # 000000;}} & amp; amp; lt; amp / style & amp ;; gt; '); var pertumbuhan = 50; // String terintegrasi CURRENTURL var url = request.getURL saat ini () + '?'; request.getAllParameters parameter var = (); untuk (kunci var dalam pengaturan) {if (key = "startRecord!) CURRENTURL + = + '=' parameter kunci + [key] + '& amp; amp; amp;';} currentURL.substring CURRENTURL = (0, currentURL.length - 1); var = startRecord (request.getParameter ( 'startRecord startRecord')) ')) Nomor (request.getParameter (: 0; var endNumber = Jumlah (pertumbuhan startRecord +) previousNumber var = Jumlah (startRecord? - peningkatan); var = ENDRECORD (request.getParameter ( 'startRecord')) endNumber: peningkatan; var = searchresults nlapiSearchRecord ( 'dari taxgroup', null, [], []); endNumber = (endNumber & amp; amp; gt? ; searchresults.length) searchresults.length: endNumber; response.write ( '& amp; amp; lt; meja id =' headTable '& amp; amp; gt; & amp; amp; lt; tbody & amp; amp; gt; & amp ;? amp; lt; tr & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; menunjukkan catatan '+ startRecord +' untuk '+ endNumber +': & amp; amp; lt; / th & amp; amp ; gt; & amp; amp; lt; / tr & amp; amp; gt; & amp; amp; lt; tr & amp; amp; gt; & Amp; amp; lt; td & amp; amp; gt; '); jika (startRecord & amp; amp; gt; 0) response.write ( '& amp; amp; lt; a href =' '+ CURRENTURL +' & amp; amp; amp; startRecord = '+ previousNumber +' & amp; amp; gt; & amp; amp; lt; tombol & amp; amp; gt; sebelumnya & amp halaman; amp; lt; / tombol & amp; amp; gt; & amp; amp; lt; / a & amp; amp; gt; "); if (ENDRECORD & amp ; amp; lt; searchresults.length) response.write ( '& amp; amp; lt; a href =' + CURRENTURL + '& amp; amp; amp; startRecord =' ​​+ ENDRECORD + '& amp; amp; gt; & amp ; amp; lt; tombol & amp; amp; gt; halaman berikutnya & amp; amp; lt; / tombol & amp; amp; gt; & amp; amp; lt; / a & amp; amp; gt; "); response.write ( '& amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; / tr & amp; amp; gt; & amp; amp; lt; / tbody & amp; amp; gt; & amp; amp ; lt; / meja & amp; amp; gt; "); response.write ( '& amp; amp; lt; meja id =' database 'border =' 0 '& amp; amp; gt; & amp; amp; lt; tbody & amp ; amp; gt; & amp; amp; lt; tr & amp; amp; gt; e & amp; amp ;; & amp; amp; lt gt; kode & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; negara & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; negara & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; Zip / Postal code & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; tingkat & amp; amp ; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; Zip / post adalah rentang & amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; & berbagai amp; amp; lt; / th & amp; amp; gt; & amp; amp; lt; e & amp; amp; gt; kisaran & amp; amp; lt; / th & amp; amp; gt ; & amp; amp; lt; e & amp; amp; gt; bawaan & amp; amp; lt; / th & amp; amp; gt; & Amp; amp; lt; / Tr & amp; amp; gt; "); Jika (searchresults = null & amp; amp; amp;! & Amp; amp; amp; searchresults = '') {// lingkaran dengan hasil pencarian (Tombol var = startRecord ;! & Amp; amp; lt; = ENDRECORD; kunci ++) {if (searchresults [key]) {// menarik catatan individu dari hasil pencarian, peringkat var = nlapiLoadRecord (searchresults dari taxgroup [utama] .getId ()); order.getFieldValue zipString var = ([ 'zip']); order.getFieldValue rateString var = ([ 'standar']); order.getFieldValue countyString var = ([ 'county']); if (countyString) countyString countyString.replace = (/ s / g, '_'); if (zipString & amp; amp; amp; & amp; amp; amp;! zipString.indexOf ( '') == -1) {// jika saya istirahat di zipArray var = array zipString. split ( ''); var InitialValue; var rangeFrom; var RangeTo; var counter = 0; newZipString var = ''; // loop melalui sistem dan melihat apakah masing-masing dari mereka adalah mantan ditambah satu for (var i = 0; i & amp; amp; lt; = zipArray.length ;! ++ a) {if (zipArray [i] = tidak terdefinisi) {if (InitialValue) {newZipString = '= InitialValue zipArray [i]!; newZipString + = InitialValue; rangeFrom = InitialValue; counter = 0; }; var j = i + 1; Plusone var = Jumlah (zipArray [i]) + 1; jika (Plusone == Number (zipArray [j])) {var = dasbor (newZipString.charAt (newZipString.length - 1) = "-")? '-': ''; newZipString + = dasbor; Kontra ++; } Lain {var = koma (newZipString.charAt (newZipString.length - 1) = "-")? '': ''; jika (newZipString.indexOf (zipArray [i]) == -1) {+ = + koma newZipString zipArray [i]; zipArray RangeTo = [i]; } IsRange = Var (melawan & amp; amp; gt; 0)? '1': ''; jika (isRange == '') {rangeFrom = ''; RangeTo = ''} response.write ( '& amp; amp; lt; tr & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; US-AK' + countyString + '& amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; US & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; CA & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; "+ newZipString + '& amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; '+ rateString +' & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; '+ isRange +' & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp; amp; gt; '+ rangeFrom +' & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; td & amp ; amp; gt; '+ RangeTo +' & amp; amp; lt; / td & amp; amp; gt; & amp; amp; lt; TD & amp; amp; gt; bawaan & amp; amp; lt; / td & amp; amp ; gt; & amp; amp; lt; / tr & amp; amp; gt; "); InitialValue = null; }}}}}}} Lain {response.write ( "tidak ada hasil pencarian di sana.");}} Lain {response.write ( "Error: Halaman ini tidak dapat langsung diakses.");}} 

dan di sana Anda memilikinya! Beberapa tabel pajak Netsuite ekspor kode segar, menempatkan pada format Magento dan memberikan Anda hanya 50 record per halaman! Dengan sedikit lebih banyak pekerjaan, Anda dapat membangun Magento Modul menarik tabel data dan secara berkala memperbarui Magento, tapi itu topik untuk hari lain.


Studi lain

Seperti yang dijanjikan, berikut adalah beberapa link SuiteScript

  • API SuiteScript
  • Grup Pajak

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>