Falls du keine tatsächlichen Artikelgewichte benötigst, ließe sich das über fiktive Artikelgewichte und tabellarischen Versand steuern.
Beispiel: Karton Kanister wird mit 1 kg angelegt, Karton Flaschen mit 100 kg. Tabellarischen Versand nach Gewicht einrichten: 99:3.90,999:4.90. Um das im Frontend sauber darstellen zu können, wird dann noch ein zusätzliches Feld benötigt, oder man nimmt eines der vorhandenen Felder, das nicht benötigt wird (falls anwendbar), etwa Hersteller Art.-Nr., und nennt das bspw. Versandkategorie. Zusätzlich muss im Backend noch das Gewicht, bis zu dem Pakete versandt werden können, entsprechend angepasst werden, zum Beispiel auf 5000 Kilo.
Pferdefuß (in diesem Beispiel): Bestellt ein Kunde mehr als 99 Kartons Kanister, greifen die 4,90 Versandkosten. Ist natürlich immer abhängig von den Werten, die man wählt.
Ob das für euch ein gangbarer Weg ist, weiß ich nicht. Funktionieren tut es jedenfalls.