PageSourceSearch

https://www.moulincoop.com/connexion?back=my-account

html moulincoop.com collected 2026-10-04 13:17:39 UTC 114,566 bytes, 1,796 lines download raw bytes

1<!doctype html>
2<html lang="fr-FR">
3
4<head>
5    
6        
7    <meta charset="utf-8">
8
9
10    <meta http-equiv="x-ua-compatible" content="ie=edge">
11
12
13
14    <title>Identifiant</title>
15    
16        <link rel="preconnect" href="https://fonts.googleapis.com">
17<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
18
19    
20    <meta name="description" content="">
21    <meta name="keywords" content="">
22                <link rel="canonical" href="https://www.moulincoop.com/connexion">
23        
24            
25
26    
27        
27<script type="application/ld+json">
28  {
29    "@context": "https://schema.org",
30    "@type": "Organization",
31    "name" : "Moulin Coopératif de Mouriès",
32    "url" : "https://www.moulincoop.com/"
33         ,"logo": {
34        "@type": "ImageObject",
35        "url":"https://www.moulincoop.com/img/logo-1751615193.jpg"
36      }
37      }
38</script>
38
39
40<script type="application/ld+json">
41  {
42    "@context": "https://schema.org",
43    "@type": "WebPage",
44    "isPartOf": {
45      "@type": "WebSite",
46      "url":  "https://www.moulincoop.com/",
47      "name": "Moulin Coopératif de Mouriès"
48    },
49    "name": "Identifiant",
50    "url":  "https://www.moulincoop.com/connexion?back=my-account"
51  }
52</script>
52
53
54
55  
55<script type="application/ld+json">
56    {
57      "@context": "https://schema.org",
58      "@type": "BreadcrumbList",
59      "itemListElement": [
60                  {
61            "@type": "ListItem",
62            "position": 1,
63            "name": "Accueil",
64            "item": "https://www.moulincoop.com/"
65          },                  {
66            "@type": "ListItem",
67            "position": 2,
68            "name": "Connectez-vous à votre compte",
69            "item": "https://www.moulincoop.com/connexion"
70          }              ]
71    }
72  </script>
72
73    
74
75    
76
77    
78        
79    
80
81    
82        <meta property="og:title" content="Identifiant"/>
83        <meta property="og:description" content=""/>
84        <meta property="og:url" content="https://www.moulincoop.com/connexion?back=my-account"/>
85        <meta property="og:site_name" content="Moulin Coopératif de Mouriès"/>
86                    <meta property="og:type" content="website"/>
87            
88
89
90
91    <meta name="viewport" content="width=device-width, initial-scale=1">
92
93
94
95    <link rel="icon" type="image/vnd.microsoft.icon" href="/img/cms/mouche2.png?2">
96    <link rel="shortcut icon" type="image/x-icon" href="/img/cms/mouche2.png?2">
97
98
99
100    
101
102
103
104    	
105
106  
106<script type="text/javascript">
107        var comment_tab = "3";
108        var lgcomments_products_default_display = "3";
109        var lgcomments_products_extra_display = "10";
110        var module_dir = "\/modules\/lgcomments\/";
111        var pixel_ids = "2373942886332900";
112        var pp_custom_add_to_cart = "";
113        var prestashop = {"cart":{"products":[],"totals":{"total":{"type":"total","label":"Total","amount":0,"value":"0,00\u00a0\u20ac"},"total_including_tax":{"type":"total","label":"Total TTC","amount":0,"value":"0,00\u00a0\u20ac"},"total_excluding_tax":{"type":"total","label":"Total HT :","amount":0,"value":"0,00\u00a0\u20ac"}},"subtotals":{"products":{"type":"products","label":"Sous-total","amount":0,"value":"0,00\u00a0\u20ac"},"discounts":null,"shipping":{"type":"shipping","label":"Livraison","amount":0,"value":""},"tax":null},"products_count":0,"summary_string":"0 articles","vouchers":{"allowed":1,"added":[]},"discounts":[],"minimalPurchase":0,"minimalPurchaseRequired":""},"currency":{"id":1,"name":"Euro","iso_code":"EUR","iso_code_num":"978","sign":"\u20ac"},"customer":{"lastname":null,"firstname":null,"email":null,"birthday":null,"newsletter":null,"newsletter_date_add":null,"optin":null,"website":null,"company":null,"siret":null,"ape":null,"is_logged":false,"gender":{"type":null,"name":null},"addresses":[]},"country":{"id_zone":"9","id_currency":"0","call_prefix":"33","iso_code":"FR","active":"1","contains_states":"0","need_identification_number":"0","need_zip_code":"1","zip_code_format":"NNNNN","display_tax_label":"1","name":"France","id":8},"language":{"name":"Fran\u00e7ais (French)","iso_code":"fr","locale":"fr-FR","language_code":"fr","active":"1","is_rtl":"0","date_format_lite":"d\/m\/Y","date_format_full":"d\/m\/Y H:i:s","id":1},"page":{"title":"","canonical":"https:\/\/www.moulincoop.com\/connexion","meta":{"title":"Identifiant","description":"","keywords":"","robots":"index"},"page_name":"authentication","body_classes":{"lang-fr":true,"lang-rtl":false,"country-FR":true,"currency-EUR":true,"layout-full-width":true,"page-authentication":true,"tax-display-enabled":true,"page-customer-account":true},"admin_notifications":[],"password-policy":{"feedbacks":{"0":"Tr\u00e8s faible","1":"Faible","2":"Moyenne","3":"Fort","4":"Tr\u00e8s fort","Straight rows of keys are easy to guess":"Les suites de touches sur le clavier sont faciles \u00e0 deviner","Short keyboard patterns are easy to guess":"Les mod\u00e8les courts sur le clavier sont faciles \u00e0 deviner.","Use a longer keyboard pattern with more turns":"Utilisez une combinaison de touches plus longue et plus complexe.","Repeats like \"aaa\" are easy to guess":"Les r\u00e9p\u00e9titions (ex. : \"aaa\") sont faciles \u00e0 deviner.","Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"":"Les r\u00e9p\u00e9titions (ex. : \"abcabcabc\") sont seulement un peu plus difficiles \u00e0 deviner que \"abc\".","Sequences like abc or 6543 are easy to guess":"Les s\u00e9quences (ex. : abc ou 6543) sont faciles \u00e0 deviner.","Recent years are easy to guess":"Les ann\u00e9es r\u00e9centes sont faciles \u00e0 deviner.","Dates are often easy to guess":"Les dates sont souvent faciles \u00e0 deviner.","This is a top-10 common password":"Ce mot de passe figure parmi les 10 mots de passe les plus courants.","This is a top-100 common password":"Ce mot de passe figure parmi les 100 mots de passe les plus courants.","This is a very common password":"Ceci est un mot de passe tr\u00e8s courant.","This is similar to a commonly used password":"Ce mot de passe est similaire \u00e0 un mot de passe couramment utilis\u00e9.","A word by itself is easy to guess":"Un mot seul est facile \u00e0 deviner.","Names and surnames by themselves are easy to guess":"Les noms et les surnoms seuls sont faciles \u00e0 deviner.","Common names and surnames are easy to guess":"Les noms et les pr\u00e9noms courants sont faciles \u00e0 deviner.","Use a few words, avoid common phrases":"Utilisez quelques mots, \u00e9vitez les phrases courantes.","No need for symbols, digits, or uppercase letters":"Pas besoin de symboles, de chiffres ou de majuscules.","Avoid repeated words and characters":"\u00c9viter de r\u00e9p\u00e9ter les mots et les caract\u00e8res.","Avoid sequences":"\u00c9viter les s\u00e9quences.","Avoid recent years":"\u00c9vitez les ann\u00e9es r\u00e9centes.","Avoid years that are associated with you":"\u00c9vitez les ann\u00e9es qui vous sont associ\u00e9es.","Avoid dates and years that are associated with you":"\u00c9vitez les dates et les ann\u00e9es qui vous sont associ\u00e9es.","Capitalization doesn't help very much":"Les majuscules ne sont pas tr\u00e8s utiles.","All-uppercase is almost as easy to guess as all-lowercase":"Un mot de passe tout en majuscules est presque aussi facile \u00e0 deviner qu'un mot de passe tout en minuscules.","Reversed words aren't much harder to guess":"Les mots invers\u00e9s ne sont pas beaucoup plus difficiles \u00e0 deviner.","Predictable substitutions like '@' instead of 'a' don't help very much":"Les substitutions pr\u00e9visibles comme '\"@\" au lieu de \"a\" n'aident pas beaucoup.","Add another word or two. Uncommon words are better.":"Ajoutez un autre mot ou deux. Pr\u00e9f\u00e9rez les mots peu courants."}}},"shop":{"name":"Moulin Coop\u00e9ratif de Mouri\u00e8s","logo":"https:\/\/www.moulincoop.com\/img\/logo-1751615193.jpg","stores_icon":"https:\/\/www.moulincoop.com\/img\/logo_stores.png","favicon":"https:\/\/www.moulincoop.com\/img\/favicon.ico"},"core_js_public_path":"\/themes\/","urls":{"base_url":"https:\/\/www.moulincoop.com\/","current_url":"https:\/\/www.moulincoop.com\/connexion?back=my-account","shop_domain_url":"https:\/\/www.moulincoop.com","img_ps_url":"https:\/\/www.moulincoop.com\/img\/","img_cat_url":"https:\/\/www.moulincoop.com\/img\/c\/","img_lang_url":"https:\/\/www.moulincoop.com\/img\/l\/","img_prod_url":"https:\/\/www.moulincoop.com\/img\/p\/","img_manu_url":"https:\/\/www.moulincoop.com\/img\/m\/","img_sup_url":"https:\/\/www.moulincoop.com\/img\/su\/","img_ship_url":"https:\/\/www.moulincoop.com\/img\/s\/","img_store_url":"https:\/\/www.moulincoop.com\/img\/st\/","img_col_url":"https:\/\/www.moulincoop.com\/img\/co\/","img_url":"https:\/\/www.moulincoop.com\/themes\/classic\/assets\/img\/","css_url":"https:\/\/www.moulincoop.com\/themes\/classic\/assets\/css\/","js_url":"https:\/\/www.moulincoop.com\/themes\/classic\/assets\/js\/","pic_url":"https:\/\/www.moulincoop.com\/upload\/","theme_assets":"https:\/\/www.moulincoop.com\/themes\/classic\/assets\/","theme_dir":"https:\/\/www.moulincoop.com\/themes\/classic-child\/","child_theme_assets":"https:\/\/www.moulincoop.com\/themes\/classic-child\/assets\/","child_img_url":"https:\/\/www.moulincoop.com\/themes\/classic-child\/assets\/img\/","child_css_url":"https:\/\/www.moulincoop.com\/themes\/classic-child\/assets\/css\/","child_js_url":"https:\/\/www.moulincoop.com\/themes\/classic-child\/assets\/js\/","pages":{"address":"https:\/\/www.moulincoop.com\/adresse","addresses":"https:\/\/www.moulincoop.com\/adresses","authentication":"https:\/\/www.moulincoop.com\/connexion","manufacturer":"https:\/\/www.moulincoop.com\/marques","cart":"https:\/\/www.moulincoop.com\/panier","category":"https:\/\/www.moulincoop.com\/index.php?controller=category","cms":"https:\/\/www.moulincoop.com\/index.php?controller=cms","contact":"https:\/\/www.moulincoop.com\/nous-contacter","discount":"https:\/\/www.moulincoop.com\/reduction","guest_tracking":"https:\/\/www.moulincoop.com\/suivi-commande-invite","history":"https:\/\/www.moulincoop.com\/historique-commandes","identity":"https:\/\/www.moulincoop.com\/identite","index":"https:\/\/www.moulincoop.com\/","my_account":"https:\/\/www.moulincoop.com\/mon-compte","order_confirmation":"https:\/\/www.moulincoop.com\/confirmation-commande","order_detail":"https:\/\/www.moulincoop.com\/index.php?controller=order-detail","order_follow":"https:\/\/www.moulincoop.com\/suivi-commande","order":"https:\/\/www.moulincoop.com\/commande","order_return":"https:\/\/www.moulincoop.com\/index.php?controller=order-return","order_slip":"https:\/\/www.moulincoop.com\/avoirs","pagenotfound":"https:\/\/www.moulincoop.com\/page-introuvable","password":"https:\/\/www.moulincoop.com\/recuperation-mot-de-passe","pdf_invoice":"https:\/\/www.moulincoop.com\/index.php?controller=pdf-invoice","pdf_order_return":"https:\/\/www.moulincoop.com\/index.php?controller=pdf-order-return","pdf_order_slip":"https:\/\/www.moulincoop.com\/index.php?controller=pdf-order-slip","prices_drop":"https:\/\/www.moulincoop.com\/promotions","product":"https:\/\/www.moulincoop.com\/index.php?controller=product","registration":"https:\/\/www.moulincoop.com\/inscription","search":"https:\/\/www.moulincoop.com\/recherche","sitemap":"https:\/\/www.moulincoop.com\/plan-site","stores":"https:\/\/www.moulincoop.com\/magasins","supplier":"https:\/\/www.moulincoop.com\/fournisseurs","new_products":"https:\/\/www.moulincoop.com\/nouveaux-produits","brands":"https:\/\/www.moulincoop.com\/marques","register":"https:\/\/www.moulincoop.com\/inscription","order_login":"https:\/\/www.moulincoop.com\/commande?login=1"},"alternative_langs":[],"actions":{"logout":"https:\/\/www.moulincoop.com\/?mylogout="},"no_picture_image":{"bySize":{"small_default":{"url":"https:\/\/www.moulincoop.com\/img\/p\/fr-default-small_default.jpg","width":98,"height":98},"cart_default":{"url":"https:\/\/www.moulincoop.com\/img\/p\/fr-default-cart_default.jpg","width":125,"height":125},"home_default":{"url":"https:\/\/www.moulincoop.com\/img\/p\/fr-default-home_default.jpg","width":250,"height":250},"medium_default":{"url":"https:\/\/www.moulincoop.com\/img\/p\/fr-default-medium_default.jpg","width":452,"height":452},"large_default":{"url":"https:\/\/www.moulincoop.com\/img\/p\/fr-default-large_default.jpg","width":800,"height":800}},"small":{"url":"https:\/\/www.moulincoop.com\/img\/p\/fr-default-small_default.jpg","width":98,"height":98},"medium":{"url":"https:\/\/www.moulincoop.com\/img\/p\/fr-default-home_default.jpg","width":250,"height":250},"large":{"url":"https:\/\/www.moulincoop.com\/img\/p\/fr-default-large_default.jpg","width":800,"height":800},"legend":""}},"configuration":{"display_taxes_label":true,"display_prices_tax_incl":true,"is_catalog":false,"show_prices":true,"opt_in":{"partner":false},"quantity_discount":{"type":"discount","label":"Remise sur prix unitaire"},"voucher_enabled":1,"return_enabled":0},"field_required":[],"breadcrumb":{"links":[{"title":"Accueil","url":"https:\/\/www.moulincoop.com\/"},{"title":"Connectez-vous \u00e0 votre compte","url":"https:\/\/www.moulincoop.com\/connexion"}],"count":2},"link":{"protocol_link":"https:\/\/","protocol_content":"https:\/\/"}
113,"time":1791119859,"static_token":"0de8c8bacc606758d8579fe1ee4c0a04","token":"ba14cd8ac95b5544122ac36781dab998","debug":false};
114        var psemailsubscription_subscription = "https:\/\/www.moulincoop.com\/module\/ps_emailsubscription\/subscription";
115        var review_controller_link = "https:\/\/www.moulincoop.com\/module\/lgcomments\/reviews";
116        var review_controller_name = "index.php?controller=module-lgcomments-reviews";
117        var send_successfull_msg = "La critique a \u00e9t\u00e9 correctement envoy\u00e9e.";
118        var single_event_tracking = 1;
119        var sliderblocks = 4;
120        var star_color = "yellow";
121        var star_style = "plain";
122      </script>
122
123		<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Cormorant+Infant:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic%7CAlata:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic&amp;display=swap" media="all">
124		<link rel="stylesheet" href="https://www.moulincoop.com/themes/classic-child/assets/cache/theme-2ff678754.css" media="all">
125	
126	
127
128
129	
129<script>
130			var ceFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"version":"2.11.1","urls":{"assets":"\/modules\/creativeelements\/views\/"},"productQuickView":0,"settings":{"general":{"elementor_global_image_lightbox":"0","elementor_lightbox_enable_counter":"yes","elementor_lightbox_enable_fullscreen":"yes","elementor_lightbox_enable_zoom":"yes","elementor_lightbox_title_src":"title","elementor_lightbox_description_src":"caption"},"editorPreferences":[]},"post":{"id":0,"title":"","excerpt":""}};
131		</script>
131
132        <link rel="preload" href="/modules/creativeelements/views/lib/ceicons/fonts/ceicons.woff2?8goggd" as="font" type="font/woff2" crossorigin>
133            <!-- Brevo Conversations  -->
134    
134<script type="text/javascript">
135        (function(c,l,a,r,i,t,y){
136            c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
137            t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
138            y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
139        })(window, document, "clarity", "script", "snkjv7n9y8");
140    </script>
140
141    <!-- /Brevo Conversations  -->
142
143
144
145    
145<script src="https://cdn.brevo.com/js/sdk-loader.js" async></script>
vendor: 1 bytes, line 145
145
146<script>
147    window.Brevo = window.Brevo || [];
148    Brevo.push([
149        "init",
150        {
151            client_key: "4reeh5xd71238je0u2qebr21",
152            email_id: "",
153        },
154    ]);
155</script>
155
156
157<!-- Enable Facebook Pixels -->
158<script>
159    // doNotConsentToPixel = false;
160    //console.log(ppGetCookie('pp_pageview_event_id'));
161    //var external_id = ppGetCookie('pp_external_id');
162    var pageview_event_id = '';
163    var pp_price_precision = 2;
164    var deferred_loading = 0;
165    var deferred_seconds = 0;
166    var event_time = 1791119859;
167    var local_time = new Date().getTime();
168    var consentStatus = true;
169    var pp_aurl = 'https://www.moulincoop.com/module/facebookconversiontrackingplus/AjaxConversion'.replace(/&amp;/g, "&");
170
171    // Check if pixel is already initialized
172    function facebookpixelinit(tries) {
173        let ud = {};
174        if (typeof fbq == 'undefined') {
175            // Pixel is not initialized, load the script
176            initFbqPixels(ud);
177        } else {
178            console.log('Facebook Pixel Already loaded');
179        }
180
181        // Proceed with consent and initialize Pixels
182        handleConsentAndInitPixels(ud);
183
184        // Send the PageView event
185        sendPageViewEvent()
186    }
187
188    function initFbqPixels() {
189        
190        !function(f,b,e,v,n,t,s){if (f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if (!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,document,'script','https://connect.facebook.net/en_US/fbevents.js');
191        
192    }
193
194    function handleConsentAndInitPixels(ud) {
195                if (typeof window.doNotConsentToPixel !== 'undefined' && doNotConsentToPixel) {
196            consentStatus = false;
197        }
198                pixelConsent(consentStatus);
199
200                fbq('init', '2373942886332900', ud);
201            }
202    function sendPageViewEvent() {
203        /* Code to avoid multiple pixels call */
204        /* Used to make it compatible with onepagecheckout */
205        if (typeof window.fbq_pageview == 'undefined') {
206            pageview_event_id = generateEventId(12);
207            ppTrackEvent('PageView', {}, pageview_event_id);
208            if (consentStatus) {
209                return jQuery.ajax({
210                    url: pp_aurl,
211                    type: 'POST',
212                    cache: false,
213                    data: {
214                        event: 'PageView',
215                        pageview_event_id: pageview_event_id,
216                        source_url: window.location.href
217                    }
218                });
219            }
220            window.fbq_pageview = 1;  // Mark pageview as processed
221        }
222    }
223
224    // Consent and localStorage checks, unchanged
225        </script>
225
226<!-- End Enable Facebook Pixels -->
227<script>
228    fctp_pageviewcount(20);
229    function fctp_pageviewcount(tries) {
230        if (typeof jQuery === 'undefined' || typeof fbq != 'function') {
231            if (tries > 0) {
232                setTimeout(function () {
233                    fctp_pageviewcount(tries - 1)
234                }, 350);
235            }
236        } else {
237            if (consentStatus) {
238                jQuery.ajax({
239                    url: pp_aurl,
240                    type: 'POST',
241                    cache: false,
242                    data: {
243                        event: 'Pageviewcount',
244                        source_url: location.href,
245                        token: '026cff273bcf135ca056068ef7691304',
246                    }
247                })
248                    .done(function (data) {
249                        if (data !== null && data.return == 'ok' && typeof data.current_page !== 'undefined') {
250                            var page = data.current_page == 20 ? 'PagesViewedMore' + data.current_page : 'PagesViewed' + data.current_page;
251                            ppTrackEvent(page, {
252                                'currency': 'EUR',
253                                'value': '10000'
254                            }, pageview_event_id);
255                        }
256                    })
257                    .fail(function (jqXHR, textStatus, errorThrown) {
258                        //console.log('Pixel Plus: Cookie consent could not be validated');
259                    });
260            }
261        }
262    }
263</script>
263
264<!-- Add To cart Pixel Call -->
265<script type="text/javascript">
266    (function() {
267        // Global flags and variables
268        var isProcessingAddToCart = false; // Prevents duplicate processing
269        var qty = false;                   // Holds the current quantity value
270        var lastXhrResponse = null;        // For XHR deduplication
271
272        // Reset the processing flag after a delay.
273        function resetAddToCartFlag() {
274            setTimeout(function() {
275                isProcessingAddToCart = false;
276            }, 500);
277        }
278
279        function sendAddToCartFromResponse(r, parsed, delCookie, source) {
280            // If already processing, do nothing.
281            if (isProcessingAddToCart) return;
282
283            if (!parsed) {
284                try {
285                    r = JSON.parse(r);
286                } catch (e) {
287                    return; // Abort if parsing fails
288                }
289            }
290            // console.log(new Date().toISOString(), "sendAddToCartFromResponse from", source, "with response:", r);
291
292            if (r && r.cart && r.cart.products) {
293                // Set initial global values (from server-side template variables)
294                window.content_name = '';
295                window.content_category = '';
296                window.content_value = 1; // Default minimal value
297                window.content_ids_data = [];
298                window.content_ids_product = [];
299
300                // Determine the selected product and attribute from the response.
301                var selected_product_id = r.id_product || r.idProduct;
302                var ipa = r.id_product_attribute || r.idProductAttribute;
303
304                // Process the cart products and build the payload.
305                $.each(r.cart.products, function(key, value) {
306                    if (
307                        (selected_product_id == value.id_product && value.id_product_attribute == 0) ||
308                        (selected_product_id == value.id_product && value.id_product_attribute > 0 && value.id_product_attribute == ipa)
309                    ) {
310                        var pprice = 0;
311                                                if (typeof value.price_with_reduction !== 'undefined') {
312                            pprice = value.price_with_reduction;
313                        } else if (typeof value.price_without_reduction !== 'undefined') {
314                            pprice = value.price_without_reduction;
315                        }
316                                                if (pprice === 0) {
317                            pprice = formatedNumberToFloat(value.price);
318                        }
319                        if (typeof value.name !== 'undefined') {
320                            window.content_name = value.name;
321                        }
322                        window.content_value = pprice.toFixed(pp_price_precision);
323
324                        // Build product identifier, with combination if enabled.
325                        var id_combination = '';
326                                                var pid = '' + value.id_product + id_combination;
327                        var productData = {
328                            'id': pid,
329                            'quantity': (qty !== false ? qty : value.quantity),
330                            'item_price': (qty !== false ? qty * pprice : value.quantity * pprice)
331                        };
332                        if (value.category) {
333                            productData.category = value.category;
334                        }
335                        window.content_ids_data.push(productData);
336                        window.content_ids_product.push(pid);
337                    }
338                });
339
340                // Build the final cartValues object.
341                var cartValues = {
342                    'content_name': window.content_name,
343                    'content_ids': unique(window.content_ids_product),
344                    'contents': unique(window.content_ids_data),
345                    'content_type': 'product',
346                    'value': window.content_value,
347                    'currency': 'EUR'
348                };
349                                if (window.content_category) {
350                    cartValues['content_category'] = window.content_category;
351                }
352
353                // Depending on the mode, call the appropriate final function.
354                                // When CAPI is enabled, delegate to atcAjaxCall.
355                // (Do not set isProcessingAddToCart here so that atcAjaxCall can handle it.)
356                atcAjaxCall(selected_product_id, ipa, source);
357                
358                if (delCookie) {
359                    deleteCookie('pp_pixel_event_id');
360                }
361            }
362        }
363
364        function trackAddToCart(values, event_id, source) {
365            values.source = source;
366            // console.log(new Date().toISOString(), "Tracking AddToCart event from", source, "with data:", values);
367            ppTrackEvent('AddToCart', values, event_id);
368            resetAddToCartFlag();
369        }
370
371        function atcAjaxCall(id_product, id_product_attribute, source) {
372            if (isProcessingAddToCart) return false;
373            isProcessingAddToCart = true;
374            setTimeout(function() {
375                $.ajax({
376                    url: pp_aurl,
377                    type: 'POST',
378                    cache: false,
379                    data: {
380                        customAjax: true,
381                        id_product: id_product,
382                        id_product_attribute: id_product_attribute,
383                        quantity: qty || 1,
384                        event: 'AddToCart',
385                        rand: Math.floor((Math.random() * 100000) + 1),
386                        token: '0de8c8bacc606758d8579fe1ee4c0a04'
387                    }
388                })
389                    .done(function(data) {
390                        if (data.return === 'ok') {
391                            trackAddToCart(data.custom_data, data.event_id, source || 'customAjax');
392                        } else if (data.return === 'error') {
393                            console.error('Error in add-to-cart AJAX call');
394                        }
395                    })
396                    .fail(function(jqXHR, textStatus, errorThrown) {
397                        console.error('AJAX error in add-to-cart call:', textStatus);
398                    });
399            }, 500);
400        }
401
402        // Helper: Converts a formatted price string to a float.
403        function formatedNumberToFloat(price) {
404            price = price.replace(prestashop.currency.sign, '')
405                .replace(prestashop.currency.iso_code, '');
406            switch (parseInt(prestashop.currency.format, 10)) {
407                case 1:
408                    return parseFloat(price.replace(',', '').replace(' ', ''));
409                case 2:
410                    return parseFloat(price.replace(' ', '').replace(',', '.'));
411                case 3:
412                    return parseFloat(price.replace('.', '').replace(' ', '').replace(',', '.'));
413                case 4:
414                    return parseFloat(price.replace(',', '').replace(' ', ''));
415                default:
416                    return parseFloat(price);
417            }
418        }
419
420        // Helper: Returns only unique elements from an array.
421        function unique(array) {
422            return $.grep(array, function(el, index) {
423                return index === $.inArray(el, array);
424            });
425        }
426
427        // Attach event handlers for add-to-cart tracking.
428        function initAddToCart() {
429            
430            // For AttributewizardPro or AWP modules.
431            if (
432                    false ||
433                $('#awp_wizard').length === 1
434            ) {
435                var id_product = $('#product_page_product_id').length ? $('#product_page_product_id').val() : $('.product_page_product_id').val();
436                var id_product_attribute = 0;
437                $('.exclusive').on('click', function() {
438                    if (!isProcessingAddToCart) {
439                        atcAjaxCall(id_product, id_product_attribute, 'AWP');
440                    }
441                });
442            }
443
444            // Attach the Prestashop "updateCart" listener.
445            if (typeof prestashop === 'object' && typeof prestashop.on !== 'undefined') {
446                prestashop.on('updateCart', function(event) {
447                    if (isProcessingAddToCart) return;
448                    window.pp_atc_event_id = ppGetCookie('pp_pixel_event_id');
449                    if (event && event.reason) {
450                        if (event.reason.idProduct !== undefined) {
451                            var ipa = event.reason.idProductAttribute || 0;
452                                                        atcAjaxCall(event.reason.idProduct, ipa, 'prestashop.on');
453                                                    } else if (event.reason.cart !== undefined) {
454                            sendAddToCartFromResponse(event.reason, true, true, 'prestashop.on');
455                        }
456                    }
457                });
458            }
459
460            // Override XMLHttpRequest as a fallback.
461            (function(open) {
462                XMLHttpRequest.prototype.open = function(method, url, async) {
463                    var fpCartEndpoint = '/panier';
464                    var checkURL = url.search(fpCartEndpoint);
465                    if (checkURL > -1 && !isProcessingAddToCart) {
466                        // Clear globals before processing the add-to-cart request.
467                        delete window.content_ids_data;
468                        delete window.content_ids_product;
469                        delete window.total_products_value;
470                        window.pp_atc_event_id = generateEventId(12);
471                        url += (url.search('\\?') > -1)
472                            ? '&pp_atc_event_id=' + window.pp_atc_event_id
473                            : '?pp_atc_event_id=' + window.pp_atc_event_id;
474                    }
475                    this.addEventListener('load', function() {
476                        if (this.response) {
477                            // Check for duplicate XHR response.
478                            if (lastXhrResponse === this.response) {
479                                // console.log(new Date().toISOString(), "Duplicate XHR response. Skipping.");
480                                return;
481                            }
482                            lastXhrResponse = this.response;
483                            try {
484                                sendAddToCartFromResponse(this.response, false, false, 'XHR');
485                            } catch (e) {
486                                console.error("Error processing XHR response:", e);
487                            }
488                        }
489                    });
490                    this.addEventListener('error', function() {
491                        console.error('Request failed with error');
492                    });
493                    this.addEventListener('abort', function() {
494                        console.error('Request was aborted');
495                    });
496                    open.apply(this, arguments);
497                };
498            })(XMLHttpRequest.prototype.open);
499        }
500
501        // Wait for DOM and jQuery to be ready.
502        document.addEventListener("DOMContentLoaded", function() {
503            var tries = 20;
504            function waitForjQuery(tries) {
505                if (typeof jQuery === 'undefined') {
506                    if (tries > 0) {
507                        setTimeout(function() { waitForjQuery(tries - 1); }, 250);
508                    } else {
509                        console.error('PP: Could not initiate the Add To Cart Event Tracking');
510                    }
511                    return;
512                }
513                initAddToCart();
514            }
515            waitForjQuery(tries);
516
517            // Listen for changes in quantity.
518            $(document).on('change', '#quantity_wanted', function() {
519                qty = $(this).val();
520            });
521        });
522    })();
523</script>
523
524<!-- End Add to cart pixel call -->
525
526<!-- Contact Pixel Call -->
527<script type="text/javascript">
528    document.addEventListener("DOMContentLoaded", function(event) {
529        init_newsletter(10);
530        var fb_pixel_newsletter_event_id = '';
531        var FCTP_NEWSLETTER_VALUE = '1';
532        var max_tries = 0;
533
534
535        function init_newsletter(tries)
536        {
537            if (typeof jQuery === 'undefined' || typeof ppGetCookie === 'undefined') {
538                if (tries > 0) {
539                    setTimeout(function() { init_newsletter(tries-1); }, 350);
540                } else {
541                    console.log('PP: Could not Initiate the Newsletter Event Tracking');
542                }
543                return;
544            }
545            fb_pixel_newsletter_event_id = ppGetCookie('pp_pixel_newsletter_event_id');
546                        $('input[name="submitNewsletter"]').click(function (event) {
547                if ($('input[name="email"]').val() != '') {
548                    setTimeout(function () {
549                        if (jQuery('.block_newsletter').find(".alert-danger").length == 1) {
550                            console.log(
551                                'Conversion could not be sent, contact module developer to check the issue');
552                        } else {
553                            fctp_newsletter(10);
554                        }
555                    }, 1000);
556                }
557            });
558                        function fctp_newsletter(max_tries, email = "") {
559                if (typeof fbq != 'undefined' && typeof jQuery != 'undefined') {
560                                        jQuery.ajax({
561                        url: pp_aurl,
562                        type: 'POST',
563                        cache: false,
564                        data: {
565                            event: 'Newsletter',
566                            rand: Math.floor((Math.random() * 100000) + 1),
567                            source_url: window.location.href
568                        }
569                    })
570                        .done(function (data) {
571                            if (data.return == 'ok') {
572                                trackNewsletter(email);
573                            }
574                        })
575                        .fail(function (jqXHR, textStatus, errorThrown) {
576                            console.log('Conversion could not be sent, as the email is already registered');
577                        });
578                                    } else {
579                    if (tries > 0) {
580                        setTimeout(function () {
581                            fctp_newsletter(tries - 1)
582                        }, 500);
583                    }
584                }
585            }
586
587            function trackNewsletter() {
588                ppTrackEvent('Newsletter', {
589                    'content_name': 'Lettre d\'informations',
590                    value: FCTP_NEWSLETTER_VALUE,
591                    currency: 'EUR',
592                }, fb_pixel_newsletter_event_id);
593            }
594        }
595    });
596</script>
596
597<!-- End Contact Pixel Call --><!-- Contact Pixel Call -->
598<script type="text/javascript">
599    document.addEventListener("DOMContentLoaded", function() {
600        init_time_event(10);
601        var time = 0;
602
603        function init_time_event(tries) {
604            //Main script start
605            if (typeof jQuery === 'undefined' || typeof fbq === 'undefined') {
606                if (tries > 0) {
607                    setTimeout(function () {
608                        init_time_event(tries - 1)
609                    }, 500);
610                } else {
611                    console.log('PP: Could not Initiate the Page Time event');
612                }
613                return;
614            }
615            var counter = 0;
616            var timer = new IntervalTimer(function () {
617                if (counter < 4) {
618                    time = time + 30;
619                    if (time == 120) {
620                        time = '+120';
621                    }
622                    fctp_pagetime(tries - 1, time);
623                    counter++;
624                }
625            }, 30000); // WAS 30000
626
627            document.addEventListener("visibilitychange", function () {
628                if (document.visibilityState === 'visible') {
629                    timer.resume();
630                } else {
631                    timer.pause();
632                }
633            });
634        }
635        function IntervalTimer(callback, interval) {
636            var timerId, timeoutId, startTime, remaining = 0;
637            var state = 0; //  0 = idle, 1 = running, 2 = paused, 3= resumed
638            this.interval = interval;
639            this.pause = function () {
640                if (state != 1 && state != 3) return;
641                remaining = this.interval - (new Date() - startTime);
642                if (state == 1) window.clearInterval(timerId);
643                if (state == 3) window.clearTimeout(timeoutId);
644                state = 2;
645            };
646
647            this.resume = function () {
648                if (state != 2) return;
649                state = 3;
650                timeoutId = window.setTimeout(this.timeoutCallback, remaining);
651            };
652
653            this.timeoutCallback = function () {
654                if (state != 3) return;
655                callback();
656                startTime = new Date();
657                timerId = window.setInterval(callback, interval);
658                state = 1;
659            };
660
661            startTime = new Date();
662            timerId = window.setInterval(callback, interval);
663            state = 1;
664        }
665
666        function fctp_pagetime(tries)
667        {
668                        jQuery.ajax({
669                url: pp_aurl,
670                type: 'POST',
671                cache: false,
672                data: {
673                    event: 'Pagetime',
674                    source_url: location.href,
675                    time: time,
676                    rand: Math.floor((Math.random() * 100000) + 1)
677                }
678            })
679            .done(function(data) {
680                if (data.return == 'ok') {
681                    trackPageTime(data);
682                }
683            })
684            .fail(function(jqXHR, textStatus, errorThrown) {
685                console.log('Conversion could not be sent, contact module developer to check the issue');
686            });
687                    }
688        function trackPageTime(data)
689        {
690            if (!validateTime(time)) {
691                return false;
692            }
693            var eventName = time == 0 ? 'Pagetime' : 'Time'+time+'s';
694            ppTrackEvent(eventName, {
695                'content_name' : 'PageTime',
696                value: 1,
697                currency : 'EUR',
698                status: true,
699                time : time+'s',
700            },  data.event_id);
701        }
702        function validateTime(time) {
703            let tmpTime = time.toString().replace('+', ''); // Remove the plus symbol
704            return !isNaN(tmpTime) && parseInt(tmpTime) > 0; // Check if it's a positive number
705        }
706    });
707</script>
707
708<!-- End Contact Pixel Call -->
709
710    <meta id="js-rcpgtm-tracking-config" data-tracking-data="%7B%22bing%22%3A%7B%22tracking_id%22%3A%22%22%2C%22feed%22%3A%7B%22id_product_prefix%22%3A%22%22%2C%22id_product_source_key%22%3A%22id_product%22%2C%22id_variant_prefix%22%3A%22%22%2C%22id_variant_source_key%22%3A%22id_attribute%22%7D%7D%2C%22context%22%3A%7B%22browser%22%3A%7B%22device_type%22%3A1%7D%2C%22localization%22%3A%7B%22id_country%22%3A8%2C%22country_code%22%3A%22FR%22%2C%22id_currency%22%3A1%2C%22currency_code%22%3A%22EUR%22%2C%22id_lang%22%3A1%2C%22lang_code%22%3A%22fr%22%7D%2C%22page%22%3A%7B%22controller_name%22%3A%22authentication%22%2C%22products_per_page%22%3A24%2C%22category%22%3A%5B%5D%2C%22search_term%22%3A%22%22%7D%2C%22shop%22%3A%7B%22id_shop%22%3A1%2C%22shop_name%22%3A%22Moulin%20Coop%C3%A9ratif%20de%20Mouri%C3%A8s%22%2C%22base_dir%22%3A%22https%3A%2F%2Fwww.moulincoop.com%2F%22%7D%2C%22tracking_module%22%3A%7B%22module_name%22%3A%22rcpgtagmanager%22%2C%22module_version%22%3A%224.4.1%22%2C%22checkout_module%22%3A%7B%22module%22%3A%22default%22%2C%22controller%22%3A%22order%22%7D%2C%22service_version%22%3A%228%22%2C%22token%22%3A%229e7e9b1dc19a635a1de6a5bafd7d5c46%22%7D%2C%22user%22%3A%5B%5D%7D%2C%22criteo%22%3A%7B%22tracking_id%22%3A%22%22%2C%22feed%22%3A%7B%22id_product_prefix%22%3A%22%22%2C%22id_product_source_key%22%3A%22id_product%22%2C%22id_variant_prefix%22%3A%22%22%2C%22id_variant_source_key%22%3A%22id_attribute%22%7D%7D%2C%22facebook%22%3A%7B%22tracking_id%22%3A%22%22%2C%22feed%22%3A%7B%22id_product_prefix%22%3A%22%22%2C%22id_product_source_key%22%3A%22id_product%22%2C%22id_variant_prefix%22%3A%22%22%2C%22id_variant_source_key%22%3A%22id_attribute%22%7D%7D%2C%22ga4%22%3A%7B%22tracking_id%22%3A%22G-T8L5P9D91Z%22%2C%22server_container_url%22%3A%22%22%2C%22is_url_passthrough%22%3Atrue%2C%22is_data_import%22%3Atrue%7D%2C%22gads%22%3A%7B%22tracking_id%22%3A%22%22%2C%22merchant_id%22%3A%22%22%2C%22conversion_labels%22%3A%7B%22create_account%22%3A%22%22%2C%22product_view%22%3A%22%22%2C%22add_to_cart%22%3A%22%22%2C%22begin_checkout%22%3A%22%22%2C%22purchase%22%3A%22%22%7D%2C%22retail%22%3A%7B%22id_product_prefix%22%3A%22%22%2C%22id_product_source_key%22%3A%22id_product%22%2C%22id_variant_prefix%22%3A%22%22%2C%22id_variant_source_key%22%3A%22id_attribute%22%7D%2C%22custom%22%3A%7B%22is_enabled%22%3Afalse%2C%22id_product_prefix%22%3A%22%22%2C%22id_product_source_key%22%3A%22id_product%22%2C%22id_variant_prefix%22%3A%22%22%2C%22id_variant_source_key%22%3A%22id_attribute%22%2C%22is_id2%22%3Afalse%7D%7D%2C%22gtm%22%3A%7B%22tracking_id%22%3A%22GTM-TKST93CZ%22%2C%22is_internal_traffic%22%3Afalse%2C%22script_url%22%3A%22%22%2C%22data_layer_name%22%3A%22%22%2C%22id_parameter%22%3A%22%22%2C%22override_tracking_id%22%3A%22%22%7D%2C%22kelkoo%22%3A%7B%22tracking_list%22%3A%5B%5D%2C%22feed%22%3A%7B%22id_product_prefix%22%3A%22%22%2C%22id_product_source_key%22%3A%22id_product%22%2C%22id_variant_prefix%22%3A%22%22%2C%22id_variant_source_key%22%3A%22id_attribute%22%7D%7D%2C%22pinterest%22%3A%7B%22tracking_id%22%3A%22%22%2C%22feed%22%3A%7B%22id_product_prefix%22%3A%22%22%2C%22id_product_source_key%22%3A%22id_product%22%2C%22id_variant_prefix%22%3A%22%22%2C%22id_variant_source_key%22%3A%22id_attribute%22%7D%7D%2C%22tiktok%22%3A%7B%22tracking_id%22%3A%22%22%2C%22feed%22%3A%7B%22id_product_prefix%22%3A%22%22%2C%22id_product_source_key%22%3A%22id_product%22%2C%22id_variant_prefix%22%3A%22%22%2C%22id_variant_source_key%22%3A%22id_attribute%22%7D%7D%2C%22twitter%22%3A%7B%22tracking_id%22%3A%22%22%2C%22events%22%3A%7B%22add_to_cart_id%22%3A%22%22%2C%22payment_info_id%22%3A%22%22%2C%22checkout_initiated_id%22%3A%22%22%2C%22product_view_id%22%3A%22%22%2C%22lead_id%22%3A%22%22%2C%22purchase_id%22%3A%22%22%2C%22search_id%22%3A%22%22%7D%2C%22feed%22%3A%7B%22id_product_prefix%22%3A%22%22%2C%22id_product_source_key%22%3A%22id_product%22%2C%22id_variant_prefix%22%3A%22%22%2C%22id_variant_source_key%22%3A%22id_attribute%22%7D%7D%7D">
711    
711<script type="text/javascript" data-keepinline="true" data-cfasync="false" src="/modules/rcpgtagmanager/views/js/hook/trackingClient.bundle.js?v=4.4.1"></script>
711
712
713
714
715
716    
717</head>
718
719<body id="authentication" class="lang-fr country-fr currency-eur layout-full-width page-authentication tax-display-enabled page-customer-account ce-kit-1 nologged">
720
721
722    
723
724
725<main>
726    
727            
728
729    <header id="header">
730        
731            	        <div data-elementor-type="header" data-elementor-id="1170101" class="elementor elementor-1170101">
732            <div class="elementor-section-wrap">
733                        <section class="elementor-element elementor-element-c598620 elementor-section-full_width elementor-section-height-default elementor-section-height-default elementor-section elementor-top-section" data-id="c598620" data-element_type="section" id="top" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
734                  <div class="elementor-container elementor-column-gap-default">
735                            <div class="elementor-row">
736                <div class="elementor-element elementor-element-56b7894 ce-valign-center elementor-column elementor-col-100 elementor-top-column" data-id="56b7894" data-element_type="column">
737            <div class="elementor-column-wrap elementor-element-populated">
738                <div class="elementor-widget-wrap">
739                <div class="elementor-element elementor-element-4b2afdf elementor-widget__width-auto elementor-widget elementor-widget-heading" data-id="4b2afdf" data-element_type="widget" data-widget_type="heading.default">
740        <div class="elementor-widget-container"><div class="elementor-heading-title">Frais de port offerts dès 200€ d'achat</div></div>        </div>
741                <div class="elementor-element elementor-element-2924b38 elementor-widget__width-auto elementor-widget elementor-widget-html" data-id="2924b38" data-element_type="widget" data-widget_type="html.default">
742        <div class="elementor-widget-container"><div class="gtranslate_wrapper"></div>
743<script>window.gtranslateSettings = {"default_language":"fr","native_language_names":true,"languages":["fr","en","de"],"wrapper_selector":".gtranslate_wrapper","flag_size":20}</script>
vendor: 2 bytes, line 743
743
744<script src="https://cdn.gtranslate.net/widgets/latest/flags.js" defer></script>
744</div>        </div>
745                        </div>
746            </div>
747        </div>
748                        </div>
749            </div>
750        </section>
751                <section class="elementor-element elementor-element-4507dca elementor-section-full_width elementor-section-height-default elementor-section-height-default elementor-section elementor-top-section" data-id="4507dca" data-element_type="section" id="menu-container" data-settings="{&quot;sticky&quot;:&quot;top&quot;,&quot;background_background&quot;:&quot;classic&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;],&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0}">
752                  <div class="elementor-container elementor-column-gap-default">
753                            <div class="elementor-row">
754                <div class="elementor-element elementor-element-05639e9 ce-valign-center elementor-column elementor-col-100 elementor-top-column" data-id="05639e9" data-element_type="column">
755            <div class="elementor-column-wrap elementor-element-populated">
756                <div class="elementor-widget-wrap">
757                <div class="elementor-element elementor-element-76906cc elementor-widget__width-auto elementor-widget elementor-widget-image" data-id="76906cc" data-element_type="widget" data-widget_type="image.default">
758        <div class="elementor-widget-container">        <div class="elementor-image">
759                            <a href="https://www.moulincoop.com/">
760                    <img src="/img/cms/logo-left.svg" alt="" loading="lazy" width="300" height="47">                    </a>
761                                </div>
762        </div>        </div>
763                <div class="elementor-element elementor-element-385c703 elementor-widget__width-auto menu-trigger elementor-widget elementor-widget-button" data-id="385c703" data-element_type="widget" data-widget_type="button.default">
764        <div class="elementor-widget-container">        <div class="elementor-button-wrapper">
765            <a href="#" class="elementor-button-link elementor-button elementor-size-sm" role="button">
766                <span class="elementor-button-content-wrapper">
767                            <span class="elementor-button-icon elementor-align-icon-right"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><g id="_04" data-name="04"><path d="m58 31h-52a1 1 0 0 0 0 2h52a1 1 0 0 0 0-2z"></path><path d="m6 18h52a1 1 0 0 0 0-2h-52a1 1 0 0 0 0 2z"></path><path d="m58 46h-52a1 1 0 0 0 0 2h52a1 1 0 0 0 0-2z"></path></g></svg></span>
768                                            <span class="elementor-button-text">Menu</span>
769                                </span>
770            </a>
771        </div>
772        </div>        </div>
773                <div class="elementor-element elementor-element-1dd75b0 elementor-search--skin-topbar elementor-widget__width-auto elementor-widget elementor-widget-ajax-search" data-id="1dd75b0" data-element_type="widget" data-settings="{&quot;skin&quot;:&quot;topbar&quot;,&quot;list_limit&quot;:5,&quot;show_image&quot;:&quot;yes&quot;,&quot;show_price&quot;:&quot;yes&quot;}" data-widget_type="ajax-search.default">
774        <div class="elementor-widget-container">        <form class="elementor-search" role="search"
775            action="https://www.moulincoop.com/recherche" method="get">
776                            <div class="elementor-search__toggle" role="button">
777                <i aria-hidden="true" class="ceicon ceicon-search-light"></i>                <span class="elementor-screen-only">Recherche</span>
778            </div>
779                    <div class="elementor-search__container">
780                            <div class="elementor-search__label">Que recherchez-vous ?</div>
781                <div class="elementor-search__input-wrapper">
782                            <input placeholder="Recherche..." class="elementor-search__input" type="search" name="s" value="" minlength="3">
783                <div class="elementor-search__icon elementor-search__clear"><i class="ceicon-close"></i></div>
784                            </div>
785                <div class="dialog-lightbox-close-button dialog-close-button">
786                    <i class="ceicon-close" aria-hidden="true"></i>
787                    <span class="elementor-screen-only">Fermer</span>
788                </div>
789                        </div>
790        </form>
791        </div>        </div>
792                <div class="elementor-element elementor-element-780e124f elementor-widget__width-initial elementor-widget elementor-widget-sign-in elementor-widget-nav-menu" data-id="780e124f" data-element_type="widget" id="menu-client" data-settings="{&quot;submenu_icon&quot;:{&quot;value&quot;:&quot;&quot;,&quot;library&quot;:&quot;&quot;},&quot;show_submenu_on&quot;:&quot;click&quot;,&quot;layout&quot;:&quot;horizontal&quot;}" data-widget_type="sign-in.default">
793        <div class="elementor-widget-container">        <nav class="elementor-sign-in elementor-nav--main elementor-nav__container elementor-nav--layout-horizontal">        <ul id="usermenu-780e124f" class="elementor-nav">
794                    <li class="menu-item menu-item-type-account menu-item-account-0">
795                <a class="elementor-item" href="https://www.moulincoop.com/mon-compte" aria-label="Mon compte">
796                                    <i class="ceicon ceicon-user-o"></i>
797                                                                </a>
798                            </li>
799                </ul>
800        </nav>
801        </div>        </div>
802                <div class="elementor-element elementor-element-171f9a6 elementor-widget__width-auto elementor-cart--buttons-stacked elementor-cart--items-indicator-bubble elementor-cart--show-view-cart-yes elementor-widget elementor-widget-shopping-cart" data-id="171f9a6" data-element_type="widget" data-settings="{&quot;action_open_cart&quot;:&quot;yes&quot;,&quot;remove_item_icon&quot;:{&quot;value&quot;:&quot;far fa-circle-xmark&quot;,&quot;library&quot;:&quot;fa-regular&quot;}}" data-widget_type="shopping-cart.default">
803        <div class="elementor-widget-container">            <div class="elementor-cart__container elementor-lightbox">
804                <div class="elementor-cart__main">
805                    <div class="elementor-cart__close-button ceicon-close"></div>
806                    <div class="elementor-cart__title">
807                        Panier                    </div>
808                            <div class="elementor-cart__empty-message">Aucun produit dans le panier.</div>
809        <div class="elementor-cart__products ce-scrollbar--auto" data-gift="Cadeau">
810                    </div>
811        <div class="elementor-cart__summary">
812            <div class="elementor-cart__summary-label">0 articles</div>
813            <div class="elementor-cart__summary-value">0,00 €</div>
814                    <span class="elementor-cart__summary-label">Livraison</span>
815            <span class="elementor-cart__summary-value"></span>
816            <strong class="elementor-cart__summary-label">Total</strong>
817            <strong class="elementor-cart__summary-value">0,00 €</strong>
818        </div>
819        <div class="elementor-alert elementor-alert-warning elementor-hidden" role="alert">
820            <span class="elementor-alert-description"></span>
821        </div>
822        <div class="elementor-cart__footer-buttons">
823            <div class="elementor-align-justify">
824                <a href="//www.moulincoop.com/panier?action=show" class="elementor-button elementor-button--view-cart elementor-size-md">
825                    <span class="elementor-button-text">Panier</span>
826                </a>
827            </div>
828            <div class="elementor-align-justify">
829                <a href="https://www.moulincoop.com/commande" class="elementor-button elementor-button--checkout elementor-size-md ce-disabled">
830                    <span class="elementor-button-text">Commander</span>
831                </a>
832            </div>
833        </div>
834                        </div>
835            </div>        <div class="elementor-cart__toggle">
836            <a href="//www.moulincoop.com/panier?action=show" class="elementor-button elementor-size-sm">
837                <span class="elementor-button-icon" data-counter="0">
838                    <svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" height="512" viewBox="0 0 125 125" width="512" data-name="Layer 1"><path d="m92.9 81.436h-44.59a2 2 0 0 1 -1.957-1.586l-11.323-53.55h-19.2v-4h20.82a2 2 0 0 1 1.956 1.586l11.325 53.55h42.969a6.676 6.676 0 0 0 6.5-5.082l7.716-31.22a1.864 1.864 0 0 0 -1.808-2.31h-49.688v-4h49.68a5.863 5.863 0 0 1 5.7 7.27l-7.717 31.219a10.666 10.666 0 0 1 -10.383 8.123z"></path><path d="m59.767 102.7a8.333 8.333 0 1 1 8.333-8.332 8.342 8.342 0 0 1 -8.333 8.332zm0-12.666a4.333 4.333 0 1 0 4.333 4.334 4.338 4.338 0 0 0 -4.333-4.333z"></path><path d="m88.371 102.7a8.333 8.333 0 1 1 8.329-8.332 8.342 8.342 0 0 1 -8.329 8.332zm0-12.666a4.333 4.333 0 1 0 4.329 4.334 4.338 4.338 0 0 0 -4.329-4.333z"></path></svg>
838                    <span class="elementor-screen-only">Panier</span>
839                </span>
840                <span class="elementor-button-text">0,00 €</span>
841            </a>
842        </div>
843        </div>        </div>
844                        </div>
845            </div>
846        </div>
847                        </div>
848            </div>
849        </section>
850                <nav class="elementor-element elementor-element-ccb1bd9 elementor-section-full_width elementor-section-content-top elementor-section-height-default elementor-section-height-default elementor-section elementor-top-section" data-id="ccb1bd9" data-element_type="section" id="fullscreen-menu" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
851                  <div class="elementor-container elementor-column-gap-default">
852                            <div class="elementor-row">
853                <div class="elementor-element elementor-element-4dc2693 ce-valign-top elementor-column elementor-col-100 elementor-top-column" data-id="4dc2693" data-element_type="column">
854            <div class="elementor-column-wrap elementor-element-populated">
855                <div class="elementor-widget-wrap">
856                <div class="elementor-element elementor-element-40abd10 elementor-widget__width-auto elementor-align-right menu-trigger elementor-absolute elementor-widget elementor-widget-button" data-id="40abd10" data-element_type="widget" data-settings="{&quot;_position&quot;:&quot;absolute&quot;}" data-widget_type="button.default">
857        <div class="elementor-widget-container">        <div class="elementor-button-wrapper">
858            <a href="#" class="elementor-button-link elementor-button elementor-size-sm" role="button">
859                <span class="elementor-button-content-wrapper">
860                            <span class="elementor-button-icon elementor-align-icon-right"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="Capa_1" x="0px" y="0px" viewBox="0 0 496.096 496.096" style="enable-background:new 0 0 496.096 496.096;" xml:space="preserve">
861<g>
862	<g>
863		<path d="M259.41,247.998L493.754,13.654c3.123-3.124,3.123-8.188,0-11.312c-3.124-3.123-8.188-3.123-11.312,0L248.098,236.686    L13.754,2.342C10.576-0.727,5.512-0.639,2.442,2.539c-2.994,3.1-2.994,8.015,0,11.115l234.344,234.344L2.442,482.342    c-3.178,3.07-3.266,8.134-0.196,11.312s8.134,3.266,11.312,0.196c0.067-0.064,0.132-0.13,0.196-0.196L248.098,259.31    l234.344,234.344c3.178,3.07,8.242,2.982,11.312-0.196c2.995-3.1,2.995-8.016,0-11.116L259.41,247.998z"></path>
864	</g>
865</g>
866<g>
867</g>
868<g>
869</g>
870<g>
871</g>
872<g>
873</g>
874<g>
875</g>
876<g>
877</g>
878<g>
879</g>
880<g>
881</g>
882<g>
883</g>
884<g>
885</g>
886<g>
887</g>
888<g>
889</g>
890<g>
891</g>
892<g>
893</g>
894<g>
895</g>
896</svg></span>
897                                            <span class="elementor-button-text">Menu</span>
898                                </span>
899            </a>
900        </div>
901        </div>        </div>
902                <section class="elementor-element elementor-element-e8e5e78 elementor-section-boxed elementor-section-height-default elementor-section-height-default elementor-section elementor-inner-section" data-id="e8e5e78" data-element_type="section">
903                  <div class="elementor-container elementor-column-gap-default">
904                            <div class="elementor-row">
905                <div class="elementor-element elementor-element-8a82bdc elementor-column elementor-col-100 elementor-inner-column" data-id="8a82bdc" data-element_type="column">
906            <div class="elementor-column-wrap elementor-element-populated">
907                <div class="elementor-widget-wrap">
908                <div class="elementor-element elementor-element-fe0dc77 elementor-widget__width-initial elementor-icon-list--layout-traditional elementor-widget elementor-widget-icon-list" data-id="fe0dc77" data-element_type="widget" data-widget_type="icon-list.default">
909        <div class="elementor-widget-container">        <ul class="elementor-icon-list-items">
910                    <li class="elementor-icon-list-item">
911            <a href="/3-nos-produits">
911                            <span class="elementor-icon-list-text">Tous nos produits</span>
912            </a>            </li>
913                </ul>
914        </div>        </div>
915                <div class="elementor-element elementor-element-d0faa01 elementor-widget elementor-widget-divider" data-id="d0faa01" data-element_type="widget" data-widget_type="divider.default">
916        <div class="elementor-widget-container">        <div class="elementor-divider">
917            <span class="elementor-divider-separator">
918                        </span>
919        </div>
920        </div>        </div>
921                <div class="elementor-element elementor-element-0b804c3 elementor-widget__width-initial elementor-icon-list--layout-traditional elementor-widget elementor-widget-icon-list" data-id="0b804c3" data-element_type="widget" data-widget_type="icon-list.default">
922        <div class="elementor-widget-container">        <ul class="elementor-icon-list-items">
923                    <li class="elementor-icon-list-item">
924            <a href="/4-huiles-d-olives">                            <span class="elementor-icon-list-text">Huiles d'olive</span>
925            </a>            </li>
926                    <li class="elementor-icon-list-item">
927            <a href="/5-produits-de-terroirs">                            <span class="elementor-icon-list-text">Epicerie de Terroirs</span>
928            </a>            </li>
929                    <li class="elementor-icon-list-item">
930            <a href="/8-cosmetique">                            <span class="elementor-icon-list-text">Cosmétiques</span>
931            </a>            </li>
932                    <li class="elementor-icon-list-item">
933            <a href="/6-cadeaux-et-coffrets">                            <span class="elementor-icon-list-text">Cadeaux et coffrets</span>
934            </a>            </li>
935                </ul>
936        </div>        </div>
937                <div class="elementor-element elementor-element-24a6fcf elementor-widget elementor-widget-divider" data-id="24a6fcf" data-element_type="widget" data-widget_type="divider.default">
938        <div class="elementor-widget-container">        <div class="elementor-divider">
939            <span class="elementor-divider-separator">
940                        </span>
941        </div>
942        </div>        </div>
943                <div class="elementor-element elementor-element-3bad73f elementor-widget__width-initial elementor-icon-list--layout-traditional elementor-widget elementor-widget-icon-list" data-id="3bad73f" data-element_type="widget" data-widget_type="icon-list.default">
944        <div class="elementor-widget-container">        <ul class="elementor-icon-list-items">
945                    <li class="elementor-icon-list-item">
946            <a href="/content/8-notre-histoire">                            <span class="elementor-icon-list-text">Cent ans d'histoire</span>
947            </a>            </li>
948                    <li class="elementor-icon-list-item">
949            <a href="/content/7-visites-degustations">                            <span class="elementor-icon-list-text">Visites et dégustations</span>
950            </a>            </li>
951                </ul>
952        </div>        </div>
953                        </div>
954            </div>
955        </div>
956                        </div>
957            </div>
958        </section>
959                        </div>
960            </div>
961        </div>
962                        </div>
963            </div>
964        </nav>
965                    </div>
966        </div>
967        
968        
969    </header>
970
971    <section id="wrapper">
972        <div id="overlay"></div>
973        
974            
975    <aside id="notifications" >
976        <div class="notifications-container">
977            
978            
979            
980                    </div>
981    </aside>
982        
983
984        
985                <div class="container">
986            
987                            
988
989            <div>
990                
991
992                
993        <div id="content-wrapper" class="js-content-wrapper col-xs-12">
994        
995        
996    <section id="main">
997
998        
999            
1000                                <header class="page-header">
1001                    <h1>
1002    Connectez-vous à votre compte
1003</h1>
1004                </header>
1005                            
1006        
1007
1008        
1009            <div id="content" class="page-content card card-block">
1010                
1011                
1012    
1013        <section class="login-form">
1014            
1015
1016    
1017            
1018    <form id="login-form" action="https://www.moulincoop.com/connexion?back=my-account" method="post">
1019        <div>
1020            
1021                                    
1022                                                                        
1023  
1024    <input type="hidden" name="back" value="my-account">
1025  
1026
1027
1028                    
1029                                    
1030                                                                        
1031  <div class="form-group ">
1032    <label class="col-md-12 form-control-label required" for="field-email">
1033              E-mail
1034          </label>
1035    <div class="col-md-12 js-input-column">
1036
1037      
1038        
1039          <input
1040            id="field-email"
1041            class="form-control"
1042            name="email"
1043            type="email"
1044            value=""
1045            autocomplete="email"                                    required          >
1046                  
1047
1048      
1049      
1050              
1051
1052    </div>
1053
1054    <div class="col-md-12 form-control-comment">
1055      
1056              
1057    </div>
1058  </div>
1059
1060
1061                    
1062                                    
1063                                                                        
1064  <div class="form-group ">
1065    <label class="col-md-12 form-control-label required" for="field-password">
1066              Mot de passe
1067          </label>
1068    <div class="col-md-12 js-input-column">
1069
1070      
1071        
1072          <div class="input-group js-parent-focus">
1073            <input
1074              id="field-password"
1075              class="form-control js-child-focus js-visible-password"
1076              name="password"
1077              aria-label="Saisie du mot de passe"
1078              type="password"
1079              data-minlength="8"              data-maxlength="72"              data-minscore="3"              autocomplete="current-password"              value=""
1080              pattern=".{5,}"
1081              required            >
1082            <span class="input-group-btn">
1083              <button
1084                class="btn"
1085                type="button"
1086                data-action="show-password"
1087                data-text-show="Afficher"
1088                data-text-hide="Masquer"
1089              >
1090                Afficher
1091              </button>
1092            </span>
1093          </div>
1094        
1095
1096      
1097      
1098              
1099
1100    </div>
1101
1102    <div class="col-md-12 form-control-comment">
1103      
1104              
1105    </div>
1106  </div>
1107
1108
1109                    
1110                            
1111            <div class="forgot-password">
1112                <a href="https://www.moulincoop.com/recuperation-mot-de-passe" rel="nofollow">
1113                    Mot de passe oublié ?
1114                </a>
1115            </div>
1116        </div>
1117
1118        
1119            <footer class="form-footer text-sm-center clearfix">
1120                <input type="hidden" name="submitLogin" value="1">
1121                
1122                    <button id="submit-login" class="btn btn-primary" data-link-action="sign-in" type="submit" class="form-control-submit">
1123                        Connexion
1124                    </button>
1125                
1126            </footer>
1127        
1128
1129    </form>
1130
1131
1132        </section>
1133        
1134            
1135        
1136        <div class="no-account flex">
1137            <span class="tenor">Pas de compte ?</span>
1138            <a href="https://www.moulincoop.com/inscription" data-link-action="display-register-form" class="btn btn-primary">
1139                Pas de compte ? Créez-en un
1140            </a>
1141        </div>
1142    
1143
1144            </div>
1145        
1146
1147        
1148            <footer class="page-footer">
1149                
1150                    <!-- Footer content -->
1151                
1152            </footer>
1153        
1154
1155    </section>
1156
1157        
1158    </div>
1159
1160
1161                
1162            </div>
1163        </div>
1164        
1165    </section>
1166
1167    <footer id="footer" class="js-footer">
1168        
1169            	        <div data-elementor-type="footer" data-elementor-id="2170101" class="elementor elementor-2170101">
1170            <div class="elementor-section-wrap">
1171                        <section class="elementor-element elementor-element-1be3013 elementor-section-boxed elementor-section-height-default elementor-section-height-default elementor-section elementor-top-section" data-id="1be3013" data-element_type="section">
1172                  <div class="elementor-container elementor-column-gap-default">
1173                            <div class="elementor-row">
1174                <div class="elementor-element elementor-element-606f196 elementor-column elementor-col-100 elementor-top-column" data-id="606f196" data-element_type="column">
1175            <div class="elementor-column-wrap elementor-element-populated">
1176                <div class="elementor-widget-wrap">
1177                <div class="elementor-element elementor-element-14087b4 elementor-widget elementor-widget-image" data-id="14087b4" data-element_type="widget" data-widget_type="image.default">
1178        <div class="elementor-widget-container">        <div class="elementor-image">
1179                            <img src="/img/cms/logo-black.svg" alt="" loading="lazy">                                </div>
1180        </div>        </div>
1181                <section class="elementor-element elementor-element-fed8260 elementor-section-boxed elementor-section-height-default elementor-section-height-default elementor-section elementor-inner-section" data-id="fed8260" data-element_type="section">
1182                  <div class="elementor-container elementor-column-gap-default">
1183                            <div class="elementor-row">
1184                <div class="elementor-element elementor-element-6205a85 elementor-column elementor-col-33 elementor-inner-column" data-id="6205a85" data-element_type="column">
1185            <div class="elementor-column-wrap elementor-element-populated">
1186                <div class="elementor-widget-wrap">
1187                <div class="elementor-element elementor-element-73764a2 elementor-widget elementor-widget-heading" data-id="73764a2" data-element_type="widget" data-widget_type="heading.default">
1188        <div class="elementor-widget-container"><div class="elementor-heading-title">Contact</div></div>        </div>
1189                <div class="elementor-element elementor-element-66cefd0 elementor-align-center elementor-icon-list--layout-traditional elementor-widget elementor-widget-icon-list" data-id="66cefd0" data-element_type="widget" data-widget_type="icon-list.default">
1190        <div class="elementor-widget-container">        <ul class="elementor-icon-list-items">
1191                    <li class="elementor-icon-list-item">
1192                                        <span class="elementor-icon-list-text">1 Chemin du Mas Neuf</span>
1193                        </li>
1194                    <li class="elementor-icon-list-item">
1195                                        <span class="elementor-icon-list-text">13890 Mouriès</span>
1196                        </li>
1197                    <li class="elementor-icon-list-item">
1198                                        <span class="elementor-icon-list-text">Bouches-du-Rhône, France</span>
1199                        </li>
1200                </ul>
1201        </div>        </div>
1202                        </div>
1203            </div>
1204        </div>
1205                <div class="elementor-element elementor-element-5f5d460 elementor-column elementor-col-33 elementor-inner-column" data-id="5f5d460" data-element_type="column">
1206            <div class="elementor-column-wrap elementor-element-populated">
1207                <div class="elementor-widget-wrap">
1208                <div class="elementor-element elementor-element-e89f97b elementor-align-center elementor-icon-list--layout-traditional elementor-widget elementor-widget-icon-list" data-id="e89f97b" data-element_type="widget" data-widget_type="icon-list.default">
1209        <div class="elementor-widget-container">        <ul class="elementor-icon-list-items">
1210                    <li class="elementor-icon-list-item">
1211            <a href="tel:0490475386">                            <span class="elementor-icon-list-text">Téléphone : 04 90 47 53 86</span>
1212            </a>            </li>
1213                    <li class="elementor-icon-list-item">
1214            <a href="mailto:[email protected]">                            <span class="elementor-icon-list-text">E-mail : [email protected]</span>
1215            </a>            </li>
1216                    <li class="elementor-icon-list-item">
1217                                        <span class="elementor-icon-list-text">Lun - Sam : 9h-12h, 14h-18h</span>
1218                        </li>
1219                </ul>
1220        </div>        </div>
1221                        </div>
1222            </div>
1223        </div>
1224                <div class="elementor-element elementor-element-b69d5ec elementor-column elementor-col-33 elementor-inner-column" data-id="b69d5ec" data-element_type="column">
1225            <div class="elementor-column-wrap elementor-element-populated">
1226                <div class="elementor-widget-wrap">
1227                <div class="elementor-element elementor-element-93be9c3 elementor-widget elementor-widget-heading" data-id="93be9c3" data-element_type="widget" data-widget_type="heading.default">
1228        <div class="elementor-widget-container"><div class="elementor-heading-title">Informations</div></div>        </div>
1229                <div class="elementor-element elementor-element-18dfb40 elementor-align-center elementor-icon-list--layout-traditional elementor-widget elementor-widget-icon-list" data-id="18dfb40" data-element_type="widget" data-widget_type="icon-list.default">
1230        <div class="elementor-widget-container">        <ul class="elementor-icon-list-items">
1231                    <li class="elementor-icon-list-item">
1232            <a href="/content/2-mentions-legales">                            <span class="elementor-icon-list-text">Mentions légales</span>
1233            </a>            </li>
1234                    <li class="elementor-icon-list-item">
1235            <a href="/content/3-cgv">                            <span class="elementor-icon-list-text">Conditions Générales de Ventes</span>
1236            </a>            </li>
1237                    <li class="elementor-icon-list-item">
1238            <a href="/content/6-politique-de-confidentialite">                            <span class="elementor-icon-list-text">Politique de confidentialité</span>
1239            </a>            </li>
1240                </ul>
1241        </div>        </div>
1242                        </div>
1243            </div>
1244        </div>
1245                        </div>
1246            </div>
1247        </section>
1248                        </div>
1249            </div>
1250        </div>
1251                        </div>
1252            </div>
1253        </section>
1254                <section class="elementor-element elementor-element-d775b5b elementor-section-full_width elementor-section-height-default elementor-section-height-default elementor-section elementor-top-section" data-id="d775b5b" data-element_type="section">
1255                  <div class="elementor-container elementor-column-gap-default">
1256                            <div class="elementor-row">
1257                <div class="elementor-element elementor-element-dc4f853 elementor-column elementor-col-100 elementor-top-column" data-id="dc4f853" data-element_type="column">
1258            <div class="elementor-column-wrap elementor-element-populated">
1259                <div class="elementor-widget-wrap">
1260                <div class="elementor-element elementor-element-2b6b0c5 elementor-widget elementor-widget-heading" data-id="2b6b0c5" data-element_type="widget" data-widget_type="heading.default">
1261        <div class="elementor-widget-container"><div class="elementor-heading-title">Abonnement à notre newsletter</div></div>        </div>
1262                <div class="elementor-element elementor-element-c3abc82 elementor-widget__width-initial elementor-widget elementor-widget-text-editor" data-id="c3abc82" data-element_type="widget" data-widget_type="text-editor.default">
1263        <div class="elementor-widget-container">        <div class="elementor-text-editor elementor-clearfix"><p>Inscrivez-vous dès maintenant et découvrez l'univers des arômes et des saveurs de l'huile d'olive du Moulin Coopératif de Mouriès.</p></div>
1264        </div>        </div>
1265                <div class="elementor-element elementor-element-40c428d elementor-widget__width-inherit elementor-layout-inline elementor-tablet-layout-inline elementor-mobile-layout-inline elementor-button-classic elementor-widget elementor-widget-email-subscription" data-id="40c428d" data-element_type="widget" data-widget_type="email-subscription.default">
1266        <div class="elementor-widget-container">        <form class="elementor-email-subscription" action="//www.moulincoop.com/module/creativeelements/ajax" method="post" data-msg="after">
1267            <input type="hidden" name="action" value="0">
1268            <div class="elementor-field-type-subscribe">
1269                <input type="email" name="email" class="elementor-field elementor-field-textual" placeholder="E-mail" inputmode="email" required>
1270                <button type="submit" name="submitNewsletter" value="1" class="elementor-button elementor-size-sm">
1271                    <span class="elementor-button-content-wrapper">
1272                                                                <span class="elementor-button-text">S’abonner</span>
1273                                        </span>
1274                </button>
1275            </div>
1276                </form>
1277        </div>        </div>
1278                <div class="elementor-element elementor-element-d2d2548 elementor-widget__width-inherit elementor-widget elementor-widget-text-editor" data-id="d2d2548" data-element_type="widget" data-widget_type="text-editor.default">
1279        <div class="elementor-widget-container">        <div class="elementor-text-editor elementor-clearfix"><p>« Uno journado sèns òli d’óulivo, es uno journado sènso soulèu … »</p></div>
1280        </div>        </div>
1281                <div class="elementor-element elementor-element-a6b06f0 elementor-widget elementor-widget-image" data-id="a6b06f0" data-element_type="widget" data-widget_type="image.default">
1282        <div class="elementor-widget-container">        <div class="elementor-image">
1283                            <img src="/img/cms/dessin-olive.png" alt="" loading="lazy" width="343" height="458">                                </div>
1284        </div>        </div>
1285                        </div>
1286            </div>
1287        </div>
1288                        </div>
1289            </div>
1290        </section>
1291                <section class="elementor-element elementor-element-c915d22 elementor-section-full_width elementor-section-height-default elementor-section-height-default elementor-section elementor-top-section" data-id="c915d22" data-element_type="section">
1292                  <div class="elementor-container elementor-column-gap-default">
1293                            <div class="elementor-row">
1294                <div class="elementor-element elementor-element-25ea5a5 elementor-column elementor-col-100 elementor-top-column" data-id="25ea5a5" data-element_type="column">
1295            <div class="elementor-column-wrap elementor-element-populated">
1296                <div class="elementor-widget-wrap">
1297                <div class="elementor-element elementor-element-9be1bec elementor-widget__width-initial elementor-absolute e-transform elementor-widget elementor-widget-image" data-id="9be1bec" data-element_type="widget" data-settings="{&quot;_position&quot;:&quot;absolute&quot;,&quot;_transform_rotateZ_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:180,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="image.default">
1298        <div class="elementor-widget-container">        <div class="elementor-image">
1299                            <img src="/img/cms/footer-shape2.svg" alt="" loading="lazy" width="300" height="21">                                </div>
1300        </div>        </div>
1301                <section class="elementor-element elementor-element-6a4f852 elementor-section-full_width elementor-section-height-min-height elementor-section-content-bottom elementor-section-height-default elementor-section elementor-inner-section" data-id="6a4f852" data-element_type="section" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
1302                            <div class="elementor-background-overlay"></div>
1303          <div class="elementor-container elementor-column-gap-default">
1304                            <div class="elementor-row">
1305                <div class="elementor-element elementor-element-6e536d2 elementor-column elementor-col-100 elementor-inner-column" data-id="6e536d2" data-element_type="column">
1306            <div class="elementor-column-wrap elementor-element-populated">
1307                <div class="elementor-widget-wrap">
1308                <div class="elementor-element elementor-element-54e023c elementor-shape-circle elementor-widget elementor-widget-social-icons" data-id="54e023c" data-element_type="widget" data-widget_type="social-icons.default">
1309        <div class="elementor-widget-container">        <div class="elementor-social-icons-wrapper">
1310                    <a class="elementor-icon elementor-social-icon elementor-social-icon-facebook elementor-repeater-item-97f65cb" href="https://www.facebook.com/profile.php?id=100065528498444" target="_blank">
1311                <span class="elementor-screen-only">Facebook</span>
1312                <i class="fab fa-facebook"></i>            </a>
1313                    <a class="elementor-icon elementor-social-icon elementor-social-icon-instagram elementor-repeater-item-5f367d1" href="https://www.instagram.com/moulincooperatifmouries/" target="_blank">
1314                <span class="elementor-screen-only">Instagram</span>
1315                <i class="fab fa-instagram"></i>            </a>
1316                </div>
1317        </div>        </div>
1318                <div class="elementor-element elementor-element-47c1ac7 elementor-widget__width-auto elementor-widget elementor-widget-image" data-id="47c1ac7" data-element_type="widget" data-widget_type="image.default">
1319        <div class="elementor-widget-container">        <div class="elementor-image">
1320                            <img src="/img/cms/aop-olive.svg" alt="" loading="lazy">                                </div>
1321        </div>        </div>
1322                <div class="elementor-element elementor-element-a57cc07 elementor-widget__width-auto elementor-widget elementor-widget-image" data-id="a57cc07" data-element_type="widget" data-widget_type="image.default">
1323        <div class="elementor-widget-container">        <div class="elementor-image">
1324                            <img src="/img/cms/beauxdeprovence.png" alt="" loading="lazy" width="600" height="600">                                </div>
1325        </div>        </div>
1326                <div class="elementor-element elementor-element-ea10864 elementor-icon-list--layout-inline elementor-align-center elementor-widget elementor-widget-icon-list" data-id="ea10864" data-element_type="widget" data-widget_type="icon-list.default">
1327        <div class="elementor-widget-container">        <ul class="elementor-icon-list-items elementor-inline-items">
1328                    <li class="elementor-icon-list-item">
1329                                        <span class="elementor-icon-list-text">© 2025 Moulin Coopératif de Mouriès</span>
1330                        </li>
1331                    <li class="elementor-icon-list-item">
1332                                        <span class="elementor-icon-list-text">Tous droits réservés</span>
1333                        </li>
1334                </ul>
1335        </div>        </div>
1336                        </div>
1337            </div>
1338        </div>
1339                        </div>
1340            </div>
1341        </section>
1342                <div class="elementor-element elementor-element-e2f886a elementor-widget__width-auto elementor-fixed elementor-widget elementor-widget-button" data-id="e2f886a" data-element_type="widget" data-settings="{&quot;_position&quot;:&quot;fixed&quot;}" data-widget_type="button.default">
1343        <div class="elementor-widget-container">        <div class="elementor-button-wrapper">
1344            <a href="#top" class="elementor-button-link elementor-button elementor-size-sm" role="button">
1345                <span class="elementor-button-content-wrapper">
1346                            <span class="elementor-button-icon elementor-align-icon-left"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path d="M15.098 8.344L.678 21.164C.081 21.694 0 22.645.5 23.279c.499.638 1.385.725 1.983.193l13.518-12.018 13.516 12.02c.6.53 1.486.445 1.985-.193s.419-1.585-.178-2.115L16.906 8.345c-.263-.234-.584-.351-.905-.351s-.641.118-.902.35z"></path></svg></span>
1347                                        </span>
1348            </a>
1349        </div>
1350        </div>        </div>
1351                        </div>
1352            </div>
1353        </div>
1354                        </div>
1355            </div>
1356        </section>
1357                <section class="elementor-element elementor-element-0839df6 elementor-section-height-min-height elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-phone elementor-section-boxed elementor-section-height-default elementor-section-items-middle elementor-section elementor-top-section" data-id="0839df6" data-element_type="section" id="modal-age2" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
1358                  <div class="elementor-container elementor-column-gap-default">
1359                            <div class="elementor-row">
1360                <div class="elementor-element elementor-element-1cbadba elementor-column elementor-col-100 elementor-top-column" data-id="1cbadba" data-element_type="column" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
1361            <div class="elementor-column-wrap elementor-element-populated">
1362                <div class="elementor-widget-wrap">
1363                <div class="elementor-element elementor-element-b801cfa elementor-absolute elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-phone elementor-widget elementor-widget-image" data-id="b801cfa" data-element_type="widget" data-settings="{&quot;_position&quot;:&quot;absolute&quot;}" data-widget_type="image.default">
1364        <div class="elementor-widget-container">        <div class="elementor-image">
1365                            <img src="/img/cms/header-shape-2.svg" alt="" loading="lazy" width="300" height="19">                                </div>
1366        </div>        </div>
1367                <div class="elementor-element elementor-element-4099f24 elementor-widget-tablet__width-inherit elementor-widget elementor-widget-heading" data-id="4099f24" data-element_type="widget" data-settings="{&quot;_animation&quot;:&quot;none&quot;}" data-widget_type="heading.default">
1368        <div class="elementor-widget-container"><div class="elementor-heading-title">Bienvenue !</div></div>        </div>
1369                <div class="elementor-element elementor-element-83e5ccc elementor-widget elementor-widget-text-editor" data-id="83e5ccc" data-element_type="widget" data-widget_type="text-editor.default">
1370        <div class="elementor-widget-container">        <div class="elementor-text-editor elementor-clearfix"><p>Avant de pouvoir effectuer des achats dans notre boutique en ligne, nous devons vérifier que vous êtes âgé de 18 ans ou plus.</p></div>
1371        </div>        </div>
1372                <div class="elementor-element elementor-element-6aee267 elementor-align-center e-transform-hover elementor-widget elementor-widget-button" data-id="6aee267" data-element_type="widget" id="plus18" data-settings="{&quot;_transform_translateY_effect_hover&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:5,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_hover&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_hover_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_hover_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_hover_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_hover_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}" data-widget_type="button.default">
1373        <div class="elementor-widget-container">        <div class="elementor-button-wrapper">
1374            <a href="#" class="elementor-button-link elementor-button elementor-size-sm" role="button">
1375                <span class="elementor-button-content-wrapper">
1376                            <span class="elementor-button-icon elementor-align-icon-right"><i aria-hidden="true" class="ceicon ceicon-arrow-right"></i></span>
1377                                            <span class="elementor-button-text">Oui, j'ai 18 ans ou plus</span>
1378                                </span>
1379            </a>
1380        </div>
1381        </div>        </div>
1382                <div class="elementor-element elementor-element-92bde26 elementor-align-center elementor-widget elementor-widget-button" data-id="92bde26" data-element_type="widget" id="moins18" data-widget_type="button.default">
1383        <div class="elementor-widget-container">        <div class="elementor-button-wrapper">
1384            <a href="https://www.google.fr" class="elementor-button-link elementor-button elementor-size-sm" role="button">
1385                <span class="elementor-button-content-wrapper">
1386                                                        <span class="elementor-button-text">Non, j'ai moins de 18 ans</span>
1387                                </span>
1388            </a>
1389        </div>
1390        </div>        </div>
1391                        </div>
1392            </div>
1393        </div>
1394                        </div>
1395            </div>
1396        </section>
1397                    </div>
1398        </div>
1399        
1400        
1401    </footer>
1402
1403</main>
1404
1405
1406    
1407<template id="password-feedback">
1408  <div
1409    class="password-strength-feedback mt-1"
1410    style="display: none;"
1411  >
1412    <div class="progress-container">
1413      <div class="progress mb-1">
1414        <div class="progress-bar" role="progressbar" value="50" aria-valuemin="0" aria-valuemax="100"></div>
1415      </div>
1416    </div>
1417    
1417<script type="text/javascript" class="js-hint-password">
1418              {"0":"Tr\u00e8s faible","1":"Faible","2":"Moyenne","3":"Fort","4":"Tr\u00e8s fort","Straight rows of keys are easy to guess":"Les suites de touches sur le clavier sont faciles \u00e0 deviner","Short keyboard patterns are easy to guess":"Les mod\u00e8les courts sur le clavier sont faciles \u00e0 deviner.","Use a longer keyboard pattern with more turns":"Utilisez une combinaison de touches plus longue et plus complexe.","Repeats like \"aaa\" are easy to guess":"Les r\u00e9p\u00e9titions (ex. : \"aaa\") sont faciles \u00e0 deviner.","Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"":"Les r\u00e9p\u00e9titions (ex. : \"abcabcabc\") sont seulement un peu plus difficiles \u00e0 deviner que \"abc\".","Sequences like abc or 6543 are easy to guess":"Les s\u00e9quences (ex. : abc ou 6543) sont faciles \u00e0 deviner.","Recent years are easy to guess":"Les ann\u00e9es r\u00e9centes sont faciles \u00e0 deviner.","Dates are often easy to guess":"Les dates sont souvent faciles \u00e0 deviner.","This is a top-10 common password":"Ce mot de passe figure parmi les 10 mots de passe les plus courants.","This is a top-100 common password":"Ce mot de passe figure parmi les 100 mots de passe les plus courants.","This is a very common password":"Ceci est un mot de passe tr\u00e8s courant.","This is similar to a commonly used password":"Ce mot de passe est similaire \u00e0 un mot de passe couramment utilis\u00e9.","A word by itself is easy to guess":"Un mot seul est facile \u00e0 deviner.","Names and surnames by themselves are easy to guess":"Les noms et les surnoms seuls sont faciles \u00e0 deviner.","Common names and surnames are easy to guess":"Les noms et les pr\u00e9noms courants sont faciles \u00e0 deviner.","Use a few words, avoid common phrases":"Utilisez quelques mots, \u00e9vitez les phrases courantes.","No need for symbols, digits, or uppercase letters":"Pas besoin de symboles, de chiffres ou de majuscules.","Avoid repeated words and characters":"\u00c9viter de r\u00e9p\u00e9ter les mots et les caract\u00e8res.","Avoid sequences":"\u00c9viter les s\u00e9quences.","Avoid recent years":"\u00c9vitez les ann\u00e9es r\u00e9centes.","Avoid years that are associated with you":"\u00c9vitez les ann\u00e9es qui vous sont associ\u00e9es.","Avoid dates and years that are associated with you":"\u00c9vitez les dates et les ann\u00e9es qui vous sont associ\u00e9es.","Capitalization doesn't help very much":"Les majuscules ne sont pas tr\u00e8s utiles.","All-uppercase is almost as easy to guess as all-lowercase":"Un mot de passe tout en majuscules est presque aussi facile \u00e0 deviner qu'un mot de passe tout en minuscules.","Reversed words aren't much harder to guess":"Les mots invers\u00e9s ne sont pas beaucoup plus difficiles \u00e0 deviner.","Predictable substitutions like '@' instead of 'a' don't help very much":"Les substitutions pr\u00e9visibles comme '\"@\" au lieu de \"a\" n'aident pas beaucoup.","Add another word or two. Uncommon words are better.":"Ajoutez un autre mot ou deux. Pr\u00e9f\u00e9rez les mots peu courants."}
1419          </script>
1419
1420
1421    <div class="password-strength-text"></div>
1422    <div class="password-requirements">
1423      <p class="password-requirements-length" data-translation="Entrez un mot de passe entre %s et %s caractères.">
1424        <i class="material-icons">check_circle</i>
1425        <span></span>
1426      </p>
1427      <p class="password-requirements-score" data-translation="Le score minimum doit être: %s.">
1428        <i class="material-icons">check_circle</i>
1429        <span></span>
1430      </p>
1431    </div>
1432  </div>
1433</template>
1434    	
1435
1436
1437	
1437<script src="https://www.moulincoop.com/themes/classic-child/assets/cache/bottom-76dc27753.js" ></script>
1437
1438
1439
1440
1441
1442
1443    <div id="js-rcpgtm-tracking-data" hidden data-tracking-data="%7B%22detail_products_list%22%3A%5B%5D%2C%22order_products_list%22%3A%5B%5D%2C%22order_complete_data%22%3A%5B%5D%2C%22order_context_user_data%22%3A%5B%5D%7D"></div>
vendor: 75 bytes, lines 1443-1447
1443
1444
1445
1446
1447        <script async src="https://www.googletagmanager.com/gtag/js?id=
1447G-KS80DP2X3T
vendor: 21 bytes, lines 1447-1448
1447"></script>
1448        
1448<script>
1449            
vendor: 168 bytes, lines 1449-1452
1449window.dataLayer = window.dataLayer || [];
1450            function gtag(){ dataLayer.push(arguments); }
1451            gtag('js', new Date());
1452            gtag('config', '
1452G-KS80DP2X3T
vendor: 17 bytes, lines 1452-1453
1452');
1453            
1453var GA_DEBUG = /[?&]debug=1($|&)/.test(location.search) || localStorage.getItem('ga4_debug') === '1';
1454            var __orig_gtag__ = gtag;
1455            gtag = function(cmd, name, params){
1456                if (cmd === 'config' || cmd === 'event') {
1457                    params = params || {};
1458                    if (GA_DEBUG) params.debug_mode = true;
1459                    return __orig_gtag__(cmd, name, params);
1460                }
1461                return __orig_gtag__.apply(this, arguments);
1462            };
1463            var GA_CONTEXT = {"page_type":"other","currency":"EUR","product":null,"category":null,"cart":null,"purchase":null,"user":null,"search_term":null};
1464            if (GA_CONTEXT.user && GA_CONTEXT.user.id) {
1465                gtag('set', {'user_id': GA_CONTEXT.user.id});
1466            }
1467            gtag('event', 'page_context', {
1468                page_type: GA_CONTEXT.page_type,
1469                category_id: GA_CONTEXT.category ? GA_CONTEXT.category.id : null,
1470                category_name: GA_CONTEXT.category ? GA_CONTEXT.category.name : null
1471            });
1472            function q(root, sel){ return (root||document).querySelector(sel); }
1473            function qText(root, sel){ var el = q(root, sel); return el ? el.textContent.trim() : null; }
1474            function getNumber(val, def){ var n = parseInt(val,10); return Number.isFinite(n) && n>0 ? n : def; }
1475            function parseIdsFromUrl(href){
1476                try{ var u=new URL(href, location.origin); return {pid:u.searchParams.get('id_product'), paid:u.searchParams.get('id_product_attribute')}; }
1477                catch(e){ return {pid:null, paid:null}; }
1478            }
1479            function buildItemId(pid, paid){ if(!pid) return undefined; return paid ? (String(pid)+'-'+String(paid)) : String(pid); }
1480            function parsePriceText(txt){
1481                if (!txt) return null;
1482                txt = txt.replace(/\u00a0/g,'').replace(/\s/g,'');
1483                var m = txt.match(/(\d+[.,]?\d*)/g);
1484                if (!m || !m.length) return null;
1485                var last = m[m.length-1].replace(',', '.');
1486                var num = parseFloat(last);
1487                return Number.isFinite(num) ? num : null;
1488            }
1489            function currentCurrency(){ return GA_CONTEXT.currency || (GA_CONTEXT.product && GA_CONTEXT.product.currency) || 'EUR'; }
1490            function categoriesForListing(){ return (GA_CONTEXT.page_type === 'category' && GA_CONTEXT.category && GA_CONTEXT.category.name) ? [GA_CONTEXT.category.name] : []; }
1491            function buildItemBase(opts){
1492                var p = GA_CONTEXT.product || null;
1493                var cats = (opts.cats && opts.cats.length) ? opts.cats : (p && p.categories) ? p.categories : [];
1494                var cur  = opts.currency || currentCurrency();
1495                return {
1496                    item_id:      opts.id || (p ? p.id : undefined),
1497                    item_name:    opts.name || (p ? p.name : undefined),
1498                    price:        (opts.price != null ? opts.price : (p ? p.price : undefined)),
1499                    currency:     cur,
1500                    quantity:     (opts.qty != null ? opts.qty : 1),
1501                    item_brand:   (opts.brand || (p ? p.brand : undefined)),
1502                    item_variant: (opts.variant || (p ? p.variant : undefined)),
1503                    item_category:  cats[0],
1504                    item_category2: cats[1],
1505                    item_category3: cats[2],
1506                    item_category4: cats[3],
1507                    item_category5: cats[4]
1508                };
1509            }
1510            (function(){
1511                if (GA_CONTEXT.page_type !== 'product' || !GA_CONTEXT.product) return;
1512                var p = GA_CONTEXT.product;
1513                gtag('event', 'view_item', {
1514                    currency: p.currency,
1515                    value: p.price,
1516                    items: [{
1517                        item_id: p.id,
1518                        item_name: p.name,
1519                        price: p.price,
1520                        currency: p.currency,
1521                        item_brand: p.brand || undefined,
1522                        item_variant: p.variant || undefined,
1523                        item_category:  p.categories && p.categories[0] ? p.categories[0] : undefined,
1524                        item_category2: p.categories && p.categories[1] ? p.categories[1] : undefined,
1525                        item_category3: p.categories && p.categories[2] ? p.categories[2] : undefined,
1526                        item_category4: p.categories && p.categories[3] ? p.categories[3] : undefined,
1527                        item_category5: p.categories && p.categories[4] ? p.categories[4] : undefined
1528                    }]
1529                });
1530            })();
1531            (function(){
1532                if (GA_CONTEXT.page_type !== 'category') return;
1533                var arts = Array.from(document.querySelectorAll('article[data-id-product]')).slice(0, 12);
1534                if (!arts.length) return;
1535
1536                var items = arts.map(function(a, idx){
1537                    var name  = (a.querySelector('.ce-product-name')||{}).textContent?.trim() || undefined;
1538                    var pid   = a.dataset.idProduct;
1539                    var paid  = a.dataset.idProductAttribute || null;
1540                    var price = parsePriceText((a.querySelector('.ce-product-price span')||{}).textContent);
1541                    var item  = buildItemBase({
1542                        id: buildItemId(pid, paid),
1543                        name: name,
1544                        price: price != null ? price : undefined,
1545                        cats: categoriesForListing()
1546                    });
1547                    item.index = idx + 1;
1548                    return item;
1549                });
1550
1551                gtag('event', 'view_item_list', {
1552                    item_list_name: GA_CONTEXT.category ? GA_CONTEXT.category.name : 'Listing',
1553                    items: items
1554                });
1555
1556                document.addEventListener('click', function(e){
1557                    var link = e.target.closest('.ce-product-name a, .elementor-widget-product-miniature-image a');
1558                    if (!link) return;
1559                    var card = link.closest('article[data-id-product]');
1560                    if (!card) return;
1561                    var pid   = card.dataset.idProduct, paid = card.dataset.idProductAttribute || null;
1562                    var name  = card.querySelector('.ce-product-name')?.textContent?.trim();
1563                    var price = parsePriceText(card.querySelector('.ce-product-price span')?.textContent);
1564                    var item  = buildItemBase({ id: buildItemId(pid, paid), name, price, cats: categoriesForListing() });
1565                    gtag('event', 'select_item', {
1566                        item_list_name: GA_CONTEXT.category ? GA_CONTEXT.category.name : 'Listing',
1567                        items: [ item ]
1568                    });
1569                }, true);
1570            })();
1571            var SEL = {
1572                addPdp: '.elementor-widget-product-add-to-cart a',           // PDP
1573                addCat: '.elementor-widget-product-miniature-add-to-cart a', // Listing catégorie
1574                rmSide: '.elementor-cart__product-remove a',                 // Side cart
1575                rmCart: '.product-line-actions a.remove-from-cart'           // Panier
1576            };
1577
1578            document.addEventListener('click', function(e) {
1579                var el = e.target.closest('a, button, [role="button"]');
1580                if (!el) return;
1581                if (el.matches(SEL.addPdp)) {
1582                    var name = qText(document, 'h1.elementor-heading-title');
1583                    var qty  = getNumber(q(document, 'input[name="qty"]')?.value, 1);
1584                    var price = parsePriceText(qText(document, '.ce-product-price span'));
1585                    var variant = Array.from(document.querySelectorAll('.ce-product-variants__select select'))
1586                        .map(function(s){ return s.options[s.selectedIndex]?.text?.trim(); })
1587                        .filter(Boolean).join(' / ') || null;
1588
1589                    var item = buildItemBase({ id: GA_CONTEXT.product ? GA_CONTEXT.product.id : undefined, name, qty, price, variant });
1590                    gtag('event', 'add_to_cart', {
1591                        currency: item.currency,
1592                        value: (item.price && item.quantity) ? (item.price * item.quantity) : undefined,
1593                        items: [ item ]
1594                    });
1595                    return;
1596                }
1597                if (el.matches(SEL.addCat)) {
1598                    var art   = el.closest('article');
1599                    var name  = qText(art, '.ce-product-name');
1600                    var price = parsePriceText(qText(art, '.ce-product-price span'));
1601                    var pid   = art?.dataset?.idProduct || null;
1602                    var paid  = art?.dataset?.idProductAttribute || null;
1603                    var qty   = 1;
1604
1605                    var item = buildItemBase({ id: buildItemId(pid, paid), name, price, qty, cats: categoriesForListing() });
1606                    gtag('event', 'add_to_cart', {
1607                        currency: item.currency,
1608                        value: (item.price && item.quantity) ? (item.price * item.quantity) : undefined,
1609                        items: [ item ]
1610                    });
1611                    return;
1612                }
1613                if (el.matches(SEL.rmSide)) {
1614                    var row   = el.closest('.elementor-cart__product');
1615                    var name  = qText(row, '.elementor-cart__product-name');
1616                    var qty   = getNumber(qText(row, '.elementor-cart__product-quantity'), 1);
1617                    var price = parsePriceText(qText(row, '.elementor-cart__product-price'));
1618                    var pid   = el.getAttribute('data-id-product') || parseIdsFromUrl(el.href).pid;
1619                    var paid  = el.getAttribute('data-id-product-attribute') || parseIdsFromUrl(el.href).paid;
1620                    var variant = qText(row, '.elementor-cart__product-attrs .elementor-cart__product-attr-value');
1621
1622                    var item = buildItemBase({ id: buildItemId(pid, paid), name, qty, price, variant });
1623                    gtag('event', 'remove_from_cart', {
1624                        currency: item.currency,
1625                        value: (item.price && item.quantity) ? (item.price * item.quantity) : undefined,
1626                        items: [ item ]
1627                    });
1628                    return;
1629                }
1630                if (el.matches(SEL.rmCart)) {
1631                    var row   = el.closest('.cart-item');
1632                    var name  = qText(row, '.product-line-info a.label') || qText(row, '.product-line-info');
1633                    var qty   = getNumber(q(row, '.js-cart-line-product-quantity')?.value, 1);
1634                    var price = parsePriceText(qText(row, '.product-price'));
1635                    var pid   = el.getAttribute('data-id-product') || parseIdsFromUrl(el.href).pid;
1636                    var paid  = el.getAttribute('data-id-product-attribute') || parseIdsFromUrl(el.href).paid;
1637                    var variant = qText(row, '.product-line-info.contenance .value');
1638
1639                    var item = buildItemBase({ id: buildItemId(pid, paid), name, qty, price, variant });
1640                    gtag('event', 'remove_from_cart', {
1641                        currency: item.currency,
1642                        value: (item.price && item.quantity) ? (item.price * item.quantity) : undefined,
1643                        items: [ item ]
1644                    });
1645                    return;
1646                }
1647            }, true);
1648            document.addEventListener('click', function(e){
1649                var up   = e.target.closest('.js-increase-product-quantity, .bootstrap-touchspin-up, .qty-augmenter');
1650                var down = e.target.closest('.js-decrease-product-quantity, .bootstrap-touchspin-down, .qty-reduire');
1651                if (!up && !down) return;
1652                var row  = e.target.closest('.cart-item');
1653                if (!row) return;
1654
1655                var name  = (row.querySelector('.product-line-info a.label') || row.querySelector('.product-line-info'))?.textContent?.trim();
1656                var price = parsePriceText((row.querySelector('.product-price')||{}).textContent);
1657
1658                var input = row.querySelector('.js-cart-line-product-quantity');
1659                var pid   = input?.getAttribute('data-product-id') || null;
1660                var updUrl = input?.getAttribute('data-update-url') || '';
1661                var paid   = null;
1662                if (updUrl) {
1663                    try { var u = new URL(updUrl, location.origin); paid = u.searchParams.get('id_product_attribute'); } catch(e){}
1664                }
1665
1666                var item = buildItemBase({ id: buildItemId(pid, paid), name, price, qty: 1 });
1667                gtag('event', up ? 'add_to_cart' : 'remove_from_cart', {
1668                    currency: item.currency,
1669                    value: (item.price && item.quantity) ? (item.price * item.quantity) : undefined,
1670                    items: [ item ]
1671                });
1672            }, true);
1673            (function(){
1674                if (GA_CONTEXT.page_type !== 'cart' || !GA_CONTEXT.cart) return;
1675                gtag('event', 'view_cart', {
1676                    currency: GA_CONTEXT.currency,
1677                    value: GA_CONTEXT.cart.value,
1678                    coupon: GA_CONTEXT.cart.coupon || undefined,
1679                    items: GA_CONTEXT.cart.items
1680                });
1681            })();
1682            (function(){
1683                if (GA_CONTEXT.page_type !== 'search') return;
1684                gtag('event', 'view_search_results', {
1685                    search_term: GA_CONTEXT.search_term || undefined
1686                });
1687            })();
1688            (function(){
1689                if (GA_CONTEXT.page_type !== 'order_confirmation' || !GA_CONTEXT.purchase) return;
1690                var p = GA_CONTEXT.purchase;
1691                if (p.user_id) { gtag('set', {'user_id': p.user_id}); }
1692                gtag('set', 'user_properties', {
1693                    customer_type: p.customer_type,               // 'new_customer' | 'returning_customer'
1694                    has_previous_orders: p.has_previous_orders    // true | false
1695                });
1696                var key = 'ga4_purchase_' + p.transaction_id;
1697                if (sessionStorage.getItem(key)) return;
1698
1699                gtag('event', 'purchase', {
1700                    transaction_id: p.transaction_id,
1701                    affiliation:    p.affiliation,
1702                    value:          p.value,
1703                    tax:            p.tax,
1704                    shipping:       p.shipping,
1705                    currency:       p.currency,
1706                    coupon:         p.coupon || undefined,
1707                    items:          p.items,
1708                    customer_type:        p.customer_type,
1709                    has_previous_orders:  p.has_previous_orders
1710                });
1711
1712                sessionStorage.setItem(key, '1');
1713            })();
1714            (function(){
1715                if (GA_CONTEXT.page_type !== 'checkout') return;
1716
1717                var sentSteps = new Set();
1718                var beginSent = false;
1719
1720                function labelForStep(id, titleText){
1721                    if (/personal/i.test(id)) return {name:'informations', index:1};
1722                    if (/addresses?/i.test(id)) return {name:'adresses', index:2};
1723                    if (/delivery/i.test(id)) return {name:'livraison', index:3};
1724                    if (/payment/i.test(id)) return {name:'paiement', index:4};
1725                    return {name: (titleText||id||'step').toLowerCase(), index: null};
1726                }
1727                function selectedShipping(){
1728                    var input = document.querySelector('input[type="radio"][name^="delivery_option"]:checked');
1729                    if (!input) return null;
1730                    var id = input.id, lab = id ? document.querySelector('label[for="'+id+'"]') : null;
1731                    return (lab ? lab.textContent.trim() : input.value) || null;
1732                }
1733                function selectedPayment(){
1734                    var input = document.querySelector('input[type="radio"][name="payment-option"]:checked');
1735                    if (!input) return null;
1736                    var id = input.id, lab = id ? document.querySelector('label[for="'+id+'"]') : null;
1737                    return (lab ? lab.textContent.trim() : input.value) || null;
1738                }
1739                function sendCheckoutStepView(stepId, stepTitle){
1740                    if (sentSteps.has(stepId)) return;
1741                    sentSteps.add(stepId);
1742
1743                    var lbl = labelForStep(stepId, stepTitle);
1744                    gtag('event', 'checkout_step_view', {
1745                        step_id: stepId,
1746                        step_name: lbl.name,
1747                        step_index: lbl.index
1748                    });
1749
1750                    var base = {
1751                        currency: GA_CONTEXT.currency,
1752                        value: GA_CONTEXT.cart ? GA_CONTEXT.cart.value : undefined,
1753                        coupon: GA_CONTEXT.cart && GA_CONTEXT.cart.coupon ? GA_CONTEXT.cart.coupon : undefined,
1754                        items: GA_CONTEXT.cart ? GA_CONTEXT.cart.items : undefined
1755                    };
1756
1757                    if (!beginSent && /personal/i.test(stepId)) {
1758                        beginSent = true;
1759                        gtag('event', 'begin_checkout', base);
1760                    } else if (/delivery/i.test(stepId)) {
1761                        gtag('event', 'add_shipping_info', Object.assign({}, base, {
1762                            shipping_tier: selectedShipping() || undefined
1763                        }));
1764                    } else if (/payment/i.test(stepId)) {
1765                        gtag('event', 'add_payment_info', Object.assign({}, base, {
1766                            payment_type: selectedPayment() || undefined
1767                        }));
1768                    }
1769                }
1770                function scanCurrentStep(){
1771                    var cur = document.querySelector('.checkout-step.-current, .checkout-step.js-current-step');
1772                    if (!cur) return;
1773                    var id = cur.id || '';
1774                    var title = qText(cur, '.step-title');
1775                    if (id) sendCheckoutStepView(id, title);
1776                }
1777                scanCurrentStep();
1778                var obs = new MutationObserver(function(muts){
1779                    for (var i=0;i<muts.length;i++){
1780                        var m = muts[i];
1781                        if (m.type === 'attributes' && m.target && m.target.classList && m.target.classList.contains('checkout-step')) {
1782                            if (m.target.classList.contains('-current') || m.target.classList.contains('js-current-step')) {
1783                                sendCheckoutStepView(m.target.id || '', qText(m.target, '.step-title'));
1784                            }
1785                        } else if (m.type === 'childList') {
1786                            scanCurrentStep();
1787                        }
1788                    }
1789                });
1790                obs.observe(document.body, {subtree:true, childList:true, attributes:true, attributeFilter:['class']});
1791            })();
1792        </script>
1792
1793        
1793<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"7b019f9794e14f2b958e55e87cd2fc7f","r":1,"spa":2}' crossorigin="anonymous"></script>
1793
1794</body>
1795
1796</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.