Shipping Cost Calculator

To illustrate our shipping costs, we calculate them based on your location as follows. You can use the provided price calculator or the table.

Get Shipping Details

Select Your Country

Shipping

Or, view the table of shipping/return costs

$(window).on('load', function() { var locale = "en-UK"; var currency = "GBP"; var shippingDataList = []; var shippingDataActive = null; var exchangeRate = 1; var sortDirection = 1; function loadShippingData() { $.getJSON('https://cdn02.plentymarkets.com/6wg68w8zahno/frontend/assets/country-shipping-cost.json', function(data) { if (currency !== 'EUR') { getCurrencyValue(currency).then(function() { shippingDataList = data; populateCountrySelect(); populateShippingTable(data); }); } else { shippingDataList = data; populateCountrySelect(); populateShippingTable(data); } }); } function populateCountrySelect() { var countrySelect = $('#country-select'); countrySelect.empty(); countrySelect.append(''); shippingDataList.forEach(function(item) { countrySelect.append(''); }); } function getCurrencyValue(currency) { return fetch("https://morgenland-cpanel.eu/api/morgenland-currencies") .then(function(response) { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(function (data) { const currencyData = data.data.find((cur) => cur.currency === currency); if (currencyData && currencyData.exchange_rate) { exchangeRate = parseFloat(currencyData.exchange_rate); } else { console.log("Currency " + currency + " not found"); return null; } }) .catch(function (err) { console.error('There was a problem with your fetch operation:', err); throw err; }); } function formatCurrency(price) { return new Intl.NumberFormat(locale, { style: "currency", currency: currency, minimumFractionDigits: 0, maximumFractionDigits: 0 }).format(price * exchangeRate); } function showShippingData() { var selectedCountry = $('#country-select').val(); shippingDataActive = shippingDataList.find(function(item) { return item.country === selectedCountry; }); if (shippingDataActive) { $('#shipping-country-active').show(); if (shippingDataActive.shipping_free_from <= 0) { $('#order-text-1').text('Orders to `country`:'.replace('`country`', shippingDataActive.country)); $('#order-text-2').text(''); } else { $('#order-text-1').text(''); $('#order-text-2').text('Orders under `price` to `country`:'.replace('`price`', formatCurrency(shippingDataActive.shipping_free_from)).replace('`country`', shippingDataActive.country)); } $('#flat-rate-postage').text((shippingDataActive.flat_rate_postage === 0) ? 'Free' : formatCurrency(shippingDataActive.flat_rate_postage)); $('#return-cost').text((shippingDataActive.return_cost === 0) ? 'Free' : formatCurrency(shippingDataActive.return_cost)); $('#free-shipping').text((shippingDataActive.shipping_free_from > 0) ? 'Place your orders over `price` to enjoy free shipping'.replace('`price`', formatCurrency(shippingDataActive.shipping_free_from)) : ''); } } function toggleShippingTable() { $('#shipping-data-table').toggle(); var toggleIcon = $('#toggle-icon'); if ($('#shipping-data-table').is(':visible')) { toggleIcon.css('transform', 'rotate(0deg)'); } else { toggleIcon.css('transform', 'rotate(180deg)'); } } function filterCountries() { var searchValue = $('#search-country').val().toLowerCase(); var filteredList = shippingDataList.filter(function(item) { return item.country.toLowerCase().includes(searchValue); }); populateShippingTable(filteredList); } function sortByCountryName() { sortDirection *= -1; shippingDataList.sort(function(a, b) { var countryA = a.country.toUpperCase(); var countryB = b.country.toUpperCase(); if (countryA < countryB) { return -1 * sortDirection; } if (countryA > countryB) { return 1 * sortDirection; } return 0; }); filterCountries(); } function populateShippingTable(data) { var shippingDataBody = document.getElementById('shipping-data-body'); if (data.length > 0) { data.forEach(function(item) { var row = document.createElement('tr'); var countryCell = document.createElement('td'); countryCell.textContent = item.country; row.appendChild(countryCell); var flatRatePostageCell = document.createElement('td'); flatRatePostageCell.textContent = item.flat_rate_postage === 0 ? 'Free' : formatCurrency(item.flat_rate_postage); row.appendChild(flatRatePostageCell); var returnCostCell = document.createElement('td'); returnCostCell.textContent = item.return_cost === 0 ? 'Free' : formatCurrency(item.return_cost); row.appendChild(returnCostCell); var shippingFreeFromCell = document.createElement('td'); shippingFreeFromCell.textContent = item.shipping_free_from === 0 ? '0' : formatCurrency(item.shipping_free_from); row.appendChild(shippingFreeFromCell); shippingDataBody.appendChild(row); }); document.getElementById('no-data-found').style.display = 'none'; } else { document.getElementById('no-data-found').style.display = 'block'; } } $('#show-shipping-data').on('click', showShippingData); $('#toggle-shipping-table').on('click', toggleShippingTable); $('#search-country').on('input', filterCountries); $('#sort-by-country').on('click', sortByCountryName); loadShippingData(); });
$(document).ready(function() { function setCookie(n, v, d) { var e = d ? "; expires=" + new Date(Date.now() + d * 864e5).toUTCString() : ""; document.cookie = n + "=" + (v || "") + e + "; path=/"; } function getCookie(n) { var e = n + "=", c = document.cookie.split(';'); for (var i = 0; i < c.length; i++) { var s = c[i].trim(); if (s.indexOf(e) == 0) return s.substring(e.length); } return null; } function fetchData() { if (getCookie('geoLocationModalShown')) return; fetch("https://morgenland-cpanel.eu/api/morgenland-info").then(function(r) { if (!r.ok) throw new Error('HTTP error! status: ' + r.status); return r.json(); }).then(function(d) { var c = normalizeCountryCode(d.data.countryCode), l = [{"lang":"de","locale":"de","url":"https:\/\/www.morgenland-teppiche.de\/versandkostenrechner","name":"German","image":"https:\/\/cdn02.plentymarkets.com\/6wg68w8zahno\/frontend\/assets\/imgs\/flags\/German.png"},{"lang":"en","locale":"en","url":"https:\/\/www.morgenland-rugs.com\/shipping-cost-calculator","name":"English","image":"https:\/\/cdn02.plentymarkets.com\/6wg68w8zahno\/frontend\/assets\/imgs\/flags\/USA.png"},{"lang":"fr","locale":"fr","url":"https:\/\/www.morgenland-tapis.fr\/calculateur-d-expedition","name":"French","image":"https:\/\/cdn02.plentymarkets.com\/6wg68w8zahno\/frontend\/assets\/imgs\/flags\/France.png"},{"lang":"nl","locale":"nl","url":"https:\/\/www.morgenland-tapijt.nl\/verzendkosten-berekenen","name":"Dutch","image":"https:\/\/cdn02.plentymarkets.com\/6wg68w8zahno\/frontend\/assets\/imgs\/flags\/Netherland.png"},{"lang":"se","locale":"sv-SE","url":"https:\/\/www.morgenland-mattor.se\/leveranskalkylator","name":"Swedish","image":"https:\/\/cdn02.plentymarkets.com\/6wg68w8zahno\/frontend\/assets\/imgs\/flags\/Sweden.png"},{"lang":"at","locale":"de-AT","url":"https:\/\/www.morgenland-teppiche.at\/versandkostenrechner","name":"Austria","image":"https:\/\/cdn02.plentymarkets.com\/6wg68w8zahno\/frontend\/assets\/imgs\/flags\/Austria.png"},{"lang":"ch","locale":"de-CH","url":"https:\/\/www.morgenland-teppiche.ch\/versandkostenrechner","name":"Swiss German","image":"https:\/\/cdn02.plentymarkets.com\/6wg68w8zahno\/frontend\/assets\/imgs\/flags\/Switzerland.png"},{"lang":"nn","locale":"no-NO","url":"https:\/\/www.morgenland-tepper.com\/fraktkostnadskalkulator","name":"Norwegian","image":"https:\/\/cdn02.plentymarkets.com\/6wg68w8zahno\/frontend\/assets\/imgs\/flags\/Norway.png"},{"lang":"da","locale":"da","url":"https:\/\/www.morgenland-taepper.com\/forsendelsesberegner","name":"Danish","image":"https:\/\/cdn02.plentymarkets.com\/6wg68w8zahno\/frontend\/assets\/imgs\/flags\/Denmark.png"},{"lang":"es","locale":"es","url":"https:\/\/www.morgenland-alfombra.es\/calculadora-de-envios","name":"Spanish","image":"https:\/\/cdn02.plentymarkets.com\/6wg68w8zahno\/frontend\/assets\/imgs\/flags\/Spain.png"},{"lang":"it","locale":"it","url":"https:\/\/www.morgenland-tappeto.it\/calcolatore-di-spedizione","name":"Italian","image":"https:\/\/cdn02.plentymarkets.com\/6wg68w8zahno\/frontend\/assets\/imgs\/flags\/Italy.png"},{"lang":"pl","locale":"pl","url":"https:\/\/www.morgenland-dywany.pl\/kalkulator-kosztow-wysylki","name":"Polish","image":"https:\/\/cdn02.plentymarkets.com\/6wg68w8zahno\/frontend\/assets\/imgs\/flags\/Poland.png"},{"lang":"pt","locale":"pt","url":"https:\/\/www.morgenland-tapetes.pt\/calculadora-de-custos-de-envio","name":"Portuguese","image":"https:\/\/cdn02.plentymarkets.com\/6wg68w8zahno\/frontend\/assets\/imgs\/flags\/Portguese.png"},{"lang":"cz","locale":"cs-CZ","url":"https:\/\/www.morgenland-koberce.cz\/vypocet-nakladu-na-dopravu","name":"Czech","image":"https:\/\/cdn02.plentymarkets.com\/6wg68w8zahno\/frontend\/assets\/imgs\/flags\/Czech-Republic.png"}], a = {"lang":"uk","name":"English","image":"https:\/\/cdn02.plentymarkets.com\/6wg68w8zahno\/frontend\/assets\/imgs\/flags\/UK.png"}, f = findActiveUrl(l, c); if (shouldShowModal(f, a, c)) { updateModal(f); $('#geoLocationModal').modal('show'); $('#geoLocationModal').attr('aria-hidden', 'false'); setCookie('geoLocationModalShown', 'true', 3); } }).catch(function(e) { console.error('Fetch error:', e.message); }); } function normalizeCountryCode(c) { return c.toLowerCase() === "gb" ? "uk" : c.toLowerCase(); } function findActiveUrl(l, c) { var d = l.filter(function(u) { return u.lang === 'en'; })[0]; return l.find(function(u) { return u.lang === c; }) || d; } function shouldShowModal(foundUrl, activeUrl, countryCode) { if (!foundUrl || countryCode === activeUrl.lang) return false; var exceptions = { 'de': ['at', 'ch'], 'uk': ['en'], 'en': ['uk'], 'at': ['de', 'ch'], 'ch': ['de', 'at'] }; var activeExceptions = exceptions[activeUrl.lang] || []; return !activeExceptions.includes(foundUrl.lang); } function updateModal(f) { var b = document.querySelector('#redirectButton'), t = document.querySelector('#geoLocationText'), bt = document.querySelector('#redirectButtonText'), bi = document.querySelector('#redirectButtonImage'); b.href = f.url; t.textContent = "The website is in English language. Would you like to be redirected to our {name} website for a better experience?".replace("{name}", f.name); bi.src = bi['data-src'] = f.image; bi.alt = f.name; bt.textContent = "Redirect to {name} Site".replace("{name}", f.name); } fetchData(); });