Shopware are un modul puternic de costuri de transport pe care îl puteți interveni în mod specific în calcul. În cazul nostru, dorim să implementăm următorul scenariu: Costurile de transport pe articol sunt inițial determinate în funcție de greutatea articolului (sunt specificate limitele de greutate). Doar pentru excepții speciale ar trebui să fie posibilă stabilirea costurilor fixe de expediere pentru fiecare articol.
Tabelul costurilor de expediere arată astfel:
| Greutatea de | A lua în greutate | Preț |
| 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 € |
| de la 40 kg | 49,90 € preț de bază + 0,59 € per kg |
La început ați putea avea ideea de a selecta valoarea „Greutate” în câmpul „Calculul costurilor de expediere în funcție de:” și de a introduce limitele corespunzătoare mai jos:

Apar mai multe probleme aici: Regula „de la 40 kg: preț de bază 49,90 € + 0,59 € pe kg” nu este ușor de implementat, valori precum 2,999 sunt inexacte, iar opțiunea de a atribui costuri individuale de livrare per articol lipsește. Pentru a remedia acest lucru, creăm mai întâi un nou câmp de text liber (de exemplu, „attr5”) în Setări > Articole > Câmpuri de text liber pentru articole.:

Vom completa acum acest câmp cu valoarea în euro pentru toate articolele care ar trebui să aibă costuri individuale de livrare. Pentru numerele zecimale, folosiți punct în loc de virgulă.:

În cele din urmă, creăm o nouă metodă de expediere cu setările importante „Calculul costurilor de expediere în funcție de: Calcul propriu” și „Factor (%): 100”:

În cele din urmă, în „Setări avansate”, stocăm noua noastră funcție de calcul în „Calcul propriu”:
a359cdf87765551f0706
Această funcție ia greutatea fiecărui articol și calculează prețul. Prin urmare, trei articole diferite cu o greutate de 2,5 kg fiecare ar costa 14,97 €, în timp ce trei articole identice cu o greutate de 2,5 kg ar costa 9,50 € fiecare. Dacă doriți să calculați prețul pe baza greutății totale (rezultând 9,50 € în ambele cazuri), trebuie doar să faceți o mică ajustare a funcției de calcul.:
a359cdf87765551f0706
Dacă trebuie să fie incluși și dealerii, trebuie să aveți grijă la prețurile specificate în interogarea SQL dacă acestea sunt valori nete sau brute (în funcție de valorile setate în Setări de bază> Setări magazin> Grupuri de clienți> Introduceți prețuri brute).
Dacă doriți să luați în considerare caracteristica articolului „Marcați articolul ca transport gratuit” (pentru fiecare articol), adresați -vă coloanei b.shippingfree și setați următoarea opțiune în Setări> Costuri de expediere > Setări avansate> Articole de transport gratuit ”:

Cu ajutorul SQL puteți construi orice interogări complexe. Este recomandabil să pregătiți interogarea finală cu ajutorul variabilelor SQL, astfel încât totul să rămână ușor de întreținut. Următorul este un exemplu exemplar de interogare mai complexă care diferențiază între clienții magazinului și comercianții cu amănuntul, ia în considerare articolele de transport gratuit, taxează doar costurile de transport pentru un coș de cumpărături maxim și atinge diferite scale de preț (în funcție de marcă):
a359cdf87765551f0706