{"id":114,"date":"2026-08-21T12:22:08","date_gmt":"2026-08-21T12:22:08","guid":{"rendered":"https:\/\/klangland.dk\/?page_id=114"},"modified":"2026-08-21T19:40:46","modified_gmt":"2026-08-21T19:40:46","slug":"woocommerce-filter","status":"publish","type":"page","link":"https:\/\/klangland.dk\/en\/woocommerce-filter\/","title":{"rendered":"Woocommerce Filter"},"content":{"rendered":"<div class=\"kl-page\">\n\n\t<div class=\"kl-page-inner\">\n\n\t\t<nav class=\"kl-page-nav\">\n\n\t\t\t<a href=\"\/en\/\">\u2190 Klangland<\/a>\n\n\t\t\t<div class=\"kl-page-nav-links\">\n\t\t\t\t<a href=\"\/en\/musik\/\">Music<\/a>\n\t\t\t\t<a class=\"is-current\" href=\"\/en\/udvikling\/\">Development<\/a>\n\t\t\t\t<a href=\"\/en\/sound-design\/\">Sound Design<\/a>\n\t\t\t<\/div>\n\n\t\t<\/nav>\n\n\n\t\t<header class=\"kl-page-header\">\n\n\t\t\t<p class=\"kl-case-kicker\">\n\t\t\t\tCase \u00b7 Cyber Farm\n\t\t\t<\/p>\n\n\t\t\t<h1 class=\"kl-page-title\">\n\t\t\t\tFiltering built around the store\n\t\t\t<\/h1>\n\n\t\t\t<p class=\"kl-page-lead\">\n\t\t\t\tCyber Farm needed a faster and simpler way to navigate a large catalogue of professional audio equipment. Rather than building further on the existing WooCommerce filters, the solution became a custom filtering system.\n\t\t\t<\/p>\n\n\t\t<\/header>\n\n\n\t\t<div class=\"kl-page-content\">\n\n\n\t\t\t<section class=\"kl-section\">\n\n\t\t\t\t<div class=\"kl-section-label\">\n\t\t\t\t\tThe challenge\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"kl-section-body\">\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tAn online store specialising in professional audio equipment can quickly become complex. A single category may contain products from many brands, across different price ranges and with several types of availability, while customers expect to be able to narrow down the selection quickly.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tCyber Farm\u2019s existing filtering was based on general WooCommerce functionality. It could do the job, but as the store and catalogue grew, it became increasingly clear that the solution wasn\u2019t built specifically around the way Cyber Farm works.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tAt the same time, performance had become an important part of the problem. A filter isn\u2019t much use if it makes the rest of the store slower.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t<\/div>\n\n\t\t\t<\/section>\n\n\n\t\t\t<section class=\"kl-section\">\n\n\t\t\t\t<div class=\"kl-section-label\">\n\t\t\t\t\tThe approach\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"kl-section-body\">\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tInstead of starting with the question of which existing plugin could replace the old one, the starting point became: What do customers actually need?\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tThat made it possible to strip away a large amount of generic functionality and concentrate the solution around the filters that actually make sense for Cyber Farm\u2019s store.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tThe initial focus was therefore on the essentials: brand, price and availability. At the same time, the architecture was designed so that more product-specific filters can be added later, when there\u2019s a genuine need for them.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t<\/div>\n\n\t\t\t<\/section>\n\n\n\t\t\t<section class=\"kl-section\">\n\n\t\t\t\t<div class=\"kl-section-label\">\n\t\t\t\t\tPerformance\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"kl-section-body\">\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tFiltering may sound like a small feature. On a large WooCommerce store, it can be quite the opposite.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tEvery selection can involve product data, categories, brands, prices and stock information. If that isn\u2019t handled properly, something as simple as a filter panel can end up affecting the performance of the entire store.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tThat\u2019s why speed was treated as part of the functionality itself, rather than something to optimise afterwards.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t<\/div>\n\n\t\t\t<\/section>\n\n\n\t\t\t<section class=\"kl-section\">\n\n\t\t\t\t<div class=\"kl-section-label\">\n\t\t\t\t\tAvailability\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"kl-section-body\">\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tAvailability is a good example of why a custom solution can be useful.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tFor the customer, the question is relatively simple: Can I buy this product?\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tFor the store, the answer can be more nuanced. A product might be physically in stock, available from a remote warehouse or available through another valid fulfilment route. That doesn\u2019t necessarily fit neatly into a simple in-stock \/ out-of-stock model.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tThe filter can therefore work with Cyber Farm\u2019s own availability logic, rather than forcing the store to adapt to the filter\u2019s.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t<\/div>\n\n\t\t\t<\/section>\n\n\n\t\t\t<section class=\"kl-section\">\n\n\t\t\t\t<div class=\"kl-section-label\">\n\t\t\t\t\tUser experience\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"kl-section-body\">\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tThe technical side is only half the job.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tFiltering also needs to be easy to understand, take up as little space as possible and work naturally alongside categories, sorting and the product listing.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tThis is especially important on mobile, where traditional e-commerce filters can quickly take up more space than the products the customer actually came to see.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tThat\u2019s why desktop and mobile are treated as two different user experiences rather than simply the same solution at different widths.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t<\/div>\n\n\t\t\t<\/section>\n\n\n\t\t\t<section class=\"kl-section\">\n\n\t\t\t\t<div class=\"kl-section-label\">\n\t\t\t\t\tWooCommerce\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"kl-section-body\">\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tThe solution is developed directly for WordPress and WooCommerce, using the product data Cyber Farm already works with.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tThis means less reliance on a generic filtering layer and greater control over how products, brands, categories, prices and availability are interpreted.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tAt the same time, the system can evolve alongside the store instead of having to be replaced every time a new requirement appears.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t<\/div>\n\n\t\t\t<\/section>\n\n\n\t\t\t<section class=\"kl-section\">\n\n\t\t\t\t<div class=\"kl-section-label\">\n\t\t\t\t\tThe result\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"kl-section-body\">\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tThe result isn\u2019t a filter with as many options as possible. It\u2019s a filtering system where the functionality that matters can be precise, fast and tailored to the store it serves.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tFor Cyber Farm, that means greater control over both the user experience and the technical solution behind it.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tAnd just like the custom search solution, the point is ultimately bigger than the feature itself: when an online store has specific needs, the answer doesn\u2019t always have to be another off-the-shelf plugin.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t<\/div>\n\n\t\t\t<\/section>\n\n\n\t\t\t<section class=\"kl-section\">\n\n\t\t\t\t<div class=\"kl-section-label\">\n\t\t\t\t\tWhat\u2019s next\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"kl-section-body\">\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tThe filter is built as a solution that can evolve gradually. New filter types and new ways of navigating the catalogue can be added when they create genuine value.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\tThat\u2019s also how I prefer to approach development: start with the actual problem, build what\u2019s needed and let the solution grow from there.\n\t\t\t\t\t<\/p>\n\n\t\t\t\t\t<a class=\"kl-text-link\" href=\"\/en\/kontakt\/\">\n\t\t\t\t\t\tDoes your online store have a problem that an off-the-shelf solution doesn\u2019t quite solve? Get in touch \u2192\n\t\t\t\t\t<\/a>\n\n\t\t\t\t<\/div>\n\n\t\t\t<\/section>\n\n\n\t\t<\/div>\n\n\t<\/div>\n\n<\/div>","protected":false},"excerpt":{"rendered":"<p>\u2190 Klangland Musik Udvikling Sound Design Case \u00b7 Cyber Farm Filtrering bygget til webshoppen Cyber Farm havde brug for en hurtigere og mere enkel m\u00e5de at navigere i et stort sortiment af professionelt lydudstyr. I stedet for at bygge videre p\u00e5 de eksisterende WooCommerce-filtre blev l\u00f8sningen et specialudviklet filtersystem. Udfordringen En webshop med professionelt lydudstyr &#8230; <a title=\"Woocommerce Filter\" class=\"read-more\" href=\"https:\/\/klangland.dk\/en\/woocommerce-filter\/\" aria-label=\"Read more about Woocommerce Filter\">Read more<\/a><\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_seopress_titles_title":"WooCommerce Filter Plugin \u2014 Cyber Farm Case \u2014 Klangland","_seopress_titles_desc":"Case story om et specialudviklet WooCommerce filtersystem til Cyber Farm med fokus p\u00e5 performance, brands, pris, lagerstatus og brugeroplevelse.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","footnotes":""},"class_list":["post-114","page","type-page","status-publish"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/klangland.dk\/en\/wp-json\/wp\/v2\/pages\/114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/klangland.dk\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/klangland.dk\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/klangland.dk\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/klangland.dk\/en\/wp-json\/wp\/v2\/comments?post=114"}],"version-history":[{"count":3,"href":"https:\/\/klangland.dk\/en\/wp-json\/wp\/v2\/pages\/114\/revisions"}],"predecessor-version":[{"id":146,"href":"https:\/\/klangland.dk\/en\/wp-json\/wp\/v2\/pages\/114\/revisions\/146"}],"wp:attachment":[{"href":"https:\/\/klangland.dk\/en\/wp-json\/wp\/v2\/media?parent=114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}