Du musst die Versandarten und Versandklassen richtig einstellen. Z.B.:
Die Downloadartikel in der Versandklasse "gratis"
Alle anderen Artikel in der Versandklasse "standard"
Dann eine Versandart, die kostenlos ist, aber ausschließlich die Versandklasse "gratis" bedient, keine andere.
Und die Standardversandart, welche die Versandklasse "standard" alleine sowie "standard" und "gratis" zusammen bedient. Aber nicht "gratis" alleine.
Dann gibts die Versandkosten nur bei einem gemischten Warenkorb. Wenn ausschließlich Artikel der Versandklasse "gratis" im Warenkorb sind, ist der Versand kostenlos.
Wenn du viele Versandklassen hast, dann wird das teilweise ziemlich komplex, weil du für "gratis" zwar in Kombination mit allen anderen Versandklassen mit Versandkosten anbieten musst, aber nicht allein. Das heißt du kannst in den Versandarten nicht mehr "Alle Kombinationen" für die Versandklassen auswählen, sondern musst dir die selbst zusammenstellen. Oder, in den aktuelleren Shop-Versionen, das den Versandartassistenten übernehmen lassen. Letzterer kann das aber auch nur, wenns nicht zu viele Versandklassen sind, weil die Kombinationsmöglichkeiten irgendwann zu viele werden.