Pre-order Manager: volledige handleiding
Installatie, instelling van preorders met aanbetaling, automatische omzetting, herinneringen en REST API.
Overzicht
DataFirefly Pre-order Manager maakt van elk WooCommerce-product (eenvoudig of variabel) een professionele preorder. De klant betaalt bij de bestelling een aanbetaling of het volledige bedrag; op de beschikbaarheidsdatum (ETA) zet de plugin de preorder automatisch om: overgang naar In behandeling bij volledige betalingen, of het aanmaken van een saldobestelling met betaallink bij aanbetalingen. Automatische herinneringen, een plafond op de toekomstige voorraad, een aanpasbare badge en een REST API maken de workflow compleet.
Installatie
- Download het bestand
dfpreorder.zipvanuit uw DataFirefly-account. - Ga in uw WordPress-beheer naar Plugins → Nieuwe plugin → Plugin uploaden.
- Selecteer de ZIP, klik op Nu installeren en activeer de plugin.
- Er verschijnt een nieuw submenu WooCommerce → Preorders: dat is het bedieningspaneel van de plugin.
Vereisten: WordPress 6.0+, WooCommerce 7.0+ en PHP 7.4 minimaal. De plugin verklaart haar compatibiliteit met HPOS en met de Cart- en Checkout-blokken; er is geen extra instelling nodig.
Algemene instellingen
Open WooCommerce → Preorders → tabblad Instellingen. De opties zijn in zes blokken gegroepeerd:
- Activering: de hoofdschakelaar van de module, en het beleid voor een gemengde winkelwagen (preorders en gewone producten al dan niet samen in dezelfde winkelwagen toestaan).
- Automatische omzetting: schakelt de dagelijkse omzetting op de ETA in, stelt een respijtperiode in (0 tot 90 dagen) na de ETA, en bepaalt of gereserveerde eenheden bij een annulering terug in voorraad komen.
- Weergave van de badge: tekst (standaard “Preorder”), achtergrondkleur, tekstkleur en plaatsing (winkeloverzichten en/of productpagina).
- Labels: de tekst van de knop om toe te voegen aan de winkelwagen (standaard “Preorder plaatsen”) en het label vóór de ETA (“Beschikbaar op”).
- Klant-e-mails: het in- of uitschakelen van de e-mails over beschikbaarheid en over het te betalen saldo.
- Herinneringen voor een onbetaald saldo: het inschakelen van de herinneringen en de termijnen in dagen, gescheiden door komma’s (standaard
7,14,30). - Verzendkosten: de optie om de verzendkosten door te schuiven naar de saldobestelling (zie het onderdeel verderop).
Een product als preorder instellen
- Open het product in de WooCommerce-editor en ga naar het tabblad Preorder in de productgegevens.
- Vink Preorder inschakelen aan.
- Kies de betaalwijze: “Volledige betaling” (de klant betaalt alles bij de bestelling) of “Aanbetaling” (percentage of vast bedrag, waarbij het saldo bij de beschikbaarheid wordt gefactureerd).
- Vul de ETA-datum in (de verwachte beschikbaarheidsdatum). Met een optioneel tekstveld kunt u in plaats van de datum een vrije aanduiding tonen (bijvoorbeeld “Beschikbaar begin juli”).
- Stel eventueel een plafond op de toekomstige voorraad in: het maximale aantal eenheden dat vooruit besteld kan worden. De teller van de gereserveerde eenheden staat naast het veld.
- Pas zo nodig de badgetekst voor dit product aan, en het gedrag bij de automatische omzetting (de algemene instelling volgen, altijd wel, of altijd niet).
- Sla op: de badge en het ETA-kader verschijnen meteen op de productpagina.
Bij variabele producten kan elke variatie een eigen ETA-datum en een eigen voorraadplafond hebben (in de opties van de variatie). De datum van de variatie heeft voorrang op die van het bovenliggende product.
Levenscyclus van een preorder
Zo verloopt de workflow, stap voor stap:
- Eerste bestelling: de klant voegt het product toe aan de winkelwagen. In de aanbetalingsmodus is de prijs die in de winkelwagen en bij het afrekenen wordt getoond het bedrag van de aanbetaling, met vermelding van het resterende saldo. Hij betaalt via de gebruikelijke betaaldienst.
- Registratie: bij de betaling krijgt de bestelling de status
wc-preorder, wordt er een regel aangemaakt in de interne tabel van de plugin, en ontvangt de klant de bevestigingsmail van zijn preorder. - Wachten: de preorder verschijnt in WooCommerce → Preorders → tabblad Lijst, met status, ETA-datum en bedragen.
- Omzetting op de ETA: de dagelijkse cron (3.00 uur, tijd van de site) vindt de preorders die aan de beurt zijn (ETA plus een eventuele respijtperiode):
- Modus volledige betaling: de bestelling gaat naar “In behandeling” en de klant ontvangt de e-mail over de beschikbaarheid.
- Modus aanbetaling: er wordt automatisch een saldobestelling aangemaakt (status “Wacht op betaling”) en de klant ontvangt de e-mail “Saldo te betalen” met een knop om meteen te betalen.
- Betaling van het saldo: de klant betaalt via de link in de e-mail (de ingebouwde WooCommerce-betaal-URL, beveiligd met de order key en zonder dat inloggen nodig is) of vanuit Mijn account. Bij de betaling wordt de preorder als voltooid gemarkeerd en gaat de oorspronkelijke bestelling naar “In behandeling” zodra al haar preorderregels zijn afgehandeld.
Beheer vanuit de beheeromgeving
Het tabblad Lijst van de pagina Preorders toont alle preorders, met een filter op status, zoeken op bestel- of product-ID en paginering. Er zijn vier statussen: In afwachting (blauw), Saldo in afwachting (amber), Voltooid (groen) en Geannuleerd (grijs). Bij elke regel staan twee acties:
- Omzetten: forceert de omzetting meteen, zonder de ETA af te wachten (handig wanneer de voorraad vroeger binnenkomt).
- Annuleren: annuleert de preorder, geeft de gereserveerde eenheden vrij (als de terugvoorraadoptie actief is) en zet de bestelling op “Geannuleerd” als ze nog de preorderstatus had.
De knop “Omzetting nu starten” boven aan de pagina start de dagelijkse controle meteen, zonder de cron van 3.00 uur af te wachten.
Aan klantzijde: Mijn account
Op de pagina Mijn account → Besteldetails:
- toont de oorspronkelijke bestelling een kader “Saldo van uw preorder” met de gekoppelde saldobestellingen, hun bedrag en status, en een knop “Saldo betalen” voor de bestellingen die nog openstaan;
- toont de saldobestelling op haar beurt een kader “Oorspronkelijke preorder” met een link naar de eerste bestelling.
Klant-e-mails
Er worden vier transactionele e-mails meegeleverd, elk in HTML en platte tekst, aan te passen via WooCommerce → Instellingen → E-mails:
- Preorderbevestiging: verstuurd bij de registratie van de preorder, zo nodig met een vermelding over de aanbetaling.
- Preorder beschikbaar: verstuurd bij de omzetting in de modus volledige betaling.
- Saldo te betalen: verstuurd bij het aanmaken van de saldobestelling, met het bedrag prominent in beeld en een knop om meteen te betalen.
- Herinnering aan het saldo: herinneringen die op de ingestelde termijnen worden verstuurd zolang het saldo openstaat.
Automatische herinneringen
Staat de optie aan, dan doorloopt de dagelijkse cron de saldobestellingen die nog niet betaald zijn (status in afwachting, gepauzeerd of mislukt) en verstuurt hij op elke ingestelde termijn een herinnering. Het veld accepteert een lijst met dagen, gescheiden door komma’s, bijvoorbeeld 7,14,30 om 7, 14 en daarna 30 dagen na het aanmaken van de saldobestelling te herinneren. Elke termijn gaat per bestelling maar één keer af; dat wordt bijgehouden in de meta van de saldobestelling.
Verzendkosten op de saldobestelling
Standaard bevat de saldobestelling geen verzendkosten (die zijn op de oorspronkelijke bestelling voldaan). Dekt uw aanbetaling alleen de reservering van het product en factureert u de verzending bij de verzending zelf, schakel dan de optie “Verzendkosten doorschuiven naar het saldo” in: de verzendregels van de oorspronkelijke bestelling worden op de saldobestelling gedupliceerd, met methode en btw intact.
Deze optie dupliceert de kosten. Schakel haar alleen in als de aanbetalingsbestelling zonder verzendkosten wordt gefactureerd, bijvoorbeeld via een methode “Gratis verzending” die afhangt van de aanwezigheid van preorderproducten in de winkelwagen. Anders betaalt de klant twee keer verzendkosten.
Shortcodes
[dfpo_badge product_id="123"]: toont de preorderbadge van het opgegeven product (of van het huidige product als u het weglaat).[dfpo_eta product_id="123"]: toont de opgemaakte beschikbaarheidsdatum met het bijbehorende label.[dfpo_remaining product_id="123"]: toont hoeveel eenheden nog vooruit besteld kunnen worden, wanneer er een plafond is ingesteld.
REST API
Alle routes staan onder de namespace dfpo/v1 en vereisen de capability manage_woocommerce (authenticatie met een WooCommerce-API-sleutel of een application password):
GET /wp-json/dfpo/v1/preorders: gepagineerde lijst (parametersstatus,page,per_page).GET /wp-json/dfpo/v1/preorders/{id}: detail van een preorder.POST /wp-json/dfpo/v1/preorders/{id}/convert: forceert de omzetting (booleaanse parameterforce).POST /wp-json/dfpo/v1/preorders/{id}/cancel: annuleert en geeft de gereserveerde voorraad vrij.POST /wp-json/dfpo/v1/run-conversion: start de omzettingscontrole meteen.
Hooks voor ontwikkelaars
dfpo_preorder_registered(actie): na het aanmaken van een preorderregel.dfpo_preorder_converted_full(actie): na de omzetting van een volledige betaling.dfpo_preorder_converted_deposit(actie): na het aanmaken van de saldobestelling.dfpo_preorder_balance_paid(actie): na de inning van het saldo.dfpo_email_preorder_balance_reminder(actie): bij het afgaan van een herinnering (handig om een sms of een ander kanaal aan te sluiten).dfpo_badge_html(filter): om de HTML van de badge aan te passen.
Probleemoplossing
- De omzetting gaat niet af: controleer of WP-Cron op uw hosting werkt (sommige hostingpartijen schakelen die uit; gebruik dan een systeemcron die
wp-cron.phpaanroept). U kunt altijd handmatig omzetten via het tabblad Lijst. - De prijs in de winkelwagen lijkt niet te kloppen na een wijziging aan het product: leeg de testwinkelwagen en de caches (object en pagina). De plugin leest de oorspronkelijke prijs rechtstreeks uit de database om cache-effecten te vermijden.
- De saldomail komt niet aan: controleer of de e-mail “Saldo te betalen” is ingeschakeld bij WooCommerce → Instellingen → E-mails, en test de algemene bezorging van uw site (SMTP is aan te raden).
- De badge verschijnt niet: controleer de hoofdschakelaar van de module, de badgeplaatsing in de instellingen, en of het thema de standaard WooCommerce-hooks wel aanroept (
woocommerce_single_product_summary,woocommerce_after_shop_loop_item_title).
Verwijderen
De plugin deactiveren behoudt alle gegevens. Het verwijderen van de plugin via Plugins wist de interne tabellen, de opties en de productmeta van de plugin definitief. De WooCommerce-bestellingen (oorspronkelijk en saldo) worden nooit verwijderd.