Prozentualer Rabatt bei Preisstaffeln

Aktuell zeigen wir mit

<client-only>
  <div v-if="$store && $store.getters.currentItemVariation.prices.default && $store.getters.currentItemVariation.prices.rrp && $store.getters.currentItemVariation.prices.default.price.value != $store.getters.currentItemVariation.prices.rrp.price.value" v-cloak>
    <span class="badge badge-offer badge-danger">
        ${ ((1 - $store.getters.currentItemVariation.prices.default.price.value / $store.getters.currentItemVariation.prices.rrp.price.value ) * -100).toFixed(0).replace(".", $ceres.decimalSeparator) + "%" }
    </span>
  </div>
</client-only>

einen Spar-Badge am Produkt an. Nun haben wir kürzlich die Staffelpreise bei einem Produkt eingebaut, da passt der Code dann entsprechend nicht mehr, bzw nur wenn der Kunde keine Staffel-Menge erreicht.

Hat das evtl. schonmal jemand umgesetzt und kann mir weiterhelfen? Ich find nämlich gerade nicht raus, wie ich es hinbekomme, a.) auf die Mengenänderung zu reagieren, und b.) den aktuellen Preis zu bekommen.

An sich fände ich das jetzt kein Problem. Der Badge zeigt ja die Mindestersparnis gegenüber Vergleichspreis. Also sind wir hier beim absoluten Zuckerguss.

Einen fertigen Code habe ich entsprechend nicht. Aber schau dir mal

$store.getters.currentItemVariation.prices.graduatedPrices

an.

Die aktuelle Menge könnte man sich wohl notfalls aus dem Input-Feld holen. Es müsste aber auch gehen mit

$store.state.items[$store.getters.currentItemVariation.item.id].variationOrderQuantity

Und bei einer Mengenänderung wird setVariationOrderQuantity gefeuert. Theoretisch kann man das abfangen. Ich weiß nur nicht, ob es in dem Kontext geht. (In einer Vue-Komponente geht es. Inline-Code ist da manchmal beschränkt.)

hm, dass hab ich, glaube ich, schonmal irgendwo verwendet.
Danke für den Denkanstoß, da schau ich gleich mal.