Der Store Finder funktioniert ganz einfach! Gib einfach Deine Stadt, Postleitzahl, Straße oder den Namen des Einzelhandels in die Suchleiste ein – der Store Finder zeigt Dir alle Geschäfte mit Just Spices Produkten in Deiner Nähe.
Im Einzelhandel findest Du eine große Auswahl unserer Produkte – diese variiert jedoch von Filiale zu Filiale. Beachte außerdem, dass einige Produkte nur im Online Shop erhältlich sind: Online Exclusive
Derzeit arbeiten wir noch an einer Produktsuche – hab noch ein bisschen Geduld. Grundsätzlich können wir jedoch keine Echtzeitüberprüfung anbieten. Beachte auch, dass das Sortiment je nach Filiale unterschiedlich sein kann.
Produkte, die wirklich nur im Onlineshop verfügbar sind findest du hier: Online Exclusive
Nein, bei den Produkten gibt es keine Unterschiede – Du erhältst die gewohnte Qualität und den Geschmack. Der einzige Unterschied liegt im Kundenservice: Bei Fragen zur Anwendung oder zu den Produkten selbst steht Dir unser Kundensupport zur Verfügung. Für Rückgaben oder Fragen zur Bezahlung wende Dich bitte direkt an die Mitarbeiter:innen in der Filiale, in der Du Deinen Kauf getätigt hast.
Nein, es gibt uns derzeit nur als Online Shop. Dafür kannst Du viele unserer Produkte vor Ort im Einzelhandel kaufen – zum Beispiel in vielen Rewe, Edeka, Globus, Combi, Hit, Kaufland und Marktkauf.
`;
this.info.setHeaderContent(item.name);
this.info.setContent(html);
this.info.open(this.map, marker);
this.map.panTo(marker.getPosition());
if (this.map.getZoom() self.zoom) self.map.setZoom(self.zoom);
});
google.maps.event.addListener(this.map, 'idle', () => {
this.updateVisibleItems();
});
},
renderClusters: function() {
const self = this;
// Remove existing clusters
if (self.clusterer) {
self.clusterer.clearMarkers();
self.clusterer = null;
}
// Remove individual dot markers
self.clearMarkers();
self.markerById = {};
self.markers = [];
// Create new markers for clustering
const markers = self.filtered.map(it => {
const marker = new google.maps.Marker({
position: { lat: it.latitude, lng: it.longitude },
icon: {
url: "data:image/svg+xml;charset=UTF-8," + encodeURIComponent(`
`),
scaledSize: new google.maps.Size(32, 48)
}
})
marker.addListener('click', () => {
this.focusMarker(marker, it);
});
self.markerById[String(it.id)] = marker;
self.markers.push(marker);
return marker;
});
// Create the clusterer
self.clusterer = new markerClusterer.MarkerClusterer({
map: self.map,
markers: markers,
algorithm: new markerClusterer.SuperClusterAlgorithm({
radius: 100,
minPoints: 5,
maxZoom: 10
})
});
self.fitToResults();
},
locateMe: function() {
const self = this;
if (!navigator.geolocation) {
alert("Standortbestimmung wird von Ihrem Browser nicht unterstützt.");
return;
}
navigator.geolocation.getCurrentPosition(
function(pos) {
const lat = pos.coords.latitude;
const lng = pos.coords.longitude;
self.userLocation = { lat, lng };
// Center map on user location
self.map.setCenter(self.userLocation);
self.map.setZoom(13);
// Remove old marker if exists
if (self.userMarker) {
self.userMarker.setMap(null);
}
// Add a marker for current location
self.userMarker = new google.maps.Marker({
position: self.userLocation,
map: self.map,
icon: {
path: google.maps.SymbolPath.CIRCLE,
fillColor: "#000000",
fillOpacity: 1,
scale: 8,
strokeColor: "#ffffff",
strokeWeight: 2
},
zIndex: 9999,
title: "Ihr Standort"
});
// Optionally: zoom to nearest stores
self.zoomToNearestStores();
},
function() {
alert("Ihr Standort konnte nicht ermittelt werden.");
}
);
},
zoomToNearestStores: function() {
if (!this.userLocation || !this.filtered.length) return;
const { lat, lng } = this.userLocation;
const userPos = new google.maps.LatLng(lat, lng);
const distances = [];
this.filtered.forEach(store => {
const storePos = new google.maps.LatLng(store.latitude, store.longitude);
const d = google.maps.geometry.spherical.computeDistanceBetween(userPos, storePos);
distances.push(d);
});
// sort by nearest
distances.sort((a, b) => a - b);
// distance to 10th nearest store
const tenth = distances[10] || distances[distances.length - 1];
// convert meters to rough radius
const radius = tenth;
// fit map to radius
const circle = new google.maps.Circle({
center: this.userLocation,
radius: radius
});
this.map.fitBounds(circle.getBounds());
},
},
mounted: function(){
var self = this;
self.ensureMaps()
.then(function(){
self.map = new google.maps.Map(document.getElementById('js-storefinder-map'), {
center: self.center, zoom: self.zoom, mapTypeId: 'roadmap',
clickableIcons: false,
gestureHandling: 'greedy'
});
})
.then(self.fetchData)
.catch(function(e){ self.error = e.message || 'Map initialisation failed'; });
}
});
})();