Si buscas resultados distintos, no hagas siempre lo mismo

Cómo limitar las zonas de envío en Jimdo por códigos postales

Si estás leyendo esto seguramente sea porque estás teniendo problemas a la hora de configurar las zonas de envío por códigos postales en Jimdo. Y es que en Jimdo, no existe la posibilidad de limitar por zonas específicas.

Esto es algo muy limitante por varios motivos:

  • Si eres un comercio local que quiere vender a zonas o barrios específicos de tu localidad.
  • Si tienes una tienda online que sólo envío a ciertos puntos de la península.

Pero entonces, ¿Esto tiene solución? La respuesta es sí y tela explicamos en el siguiente apartado.

Solución para poder limitar los envíos según el código postal

Para poder limitar los envíos por códigos postales, tendremos que crear un script personalizado a nuestra tienda online de Jimdo y añadirlo en la cabecera de nuestra página web:

				
					<script type="text/javascript">
// implements some native browser validation logic on ZipCode inputs 
// that are part of the checkout process forms
//<![CDATA[

function docReady(fn) {
    // see if DOM is already available
    if (document.readyState === 'complete' || document.readyState === 'interactive') {
        // call on next available tick
        setTimeout(fn, 1);
    } else {
        document.addEventListener('DOMContentLoaded', fn);
    }
}  

docReady(function(){
    if (
        (document.body.className.indexOf('j-shop-special-page') > -1 ) &&
        document.getElementsByClassName('j-checkout__shipping-address-checkbox').length > 0
     ) {
         // initial state
         addZipCodePattern(false);
        
        // if user changes state of "other shipping address" checkbox 
        var otherShippingAdressCheckBox = document.getElementsByClassName('j-checkout-address-checkbox__box')[0];
        otherShippingAdressCheckBox.addEventListener('change', function(){
            addZipCodePattern(otherShippingAdressCheckBox.checked);
        });
    }
});

function addZipCodePattern(shippingPartOnly) {
    var billingZipCodeInput = document.getElementById('id_billing_zip');
    var shippingZipCodeInput = document.getElementById('id_shipping_zip');
    var pattern = {name: 'pattern', value: '500[0-6]{2}'};
    var title = {name: 'title', value: 'Fuera de la zona de envío'};
    
    // exit if one of both isnt found
    if (!billingZipCodeInput || !shippingZipCodeInput) return; 
    
    if (shippingPartOnly) {
        shippingZipCodeInput.setAttribute(pattern.name, pattern.value);
        shippingZipCodeInput.setAttribute(title.name, title.value);
        billingZipCodeInput.removeAttribute(pattern.name);
        billingZipCodeInput.removeAttribute(title.name);
    } else {
        billingZipCodeInput.setAttribute(pattern.name, pattern.value);
        billingZipCodeInput.setAttribute(title.name, title.value);
        shippingZipCodeInput.removeAttribute(pattern.name);
        shippingZipCodeInput.removeAttribute(title.name);
    }
}

//]]&gt;
</script>
				
			

Este script es sólo un ejemplo para una tienda online que hace envíos a códigos postales del 50000 al 50066.

¿Necesitas que te hagamos un script personalizado para tu tienda online? Compra nuestro producto y te lo desarrollaremos en 24-48h.