Verhoog de standaard limiet van variaties voor een product in WooCommerce
In WooCommerce kun je zoveel variaties toevoegen als je wilt! Als je er echter meer dan 30 hebt, zal WooCommerce extra AJAX-aanroepen doen (een extra verzoek aan de backend) om de details voor elke variatie op te halen.
Waarom is de limiet er eigenlijk?
Hoewel het vervelend kan lijken, denk ik dat het goed is om een algemene limiet aan te houden. Het idee is dat wanneer je te veel variaties aanbiedt, het voor de klant erg moeilijk kan worden om een keuze te maken. Als je meer dan 30 variaties hebt, zou je kunnen overwegen om ze op te splitsen in meerdere producten, zodat het voor bezoekers minder verwarrend wordt.
Ook technish gezien wordt je server zwaarder belast en kan de webshop trager worden. Hoe meer oproepen, hoe harder de server moet werken.
Uitzonderingen
In sommige gevallen is 30 variaties echter niet veel! Schoenen en kledingstukken kunnen bijvoorbeeld gemakkelijk meer dan 30 variaties hebben en toch volkomen acceptabel zijn. Dat komt omdat het minder een keuze is voor de klant en meer een kwestie van uitzoeken welke maat ze nodig hebben. In dit geval weegt het belang van de klant zwaarder. Dit kan weer tot een betere conversie leiden. Zo kan het zijn dat je toch bijvoorbeeld 100 variaties wil aanbieden.
Het kan dus wel, maar het kan tot problemen leiden.
Probleem in weergave
Onlangs kwam ik dit weer tegen in mijn werk. Een product met 80 variaties werkte niet correct. Na wat onderzoek vond ik het probleem. De extra Ajax-aanroepen gaven een foutmelding.
De fetching failed. Kan een plugin conflict zijn, maar in dit geval kan de extra AJAX-aanroepen niet volledig uitgevoerd worden.
De standaardlimiet wijzigen
Om dit probleem op de te lossen gaan we de zogenaamde Ajax threshold verhogen.
Om de limiet te wijzigen gebruiken we een script.
Voeg deze code toe om de woocommerce_ajax_variation_threshold te verhogen.
WooCommerce versie: 9.1.2
<?php
add_filter( ‘woo_variation_swatches_global_ajax_variation_threshold_max’, ‘woo_variation_swatches_global_ajax_variation_threshold_max_edit’, 10, 2 );
function woo_variation_swatches_global_ajax_variation_threshold_max_edit( $size, $product ){
return 700;
}
add_filter( ‘woocommerce_ajax_variation_threshold’, function($qty, $product){
return 300;
}, 10, 2 );
Hulp nodig bij jouw webshop of heb je een oplossing voor je probleem nodig?
Bel of mail mij gerust.