dfomnibus-woo: Omnibus-conformiteit voor WooCommerce
Installatie, rekenmotor voor de referentieprijs, automatische registratie, instellingen, verdedigingsdashboard, bevriezingsplanner, import en probleemoplossing van de plugin dfomnibus-woo.
De plugin DataFirefly Omnibus Compliance for WooCommerce brengt uw winkel in overeenstemming met de Europese richtlijn 2019/2161, de zogenoemde Omnibusrichtlijn, die sinds 28 mei 2022 van toepassing is. Ze legt de prijshistoriek vast zodra ze actief is, berekent de wettelijke referentieprijs volgens regels die vrijwel niemand implementeert, en levert u het dossier dat u bij een controle kunt voorleggen.
Compatibiliteit: WordPress 6.2 minimaal, WooCommerce 8.0 minimaal, PHP 8.0 minimaal (werkt met 8.1, 8.2 en 8.3). HPOS-compatibiliteit is verklaard. Eenvoudige en variabele producten, meerdere valuta’s, WPML en Polylang. Geen externe afhankelijkheden en geen CDN.
Installatie
- Download het archief
dfomnibus-woo-1.0.0.zipvanuit uw DataFirefly-klantomgeving. - Ga in het WordPress-beheer naar Plugins, Nieuwe plugin, Plugin uploaden en activeer de plugin daarna. WooCommerce moet actief zijn.
- De registratie start meteen: er worden drie tabellen aangemaakt en binnen enkele minuten na de activering wordt een eerste momentopname ingepland.
- Open WooCommerce, Omnibus Compliance om de weergave in te stellen en uw licentie te activeren.
Drie aangemaakte tabellen: wp_dfwomni_price_history voor de prijsregistraties, wp_dfwomni_display_log voor het logboek van de getoonde vermeldingen, en wp_dfwomni_license_cache voor de licentiecache. Het voorvoegsel wp_ wordt automatisch door het uwe vervangen.
De rekenmotor
De berekening van de referentieprijs zit in een aparte motor zonder afhankelijkheid van WordPress, gedekt door unittests. De regels worden in deze volgorde geëvalueerd.
1. Reeksen van opeenvolgende kortingen
Wanneer promoties elkaar opvolgen zonder dat het product terugkeert naar zijn niet-verlaagde prijs, blijft de wettelijke referentie de prijs die vóór de eerste verlaging van de reeks werd gehanteerd. Ze wordt bij elke nieuwe promotie niet opnieuw berekend. De plugin herkent zulke reeksen, bevriest de referentie en toont de uitleg in het beheer, bijvoorbeeld “referentie bevroren sinds 12 oktober, opeenvolgende promoties lopend”.
Een reeks is in de tijd begrensd. Na standaard 60 dagen, instelbaar van 30 tot 120 dagen, wordt aangenomen dat de verlaagde prijs de normale prijs van het product is geworden: de algemene regel van 30 dagen geldt dan weer, en het conformiteitsrapport merkt een permanente promotie aan.
2. Normaal geval, verankerd venster
De referentieprijs is de laagste prijs die is gehanteerd in de periode die loopt van 30 dagen vóór het begin van de verlaging tot aan het begin van die verlaging. Het venster is verankerd aan de start van de promotie: het schuift niet dag na dag mee terwijl de promotie loopt, in tegenstelling tot een voortschrijdend minimum, dat uiteindelijk de promotieprijs zelf zou opslokken.
3. Recent op de markt gebracht product
Bij een product dat minder dan 30 dagen te koop is, is de referentie de laagste prijs sinds het in de verkoop kwam, en vermeldt de tekst in de winkel de werkelijke verkoopduur, zoals de wettekst vereist.
4. Onvoldoende gegevens
Dekt de vastgelegde historiek het wettelijke venster niet voor een product dat niet recent is, dan wordt er geen referentie teruggegeven en verschijnt er niets. Een referentie die nooit echt is vastgelegd, mag nooit worden getoond of achteraf worden gereconstrueerd.
Praktisch gevolg: installeer de plugin vóór uw promotieseizoen, niet op de dag zelf. De historiek wordt niet met terugwerkende kracht opgebouwd: het is uw bewijsmateriaal en dat kan alleen vooraf worden verzameld.
Automatische registratie
Er lopen twee mechanismen naast elkaar.
- Dagelijkse momentopname: de taak
dfwomni_daily_snapshotloopt de catalogus door en legt de prijsstand vast. Ligt de laatste doorloop meer dan 24 uur terug, dan wordt automatisch een eenmalige inhaalslagdfwomni_catchup_snapshotingepland. - Registratie op gebeurtenis: elke werkelijke prijswijziging wordt vastgelegd, of die nu uit de producteditor komt, uit een snelle of bulkbewerking, uit een CSV-import, uit een REST- of CRUD-update, uit een repricingtool, of uit het starten en beëindigen van geplande promoties.
Eén historiekregel komt overeen met één werkelijke prijswijziging; dubbele regels worden geweerd. De prijzen worden onbewerkt opgeslagen, met hun fiscale context en hun valuta, nooit als reeds opgemaakte prijs.
De cron betrouwbaar maken bij weinig verkeer
WP-Cron gaat alleen af wanneer er een bezoeker langskomt. Stel bij een winkel met weinig verkeer een echte systeemcron in:
*/15 * * * * wget -q -O /dev/null "https://uw-winkel.com/wp-cron.php?doing_wp_cron"
Het dashboard toont een waarschuwing als de laatste momentopname ouder is dan 48 uur.
Instellingen
Het tabblad Instellingen van de pagina WooCommerce, Omnibus Compliance.
- Referentie tonen bij: alleen producten in promotie, wat overeenkomt met het wettelijke minimum, of alle producten met een historiek, een transparantiemodus die aan de Pro-licentie is voorbehouden.
- Positie van de regel: vlak onder de prijs, of na het prijsblok in de productsamenvatting. Kies de tweede optie als uw thema de prijsweergave herschrijft.
- Grafiek over 30 dagen: toont de prijscurve op de productpagina, in een ingebouwd canvas van ongeveer 3 kB, zonder extern script. Pro-functie.
- Eigen teksten: twee sjablonen, de standaardregel met de aanduiding
{price}en de regel voor een recent product met{price}en{days}. Laat ze leeg om de meegeleverde vertaalde teksten in het Frans, Engels, Duits, Spaans en Italiaans te gebruiken. Pro-functie. - Uitsluitingen: identificaties van producten en categorieën die de vermelding nooit tonen, handig bij onderhandelde prijzen of B2B.
- Auditdrempels: het aantal dagen waarna een promotie als permanent wordt aangemerkt, standaard 60, en de maximale leeftijd van een reeks opeenvolgende kortingen, standaard eveneens 60.
- Bij het verwijderen: een selectievakje om ook de vastgelegde historiek te wissen. Standaard niet aangevinkt, en dat is bewust.
Dashboard
Het tabblad Dashboard bundelt drie blokken.
Gezondheid van de registratie
Het aantal vastgelegde registraties, het aantal gevolgde producten en de datum van de laatste dagelijkse momentopname, met de eerder genoemde waarschuwing als de cron niet meer langskomt.
Conformiteitsrapport
Een audit die live op uw meest recente gegevens wordt berekend en de producten toont waarvan de huidige weergave bij een controle betwist zou kunnen worden. Er zijn vier statussen:
- Referentie ontbreekt: het product is in promotie zonder vastgelegde referentie, dus de korting wordt getoond zonder verdedigbare eerdere prijs.
- Permanente promotie: de promotie loopt te lang, de verlaagde prijs is de normale prijs geworden en de aangekondigde korting wordt betwistbaar.
- Recent product: ter informatie; de weergave vermeldt correct de werkelijke verkoopduur.
- Referentie bevroren (reeks): er lopen opeenvolgende promoties, dus de referentie wordt niet herberekend zolang het product niet is teruggekeerd naar een niet-verlaagde prijs.
Exports met tijdstempel
Twee CSV-exports die als stream worden gegenereerd, met het domein en de UTC-tijdstempel in de bestandsnaam:
- Prijshistoriek: alle vastgelegde registraties.
- Weergavelogboek: welke referentie daadwerkelijk is getoond, wanneer, en op welke productpagina.
Het conformiteitsrapport, de exports en het weergavelogboek horen bij de Pro-licentie. De registratie zelf wordt nooit beperkt.
Prijshistoriek
Het tabblad Prijshistoriek toont de registraties product per product, met de verandering, de valuta, de reguliere prijs, de promotieprijs, de effectieve prijs en de bron van de registratie. Is een referentie bevroren, dan worden de datum en de reden van de bevriezing vermeld.
Bevriezingsplanner
Uw eerste promotie vergrendelt de referentie van de volgende: elke prijs die u hanteert in de 30 dagen vóór een sleuteldatum verlaagt de korting die u op die dag mag aankondigen. De planner redeneert daarom achterwaarts.
Kies een commerciële datum uit de meegeleverde lijst (Black Friday, Cyber Monday, Kerstmis, winter- en zomeruitverkoop, Valentijn, moeder- en vaderdag) of vul een eigen datum in. De planner geeft aan wanneer uw laatste promotie uiterlijk moet aflopen om de beoogde korting te behouden, en in welke periode elke gehanteerde prijs het wettelijke venster voedt. Een agenda waarop u zich kunt abonneren, bundelt alle vervaldata. Pro-functie.
Een bestaande historiek importeren
Heeft een andere plugin uw prijzen al vastgelegd, dan zijn die gegevens onvervangbaar. Het tabblad Import analyseert de structuur van de tabellen in uw database, zonder zich op de naam van de plugin te baseren, en herkent de tabellen met een productidentificatie, een prijs en een datum, met optionele detectie van een variatiekolom. De systeemtabellen van WooCommerce en Action Scheduler worden overgeslagen.
De tabel toont elke kandidaat-tabel, de herkende kolommen en het aantal regels. De import is idempotent: dubbele en onbruikbare regels worden apart geteld en vervuilen uw historiek niet. Pro-functie.
Licentie
Het tabblad Licentie toont het huidige plan, de gemaskeerde sleutel en de datum van de laatste controle. Vul de sleutel in die u na de aankoop per e-mail hebt ontvangen, in het formaat DFWOM-PRO-XXXX-XXXX-XXXX-XXXX, en klik daarna op Activeren.
Eenmalige aankoop, 12 maanden updates, 30 dagen bedenktijd met terugbetaling, niet-versleutelde broncode, één winkel per licentie. Is de licentieserver onbereikbaar, dan behoudt de plugin 7 dagen lang al haar functies en valt daarna terug op het Free-niveau, zonder ooit uw winkel te breken. De registratie van de historiek stopt nooit, ongeacht het plan.
Wat de Pro-licentie ontgrendelt
- Weergave bij alle producten met een historiek, en niet alleen bij producten in promotie
- Eigen teksten voor de vermelding
- Prijsgrafiek over 30 dagen
- Verdedigingsdashboard, conformiteitsrapport en weergavelogboek
- CSV-exports met tijdstempel
- Bevriezingsplanner
- Import van een bestaande historiek
Altijd actief, ongeacht de licentie: de volledige registratie van de historiek, het tonen van de vermelding bij producten in promotie, en het raadplegen van de historiek in het beheer.
Probleemoplossing
Er verschijnt geen enkele vermelding
Controleer in deze volgorde:
- Is het product wel echt in promotie? Standaard verschijnt de vermelding alleen bij afgeprijsde producten.
- Dekt de vastgelegde historiek het vereiste venster? Bij een recente installatie is het antwoord vaak nee, en dat is het bedoelde gedrag.
- Staan het product of zijn categorie bij de uitsluitingen?
- Meldt het dashboard een te oude momentopname? Zo ja, maak de cron betrouwbaar.
De vermelding verschijnt op een onverwachte plek
Zet de positie op na het prijsblok in de productsamenvatting. Sommige thema’s herschrijven de prijsweergave en slikken de invoeging vlak eronder op.
De laatste momentopname is ouder dan 48 uur
WP-Cron hangt van het verkeer af. Zet de hierboven vermelde systeemcron op, of controleer of de constante DISABLE_WP_CRON niet actief is zonder een systeemcron als vervanging.
De grafiek verschijnt niet
De grafiek hoort bij de Pro-licentie en moet in de instellingen worden ingeschakeld. Controleer ook of de historiek van het product genoeg punten over de laatste 30 dagen bevat.
De import herkent geen enkele tabel
De detectie is structureel: een kandidaat-tabel moet een kolom met een productidentificatie, een decimale prijskolom en een datumkolom bevatten. De eigen tabellen van WooCommerce en Action Scheduler worden bewust overgeslagen.
Veelgestelde vragen
Wordt de referentie bij elke nieuwe promotie herberekend?
Nee, en dat is het meest misbegrepen punt van de regel. Zolang het product niet terugkeert naar een niet-verlaagde prijs, blijft de referentie de prijs van vóór de eerste verlaging van de reeks.
Worden variabele producten ondersteund?
Ja. De referentie wordt per variatie berekend en niet op het niveau van het bovenliggende product, en de vermelding wordt bijgewerkt wanneer de bezoeker van variatie wisselt.
Wat gebeurt er bij het verwijderen?
De instellingen, de licentiecache en de bijbehorende tabel worden verwijderd. De prijshistoriek en het weergavelogboek blijven standaard behouden, omdat die gegevens niet te reconstrueren zijn. Vink de opruimoptie in de instellingen uitdrukkelijk aan als u alles wilt wissen.
Vertraagt de plugin de winkel?
Nee. De registratie schrijft één kleine regel per werkelijke prijswijziging, de weergave leest een korte geïndexeerde reeks met cache, en de grafiek is ongeveer 3 kB ingebouwde code zonder enige externe aanroep.
Ondersteunt de plugin meerdere valuta’s?
Ja. Elke registratie draagt haar eigen valuta, dus de historiek wordt nooit achteraf omgerekend.
Changelog
1.0.0, 10 augustus 2026
- Eerste versie
- Dubbele registratie: dagelijkse momentopname met inhaalslag en registratie van prijswijzigingen op gebeurtenis
- Referentieprijs over een venster van 30 dagen, verankerd aan het begin van de verlaging
- Regel voor opeenvolgende kortingen, met bevriezing van de referentie op de prijs vóór de reeks
- Aangepaste vermelding voor recent op de markt gebrachte producten, met de werkelijke verkoopduur
- Bevriezingsplanner en agenda met vervaldata
- Verdedigingsdashboard, conformiteitsrapport, exports met tijdstempel en weergavelogboek
- Structurele import van een bestaande prijshistoriek
- Referentie per variatie, registraties in meerdere valuta’s
- Vertalingen FR, EN, DE, ES en IT, compatibiliteit met WPML en Polylang, compatibiliteit met HPOS