Naja das „Bestelle lagernde Artikel und erhalte x-Rabatt“ geht ohne Probleme über eine Abschlag-Versandregel.
Dort kann man auf d.instock prüfen und wenn der Größer 0 ist einen Rabatt berechnen.
Könnte so aussehen:
SUM(IF(d.instock > 0,b.quantity*b.price,0))
Und dann halt als Faktor einfach den Prozentsatz (bspw. 5%)
Das wäre die Lösung, die mit Boardmitteln möglich ist.
Für alles andere bräuchte man ein Plugin.