{"id":274,"date":"2025-09-21T23:38:23","date_gmt":"2025-09-21T23:38:23","guid":{"rendered":"https:\/\/topsoiltippers.co.za\/?post_type=product&#038;p=274"},"modified":"2026-04-25T20:40:15","modified_gmt":"2026-04-25T20:40:15","slug":"sifted-filling","status":"publish","type":"product","link":"https:\/\/topsoiltippers.co.za\/af\/shop\/sifted-filling\/","title":{"rendered":"Gesifte Vulling (Skoon Opvulgrond) \u2013 Klipvrye Ondergrond"},"content":{"rendered":"<p><strong>Get the Level Without the Rocks.<\/strong><\/p>\n<p><strong>Sifted Filling<\/strong> is the smart choice when &#8220;Normal Filling&#8221; is too rough, but &#8220;Topsoil&#8221; is too expensive for the volume you need. We take standard red fill material and pass it through a screen to remove rocks, roots, and clods.<\/p>\n<p><strong>Why Choose Sifted Filling?<\/strong><\/p>\n<p><strong>Smooth Finish:<\/strong> Because the rocks are removed, it spreads easily and compacts smoothly. You won&#8217;t be raking out stones all day.<br \/>\n<strong>Cost-Effective:<\/strong> It is significantly cheaper than Sifted Topsoil, making it perfect for the &#8220;bulk&#8221; of a filling job.<br \/>\n<strong>Compaction:<\/strong> It packs down firmly, providing a stable base for landscaping features.<\/p>\n<p><strong>Application Guide:<\/strong><\/p>\n<p><strong>Leveling Lawns:<\/strong> Use this to fill deep dips in your lawn area. It provides a smooth base.<br \/>\n<strong>Under Turf:<\/strong> A great sub-base before laying instant lawn (just add a thin layer of compost\/topsoil on top for the roots).<br \/>\n<strong>Raising Beds:<\/strong> Use this to fill the bottom 80% of a raised garden bed, then top it off with good Garden Soil.<\/p>\n<p>\u26a0\ufe0f <strong>Important Usage Warning:<\/strong> Although it is sifted and looks clean, this is still Sub-Soil, not Topsoil. It has low nutritional value.<\/p>\n<p><strong>Do not plant directly into it.<\/strong><\/p>\n<p>Always plan to put a 5cm layer of <strong>Sifted Topsoil<\/strong> or <strong>Lawn Dressing<\/strong> on top of this filling to give your grass\/plants a healthy start.<\/p>\n<p><strong>Delivery:<\/strong> We deliver bulk loads of Sifted Filling to Pretoria East, ideal for large landscaping projects<\/p>\n<p><strong>Common Questions:<\/strong><\/p>\n<p><strong>What is the difference between Sifted Filling and Normal Filling?<\/strong> <strong>Normal Filling<\/strong> comes straight from the ground and contains rocks and lumps. <strong>Sifted Filling<\/strong> goes through a machine to remove the rocks. If you are filling a deep hole, use Normal. If you are leveling the surface for grass, use Sifted.<br \/>\n<strong>Is this the same as Topsoil?<\/strong> No. Topsoil is darker and contains nutrients for plants. Sifted Filling is redder, harder, and has very few nutrients. Think of Sifted Filling as the &#8220;mattress&#8221; and Topsoil as the &#8220;sheet.&#8221;<br \/>\n<strong>Can I lay instant lawn on this?<\/strong> Yes, BUT we highly recommend spreading a thin layer of <strong>Compost<\/strong> or <strong>Fertilizer<\/strong> over the sifted filling before laying the sods. This encourages the roots to bite into the soil.<\/p>\n<p><strong>Disclaimer:<\/strong> At Topsoil Tippers, we strive to ensure that the products you receive match the images and descriptions provided. However, as our materials are sourced from various suppliers, there may be slight variations in color, texture, and composition. Rest assured, we exercise the utmost care to provide products that meet your expectations and are as close to the pictures as possible. Let us help you bring your projects to life with quality products and exceptional service!<\/p>","protected":false},"excerpt":{"rendered":"<p style=\"margin-bottom: 15px;\">\n    <strong style=\"color: #25D366; font-size: 22px;\">\ud83d\udc47 Scroll down to calculate required quantities or ADD TO BASKET<\/strong>\n<\/p>\n<p>The budget-friendly clean option. Standard red sub-soil that has been screened to remove rocks and debris. Ideal for leveling ground where you need a smooth surface without the cost of premium topsoil.<br \/>\n<style>\r\n    .ts-vol-calc-wrapper * { box-sizing: border-box; }\r\n    .ts-vol-calc-wrapper input[type=\"number\"] { margin-bottom: 0 !important; box-shadow: none !important; border: 1px solid #ccc !important; background: #fff !important; height: 45px !important; }\r\n    .vis-stage-vol { height: 240px; display: flex; align-items: center; justify-content: center; background: #fafafa; border: 1px inset #eaeaea; border-radius: 8px; margin-bottom: 20px; overflow: hidden; perspective: 800px; }\r\n    .shape-m3 { position: relative; width: 0px; height: 0px; transform-style: preserve-3d; transform: rotateX(-20deg) rotateY(-40deg); transition: all 0.4s ease; opacity: 0; }\r\n    .cube-face { position: absolute; border: 2px solid #8b6b3d; top: 0; left: 0; transition: all 0.4s ease; transform-style: preserve-3d; }\r\n    .cube-top { background: rgba(225, 200, 150, 0.85); }\r\n    .cube-front { background: rgba(200, 170, 120, 0.95); }\r\n    .cube-right { background: rgba(180, 150, 100, 0.9); }\r\n    .dim-badge-vol { position: absolute; background: rgba(255, 255, 255, 0.95); padding: 5px 8px; border-radius: 4px; font-size: 14px; font-weight: 800; box-shadow: 0 2px 5px rgba(0,0,0,0.15); border: 1px solid rgba(0,0,0,0.1); white-space: nowrap; pointer-events: none; color: #8b6b3d;}\r\n<\/style>\r\n\r\n<div class=\"ts-vol-calc-wrapper\" style=\"background: #ffffff; padding: 25px; border-radius: 12px; border: 1px solid #e0e0e0; box-shadow: 0 4px 15px rgba(0,0,0,0.05); color: #333; margin-bottom: 20px;\">\r\n    <h3 style=\"color: #2d5a27; margin-top: 0; font-size: 18px; margin-bottom: 15px; font-weight: bold;\">Calculate How Much You Need<\/h3>\r\n\r\n    <div class=\"vis-stage-vol\">\r\n        <div class=\"shape-m3\">\r\n            <div class=\"cube-top cube-face\"><\/div>\r\n            <div class=\"cube-front cube-face\">\r\n                <div class=\"badge-3d-w dim-badge-vol\" style=\"bottom: -32px; left: 50%; transform: translateX(-50%);\"><\/div>\r\n                <div class=\"badge-3d-d dim-badge-vol\" style=\"left: -65px; top: 50%; transform: translateY(-50%);\"><\/div>\r\n            <\/div>\r\n            <div class=\"cube-right cube-face\">\r\n                <div class=\"badge-3d-l dim-badge-vol\" style=\"bottom: -32px; left: 50%; transform: translateX(-50%);\"><\/div>\r\n            <\/div>\r\n        <\/div>\r\n        <span class=\"placeholder-vol\" style=\"color: #aaa; font-size: 14px; font-style: italic;\">Enter dimensions to visualise...<\/span>\r\n    <\/div>\r\n\r\n    <div style=\"display: flex; gap: 15px; margin-bottom: 15px;\">\r\n        <div style=\"flex: 1;\">\r\n            <label style=\"font-size: 14px; font-weight: 600; color: #444; display: block; margin-bottom: 6px;\">Length (metre)<\/label>\r\n            <input type=\"number\" class=\"vol-length\" placeholder=\"0\" style=\"width: 100%; padding: 12px; border-radius: 6px;\">\r\n        <\/div>\r\n        <div style=\"flex: 1;\">\r\n            <label style=\"font-size: 14px; font-weight: 600; color: #444; display: block; margin-bottom: 6px;\">Width (metre)<\/label>\r\n            <input type=\"number\" class=\"vol-width\" placeholder=\"0\" style=\"width: 100%; padding: 12px; border-radius: 6px;\">\r\n        <\/div>\r\n    <\/div>\r\n    <div style=\"margin-bottom: 20px;\">\r\n        <label style=\"font-size: 14px; font-weight: 600; color: #444; display: block; margin-bottom: 6px;\">Desired Depth (millimetre)<\/label>\r\n        <input type=\"number\" class=\"vol-depth\" placeholder=\"e.g. 50\" style=\"width: 100%; padding: 12px; border-radius: 6px;\">\r\n        <p style=\"font-size: 12px; color: #666; margin: 6px 0 0 0; font-style: italic;\">Recommended: 30mm for dressing, 50mm-100mm for beds.<\/p>\r\n    <\/div>\r\n\r\n    <div style=\"background: #f4f8f4; border: 2px solid #2d5a27; padding: 20px; border-radius: 8px; text-align: center;\">\r\n        <span style=\"font-size: 14px; color: #2d5a27; font-weight: 600;\">Order Quantity Updated To:<\/span><br>\r\n        <strong style=\"font-size: 36px; color: #2d5a27; display: block; margin: 5px 0;\"><span class=\"vol-result\">0<\/span> m\u00b3<\/strong>\r\n        \r\n        <p style=\"font-size: 12px; margin: 5px 0 0 0; color: #555;\">(<strong style=\"color: #cc0000;\">Minimum order: 1m\u00b3<\/strong>) &bull; <em>Calculations are rounded up to the next full cubic metre.<\/em><\/p>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\nsetInterval(function() {\r\n    const wrappers = document.querySelectorAll('.ts-vol-calc-wrapper');\r\n    wrappers.forEach(function(wrapper) {\r\n        const inputL = wrapper.querySelector('.vol-length');\r\n        const inputW = wrapper.querySelector('.vol-width');\r\n        const inputD = wrapper.querySelector('.vol-depth');\r\n        if (!inputL || !inputW || !inputD) return;\r\n\r\n        const currL = inputL.value;\r\n        const currW = inputW.value;\r\n        const currD = inputD.value;\r\n\r\n        if (wrapper.dataset.lastL !== currL || wrapper.dataset.lastW !== currW || wrapper.dataset.lastD !== currD) {\r\n            wrapper.dataset.lastL = currL;\r\n            wrapper.dataset.lastW = currW;\r\n            wrapper.dataset.lastD = currD;\r\n\r\n            const l = parseFloat(currL) || 0;\r\n            const w = parseFloat(currW) || 0;\r\n            const d = parseFloat(currD) || 0;\r\n            let total = 0;\r\n\r\n            const shape = wrapper.querySelector('.shape-m3');\r\n            const placeholder = wrapper.querySelector('.placeholder-vol');\r\n            const cTop = wrapper.querySelector('.cube-top');\r\n            const cFront = wrapper.querySelector('.cube-front');\r\n            const cRight = wrapper.querySelector('.cube-right');\r\n            const badgeW = wrapper.querySelector('.badge-3d-w');\r\n            const badgeL = wrapper.querySelector('.badge-3d-l');\r\n            const badgeD = wrapper.querySelector('.badge-3d-d');\r\n\r\n            if (l > 0 && w > 0 && d > 0) {\r\n                if(placeholder) placeholder.style.display = 'none';\r\n                if(shape) shape.style.opacity = '1';\r\n                \r\n                \/\/ Calculates the volume and forces it to round up to the next absolute whole number\r\n                let calculatedVol = Math.ceil(l * w * (d \/ 1000));\r\n                \r\n                \/\/ Forces minimum order constraint\r\n                total = Math.max(1, calculatedVol); \r\n                \r\n                const maxDim = Math.max(l, w);\r\n                const visW = Math.max((w \/ maxDim) * 90, 30); \r\n                const visL = Math.max((l \/ maxDim) * 90, 30); \r\n                const visD = Math.max((d \/ 1000) * 30, 20); \r\n\r\n                if(cTop) {\r\n                    cTop.style.width = visW + 'px';\r\n                    cTop.style.height = visL + 'px';\r\n                    cTop.style.transform = `translate(-50%, -50%) rotateX(90deg) translateZ(${visD \/ 2}px)`;\r\n                }\r\n                if(cFront) {\r\n                    cFront.style.width = visW + 'px';\r\n                    cFront.style.height = visD + 'px';\r\n                    cFront.style.transform = `translate(-50%, -50%) translateZ(${visL \/ 2}px)`;\r\n                }\r\n                if(cRight) {\r\n                    cRight.style.width = visL + 'px';\r\n                    cRight.style.height = visD + 'px';\r\n                    cRight.style.transform = `translate(-50%, -50%) rotateY(90deg) translateZ(${visW \/ 2}px)`;\r\n                }\r\n\r\n                if(badgeW) badgeW.innerText = w + \"m\";\r\n                if(badgeL) badgeL.innerText = l + \"m\";\r\n                if(badgeD) {\r\n                    if(d > 0) { badgeD.style.display = 'block'; badgeD.innerText = d + \"mm\"; }\r\n                    else { badgeD.style.display = 'none'; }\r\n                }\r\n\r\n                document.querySelectorAll('form.cart input.qty').forEach(function(qty) {\r\n                    if(qty.value != total) {\r\n                        qty.value = total;\r\n                        qty.dispatchEvent(new Event('input', {bubbles: true}));\r\n                        qty.dispatchEvent(new Event('change', {bubbles: true}));\r\n                    }\r\n                });\r\n            } else {\r\n                if(placeholder) placeholder.style.display = 'block';\r\n                if(shape) shape.style.opacity = '0';\r\n            }\r\n            \r\n            wrapper.querySelector('.vol-result').innerText = total;\r\n\r\n            document.querySelectorAll('.vol-length').forEach(function(inp) { if(inp.value !== currL) inp.value = currL; });\r\n            document.querySelectorAll('.vol-width').forEach(function(inp) { if(inp.value !== currW) inp.value = currW; });\r\n            document.querySelectorAll('.vol-depth').forEach(function(inp) { if(inp.value !== currD) inp.value = currD; });\r\n            document.querySelectorAll('.vol-result').forEach(function(res) { res.innerText = total; });\r\n        }\r\n    });\r\n}, 250);\r\n<\/script>\n","protected":false},"featured_media":545,"comment_status":"open","ping_status":"closed","template":"","meta":{"_joinchat":[]},"product_brand":[],"product_cat":[19],"product_tag":[],"class_list":{"0":"post-274","1":"product","2":"type-product","3":"status-publish","4":"has-post-thumbnail","6":"product_cat-garden-soils","8":"first","9":"instock","10":"shipping-taxable","11":"purchasable","12":"product-type-simple"},"_links":{"self":[{"href":"https:\/\/topsoiltippers.co.za\/af\/wp-json\/wp\/v2\/product\/274","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/topsoiltippers.co.za\/af\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/topsoiltippers.co.za\/af\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/topsoiltippers.co.za\/af\/wp-json\/wp\/v2\/comments?post=274"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/topsoiltippers.co.za\/af\/wp-json\/wp\/v2\/media\/545"}],"wp:attachment":[{"href":"https:\/\/topsoiltippers.co.za\/af\/wp-json\/wp\/v2\/media?parent=274"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/topsoiltippers.co.za\/af\/wp-json\/wp\/v2\/product_brand?post=274"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/topsoiltippers.co.za\/af\/wp-json\/wp\/v2\/product_cat?post=274"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/topsoiltippers.co.za\/af\/wp-json\/wp\/v2\/product_tag?post=274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}