Ti posso dare due consigli:
- Eliminare le spese gratuite dal pannello di controllo e creare un corriere gratuito che ad esempio funzioni quando il prodotto ha peso 0 (o un valore definito insomma). Quindi sui prodotti in cui non vuoi le spese gratuite darai un valore sempre diverso da quello.
- Agire con php dalla pagine dove va a calcolare se è possibile applicare le spedizioni gratuite (che ora non mi ricordo proprio quale sia) e far controllare anche l'id o cose così del prodotto acquistato.