Waarom filtering soms niet werkt bij variabele artikelen

Een klant vroeg ons waarom, bij het selecteren van een producteigenschap in WooCommerce, de overige eigenschappen niet werden bijgewerkt. Dit leidde tot verwarring en frustratie, omdat bezoekers alle eigenschappen konden kiezen, ook als bepaalde combinaties niet beschikbaar waren.

De oorzaak achterhalen

Bij het inspecteren van de productpagina zagen we dat de parameter data-product_variations de waarde false had. Normaal bevat deze parameter informatie over de beschikbare variaties van het product, die ervoor zorgt dat alleen bestaande combinaties geselecteerd kunnen worden.

WooCommerce gebruikt de functie woocommerce_variable_add_to_cart() om variabele producten weer te geven. Deze functie haalt eerst het aantal variaties op en bepaalt vervolgens, op basis van het aantal variaties, via het filter woocommerce_ajax_variation_threshold, of deze informatie wordt meegestuurd. Standaard ligt deze drempel op 30 variaties. Het aantal variaties van het product van onze klant was meer dan 100. Dit was dan ook de reden dat WooCommerce geen filtering meer toepast op de beschikbare variaties.

De oplossing(en)

Omdat WooCommerce standaard bij meer dan 30 variaties geen variatiegegevens meestuurt naar de productpagina, werden de combinaties niet goed bijgewerkt. Er zijn verschillende manieren om dit probleem op te lossen. Een paar opties zijn:

  • Drempel verhogen: Door de waarde van het filter woocommerce_ajax_variation_threshold te verhogen, kunnen meer variaties worden weergegeven.
  • Variaties beperken: Het aantal variaties terugbrengen tot 30 of minder, zodat ze allemaal automatisch zichtbaar zijn.
  • Alternatieve productweergave: Het product omzetten naar een gegroepeerde productstructuur of een andere opzet, waardoor de eigenschappen op een andere manier worden weergegeven.

 

Welke oplossing de beste is, ligt uiteraard geheel aan de situatie en aan de wensen van de klant.

Foto van Harm Jakob Tolsma

Harm Jakob Tolsma

Harm Jakob werkt sinds 2017 bij Plus Automatisering als PHP developer. Met opleidingen in Technische Informatica en Media Management versterkt Harm Jakob de afdeling Webdiensten door WordPress en WooCommerce plugins te schrijven, maar ook maatwerkapplicaties in CodeIgniter zijn voor hem gesneden koek. Met name aan de technische kant van het werk als developer vindt Harm Jakob zijn plezier. Je zult hier daarom vaak technische blogposts van hem tegenkomen.