WooHS Dokumentation
Alles, was du für Einrichtung, Betrieb und Anpassung von WooHS brauchst – von der ersten Verbindung mit HS Soft bis zur Entwickler-Referenz für individuelle Erweiterungen.
1.Erste Schritte
In drei Schritten von der Installation bis zum ersten automatischen Produktimport.
Voraussetzungen
| Anforderung | Details |
|---|---|
| WordPress | Version 6.4 oder neuer |
| PHP | Version 8.2 oder neuer |
| WooCommerce | Aktiv installiert und eingerichtet |
| HS Soft | Aktiver Vertrag mit gültigem API-Zugangsschlüssel |
| Hosting | max_execution_time von mindestens 60 Sekunden (für Importläufe) |
Ist max_execution_time zu niedrig konfiguriert, zeigt WooHS im Einstellungsbereich automatisch einen Hinweis an. Wende dich in diesem Fall an deinen Hosting-Support.
Ablauf
- 1Plugin installieren & aktivierenWooHS wie gewohnt in WordPress hochladen und aktivieren.
- 2Mit HS Soft verbindenUnter WooCommerce → Einstellungen → WooHS → Allgemein den API-Schlüssel hinterlegen.
- 3Import konfigurieren & startenMarketing-Gruppen auswählen, Filter setzen und den ersten Import manuell oder automatisch starten.
2.Einrichtung im Detail
Alle Optionen unter WooCommerce → Einstellungen → WooHS → Allgemein.
| Einstellung | Beschreibung | Standard |
|---|---|---|
| API-Schlüssel | Zugangsschlüssel zu deinem HS Soft-WaWi. Wird nach dem Speichern nicht mehr im Klartext angezeigt (Passwortfeld). | – |
| Gewichts-Key | Welche HS-Soft-Gewichtsangabe importiert wird (K1 = Standard, K2 = Rezeptur). | K1 |
| Preis-Key | Welche der bis zu 10 HS-Soft-Preiskategorien als WooCommerce-Verkaufspreis importiert wird. | K1 |
| Automatischer Import | Uhrzeit (z. B. 03:00), zu der täglich automatisch importiert wird. | deaktiviert |
| Delivery Visibility | Steuert, ob Produkte ausserhalb ihres Lieferzeitraums automatisch als «nicht vorrätig» oder als Entwurf behandelt werden. Details siehe Abschnitt 5. | deaktiviert |
| Force Preserving Product Status | Verhindert, dass der Import Produktstatus/Sichtbarkeit automatisch verändert – nützlich, wenn du Status manuell steuern willst. | aus |
| Benachrichtigungs-E-Mails | Kommagetrennte Liste von E-Mail-Adressen für Import- und Fehlerbenachrichtigungen. Ohne Angabe wird die WordPress-Admin-E-Mail verwendet. | Admin-E-Mail |
Das Speichern der Bereiche «Allgemein» oder «Import» leert die aktuelle Import-Warteschlange. Ein laufender oder vorbereiteter Import muss danach neu gestartet werden.
3.Produkte importieren
Der Import läuft unter WooCommerce → Einstellungen → WooHS → Import in vier Phasen ab: Laden → Konfigurieren → Vorbereiten → Importieren.
Ablauf im Import-Bildschirm
- 1LadenProdukte werden batchweise von HS Soft abgerufen (Fortschrittsanzeige).
- 2KonfigurierenMarketing-Gruppen (Kategorien) auswählen, Bildpflicht ein-/ausschalten, optional «Force Import» aktivieren.
- 3VorbereitenJedes geladene Produkt wird gegen die Filter geprüft und als «vorbereitet» oder «übersprungen» markiert.
- 4ImportierenManuell per Klick oder automatisch zur konfigurierten Uhrzeit («Zeitplan» statt «Start»).
Filteroptionen
| Filter | Wirkung |
|---|---|
| Kategorien | Nur Produkte, deren HS-Soft-Marketing-Gruppe ausgewählt ist, werden importiert. |
| Nur Produkte mit Bild | Produkte ohne hinterlegtes Bild in HS Soft werden übersprungen. |
| Force Import | Importiert Produkte auch dann neu, wenn sich seit dem letzten Import nichts geändert hat. |
Bildanforderungen
Bilder werden per HTTP(S)-URL von HS Soft geladen und als PNG in der WordPress-Mediathek gespeichert (Dateiname product-{sku}.png). Nur http/https-Quellen werden akzeptiert. Schlägt der Bild-Download fehl, entscheidet die Einstellung «Require image successful import» (Erweitert-Tab, Standard: aktiviert) darüber, ob der gesamte Produktimport abgebrochen oder das Produkt ohne neues Bild importiert wird.
Status-Verhalten
- Ein Produkt wird übersprungen, wenn sich Version und Verfügbarkeitszeiträume seit dem letzten Import nicht geändert haben – ausser bei aktivem «Force Import».
- Manuell gepflegte WooCommerce-Kategorien bleiben erhalten; nur vom Plugin importierte Kategorien werden bei jedem Lauf ersetzt.
- Nach einem vollständigen Importlauf werden Produkte, die diesmal nicht mehr geladen wurden, automatisch auf Entwurf gesetzt – ausser «Check for old products» (Erweitert) ist deaktiviert oder «Force Preserving Product Status» ist aktiv.
- Fehlgeschlagene Produkte werden automatisch erneut versucht; bleiben sie fehlerhaft, erhältst du eine Benachrichtigungs-E-Mail (siehe Abschnitt 9).
Lade-, Vorbereitungs- und Import-Batchgrösse lassen sich im Tab «Erweitert» konfigurieren (Standard: 10 / 500 / 10). Bei grossen Sortimenten oder Performance-Problemen lohnt sich eine Anpassung.
4.Bestellungen übermitteln
Bestellungen werden automatisch an HS Soft übermittelt, sobald sie einen definierten Status erreichen.
Wie es funktioniert
- Unter Export → Bestellstatus für Export legst du fest, bei welchem WooCommerce-Bestellstatus exportiert wird (Standard:
In Bearbeitung). - Jede Bestellung wird nur einmal übermittelt – ein erneuter Statuswechsel löst keinen doppelten Export aus.
- Schlägt die Übermittlung fehl, wird nach 5 Minuten automatisch ein zweiter Versuch unternommen. Scheitert auch dieser, erhältst du eine Benachrichtigung per E-Mail.
- Über die Bestellaktion «Force HS Soft sync» auf der Bestellseite kannst du jede Bestellung jederzeit manuell (erneut) übermitteln.
- Die Bestellliste zeigt eine zusätzliche Spalte «API sync» mit dem Status «Not synced», «ERROR» oder der HS-Soft-Bestellnummer.
Übermittelte Daten
Rechnungs- und Lieferadresse, Kundennotiz, Zahlungsart, Versand- und Rabattbeträge sowie eine Produktliste (SKU, Menge, Preis). Sonderzeichen/Emojis werden vor dem Versand automatisch entfernt, da die HS-Soft-API diese nicht verarbeiten kann.
Liefertermin & Versand
| Option | Beschreibung |
|---|---|
| Bestelldatum-Quelle | Erstellungsdatum oder Lieferdatum (aus YITH WooCommerce Delivery Date bzw. Iconic Delivery Slots, falls installiert). |
| Liefertermin-Offset | Pro Versandart konfigurierbarer Tagesversatz («WOOHS: Delivery Date offset»). |
| Custom Shipment Setup | Ersetzt die generische Versandzeile durch eine spezifische, pro Carrier/Versandregel hinterlegte HS-Soft-Produktnummer. |
| Debitor-Kennzeichnung | Pro Zahlungsart über die Option «WOOHS: Debtor» steuerbar, ob eine Bestellung als Debitor an HS Soft übermittelt wird. |
Bestellkommentar & Shortcodes
Der an HS Soft übermittelte Kommentartext lässt sich unter Export frei gestalten und unterstützt folgende Shortcodes:
| Shortcode | Ausgabe |
|---|---|
[woohs_order_billing_address] | Formatierte Rechnungsadresse inkl. Telefonnummer |
[woohs_order_shipping_address] | Formatierte Lieferadresse inkl. Telefonnummer |
[woohs_order_customer_note] | Bestellnotiz der Kundschaft |
[woohs_order_payment_method] | Titel der gewählten Zahlungsart |
[woohs_order_discount] | Formatierter Rabattbetrag |
[woohs_order_delivery_date] | Lieferdatum inkl. Zeitfenster/Carrier (YITH/Iconic) |
5.Verfügbarkeit steuern
WooHS bietet zwei zusammenspielende Mechanismen, um die Lieferbarkeit deiner Produkte im Shop korrekt abzubilden.
A) Produktbezogene Verfügbarkeit
Für jedes importierte Produkt werden die Wochentags-Verfügbarkeit sowie individuelle Verfügbarkeitszeiträume aus HS Soft übernommen. Mit dem Shortcode [woohs_availability] (bzw. [woohs_product_availability] für die produktgebundene Variante) zeigst du eine Wochentagsübersicht im Shop an.
Ist die Option «Availability» aktiviert (global oder pro Produkt), wird beim Checkout geprüft, ob das gewählte Lieferdatum (z. B. via YITH Delivery Date) mit der Verfügbarkeit des Produkts übereinstimmt. Passt es nicht, wird der Checkout mit einer klaren Fehlermeldung blockiert.
Zusätzlich lässt sich pro Produkt (oder Variation) ein individueller, vom WaWi unabhängiger Verfügbarkeitszeitraum hinterlegen – optional jährlich wiederkehrend.
B) Delivery Visibility (automatische Sichtbarkeit)
| Modus | Wirkung |
|---|---|
Disabled | Keine automatische Sichtbarkeitssteuerung. |
OUTOFSTOCK | Produkte ausserhalb ihres Lieferzeitraums werden als «nicht vorrätig» markiert, bleiben aber sichtbar. |
DRAFT | Produkte ausserhalb ihres Lieferzeitraums werden auf Entwurf gesetzt und sind im Shop nicht sichtbar. |
Ist die Option «Delivery visibility auto update» aktiv, prüft ein täglicher Cronjob um 03:00 Uhr alle betroffenen Produkte automatisch neu – ganz ohne erneuten Abruf bei HS Soft. Jede automatische Statusänderung wird protokolliert.
Delivery Visibility läuft nicht, wenn «Force Preserving Product Status» aktiviert ist – beide Optionen sind bewusst nicht gleichzeitig aktiv.
6.Produkt-Shortcodes
Alle Shortcodes lassen sich unter WooCommerce → Einstellungen → WooHS → Shortcodes live an einem echten Produkt vorschauen. Produktbezogene Shortcodes wirken automatisch auf der aktuellen Produktseite oder mit dem Attribut id="123" auch ausserhalb.
Produktinformationen
| Shortcode | Beschreibung |
|---|---|
[woohs_product_declaration] | Zutaten-/Deklarationstext |
[woohs_product_storage] | Lagerhinweis |
[woohs_product_storage_customer_text] | Kundenfreundlicher Lagerhinweis |
[woohs_product_recipe_storage] | Lagerhinweis aus dem Rezeptur-Objekt |
[woohs_product_info_customer_text] | Allgemeiner Kundeninfotext |
[woohs_product_recipe_info_customer_text] | Kundeninfotext aus dem Rezeptur-Objekt |
[woohs_product_info_customer_text_fallback] | Wie oben, mit automatischem Fallback auf die Rezeptur-Variante |
[woohs_product_shelf_life] | Haltbarkeit |
[woohs_product_weight] | Gewicht in kg |
[woohs_product_weight_in_grams] | Gewicht in Gramm |
[woohs_product_price] | Aktueller WooCommerce-Preis (formatiert) |
[woohs_product_price_per_100g] | Preis pro 100g (benötigt hinterlegtes Gewicht) |
Nährwerte & Eigenschaften
| Shortcode | Beschreibung |
|---|---|
[woohs_product_recipe orientation="horizontal|vertical"] | Vollständige Nährwerttabelle |
[woohs_product_energy_kj] / [woohs_product_energy_kcal] | Energiewerte |
[woohs_product_fat] / [woohs_product_saturated_fat] | Fett / davon gesättigte Fettsäuren |
[woohs_product_carbohydrates] / [woohs_product_sugar] | Kohlenhydrate / davon Zucker |
[woohs_product_protein] | Eiweiss |
[woohs_product_salt] | Salz |
[woohs_product_attributes orientation="horizontal|vertical"] | Ja/Nein-Tabelle: Alkohol, Gluten, Bio, Vegan, Vegetarisch, Dinkel, Laktosefrei |
Verfügbarkeit
| Shortcode | Beschreibung |
|---|---|
[woohs_product_availability orientation="horizontal|vertical"] | Wochentagstabelle für das aktuelle Produkt |
[woohs_availability] | Eigenständiges Verfügbarkeits-Widget (nur sichtbar, wenn die Availability-Integration aktiviert ist) |
Shortcodes funktionieren nicht nur im Produkttext, sondern auch in Beschreibungen einzelner Produktvarianten.
7.Einstellungen im Überblick
Kurzreferenz aller Einstellungs-Tabs (Details zu Allgemein und Export siehe Abschnitte 2 und 4).
Erweitert
| Einstellung | Beschreibung | Standard |
|---|---|---|
| Lade-/Vorbereitungs-/Import-Batchgrösse | Anzahl Produkte pro Verarbeitungsschritt | 10 / 500 / 10 |
| Require image successful import | Bricht den Produktimport ab, wenn das Bild nicht geladen werden kann | aktiv |
| Check for old products | Setzt nicht mehr gelieferte Produkte nach einem vollen Import auf Entwurf | aktiv |
| Cronjob run check | Erkennt automatisch unterbrochene WP-Cron-Läufe und startet den Import neu (Prüfung max. alle 8 Std.) | aus |
Logs
Tägliche Logdateien lassen sich im Tab «Logs» nach Datum durchsuchen – hilfreich für die Fehlersuche bei Import- oder Exportproblemen. Die Dateien sind serverseitig zusätzlich gegen direkten Zugriff abgesichert (nicht erratbarer Dateiname plus Serverkonfiguration).
8.Kompatible Plugins
WooHS erkennt folgende Plugins automatisch und erweitert deren Funktionalität um die WaWi-Anbindung.
YITH WooCommerce Delivery Date
Übernimmt das gewählte Lieferdatum (inkl. Zeitfenster) als Bestelldatum für HS Soft. Zeigt bei Produkten mit individuellem Verfügbarkeitszeitraum eine passende Hinweismeldung anstelle der YITH-Standardanzeige.
YITH Delivery Date – Carrier-Erweiterung
Ermöglicht die Zuordnung einzelner Carrier zu HS-Soft-Produktnummern für die Versandkosten-Übermittlung (im Zusammenspiel mit «Custom Shipment Setup»).
Iconic WooCommerce Delivery Slots
Alternative zu YITH: übernimmt Datum und Zeitfenster aus Iconic für die Bestellübermittlung; nur wenn beides gesetzt ist, wird eine Versandzeile hinzugefügt.
Weight Based Shipping (WBS)
Ordnet gewichtsbasierte Versandregeln passenden HS-Soft-Produktnummern zu und übermittelt einen konfigurierbaren Liefertermin-Offset pro Versandart.
9.Fehlerbehebung & FAQ
Die häufigsten Fehlermeldungen und was dahintersteckt.
| Meldung / Symptom | Ursache & Lösung |
|---|---|
| «API Key for HS Soft is missing.» | Kein API-Schlüssel unter Allgemein hinterlegt. |
| «API request error» / «API responded with … error code.» | HS Soft antwortet nicht wie erwartet – Zugangsschlüssel prüfen, bei Bedarf HS Soft kontaktieren. |
| «Product doesn’t have price set.» | Für das Produkt ist in HS Soft keine Preiskategorie zum gewählten Preis-Key hinterlegt. |
| «Product can’t be created – multiple products found for SKU …» | Es existieren mehrere WooCommerce-Produkte mit derselben SKU – Duplikat bereinigen. |
| Bild wird nicht importiert | Bild-URL ungültig oder Download fehlgeschlagen; bei aktivierter «Require image successful import» bricht der ganze Produktimport ab. |
| Bestellung bleibt auf «Not synced» / «ERROR» | Bestellnotizen und Logs prüfen; über «Force HS Soft sync» auf der Bestellseite manuell erneut senden. |
| Import wirkt «hängengeblieben» | «Cronjob run check» (Erweitert) aktivieren – erkennt unterbrochene Cron-Läufe automatisch und startet neu. |
| Produkte werden unerwartet zu Entwürfen | Normales Verhalten bei vollständigem Import, wenn «Check for old products» aktiv ist. Bei Bedarf deaktivieren oder «Force Preserving Product Status» nutzen. |
Häufige Fragen
Kann ich mehrere Fotos pro Produkt verwenden?
Aus HS Soft wird aktuell nur ein Bild pro Produkt importiert. Zusätzliche Bilder, die du manuell in der WooCommerce-Produktgalerie ergänzt, werden von WooHS nicht angetastet oder überschrieben.
Ein Produkt wurde in HS Soft gelöscht, ist im Shop aber weiter sichtbar – warum?
WooHS löscht keine Produkte automatisch aus WooCommerce. Setze entweder ein vergangenes End-Datum in HS Soft (das Produkt wird dann beim nächsten Import automatisch auf Entwurf gesetzt), oder entferne die Marketing-Gruppe und lösche das Produkt anschliessend manuell in WooCommerce.
Warum wurden bei einem Import plötzlich viele Produkte auf Entwurf gesetzt?
Das ist erwartetes Verhalten: Bei einem vollständigen (nicht partiellen) Importlauf setzt WooHS Produkte, die in diesem Lauf nicht mehr geladen wurden, automatisch auf Entwurf – sofern «Check for old products» aktiv ist und «Force Preserving Product Status» nicht.
10.Entwickler-Referenz
WooHS stellt dokumentierte Filter und Actions bereit, um Datenfluss und Verhalten gezielt anzupassen – ohne den Plugin-Core zu verändern. Für Entwickler:innen
woohs_hssoft_order_save_dataDamit lässt sich der komplette an HS Soft gesendete Bestell-Payload vor dem Versand anpassen – z. B. um ein Lieferdatum aus einem ACF-Feld einzuspeisen.
add_filter('woohs_hssoft_order_save_data', 'updateOrderDate', 10, 2);
function updateOrderDate(array $orderData, array $order): array
{
$wcOrder = wc_get_order($order['id']);
$customDeliveryDate = $wcOrder->get_meta('my_custom_delivery_date');
if (empty($customDeliveryDate)) {
return $orderData;
}
// Format ist zwingend Y-m-d
$orderData['date'] = gmdate('Y-m-d', strtotime($customDeliveryDate));
return $orderData;
} Filter
| Filter | Parameter | Zweck |
|---|---|---|
woohs_hssoft_order_save_data | array $orderData, array $order | Vollständiger Bestell-Payload vor Übermittlung an HS Soft |
woohs_hssoft_order_save_comment | string $comment, array $order | Finaler Bestellkommentar-Text |
woohs_hssoft_order_save_add_shipping | bool $add, array $order | Ob eine Versandzeile zur Bestellung hinzugefügt wird |
woohs_importer_products_add_product_tags | bool $add, WC_Product $product, array $item | Automatische Ernährungs-Tags (Bio, Vegan, Gluten …) beim Import steuern |
woohs_export_settings_fields | array $fields | Eigene Felder auf der Export-Einstellungsseite ergänzen |
woohs_iconic_wds_integration | bool $enabled, array $order | Iconic-Integration pro Bestellung/Standort deaktivieren |
woohs_YITH_WCDD_integration | bool $enabled, array $order | YITH-Integration pro Bestellung/Standort deaktivieren |
Actions
| Action | Parameter | Zweck |
|---|---|---|
woohs_activate | – | Beim Aktivieren des Plugins (Tabelle & Cache werden angelegt) |
woohs_deactivate | – | Beim Deaktivieren des Plugins (Aufräumarbeiten) |
woohs_importer_products_status_changed | string $status, bool $quiet | Bei jedem Statuswechsel im Importprozess |
woohs_exporter_orders_failed | int $orderId | Wenn eine Bestellübermittlung endgültig fehlschlägt |
woohs_notifications_failed_imports | int $failedCount | Wenn nach dem automatischen Retry weiterhin fehlgeschlagene Produkte bestehen |
woohs_importer_products_reset | – | Wenn der Import vollständig zurückgesetzt wird (manuell oder durch Cron-Selbstheilung) |
Neben den oben gelisteten Erweiterungspunkten verdrahtet sich WooHS über zahlreiche interne WordPress-/WooCommerce-Hooks (z. B. woocommerce_order_status_changed, diverse wp_ajax_woohs_*-Handler). Für individuelle Anpassungen, die über die oben dokumentierten Filter/Actions hinausgehen, sprich uns bitte direkt an.