Nessun volantino attivo in questo momento

Famila - FAMILA Ravenna - Argirocastro (RA)
Via Argirocastro, 19
Famila - FAMILA Ravenna - Aquileia (RA)
Via Aquileia, 110
Famila - FAMILA Ravenna - Faentina (RA)
Via Faentina, 149
Famila - Famila Market Forlì (FC) - via Cervese
Via Cervese, 117
Famila - Famila Forlì
Viale A. Costa, 49
Famila - Famila Market Forlì (FC) - via Seganti
Via Seganti, 2 - Ronco
Famila - Famila
Via Maceo Casadei, 22
Famila - Famila Market Forlimpopoli (FC)
Viale Matteotti, 35/A
Famila - Famila Cesenatico (FC)
Statale Adriatica, 2100
Famila - Famila
Via Ravennate, 1650
Famila - Famila
Via Del Cavone, 9
Famila - Famila
Via Madonna D/Schioppo, 285
Il gruppo Famila arriva nel 1984 in Italia attraverso una concessione al Gruppo Selex da parte della tedesca Centrale Famila di Heidelberg. Famila è presente su tutto il territorio nazionale anche per merito delle molteplici catene come Iperfamila e Famila Superstore.
Offerte e volantini in tutta Italia.
La forza di ciascuno store sta nell’attenzione al prodotto finale così da offrire al cliente un’offerta variegata, ma collegata al territorio in cui opera. In questo modo i prodotti sono freschi, riconoscibili e apprezzati. Questo fa sì che le specialità locali siano diverse di luogo in luogo, così come i relativi volantini.
Consultare il volantino con regolarità aiuta dunque a scegliere i prodotti più interessanti, le ultime offerte e gli assortimenti in promozione.
Lun | \n' + 'Mar-Ven | \n' + 'Sab-Dom | \n' + '
---|---|---|
10-13 | \n' + '10-13 | \n' + 'chiuso | \n' + '
chiuso | \n' + '15-18 | \n' + 'chiuso | \n' + '
4 volantini attivi
\n' + '\n' + 'Voglio un mondo di tecnologia
\n' + '' + parsed + '
' + 'Lun | ' + 'Mar-Ven | ' + 'Sab-Dom | ' + '
---|---|---|
10-13 | ' + '10-13 | ' + 'chiuso | ' + '
chiuso | ' + '15-18 | ' + 'chiuso | ' + '
' + shop.name + '
' //+ '' + shop.insegna_pv + '
' + '' + shop.address + '
' + '' + shop.city.name //+ ' (' + shop.sigla_pro + ')
' + '' + shop.phone + '
' //+ '' + ( shop.orari_pv || 'ND' ) + '
' //+ generateTimeTable( shop.orari_pv ) + 'Vai al Negozionessun volantino attivo
' break case 1: html += '1 volantino attivo
' break default: html += '' + n + ' volantini attivi
' } return html //'' + JSON.stringify( pv_data, null, 3 ) + '' } // returns html string function generateLeaflets ( leaflets ) { var html = leaflets.reduce( function ( html, v ) { if (v.type == "ClickToStoreLeaflet" && !v.slide_to_store_campaign) { var link = v.external_url var target = "_blank" } else { var retailer_slug = PQ2VFRetailers(vf.app.data.catena.slug); var link = retailer_slug + '/' + vf.app.data.catena.section_slug + '-' + retailer_slug + '/' + vf.app.data.catena.section_slug + '-' + v.id var target = "_self" } var item = '
' + JSON.stringify( vol_data, null, 3 ) + '' } // Data passed to this function is the pv.data attached to the marker. // Initialize the map function initializeMap ( icons ) { var marker_bounds var map_center var mapOptions var info_window var info_window = new google.maps.InfoWindow({ content: info_window_el }) function updateInfoWindow ( marker ) { data = marker.data $.post('ajax/getLeafletsByStores', {store_id: data.id}).done(function(reply) { storeLeaflets = JSON.parse(reply); var shop_info_html = generateShopInfo( data, storeLeaflets.length ) shop_info_el.innerHTML = shop_info_html var leaflets_html = generateLeaflets( storeLeaflets ) leaflets_el.innerHTML = leaflets_html leaflet_idx = 0 leaflets_no = storeLeaflets.length leaflets_el.setAttribute( 'data-slot', leaflet_idx ) // Start the slideshow (only if we have more than one leaflet to show) if ( leaflets_no > 1 ) { slideshow_handle = setTimeout( doSlide, FREQUENCY ) } switch ( leaflets_no ) { case 0: // Hide the whole vf-leaflets-browser info_window_el.className = 'none' break case 1: // Hide the ▲ and ▼ anchors info_window_el.className = 'no-slide' break default: info_window_el.className = '' } info_window.open( map, marker ) }) } gmap.updateInfoWindow = updateInfoWindow function closeInfoWindow () { // Clear timer clearTimeout( slideshow_handle ) // Close it. info_window.close() } gmap.closeInfoWindow = closeInfoWindow //! Fires also when the info_window is not visualized google.maps.event.addListener( info_window, 'content_changed', function () { //console.warn( 'the infoWindow content did change' ) }) //! Do not use to update the content. google.maps.event.addListener( info_window, 'domready', function () { //console.warn( "the info_window\'s DOM is ready! (executed each time the info_window is displayed)" ) }) //! This event is not triggered when I programmatically close the infowindow. google.maps.event.addListener( info_window, 'closeclick', function () { // Invoke the cleanup routine. closeInfoWindow() window.history.replaceState( null, '', location.pathname + location.search + '#mappa' ) }) marker_bounds = new google.maps.LatLngBounds() vf.app.data.puntivendita.forEach( function ( pv, i ) { var latlng var marker latlng = new google.maps.LatLng( +pv.latitude, +pv.longitude ) marker_bounds.extend( latlng ) marker = new google.maps.Marker( { position: latlng, title: pv.name, zIndex: i }) // Store the information of the pv directly into the marker. // Still missing the details about the "volantini" to be shown in the infoWindow marker.data = pv // Setup some listener on the marker google.maps.event.addListener( marker, 'click', function () { // Close the infowindow if already opened. if ( info_window.map === map ) { closeInfoWindow() } var log = 'Click sul punto vendita ID: ' + pv.id +', Nome: ' + pv.name + ', Catena: ' + vf.app.data.catena.name; ga('send', 'event', 'Apertura mappa su punto vendita', 'Click', log); // rewrite history window.history.replaceState( null, '', location.pathname + location.search + '#mappa-' + pv.id ) updateInfoWindow( this ) }) // Make it front-most on rollover, only if the info_window is not visualized. google.maps.event.addListener( marker, 'mouseover', function () { if ( info_window.map == null ) marker.setZIndex( markers.length ) }) markers.push( marker ) }) map_center = marker_bounds.getCenter() mapOptions = { zoom: 8, center: map_center, scrollwheel: true, panControl: false, zoomControl: true, zoomControlOptions: { style: google.maps.ZoomControlStyle.LARGE, position: google.maps.ControlPosition.LEFT_CENTER }, mapTypeControl: false, scaleControl: true, streetViewControl: false, overviewMapControl: false } map = gmap.map = new google.maps.Map( gmap.el, mapOptions ) //console.log('new google maps') // Process each marker ad assign to the map markers.forEach( function ( marker ) { marker.setMap( map ) marker.setIcon( vf.app.data.catena.logo.pin ) }) // marker Tu sei qui var latlng var whereIAm var vfLocation = decodeURIComponent(getCookie("vf_location")); if (vfLocation) { var locationCookie = JSON.parse(vfLocation); latlng = new google.maps.LatLng(+locationCookie.lat , +locationCookie.lng) marker_bounds.extend( latlng ) whereIAm = new google.maps.Marker( { position: latlng, icon: null, title: "Tu sei qui!", zIndex: markers.length + 1 }) var infoWhere = new google.maps.InfoWindow({ content: 'Tu sei qui!' }) google.maps.event.addListener( whereIAm, 'click', function () { // Close the infowindow if already opened. if ( info_window.map === map ) { closeInfoWindow() } infoWhere.open( map, this ) }) // Make it front-most on rollover, only if the info_window is not visualized. google.maps.event.addListener( whereIAm, 'mouseover', function () { if ( infoWhere.map == null ) whereIAm.setZIndex( markers.length + 1 ) }) whereIAm.setIcon(null) whereIAm.setMap(map) } //console.warn('BEFORE FITBOUNDS') map.fitBounds( marker_bounds ) //console.warn('JUST AFTER FITBOUNDS') JUST_INITIALIZED = true // Close the infoWindow if it is open when clicking on the map. google.maps.event.addListener( map, 'click', function () { if ( info_window.map == null ) { //console.warn('not open') } else { closeInfoWindow() window.history.replaceState( null, '', location.pathname + location.search + '#mappa' ) } }) // Do something only the first time the map is loaded google.maps.event.addListenerOnce( map, 'idle', function() { gmap.container.setAttribute( 'data-zoom', 14 ) last_center = map.getCenter() }) // Too costly. do it on "idle" google.maps.event.addListener( map, 'idle', function() { //console.warn( Date.now(), 'updating last known center' ) last_center = map.getCenter() }) // Is this really necessary? window.addEventListener( 'resize', function () { google.maps.event.trigger( map, 'resize' ) // Lock position on resize to the last known center... map.setCenter( last_center ) } , false ) // √ Done (hopefully) gmap.INITIALIZED = true // ! call the callback if set if ( __cb__ ) { __cb__() __cb__ = null } } // Async script loading function loadScript() { var script = document.createElement('script') script.type = 'text/javascript' script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp' + '&callback=initializeGoogleMaps&key=AIzaSyABlhIDEeZ-GiU9XfFYcQMAcePg1LCz0qQ' document.body.appendChild( script ) } // Lazy initialization... (script callback) // Definiamolo global con nome randomico e cancelliamolo subito dopo creazione. console.warn('Random callback name:', (+Math.random().toFixed( 16 ).slice( 2 )).toString(16) ) // function initializeGoogleMaps() { if ( gmap.INITIALIZED ) { //console.warn( '(initializeGoogleMaps) Google Maps already initialized' ) return } // Preload the icons and initialize the map. preloadMarkerIcons( initializeMap ) // Mark it as initialized //gmap.INITIALIZED = true } gmap.initialize = function( cb ) { if ( gmap.INITIALIZED ) { //console.warn( '(initializeGoogleMapsLazy) Google Maps already initialized' ) cb && cb() return } __cb__ = cb loadScript() } gmap.gotoPuntoVendita = function ( pv ) { //console.log(marker); //console.log(pv); // Find the marker. var marker = markers.filter( function ( marker ) { return marker.data === pv })[0] // Center the map on the marker... map.setCenter( marker.position ) google.maps.event.trigger( marker, 'click' ) } // Invoked from the ctrl when closing via the logo/close gmap.close = function () { gmap.closeInfoWindow() } gmap.markers = markers vf.app.gmap = gmap -->