Shopware memiliki modul biaya pengiriman yang kuat yang secara khusus dapat Anda campur tangan dalam penghitungan. Dalam kasus kami, kami ingin menerapkan skenario berikut: Biaya pengiriman per artikel pada awalnya ditentukan menurut berat artikel (batas berat ditentukan). Hanya untuk pengecualian khusus yang memungkinkan untuk menetapkan biaya pengiriman tetap untuk setiap item.
Tabel biaya pengiriman terlihat seperti ini:
| Berat | Berat naik | Harga |
| 0 kg | <3 kg | 4,99 € |
| 3 kg | <5 kg | 6,90 € |
| 5 kg | <10 kg | 9,50 € |
| 10 kg | <15 kg | 10,90 € |
| 15 kg | <20 kg | 12,90 € |
| 20 kg | <31 kg | 17,90 € |
| 31 kg | <40 kg | 49,90 € |
| dari 40 kg | 49,90 € harga dasar + 0,59 € per kg |
Pada awalnya Anda mungkin mendapatkan ide untuk memilih nilai "Bobot" di kolom "Perhitungan biaya pengiriman berdasarkan:" dan memasukkan batas yang sesuai di bawah:

Beberapa masalah muncul di sini: Aturan "dari 40 kg: harga dasar €49,90 + €0,59 per kg" tidak mudah diimplementasikan, nilai seperti 2.999 tidak akurat, dan opsi untuk menetapkan biaya pengiriman individual per item tidak tersedia. Untuk mengatasi hal ini, pertama-tama kita membuat kolom teks bebas baru (misalnya, "attr5") di bawah Pengaturan > Item > Kolom Teks Bebas Item.:

Sekarang kita akan mengisi kolom ini dengan nilai dalam euro untuk semua barang yang seharusnya memiliki biaya pengiriman terpisah. Untuk angka desimal, gunakan titik, bukan koma.:

Terakhir, kami membuat metode pengiriman baru dengan pengaturan penting "Perhitungan biaya pengiriman berdasarkan: perhitungan sendiri" dan "Faktor (%): 100":

Terakhir, di bawah "Pengaturan Lanjutan", kami menyimpan fungsi penghitungan baru kami di bawah "Penghitungan sendiri":
a359cdf87765551f0706
Fungsi ini mengambil bobot setiap item dan menghitung harganya. Tiga item berbeda dengan berat 2,5 kg berharga €14,97, tiga kali item yang sama dengan berat 2,5 kg berharga €9,50. Jika Anda ingin melakukan penghitungan berdasarkan berat total (dengan hasil €9,50 dalam kedua kasus), Anda hanya mengubah fungsi penghitungan secara minimal:
a359cdf87765551f0706
Jika dealer juga akan disertakan, Anda harus berhati-hati dengan harga yang ditentukan dalam kueri SQL apakah itu nilai bersih atau kotor (tergantung pada nilai yang ditetapkan di Pengaturan Dasar> Pengaturan Toko> Grup Pelanggan> Masukkan Harga Kotor).
Jika Anda juga ingin mempertimbangkan fitur item “Tandai item sebagai pengiriman gratis” (per item), alamatkan kolom b.shippingfree dan atur opsi berikut di “Pengaturan > Biaya pengiriman > Pengaturan lanjutan > Item pengiriman gratis”.:

Dengan bantuan SQL, Anda dapat membangun kueri kompleks apa pun. Dianjurkan untuk menyiapkan kueri akhir dengan bantuan variabel SQL sehingga semuanya tetap mudah dipelihara. Berikut ini adalah contoh contoh dari kueri yang lebih kompleks yang membedakan antara pelanggan toko dan pengecer, memperhitungkan item pengiriman gratis, membebankan biaya pengiriman hanya untuk keranjang belanja maksimum dan mengetuk skala harga yang berbeda (tergantung pada merek):
a359cdf87765551f0706