tabel pajak untuk ekspor Netsuite dalam format ramah Magento

Apakah Anda tahu bahwa Anda dapat mengekspor pajak merupakan format Magento Netsuite? NO? Baca terus!

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, yang memungkinkan Anda untuk mengakses catatan pajak

Tapi pertama, sisi server catatan 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). muncul pop up window. klik “Pilih file” untuk “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 di jendela utama, ketik fungsi password “suitelet” di jendela masukan. Nilai jendela data ini harus sesuai dengan nama fungsi js bertanggung jawab. Membuat 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 rantai kustomisasi baru & amp; amp; gt; scripting & amp; amp; gt; Scripts Anda akan melihat artikel Anda dalam daftar di. halaman. Jika Anda tidak, perluasan “filter” dengan mengklik tanda plus di sebelah kata “filter” dan pilih “suitelet” “tipe” daftar drop-down. Harus ada sekarang.

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

Beberapa pengaturan lebih untuk berlindung. 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 “kesalahan” adalah tingkat yang tepat, tapi Anda dapat mengatur “debug”, sementara mengembangkan keluaran lihat debug. Lakukan hal yang sama dengan “Run As Peran” (saya menggunakan “Administrator”) dan window “Public” Gunakan 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, pergi ke: 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 saya tahu Anda tidak akan pernah keluar, 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 Anda selesai

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

 fungsi suitelet (permintaan, respon) {if (request.getMethod () == 'GET') {// ini adalah di mana kita akan menempatkan kode kita}} 

Ini adalah bagian dari Netsuite (suitelet ) kode kita akan menulis parameter yang cukup jelas. “permintaan” adalah metode (GET atau POST) data yang akan datang pada “jawaban” adalah produksi

Sekarang kita Code’ll sana pertama versi sederhana: ..

 fungsi suitelet (permintaan, respon) {if (request.getMethod () == 'GET') {var = searchresults nlapiSearchRecord ( 'taxgroup', null, [], []); if (nol searchresults = & 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; tingkat 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]) {// mendapatkan file individu dari hasil pencarian: var = nlapiLoadRecord urutan (searchresults dari taxgroup [utama]. getId ()); order.getFieldValue zipString var = ([ 'zip']); order.getFieldValue rateString var = ([ "standar"]); order.getFieldValue countyString var = ([ 'umum']); 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');}} 

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

Kemudian Kami melakukan perjalanan melalui hasil pencarian bertentangan, dan mendapatkan data yang diinginkan untuk data. 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.


ukuran Magento

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

Format Magento memungkinkan kelompok kode 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 untuk toko tunggal sejumlah pajak.

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

Hal lain tentang kode berikut:

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

 suitelet fungsi (permintaan, respon) { jika (permintaan GetMethod () == 'GET'.) {response.write ( '& amp; amp; lt; gaya & amp; amp; gt; # headTable tabel {width:. 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 var url = Dibangun CURRENTURL request.getURL saat ini () + "?"; request.getAllParameters parameter var = (); untuk (kunci var dalam pengaturan) {if (key = "startRecord!) kunci CURRENTURL + = + = '+ parameter [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; menampilkan data '+ 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; / Table & 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; & amp kisaran; 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]) {// mendapatkan file individual dari hasil pencarian, peringkat var = nlapiLoadRecord (searchresults dari taxgroup [utama] .getId ()); rangka .getFieldValue zipString var = ([ 'zip']); order.getFieldValue rateString var = ([ 'norma']); order.getFieldValue countyString var = ([ 'umum']); 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 untuk (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 + = dashboard; 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 lebih lanjut

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>