WooCommerce Preis aus benutzerdefiniertem Feld setzen: kopieren, rechnen, MwSt.
Um einen WooCommerce Preis aus einem benutzerdefinierten Feld zu setzen, brauchen Sie eine Berechnung, die ein Feld jedes Produkts liest und ein anderes schreibt: den regulären Preis, kopiert aus einem Lieferantenpreis-Feld, den regulären Preis als Einkaufspreis mal zwei oder einen Feed-Preis, der der reguläre Preis plus 21 % MwSt. ist. WooCommerce hat keine solche Operation, und ein CSV-Rundlauf über eine Tabellenkalkulation funktioniert zwar, ist aber leicht falsch gemacht. BEAR erledigt das im Tab Massenbearbeitung (Bulk Edit), Produkt für Produkt, mit zwei Werkzeugen: einem Formelblock für Zahlenfelder und der Variablen {meta:key} für Textfelder. Unten steht, welches Sie verwenden, die genauen Einstellungen für die häufigen Fälle und die Fallstricke: leere Quellfelder, Variationen und Rundung.
Zwei Werkzeuge: eine Formel für Zahlen, eine Variable für Text
Der reguläre Preis, der Angebotspreis und jedes Meta-Feld vom Typ Zahl (number) sind Zahlenfelder. Im Tab Massenbearbeitung akzeptieren sie nur Ziffern, daher läuft eine Berechnung über den Block unter den numerischen Zeilen mit dem Namen Ausgewählte numerische Felder (Selected num fields): ein Operator (+, -, *, /) und eine Liste numerischer Felder. Für jedes Produkt führt BEAR vier Schritte in dieser Reihenfolge aus:
- Es wendet die eigene Operation der Zeile auf das angehakte Feld an: neuen Wert setzen (set new), um % erhöhen (increase by %) und so weiter.
- Es wendet den Operator mit dem Wert des in Ausgewählte numerische Felder gewählten Felds an, gelesen vom selben Produkt.
- Es wendet die Rundung an, die im Dropdown unter den numerischen Zeilen gewählt ist.
- Es speichert das Ergebnis.
So ergibt neuen Wert setzen 2 mit * und einem Einkaufspreisfeld 2 × Einkaufspreis, und neuen Wert setzen 0 mit + und einem Feld kopiert dieses Feld. Die Liste in Ausgewählte numerische Felder zeigt den regulären Preis und den Angebotspreis, die anderen eingebauten Zahlen und die numerischen Meta-Felder, deren Spalten eingeschaltet sind. Ein benutzerdefiniertes Feld muss daher als Meta-Feld vom Typ Zahl eingebunden sein, bevor es Quelle sein kann, wie in der Dokumentation zu Meta-Feldern beschrieben. Der Typ sagt BEAR nur, wie der Wert angezeigt und bearbeitet wird; ein Wechsel von Zeichenkette (string) zu Zahl ändert die gespeicherten Daten nicht.
Textfelder funktionieren anders. In einer Textzeile des Tabs Massenbearbeitung oder in einer Textzelle können Sie Variablen eintippen, die BEAR pro Produkt ersetzt: {meta:_supplier_code} fügt den Wert eines beliebigen Meta-Schlüssels ein, und das Dropdown variabel (variable) neben der Zeile fügt {REGULAR_PRICE}, {SALE_PRICE}, {SKU} und weitere hinzu. Das kopiert Werte, rechnet aber nicht und lässt sich in Preisfeldern nicht verwenden. Die FAQ zum Kopieren von Daten aus Meta-Feldern zeigt die Syntax.
| Ziel | Zeile anhaken | Operation und Wert | Ausgewählte numerische Felder |
|---|---|---|---|
| Regulärer Preis = benutzerdefiniertes Feld | regulärer Preis | neuen Wert setzen 0 | + das benutzerdefinierte Feld |
| Regulärer Preis = Einkaufspreis × 2 | regulärer Preis | neuen Wert setzen 2 | * das Einkaufspreisfeld |
| Regulärer Preis = Lieferantenpreis + 35 % | regulärer Preis | neuen Wert setzen 1.35 | * das Lieferantenfeld |
| Feed-Preis = regulärer Preis + 21 % | das Feed-Preis-Feld | neuen Wert setzen 1.21 | * regulärer Preis |
| Angebotspreis = benutzerdefiniertes Angebotsfeld | Angebotspreis | neuen Wert setzen 0 | + das benutzerdefinierte Feld |
Den WooCommerce Preis aus einem benutzerdefinierten Feld setzen
- Binden Sie im Tab Meta-Felder (Meta Fields) den Quellschlüssel ein (finden Sie ihn mit Meta-Schlüssel von einem beliebigen Produkt anhand seiner ID abrufen (Get meta keys from any product by its ID)), geben Sie ihm einen Titel wie Einkaufspreis, wählen Sie den Typ Zahl, klicken Sie auf Meta-Felder speichern (Save meta fields) und schalten Sie seine Spalte im Tab Einstellungen ein.
- Geben Sie im Tab Filter (Filters)
0.01in Einkaufspreis von ein. Das schließt jedes Produkt ohne Wert aus, und das ist wichtig: Eine leere Quelle zählt als 0, und ein regulärer Preis von 0 macht das Produkt kostenlos. - Haken Sie im Tab Massenbearbeitung nur die Zeile regulärer Preis an, wählen Sie neuen Wert setzen und geben Sie
0zum Kopieren ein, oder den Multiplikator aus der Tabelle oben. - Wählen Sie in Ausgewählte numerische Felder den Operator und Einkaufspreis, prüfen Sie die Zeile Massenbearbeitung wird angewendet auf (Bulk editing will be applied to) und klicken Sie auf Massenbearbeitung durchführen (Do Bulk Edit).
Die Formel wird auf jede angehakte numerische Zeile angewendet, haken Sie im selben Lauf also nichts anderes an. Die Quellwerte müssen einen Punkt als Dezimaltrennzeichen verwenden: Ein Feld mit 12,50 wird als 12 gelesen. Dieselben Schritte füllen den Angebotspreis, mit einem Unterschied: BEAR schreibt keinen Angebotspreis, der nicht niedriger als der reguläre Preis ist, und ein Ergebnis von 0 oder weniger entfernt den Angebotspreis.
Variationen
Variable Produkte haben keinen eigenen Preis; die Preise liegen an den Variationen. Schalten Sie vor dem Lauf Variationen (variations) im Werkzeugbereich ein, dann schreibt BEAR in die Variationen und ignoriert die übergeordneten Produkte. Die Formel liest das benutzerdefinierte Feld der Variation selbst, die Quelle muss also an den Variationen gefüllt sein; ein Feld, das nur am übergeordneten Produkt existiert, gibt den Variationen nichts zum Rechnen.
Die Prüfung auf leere Quellen aus Schritt 2 funktioniert hier nicht: Meta-Feld-Filter schauen auf das übergeordnete Produkt, nicht in seine Variationen. Sehen Sie bei eingeschaltetem Variationen stattdessen vor dem Lauf die Quellspalte durch. Eine Variation mit leerer Quelle bekommt einen regulären Preis von 0.
Bei eingeschaltetem Variationen bietet der Tab Massenbearbeitung auch Attributkombination auswählen (select combination of attributes). Wählen Sie die Attribute, auf denen die Variationen aufgebaut sind, zum Beispiel Größe, klicken Sie auf Attributkombination hinzufügen, auf die angewendet werden soll (Add attributes combination to apply on) und setzen Sie in der erscheinenden Zeile Größe auf XL: Der Lauf ändert dann nur die XL-Variationen, was zu einem Lieferantenpreis passt, der für eine Größe gilt. Die Dokumentation zu Variationen behandelt diesen Modus.
Ein benutzerdefiniertes Preisfeld aus dem regulären Preis füllen
Feeds und Marktplätze brauchen oft ein eigenes Preisfeld, zum Beispiel den Preis mit 21 % MwSt., wenn der Shop Preise ohne Steuer speichert. Binden Sie dieses Feld als Meta-Feld vom Typ Zahl ein (ein Textfeld kann keine Formel aufnehmen), dann:
- Haken Sie nur die Zeile des Feed-Preises an, wählen Sie neuen Wert setzen und geben Sie
1.21ein. - Wählen Sie in Ausgewählte numerische Felder
*und regulärer Preis und führen Sie aus. Ein Produkt mit 100 bekommt einen Feed-Preis von 121.
Muss der Feed den Preis tragen, den Kunden tatsächlich zahlen, Angebotspreise eingeschlossen, verwenden Sie stattdessen den aktuellen Preis von WooCommerce als Quelle. WooCommerce hält ihn im Schlüssel _price: der Angebotspreis, solange ein Angebot läuft, sonst der reguläre Preis. Meta-Schlüssel von einem beliebigen Produkt anhand seiner ID abrufen listet die eigenen Schlüssel von WooCommerce nicht auf, fügen Sie _price daher mit Benutzerdefinierten Schlüssel von Hand hinzufügen (Add Custom key by hands) als Feld vom Typ Zahl hinzu, schalten Sie seine Spalte ein und wählen Sie es in Ausgewählte numerische Felder statt regulärer Preis. Verwenden Sie diese Spalte nur als Quelle und bearbeiten Sie sie nie: WooCommerce berechnet _price aus dem regulären Preis und dem Angebotspreis, und ein dort eingetippter Wert wird beim nächsten Speichern des Produkts überschrieben.
Führen Sie variable Produkte aus demselben Grund wie oben mit eingeschaltetem Variationen aus. Muss das Feed-Feld ein Textfeld bleiben, kopiert neu (new) mit {REGULAR_PRICE} den Preis unverändert hinein; die MwSt. muss dann vom Feed-Tool hinzugefügt werden.
Berechnungen, die zwei Schritte brauchen
Ein Lauf kombiniert eine Operation mit einem Feld. Alles Längere geschieht in mehreren Läufen, und die Reihenfolge ist wichtig, weil jeder Lauf vom Ergebnis des vorherigen ausgeht:
- Einkaufspreis × 2 + 5. Lauf 1: regulärer Preis, neuen Wert setzen
2,*Einkaufspreis. Lauf 2: regulärer Preis, um Wert erhöhen (increase by value)5, wobei Ausgewählte numerische Felder wieder auf die leere Zeile gesetzt ist. - (Einkaufspreis + 3) × 1,5. Lauf 1: neuen Wert setzen
3,+Einkaufspreis. Lauf 2: um % erhöhen50, Formel aus.
Vergessen Sie nicht, Ausgewählte numerische Felder für den zweiten Lauf zu leeren; sonst wird die Formel noch einmal auf den neuen Preis angewendet. Manche Beziehungen brauchen gar keine Formel: Die Zeile des Angebotspreises hat regulärer Preis minus %, die Zeile des regulären Preises hat Angebotspreis plus %, und einen Preis zu verdoppeln ist um % erhöhen 100, wie in der FAQ zum Multiplizieren von Preisen erklärt. Für die Gegenrichtung, einen Einkaufspreis, der als Anteil des regulären Preises berechnet wird, siehe Warenkosten in Masse bearbeiten.
Das Ergebnis runden
Multiplikatoren erzeugen Nachkommastellen wie 47,6345. Das Rundungs-Dropdown unter den numerischen Zeilen wird auf das Formelergebnis angewendet, bevor es gespeichert wird: 00 rundet auf ganze Zahlen, 5 und 10 runden auf die nächsten 0,05 oder 0,10 auf, und 9 bis 99 setzen die Cent auf diese Endung (47,99). Die Optionen sind unter Preisrundung beschrieben; sie wirken nur, wenn der Shop Preise mit Nachkommastellen anzeigt. Regulärer Preis und Angebotspreis werden ohnehin mit der Dezimalstellenzahl des Shops gespeichert, Zahlen-Meta-Felder behalten jedoch den ganzen Bruch, wenn Sie sie nicht runden.
Erst testen, dann bei Bedarf zurücksetzen
- Filtern Sie zwei oder drei Produkte nach SKU oder Titel, führen Sie die Operation aus und vergleichen Sie das Ergebnis mit dem Quellfeld im Produkteditor und auf der Produktseite.
- Prüfen Sie, dass nur die Zielzeile angehakt ist und Ausgewählte numerische Felder den richtigen Operator und das richtige Feld zeigt.
- Schließen Sie vor jedem Preislauf Produkte ohne Quellwert aus.
- Variable Produkte: Variationen an, Quelle an den Variationen gefüllt.
- Ein falscher Lauf lässt sich im Tab Verlauf (History) rückgängig machen; setzen Sie ihn zurück, statt eine gegenläufige Formel auszuführen.
Lässt sich eine Berechnung, die Sie brauchen, nicht aus diesen Schritten bauen, beschreiben Sie sie mit einem Beispielprodukt im BEAR-Supportforum.