DataFirefly Inflation Pricing voor WooCommerce
WooCommerce-prijzen in bulk verhogen en tegelijk psychologische prijzen als 59, 89 of 569 behouden.
Wat de plugin doet
DataFirefly Inflation Pricing past een percentage toe op uw hele WooCommerce-catalogus of een deel ervan en zet elke berekende prijs daarna terug op een schaal van psychologische prijzen die u zelf bepaalt. Een verhoging van 3 procent op een product van 59 euro levert geen 60,77 euro op, maar 60,90 euro, of 69 euro als u liever hele getallen op 9 hebt.
Het volledige traject verloopt in drie stappen: u beschrijft het bereik en het percentage, de plugin berekent alle nieuwe prijzen en toont ze in een tabel, en daarna bevestigt u. Vóór die bevestiging wordt er niets in de database geschreven, en elke oude prijs blijft bewaard zodat u kunt terugdraaien.
Installatie
- Download het ZIP-archief vanuit uw DataFirefly-klantaccount.
- Ga in het WordPress-beheer naar Plugins, dan Nieuwe plugin, en klik op Plugin uploaden.
- Selecteer het ZIP-bestand, installeer het en activeer het.
- Er verschijnt een nieuw menu onder WooCommerce: Inflation Pricing.
De activering maakt twee tabellen aan: wp_df_inflation_campaigns voor de campagnes en wp_df_inflation_items voor de prijsregels. Het voorvoegsel volgt dat van uw installatie.
Vereisten: WordPress 5.8 of hoger, WooCommerce 6.0 of hoger, PHP 7.4 of hoger. De plugin verklaart bij initialisatie haar compatibiliteit met HPOS en met de winkelwagen- en afrekenblokken.
De drie schermen
Nieuwe campagne
Dit is het belangrijkste werkscherm. Het bestaat uit drie kaarten: Verhoging, Bereik en Afronding. Hier bouwt u de campagne op en start u het voorbeeld.
Historiek
De lijst van alle campagnes met hun status. Vanaf deze pagina bekijkt u een campagne regel voor regel, past u een campagne toe die nog in afwachting staat, draait u een toegepaste campagne terug of verwijdert u een campagne die u niet meer nodig hebt.
Afrondingsregels
De algemene instellingen: afrondingsniveaus, richting, garantie op de verhoging, rekenbasis inclusief of exclusief btw, batchgrootte en gedrag bij het verwijderen. Onderaan de pagina toont een simulator het resultaat op voorbeeldprijzen.
De afrondingsniveaus begrijpen
Een niveau wordt bepaald door drie waarden:
- Geldt tot: de bovengrens van de betrokken prijsklasse. De waarde 0 betekent geen limiet en duidt dus het niveau aan dat alle prijzen boven de andere niveaus behandelt.
- Stap: het verschil tussen twee mogelijke prijzen.
- Uitgang: de verschuiving die op die stap wordt toegepast.
De eindprijs is altijd de stap vermenigvuldigd met een geheel getal, plus de uitgang. Enkele voorbeelden:
- Stap 10, uitgang 9 geeft 9, 19, 29, 59, 89, 569, 899
- Stap 1, uitgang 0,90 geeft 9,90, 14,90, 60,90, 99,90
- Stap 5, uitgang 4 geeft 24, 29, 124, 129, 134
- Stap 0,50, uitgang 0,40 geeft 4,40, 4,90, 9,40, 9,90
- Stap 100, uitgang 99 geeft 599, 1299, 2499
De uitgang moet kleiner blijven dan de stap, anders heeft ze geen zichtbaar effect meer. Een stap van 1 met een uitgang van 9 levert simpelweg alle gehele getallen op.
Het niveau wordt gekozen op de oorspronkelijke prijs
Om te voorkomen dat een product net onder een grens in een veel grovere klasse belandt, wordt het niveau van de huidige prijs van het product gebruikt, niet dat van de berekende prijs. Een artikel van 19,90 euro blijft dus door het niveau voor lage prijzen behandeld, ook als de verhoging het boven de 20 euro brengt.
De afweging tussen leesbaarheid en precisie
Dit is het belangrijkste punt om te begrijpen voordat u een campagne start. Hoe grover de afrondingsschaal, hoe verder de werkelijke variatie afwijkt van het gevraagde percentage.
Neem een verhoging van 3 procent op een product van 59 euro. De ruwe berekende prijs is 60,77 euro. Afhankelijk van de gekozen schaal:
- Stap 1, uitgang 0,90 geeft 60,90 euro, dus +3,2 procent
- Stap 5, uitgang 4 geeft 64 euro, dus +8,5 procent
- Stap 10, uitgang 9 geeft 69 euro, dus +16,9 procent
Geen enkele plugin kan om deze rekenkunde heen: wilt u hele prijzen die op 9 eindigen, dan is het kleinste verschil tussen twee prijzen 10 euro, wat bij 59 euro neerkomt op 17 procent. De plugin verbergt dat niet, maar maakt het zichtbaar vóór het wegschrijven, via de simulator, de kolom Variatie in het voorbeeld en de bovengrens per campagne.
Een eenvoudige vuistregel: de stap moet klein blijven ten opzichte van de prijzen in de klasse. Een stap van 1 op prijzen tussen 20 en 100 euro geeft verschillen van 1 tot 5 procent, wat aansluit bij een jaarlijkse inflatie. Een stap van 10 in diezelfde klasse doet dat niet.
De voorinstellingen
Vijf voorinstellingen vullen de niveautabel met één klik in vanaf het tabblad Afrondingsregels.
- Evenwichtig: de standaardinstelling. Tot 10 euro stap 0,50 uitgang 0,40, tot 100 euro stap 1 uitgang 0,90, tot 300 euro stap 5 uitgang 4, daarboven stap 10 uitgang 9. De werkelijke variatie blijft tussen 2 en 5 procent bij een opgegeven 3 procent.
- Hele getallen eindigend op 9: tot 100 euro en daarboven stap 10 uitgang 9. U krijgt precies 59, 89, 569, 899. De afwijkingen bij lage prijzen zijn aanzienlijk.
- Hele getallen eindigend op 4 of 9: stap 5 uitgang 4 onder 100 euro, stap 10 uitgang 9 daarboven. Een veelgebruikt compromis in de retail.
- Decimalen eindigend op ,90: stap 1 uitgang 0,90 onder 100 euro, stap 10 uitgang 9,90 daarboven.
- Geen psychologische afronding: stap 0,01 uitgang 0. Het percentage wordt tot op de cent toegepast.
De voorinstellingen zijn slechts een vertrekpunt. U kunt niveaus vrij toevoegen, verwijderen of aanpassen en daarna opslaan.
Afrondingsrichting en garantie op de verhoging
Richting
- Dichtstbijzijnde psychologische prijs: het aanbevolen gedrag. De berekende prijs schuift naar de dichtstbijzijnde waarde binnen zijn niveau, hoger of lager.
- Altijd naar boven: de prijs gaat systematisch naar de volgende stap omhoog. De marges zijn beschermd, maar de werkelijke verhogingen overschrijden vaak het opgegeven percentage.
- Altijd naar beneden: de prijs zakt naar de vorige stap. Alleen aan te raden bij prijsverlagingen.
Garantie op de verhoging
Bij de richting “dichtstbijzijnde” kan een klein percentage volledig door de afronding worden opgeslokt. Een verhoging van 3 procent op 59 euro geeft 60,77 euro, en de dichtstbijzijnde prijs op een schaal van 10 blijft 59 euro: de prijs beweegt niet.
De optie Laat de afronding de verhoging nooit tenietdoen lost dat op door naar de volgende stap te gaan zolang het resultaat lager dan of gelijk aan de startprijs blijft. Ze werkt alleen bij positieve percentages. Bij een prijsverlaging vinkt u ze uit.
Afronden op de prijs inclusief btw of op de opgeslagen prijs
WooCommerce slaat prijzen exclusief of inclusief btw op, afhankelijk van de instelling Prijzen invoeren inclusief btw. Slaat uw winkel prijzen exclusief btw op en toont ze prijzen inclusief btw, dan levert afronden op de opgeslagen waarde niets leesbaars op voor de klant: 49,17 euro exclusief btw wordt met 20 procent btw getoond als 59,00 euro, terwijl 49,00 euro exclusief btw 58,80 euro oplevert.
De instelling Afronden op biedt twee mogelijkheden:
- De prijs die de klant ziet, inclusief btw: de plugin rekent de opgeslagen prijs om naar inclusief btw via de btw-klasse van het product, past de afronding toe op die waarde en rekent daarna terug naar exclusief btw met vier decimalen vóór het opslaan. Dit is de standaardinstelling.
- De opgeslagen prijs: de afronding wordt rechtstreeks toegepast op de in de database opgeslagen waarde, zonder omrekening.
Slaat uw winkel al prijzen inclusief btw op, of is btw uitgeschakeld, dan geven beide instellingen hetzelfde resultaat. Bij producten die als niet-belastbaar zijn gemarkeerd, vindt geen omrekening plaats.
Een campagne opbouwen
Kaart Verhoging
- Naam van de campagne: optioneel; laat u dit leeg, dan wordt een naam met tijdstempel gegenereerd.
- Percentage: positief voor een verhoging, negatief voor een verlaging. Twee decimalen worden geaccepteerd.
- Actieprijzen: zie het onderdeel verderop.
- Een product overslaan als de werkelijke variatie hoger is dan X procent: het belangrijkste vangnet. Bij een opgegeven 3 procent en een bovengrens van 6 procent wordt elk product waarvan de afronding een verhoging van meer dan 6 procent zou opleveren uit de campagne gehouden, met de reden vermeld in het voorbeeld. Laat het veld leeg om deze controle uit te schakelen.
Kaart Bereik
- Categorieën om op te nemen: laat leeg om de hele catalogus te behandelen. Subcategorieën van de gekozen categorieën worden automatisch meegenomen.
- Categorieën om uit te sluiten: heeft voorrang op het opnemen, inclusief subcategorieën.
- Tags: beperkt tot producten met een van de aangevinkte tags.
- Producttypen: eenvoudig, variabel, extern, gegroepeerd. Vinkt u variabel aan, dan worden de variaties behandeld, niet het bovenliggende product, dat geen eigen prijs heeft.
- Status van de producten: gepubliceerd, concept, privé, in afwachting. Bij variaties telt de status van het bovenliggende product.
- Basisprijs tussen: twee optionele grenzen die op de opgeslagen basisprijs worden getoetst.
- Producten met een lopende actie overslaan: houdt producten met een ingevulde actieprijs buiten de campagne.
- Deze ID’s of SKU’s uitsluiten en Beperken tot deze ID’s of SKU’s: vrije lijsten gescheiden door komma’s, spaties of regeleinden. SKU’s worden bij de selectie omgezet naar identificaties. Bij een variabel product dekt het ID van het bovenliggende product al zijn variaties.
Kaart Afronding
Standaard gebruikt de campagne de algemene regels, die boven aan de kaart worden herhaald. Vink De algemene regels voor deze campagne vervangen aan om de richting, de garantie op de verhoging en de rekenbasis alleen voor deze campagne aan te passen. De niveaus zelf blijven die van de algemene instellingen.
Het vakje Bij het terugdraaien producten overslaan die na het toepassen zijn gewijzigd bepaalt het gedrag van de rollback. Laat het in verreweg de meeste gevallen aangevinkt.
Actieprijzen
Er zijn vier modi. Ze gelden alleen voor producten die daadwerkelijk een actieprijs hebben ingevuld.
- Herberekenen met hetzelfde kortingspercentage: de standaardmodus. Een product van 100 euro dat voor 80 euro wordt aangeboden, behoudt na de verhoging zijn korting van 20 procent. Ook de nieuwe actieprijs gaat door de afronding.
- Hetzelfde percentage toepassen: de actieprijs krijgt exact dezelfde behandeling als de basisprijs.
- Niet aanraken: de actieprijs blijft strikt ongewijzigd. De getoonde korting neemt daardoor automatisch toe.
- De actieprijs verwijderen: de actie wordt verwijderd, samen met de begin- en einddatum.
In alle gevallen geldt: zou de nieuwe actieprijs gelijk worden aan of hoger uitvallen dan de nieuwe basisprijs, dan wordt hij automatisch verwijderd om een inconsistentie in de winkel te voorkomen.
Voorbeeld en toepassing
De knop Nieuwe prijzen voorbekijken start drie opeenvolgende bewerkingen, met een voortgangsbalk:
- Selectie van de producten die aan het bereik voldoen en het vastleggen van de wachtrij.
- Berekening van de nieuwe prijs per regel, in batches.
- Weergave van de tabel en de statistieken.
De tabel toont per regel het product met een link naar de productpagina, de SKU, de huidige prijs, de nieuwe prijs, de werkelijke variatie in procenten, de actieprijs voor en na, en de status. Overgeslagen regels krijgen de status skipped met een reden: gratis product, geen basisprijs, prijs al gelijk aan de doelwaarde, of variatie boven de toegestane limiet.
De knop 50 regels meer laden pagineert de tabel. CSV downloaden exporteert de volledige campagne, inclusief de overgeslagen regels, zodat u offline kunt nalezen of het door iemand anders kunt laten valideren.
Zolang u niet op Toepassen op de catalogus hebt geklikt, is er geen enkele prijs gewijzigd. De campagne blijft raadpleegbaar in de historiek met de status Klaar om toe te passen en kan later alsnog worden uitgevoerd.
Het toepassen gebeurt in batches via de product-API van WooCommerce, wat garandeert dat de getoonde prijs, de interne zoektabel en de caches worden bijgewerkt. Na elke batch worden de betrokken variabele producten opnieuw gesynchroniseerd, zodat de in de winkel getoonde minimum- en maximumprijzen kloppen.
Een campagne terugdraaien
Op het scherm Historiek biedt een campagne met de status Toegepast een knop Terugdraaien. Het herstel verloopt in batches en zet elk product terug op zijn oorspronkelijke basisprijs en actieprijs.
Was de veiligheidsoptie actief bij het aanmaken van de campagne, dan wordt elk product vóór het herstel gecontroleerd: komt de huidige prijs niet meer overeen met de prijs die de campagne heeft toegepast, dan blijft de regel ongemoeid met een duidelijke melding. Zo overschrijft u geen handmatige wijziging die intussen is doorgevoerd.
Een campagne verwijderen wist ook haar herstelgegevens. Een campagne die is toegepast en daarna verwijderd, kan niet meer worden teruggedraaid.
WP-CLI-commando’s
Vier commando’s dekken hetzelfde traject zonder browser, wat past bij zeer grote catalogi en bij deployscripts.
wp df-inflation preview --percent=3 --categories=15,22
wp df-inflation apply --campaign=12 --yes
wp df-inflation apply --percent=4.5 --types=simple,variable --sale=ratio --yes
wp df-inflation revert --campaign=12 --yes
wp df-inflation campaigns
Beschikbare opties: --percent, --name, --categories, --types, --sale (keep, percent, ratio of remove), --campaign en --yes. Het commando preview bouwt de campagne op en toont de statistieken zonder iets weg te schrijven; het geeft de identificatie terug die u met apply hergebruikt.
Algemene instellingen
- Prijsniveaus: de hierboven beschreven tabel, met knoppen om toe te voegen en te verwijderen en met de voorinstellingen.
- Richting en Garantie op de verhoging: standaardwaarden die bij elke nieuwe campagne worden voorgesteld.
- Afronden op: rekenbasis inclusief btw of de opgeslagen prijs.
- Batchgrootte: aantal producten dat per verzoek wordt verwerkt, van 1 tot 200. De standaardwaarde 25 volstaat bij de meeste hostingpakketten. Ga naar 10 bij een overschreden uitvoeringstijd, of naar 50 of 100 op een dedicated server.
- Verwijderen: is het vakje aangevinkt, dan wist het verwijderen van de plugin de twee tabellen en de opties. Niet aangevinkt betekent dat de campagnegegevens een herinstallatie overleven.
Aanpassingen voor ontwikkelaars
Twee filters maken het mogelijk het gedrag van de motor bij te sturen.
// Een afgeronde prijs bijstellen.
add_filter( 'df_inflation_rounded_price', function ( $result, $raw_price, $tier ) {
return $result;
}, 10, 3 );
// De lijst met door een campagne geselecteerde producten aanpassen.
add_filter( 'df_inflation_scope_rows', function ( $rows, $filters ) {
return $rows;
}, 10, 2 );
Alle beheerhandelingen vereisen de capability manage_woocommerce. De AJAX-verzoeken zijn beveiligd met een nonce en controleren die capability aan de serverzijde.
Probleemoplossing
Geen enkel product voldoet aan het bereik
Controleer of de aangevinkte producttypen bij uw catalogus passen en of de beoogde producten een ingevulde basisprijs hebben. Bij een variabel product waarvan alleen de variaties een prijs dragen, moet u het type variabel aanvinken, niet het type eenvoudig.
De voortgangsbalk blijft hangen
Verklein de batchgrootte in de instellingen en start opnieuw. Een batch van 10 producten volstaat bij de meest beperkte hostingpakketten. De browserconsole toont de details van het mislukte verzoek.
De nieuwe prijzen verschijnen niet in de winkel
Leeg de cache van uw cacheplugin en de servercache. De plugin ruimt de WooCommerce-transients van de gewijzigde producten op, maar heeft geen invloed op een paginacache van derden.
De prijzen van variabele producten kloppen niet
De minimum- en maximumprijzen op de pagina van het bovenliggende product komen uit een synchronisatie van WooCommerce. De plugin start die na elke batch. Blijft er een verschil, dan forceert het hulpmiddel WooCommerce, Status, Extra, Producttransients wissen een volledige herberekening.
Een werkelijke variatie die ver boven het opgegeven percentage ligt
Dat is het verwachte gedrag bij een grove schaal. Vul de bovengrens per campagne in om deze producten uit te sluiten, of voeg een fijner niveau toe voor de betrokken prijsklasse.
Verwijderen
De plugin deactiveren verwijdert niets: de campagnes en de herstelgegevens blijven in de database staan. Het volledig verwijderen vanuit de pluginlijst start de opruiming alleen als de bijbehorende optie vóór het verwijderen in de instellingen was aangevinkt.