Table of contents
Variable pricing is a core feature of Easy Digital Downloads that allows you to define custom price options that are specific to a single product. This functionality is a subset of
creating a product.
While variable pricing is optional, many stores depend on its functionality to provide a range of purchase options for their customers. Variable pricing oftentimes makes more sense than having separate, related product entries.
Below, we’ll outline what variable pricing is [and is not], its additional settings, front-end behavior, use cases, extension integrations, and more.
What is variable pricing?
As mentioned above, variable pricing gives you the ability to add multiple purchase options to a single product in your store. Let’s look at the two basic ways to implement variable pricing.
Standard variable pricing
When setting up a new product, variable pricing is not enabled by default. The price of your new product is set to $0.00 by default and will remain as such until you change the price, or enable variable pricing.
To enable variable pricing, you must tick the checkbox labeled Enable variable pricing in the Download Prices section.

Upon enabling variable pricing, a new interface will appear that allows you to enter information about a pricing option one row at a time. At a minimum, each row needs an option name. If the price field is left blank, the price for that option is assumed to be $0.00.
Additionally, after creating multiple pricing options, you can set one particular option as the default by clicking the radio button for the corresponding price option under the
Default column.
Here’s an example of a product that uses variable pricing with three price options, one of which is set as the default selection for customers.

This product configuration will allow the customer to purchase either Option One, Option Two, or Option Three. Option Two will be selected by default, though the customer can easily select a different option. The front-end purchase button display will look similar to this:

Notice that the values you provide for
Option Name and Price are used as the labels for the radio buttons. Likewise, the price option you selected as Default will automatically be selected when the page loads.
From here, the customer can either click the purchase button, leaving the selection as-is, or select a different price option before proceeding.
In this standard configuration, only one price option can be selected by the customer. That leads us to the next setting you may have seen in previous screenshots.
Multi-option purchase mode
Wanneer u het selectievakje aanvinkt om variabele prijzen in te schakelen, wordt er daaronder nog een selectievakje weergegeven met de tekst
Modus voor meerdere opties inschakelen. Hiermee kunnen meerdere prijsopties tegelijk aan uw winkelwagen worden toegevoegd.
Zoals de tekst aangeeft, stelt de modus voor meerdere opties de klant in staat om op een bepaald moment meer dan één prijsoptie te selecteren voor aankoop. Het aanvinken van dit selectievakje verandert niets op het bewerkscherm met betrekking tot hoe u uw prijsopties configureert. Het verandert echter de aankoopknop aan de voorkant, zodat de prijsopties worden weergegeven als selectievakjes in plaats van als radioknoppen.

Deze eenvoudige wijziging maakt gebruik van de aard van HTML. In één HTML-formulier maken gegroepeerde selectievakjes meerdere selecties tegelijk mogelijk, terwijl gegroepeerde radioknoppen dat niet doen.
Eenvoudig gezegd bepaalt de status van uw instelling voor de modus voor meerdere opties of uw klanten al dan niet meer dan één prijsoptie [van een enkel product] tegelijk kunnen kopen.
Opmerking: de volgorde van de prijsopties aan de voorkant kan worden bepaald door op het richtingpictogram te klikken en te slepen dat links van elke prijsoptie op het bewerkscherm verschijnt.
Associated product files
Prijsopties hoeven niet gekoppeld te zijn aan productbestanden, omdat Easy Digital Downloads zelf geen bestanden vereist voor producten. Wanneer productbestanden echter aanwezig zijn, heeft u controle over hoe deze bestanden worden gekoppeld aan uw nieuwe prijsopties.
Toen u eerder het selectievakje aanvinkte om variabele prijzen in te schakelen, vond er een andere wijziging in de interface plaats die u misschien niet hebt opgemerkt. In de sectie
Downloadbestanden werd een nieuwe kolom genaamd Prijs toewijzing toegevoegd aan het gebied Bestandsdownloads, waardoor u een productbestand rechtstreeks kunt koppelen aan een reeds aangemaakte prijsoptie.

Merk op dat het selectiemenu Prijs toewijzing, dat voor elke productbestandrij wordt weergegeven, een gevulde lijst van uw gedefinieerde prijsopties bevat, evenals een selectie
Alle. Alle, de standaardselectie, betekent dat ongeacht welke prijsoptie de klant koopt, dit bestand met de aankoop wordt gedistribueerd. Als u de Prijs toewijzing niet configureert, is dit het standaardgedrag.
Om een productbestand te koppelen aan één specifieke prijsoptie, selecteert u deze uit dit menu. Als u dit doet, garandeert u dat het bestand alleen aan de klant wordt gedistribueerd als de bijbehorende prijsoptie is gekocht. Geen enkele andere prijsoptieaankoop zal dat bestand distribueren.
Hier is een voorbeeld van een product met één algemeen productbestand en een extra productbestand dat aan elke prijsoptie is gekoppeld:

Met deze configuratie, ervan uitgaande dat de klant slechts één prijsoptie koopt, ontvangt hij of zij altijd twee productbestanden, ongeacht welke prijsoptie is gekocht.
Variable pricing with Bundles
In het artikel Producten maken leerde u over de Producttypeopties, waarmee u een product kunt instellen op Standaard type, of kunt wijzigen in een Bundel.
Bundels zijn een speciaal type product waarmee je één product kunt configureren als een manier om toegang te krijgen tot meerdere andere producten. Als Product A, Product B en Product C bijvoorbeeld allemaal afzonderlijke productvermeldingen zijn met hun eigen prijzen en bestanden, kun je Bundel A maken als een manier om de bovengenoemde individuele producten in één transactie te kopen.
Variabele prijzen werken ook met bundels. Niets verandert aan de manier waarop je variabele prijzen configureert voor Bundel A, of een van de andere drie producten. Echter, na het wijzigen van de Product Type Optie op de bundel, worden de bestandsuploadvelden vervangen door keuzemenu's gevuld met alle andere producten uit je winkel, samen met hun prijsopties.
Conceptueel is dit hetzelfde als het Standaard producttype, in de zin dat je selecteert wat er wordt gekocht. Het belangrijkste verschil is dat je bij het configureren van een bundel geen bestanden selecteert, maar in plaats daarvan volledige producten en/of hun prijsopties selecteert.
Het doel hier is om Bundel A prijsopties te koppelen aan volledige onderliggende producten, of aan de prijsopties van die onderliggende producten. De onderstaande schermafbeelding schetst een veelvoorkomende configuratie.

Om verder te illustreren wat dit betekent, zetten we de bovenstaande configuratie in woorden.
- Het kopen van Optie 1 geeft je toegang tot Product A – Optie 1 en Product B – Optie 1
- Het kopen van Optie 2 geeft je toegang tot Product A – Optie 2 en Product B – Optie 2
Bovendien, als je Product B zelf zou selecteren in plaats van een van zijn prijsopties, dan zouden alle prijsopties van Product B worden opgenomen in de aankoop van de bijbehorende Bundel A-aankoop.
Ten slotte, voor elk product dat is geselecteerd om te worden opgenomen in een bundel, of het nu een volledig product is of de prijsopties ervan, worden de productbestanden die aan het product zijn gekoppeld (en de bijbehorende prijsopties) toegankelijk volgens hun configuratie na aankoop van de bundel.
Zoals je ziet, is de configuratie van variabele prijzen volledig optioneel, maar zit deze ook vol met standaardgedrag en aanvullende instellingen waarmee je eenvoudig prijsopties kunt maken die aan jouw specifieke behoeften voldoen. In de eenvoudigste vorm dekt de bovenstaande informatie variabele prijzen. Laten we nu behandelen hoe je variabele prijzen in de echte wereld kunt gebruiken.
Veelvoorkomende gebruiksscenario's voor variabele prijzen
Er zijn tientallen, zo niet honderden manieren om variabele prijzen te gebruiken. Het Easy Digital Downloads-team ziet echter bepaalde gebruiksscenario's steeds opnieuw. Hier zijn een paar gevallen die gebruik maken van alle aanvullende instellingen.
Selling music albums
Dit is waarschijnlijk een van de meest voorkomende gebruiksscenario's voor variabele prijzen. Onafhankelijke muzikanten gebruiken Easy Digital Downloads om hun muziekalbums te verkopen. Net als de populaire service iTunes willen deze muzikanten een compleet album kunnen verkopen, evenals individuele nummers. Variabele prijzen met multi-optie aankoopmodus is daar perfect voor.
Als we dit plannen voordat we het product configureren, is het duidelijk dat de klant de optie moet hebben om een enkel nummer, meerdere nummers tegelijk of het hele album met alle nummers inbegrepen te kopen. Vanuit een planningsperspectief zou de productlijst er als volgt uitzien:
- nummer 1
- nummer 2
- nummer 3
- volledig album
Merk op dat het volledige album een optie is, net als de individuele nummers. Er is geen hiërarchie nodig voor prijsopties. Het zijn de productbestanden die de structuur bepalen van wat de klant koopt. Bekijk deze productconfiguratie op basis van de bovenstaande plannen:

De aankoopmodus voor meerdere opties is ingeschakeld om meerdere individuele nummers tegelijk te kunnen kopen. De
Volledig album prijsoptie is ingesteld als standaard, omdat dat de voorkeursaankoop is. Individuele productbestanden zijn gekoppeld aan de juiste prijsopties.
Het belangrijke is dat het
volledig-album productbestand (doorgaans een gecomprimeerde .zip-map) alle individuele nummers bevat. Easy Digital Downloads bevat de andere bestanden niet voor u in één download. U zou de productbestanden gewoon op de juiste manier verpakken voordat u ze naar uw product uploadt.
Uw album is nu klaar om gedistribueerd te worden met variabele prijzen en de aankoopmodus voor meerdere opties.

Pro tip: voeg nog een productbestand toe voor de cover art en stel de Prijs toewijzing in op Alles. 😉
Licensing options
U herkent de licentieopties misschien van onze eigen website. Met de extensie Software Licensing bieden we drie prijsopties waarmee klanten kunnen bepalen hoeveel licentie-activaties ze willen ontvangen voor de extensies die ze kopen.
Zoals u misschien al geraden had, is er niets in de standaard gebruikersinterface voor variabele prijzen waarmee u details zoals licentie-activaties kunt configureren voor een product dat wordt verkocht. Deze aanvullende opties bestaan alleen wanneer ze programmatisch door extensies worden toegevoegd.
Hier is een overzicht van de variabele prijsopties wanneer de extensie Software Licensing is geactiveerd:

Hoewel er veel meer te configureren is bij het gebruik van Software Licensing, illustreert de bovenstaande schermafbeelding de wijzigingen die zijn aangebracht in de rijen met variabele prijzen wanneer de extensie is geactiveerd. Als deze onaangeroerd blijven voor een niet-gelicentieerd product, verandert het gedrag dat eerder in het artikel is beschreven niet.
De schermafbeelding laat echter zien hoe een extensie nieuwe velden en instellingen kan toevoegen waarmee u specifieke details over een variabele prijsoptie kunt definiëren. Hoewel dit nog steeds één product in totaal is, zorgen de aanvullende instellingen die Software Licensing biedt ervoor dat elke prijsoptie zich gedraagt volgens uw gekozen configuratie.
Recurring payment price options
Veel andere extensies voegen velden toe aan de rijen met prijsopties en interageren er logisch mee op basis van de benodigde functionaliteit. Een paar van hen wijzigen zelfs de weergave van prijsopties op de front-end op basis van de back-end configuratie, zoals onze Recurring Payments extensie.
Wanneer een prijsoptie is ingesteld als een terugkerende betaling, worden aanvullende velden beschikbaar gesteld om de specifieke details van alleen het terugkerende gedrag van die prijsoptie in te stellen.

Met die configuratie, merk op hoe de weergave van prijsopties op de front-end is gewijzigd om de abonnementsdetails weer te geven:

Zoals u kunt zien, zijn de mogelijkheden eindeloos.
Veelgestelde vragen en problemen over variabele prijzen
Hieronder vindt u antwoorden op enkele van de meest voorkomende vragen over variabele prijzen. Als u uw probleem hieronder niet ziet staan, neem dan contact op met de ondersteuning voor hulp.
Als ik een nieuw productbestand toewijs aan een prijsoptie die al is gekocht, krijgen mijn klanten dan toegang tot het nieuwe bestand?
Ja.
Kan ik een standaard variabele prijsconfiguratie hebben die automatisch wordt ingesteld voor alle nieuwe producten?
Hoewel Easy Digital Downloads deze functionaliteit niet biedt, is deze beschikbaar via een extensie van derden. https://wordpress.org/plugins/easy-digital-downloads-variable-defaults/ Neem contact op met de maker van de extensie als u vragen of opmerkingen heeft.
Ik beheer een stockfotosite. Als ik één afbeelding upload, kan deze dan de prijsopties instellen op basis van automatisch aangemaakte afbeeldingsgroottes?
Nee. Of we het nu hebben over prijsopties, productbestanden, of beide, er is geen manier om één enkel afbeeldingsbestand te uploaden en automatisch verschillende afbeeldingsgroottes te laten maken die als aparte prijsopties ingesteld kunnen worden. De prijsopties en bestandsassociaties moeten handmatig worden ingesteld, ongeacht het bestandstype van het product.
Kan ik gedetailleerde statistieken en inkomstenrapporten bekijken voor variabele prijsopties?
Op dit moment niet. Deze verbetering heeft een hoge prioriteit op onze ontwikkelingslijst. Op dit moment zijn de prestaties van prijsopties echter inbegrepen in de statistieken van het hele product.
Is er een limiet aan het aantal prijsopties dat ik kan hebben?
Technisch gezien niet. We stellen geen limiet aan het aantal prijsopties dat een enkel product kan hebben. Er wordt echter meestal een aanpasbare limiet opgelegd op serverniveau.
Het productbewerkingsscherm is, net als de meeste WordPress-beheerschermen, simpelweg een groot HTML-formulier. Elke keer dat u de pagina opslaat/bijwerkt, klikt u in wezen op de "verzenden"-knop van een formulier. Dat betekent dat elke instelling op het scherm een formulierveld is, of het nu de producttitel is, het selectievakje voor het inschakelen van variabele prijzen, of zelfs het tekstgebied voor downloadnotities.
Hoewel de overgrote meerderheid van de gebruikers nooit een probleem zal hebben, zijn er sommigen die honderden prijsopties en bijbehorende productbestandvermeldingen nodig hebben. Gezien het feit dat elke individuele prijsoptie en rij voor het uploaden van bestanden meerdere individuele instellingen bevat, kan het aantal verzonden velden snel oplopen tot honderden, zo niet duizenden.
Op uw server waar PHP is geconfigureerd, zijn er verschillende instellingen en waarden die uw host beheert. Een van deze instellingen heetmax_input_vars en de waarde ervan is meestal 1000. Dat wil zeggen, het maximale aantal invoerwaarden (formuliervelden) dat tegelijkertijd kan worden verzonden is 1000. Zoals hierboven beschreven, kunt u die limiet overschrijden.
In bepaalde gevallen zal het bereiken van die limiet geen enkele foutmelding geven. In plaats daarvan worden sommige van de velden op de pagina niet opgeslagen. Wat betreft variabele prijzen en uw bijbehorende bestanden, ziet u mogelijk veel van uw rijen correct opgeslagen tot een bepaald aantal, waarbij de rest ontbreekt.
Als die situatie zich voordoet, moet u contact opnemen met uw host en vragen om "max_input_vars te verhogen naar een hogere waarde." In het verleden heeft een verhoging naar 3000 het probleem voor velen opgelost. Vraag een getal aan dat u schat dat de beperking voor uw behoeften zal wegnemen.
Werkt deAangepaste Prijzenextensie met variabele prijzen?
Ja.
Werkt deFrontend Inzendingenextensie ondersteunt variabele prijzen?
Ja.
Kan ik artikelhoeveelheden gebruiken met variabele prijzen?
Ja.
Kan ik de [purchase_link] shortcode gebruiken voor een variabele prijsoptie?
Ja. Zie de documentatie voor hoe de price_id parameter te gebruiken.
Kan ik een prijsoptie aan de winkelwagen toevoegen met een aangepaste add-to-cart URL?
Ja. U kunt echter slechts één prijsoptie van één product per URL toevoegen. Zie de documentatie voor hoe u de URL met een prijsoptie kunt samenstellen.
Als een klant een variabele prijsoptie aan de winkelwagen toevoegt en besluit opties te wijzigen, hoe werkt dat dan?
Standaard is de enige manier om opties te wijzigen nadat ze aan de winkelwagen zijn toegevoegd, om het product uit de winkelwagen te verwijderen en vervolgens de juiste selectie opnieuw toe te voegen. Een veel betere oplossing is te vinden in de Variable Pricing Switcher extensie.
Kan ik variabele prijsopties weergeven als een selectiemenu in plaats van een lijst met opties?
Dit vereist aangepaste ontwikkeling. Er is echter al een code snippet geschreven die het werk zou moeten doen.
