WooHS Dokumentation – Einrichtung, Funktionen & Entwickler-Referenz
woohs

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

AnforderungDetails
WordPressVersion 6.4 oder neuer
PHPVersion 8.2 oder neuer
WooCommerceAktiv installiert und eingerichtet
HS SoftAktiver Vertrag mit gültigem API-Zugangsschlüssel
Hostingmax_execution_time von mindestens 60 Sekunden (für Importläufe)
Hinweis zu deinem Hosting

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

  1. 1
    Plugin installieren & aktivierenWooHS wie gewohnt in WordPress hochladen und aktivieren.
  2. 2
    Mit HS Soft verbindenUnter WooCommerce → Einstellungen → WooHS → Allgemein den API-Schlüssel hinterlegen.
  3. 3
    Import 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.

EinstellungBeschreibungStandard
API-SchlüsselZugangsschlüssel zu deinem HS Soft-WaWi. Wird nach dem Speichern nicht mehr im Klartext angezeigt (Passwortfeld).–
Gewichts-KeyWelche HS-Soft-Gewichtsangabe importiert wird (K1 = Standard, K2 = Rezeptur).K1
Preis-KeyWelche der bis zu 10 HS-Soft-Preiskategorien als WooCommerce-Verkaufspreis importiert wird.K1
Automatischer ImportUhrzeit (z. B. 03:00), zu der täglich automatisch importiert wird.deaktiviert
Delivery VisibilitySteuert, ob Produkte ausserhalb ihres Lieferzeitraums automatisch als «nicht vorrätig» oder als Entwurf behandelt werden. Details siehe Abschnitt 5.deaktiviert
Force Preserving Product StatusVerhindert, dass der Import Produktstatus/Sichtbarkeit automatisch verändert – nützlich, wenn du Status manuell steuern willst.aus
Benachrichtigungs-E-MailsKommagetrennte Liste von E-Mail-Adressen für Import- und Fehlerbenachrichtigungen. Ohne Angabe wird die WordPress-Admin-E-Mail verwendet.Admin-E-Mail
Achtung beim Speichern

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

  1. 1
    LadenProdukte werden batchweise von HS Soft abgerufen (Fortschrittsanzeige).
  2. 2
    KonfigurierenMarketing-Gruppen (Kategorien) auswählen, Bildpflicht ein-/ausschalten, optional «Force Import» aktivieren.
  3. 3
    VorbereitenJedes geladene Produkt wird gegen die Filter geprüft und als «vorbereitet» oder «übersprungen» markiert.
  4. 4
    ImportierenManuell per Klick oder automatisch zur konfigurierten Uhrzeit («Zeitplan» statt «Start»).

Filteroptionen

FilterWirkung
KategorienNur Produkte, deren HS-Soft-Marketing-Gruppe ausgewählt ist, werden importiert.
Nur Produkte mit BildProdukte ohne hinterlegtes Bild in HS Soft werden übersprungen.
Force ImportImportiert 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).
Batchgrössen anpassen

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

OptionBeschreibung
Bestelldatum-QuelleErstellungsdatum oder Lieferdatum (aus YITH WooCommerce Delivery Date bzw. Iconic Delivery Slots, falls installiert).
Liefertermin-OffsetPro Versandart konfigurierbarer Tagesversatz («WOOHS: Delivery Date offset»).
Custom Shipment SetupErsetzt die generische Versandzeile durch eine spezifische, pro Carrier/Versandregel hinterlegte HS-Soft-Produktnummer.
Debitor-KennzeichnungPro 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:

ShortcodeAusgabe
[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)

ModusWirkung
DisabledKeine automatische Sichtbarkeitssteuerung.
OUTOFSTOCKProdukte ausserhalb ihres Lieferzeitraums werden als «nicht vorrätig» markiert, bleiben aber sichtbar.
DRAFTProdukte 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.

Gegenseitiger Ausschluss

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

ShortcodeBeschreibung
[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

ShortcodeBeschreibung
[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

ShortcodeBeschreibung
[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)
Auch in Variationsbeschreibungen nutzbar

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

EinstellungBeschreibungStandard
Lade-/Vorbereitungs-/Import-BatchgrösseAnzahl Produkte pro Verarbeitungsschritt10 / 500 / 10
Require image successful importBricht den Produktimport ab, wenn das Bild nicht geladen werden kannaktiv
Check for old productsSetzt nicht mehr gelieferte Produkte nach einem vollen Import auf Entwurfaktiv
Cronjob run checkErkennt 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 / SymptomUrsache & 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 importiertBild-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ürfenNormales 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

Wichtigster Hook: woohs_hssoft_order_save_data

Damit 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

FilterParameterZweck
woohs_hssoft_order_save_dataarray $orderData, array $orderVollständiger Bestell-Payload vor Übermittlung an HS Soft
woohs_hssoft_order_save_commentstring $comment, array $orderFinaler Bestellkommentar-Text
woohs_hssoft_order_save_add_shippingbool $add, array $orderOb eine Versandzeile zur Bestellung hinzugefügt wird
woohs_importer_products_add_product_tagsbool $add, WC_Product $product, array $itemAutomatische Ernährungs-Tags (Bio, Vegan, Gluten …) beim Import steuern
woohs_export_settings_fieldsarray $fieldsEigene Felder auf der Export-Einstellungsseite ergänzen
woohs_iconic_wds_integrationbool $enabled, array $orderIconic-Integration pro Bestellung/Standort deaktivieren
woohs_YITH_WCDD_integrationbool $enabled, array $orderYITH-Integration pro Bestellung/Standort deaktivieren

Actions

ActionParameterZweck
woohs_activate–Beim Aktivieren des Plugins (Tabelle & Cache werden angelegt)
woohs_deactivate–Beim Deaktivieren des Plugins (Aufräumarbeiten)
woohs_importer_products_status_changedstring $status, bool $quietBei jedem Statuswechsel im Importprozess
woohs_exporter_orders_failedint $orderIdWenn eine Bestellübermittlung endgültig fehlschlägt
woohs_notifications_failed_importsint $failedCountWenn 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)
Weitere interne Hooks

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.