Shopware heeft een krachtige verzendkostenmodule waarmee u gericht kunt ingrijpen in de berekening. In ons geval willen we het volgende scenario implementeren: De verzendkosten per artikel worden in eerste instantie bepaald aan de hand van het gewicht van het artikel (de gewichtslimieten zijn gespecificeerd). Alleen voor speciale uitzonderingen zou het mogelijk moeten zijn om voor elk artikel vaste verzendkosten in te stellen.
De verzendkosten tabel ziet er zo uit:
| Gewicht van | Gewicht omhoog | Prijs |
| 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 € |
| vanaf 40 kg | 49,90 € basisprijs + 0,59 € per kg |
In eerste instantie zou u het idee kunnen krijgen om de waarde "Gewicht" te selecteren in het veld "Verzendkostenberekening volgens:" en de bijbehorende limieten hieronder in te voeren:

Hier doen zich verschillende problemen voor: de regel "vanaf 40 kg: €49,90 basisprijs + €0,59 per kg" is niet eenvoudig te implementeren, waarden zoals 2,999 zijn onnauwkeurig en de optie om individuele verzendkosten per artikel toe te wijzen ontbreekt. Om dit op te lossen, maken we eerst een nieuw vrij tekstveld aan (bijv. "attr5") onder Instellingen > Artikelen > Vrije tekstvelden voor artikelen.:

We vullen dit veld nu in met de waarde in euro's voor alle artikelen waarvoor aparte verzendkosten gelden. Gebruik voor decimale getallen een punt in plaats van een komma.:

Ten slotte creëren we een nieuwe verzendmethode met de belangrijke instellingen "Berekening verzendkosten volgens: Eigen berekening" en "Factor (%): 100":

Ten slotte slaan we onder "Geavanceerde instellingen" onze nieuwe rekenfunctie op onder "Eigen berekening":
a359cdf87765551f0706
Deze functie neemt het gewicht van elk artikel en berekent de prijs. Drie verschillende artikelen van 2,5 kg kosten € 14,97, drie keer hetzelfde artikel van 2,5 kg kost € 9,50. Als u in plaats daarvan de berekening wilt uitvoeren op basis van het totaalgewicht (met een resultaat van in beide gevallen € 9,50), wijzigt u de berekeningsfunctie slechts minimaal:
a359cdf87765551f0706
Als er ook dealers moeten worden opgenomen, moet u voorzichtig zijn met de prijzen die in de SQL-query zijn opgegeven, of het nu om netto- of brutowaarden gaat (afhankelijk van de waarden die zijn ingesteld in Basisinstellingen> Winkelinstellingen> Klantgroepen> Brutoprijzen invoeren).
Als u ook rekening wilt houden met de artikelfunctie ‘Artikel markeren als gratis verzending’ (per artikel), adresseert u de kolom b.verzendvrij en stelt u in ‘Instellingen > Verzendkosten > Geavanceerde instellingen > Gratis verzending artikelen’ de volgende optie in.:

Met behulp van SQL kunt u complexe queries inbouwen. Het is raadzaam om de laatste query voor te bereiden met behulp van SQL-variabelen, zodat het geheel gemakkelijk te onderhouden blijft. Het volgende is een voorbeeldvoorbeeld van een meer complexe vraag die onderscheid maakt tussen winkelklanten en winkeliers, rekening houdt met gratis verzending van artikelen, alleen verzendkosten in rekening brengt voor een maximale winkelwagen en verschillende prijsschalen gebruikt (afhankelijk van het merk):
a359cdf87765551f0706