Showing source for: https://www.terra-ross.es/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses
Duration: 0.371476s
Server: cloudflare
<!doctype html>
<html class="no-js" lang="es" dir="ltr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0">
<link rel="shortcut icon" href="//www.terra-ross.es/cdn/shop/files/favicon-new-4.png?crop=center&height=48&v=1757053379&width=48" type="image/png" /><title>Tipos de trufas negras y blancas: temporada y usos – Terra Ross
</title><meta name="description" content="Descubre los principales tipos de trufas negras y blancas, su sabor, aroma, temporada, usos culinarios y cómo elegir la trufa adecuada para cada plato."><meta property="og:site_name" content="Terra Ross">
<meta property="og:url" content="https://www.terra-ross.es/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<meta property="og:title" content="Tipos de trufas negras y blancas: temporada y usos">
<meta property="og:type" content="article">
<meta property="og:description" content="Descubre los principales tipos de trufas negras y blancas, su sabor, aroma, temporada, usos culinarios y cómo elegir la trufa adecuada para cada plato."><meta property="og:image" content="https://www.terra-ross.es/cdn/shop/articles/black-and-white-truffles-1_23fc89c1-f5d1-415c-b6b7-58b930c51e12.webp?v=1790063019&width=1536">
<meta property="og:image:secure_url" content="https://www.terra-ross.es/cdn/shop/articles/black-and-white-truffles-1_23fc89c1-f5d1-415c-b6b7-58b930c51e12.webp?v=1790063019&width=1536">
<meta property="og:image:width" content="1536">
<meta property="og:image:height" content="1024">
<meta property="og:image:alt" content="Different types of black and white truffles with their seasons, flavors, and culinary uses"><meta
property="article:published_time"
content="2026-06-26T06:06:01+03:00"
>
<meta
property="article:modified_time"
content="2026-10-02T17:49:08+03:00"
><meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Tipos de trufas negras y blancas: temporada y usos">
<meta name="twitter:description" content="Descubre los principales tipos de trufas negras y blancas, su sabor, aroma, temporada, usos culinarios y cómo elegir la trufa adecuada para cada plato."><meta name="twitter:image" content="https://www.terra-ross.es/cdn/shop/articles/black-and-white-truffles-1_23fc89c1-f5d1-415c-b6b7-58b930c51e12.webp?v=1790063019&width=1536">
<meta name="twitter:image:alt" content="Different types of black and white truffles with their seasons, flavors, and culinary uses"><link rel="canonical" href="https://www.terra-ross.es/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="preconnect" href="https://cdn.shopify.com"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><link href="//www.terra-ross.es/cdn/shop/t/27/assets/theme.css?v=116664019511233992671789890991" as="style" rel="preload"><link href="//www.terra-ross.es/cdn/shop/t/27/assets/section-header.css?v=38854884185764721981786777741" as="style" rel="preload"><link href="//www.terra-ross.es/cdn/shop/t/27/assets/section-main-article.css?v=30226787609489779941789388094" as="style" rel="preload">
<link rel="preload" href="//www.terra-ross.es/cdn/fonts/open_sans/opensans_n5.500dcf21ddee5bc5855ad3a20394d3bc363c217c.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="//www.terra-ross.es/cdn/fonts/open_sans/opensans_n4.c32e4d4eca5273f6d4ee95ddf54b5bbb75fc9b61.woff2" as="font" type="font/woff2" crossorigin>
<style type="text/css">
@font-face {
font-family: "Open Sans";
font-weight: 500;
font-style: normal;
font-display: swap;
src: url("//www.terra-ross.es/cdn/fonts/open_sans/opensans_n5.500dcf21ddee5bc5855ad3a20394d3bc363c217c.woff2") format("woff2"),
url("//www.terra-ross.es/cdn/fonts/open_sans/opensans_n5.af1a06d824dccfb4d400ba874ef19176651ec834.woff") format("woff");
}
@font-face {
font-family: "Open Sans";
font-weight: 400;
font-style: normal;
font-display: swap;
src: url("//www.terra-ross.es/cdn/fonts/open_sans/opensans_n4.c32e4d4eca5273f6d4ee95ddf54b5bbb75fc9b61.woff2") format("woff2"),
url("//www.terra-ross.es/cdn/fonts/open_sans/opensans_n4.5f3406f8d94162b37bfa232b486ac93ee892406d.woff") format("woff");
}
@font-face {
font-family: "Open Sans";
font-weight: 500;
font-style: normal;
font-display: swap;
src: url("//www.terra-ross.es/cdn/fonts/open_sans/opensans_n5.500dcf21ddee5bc5855ad3a20394d3bc363c217c.woff2") format("woff2"),
url("//www.terra-ross.es/cdn/fonts/open_sans/opensans_n5.af1a06d824dccfb4d400ba874ef19176651ec834.woff") format("woff");
}
@font-face {
font-family: "Open Sans";
font-weight: 400;
font-style: italic;
font-display: swap;
src: url("//www.terra-ross.es/cdn/fonts/open_sans/opensans_i4.6f1d45f7a46916cc95c694aab32ecbf7509cbf33.woff2") format("woff2"),
url("//www.terra-ross.es/cdn/fonts/open_sans/opensans_i4.4efaa52d5a57aa9a57c1556cc2b7465d18839daa.woff") format("woff");
}
</style>
<style type="text/css">
:root {
/* Direction */
--direction:ltr;
/* Font variables */
--font-stack-headings: "Open Sans", sans-serif;
--font-weight-headings: 500;
--font-style-headings: normal;
--font-stack-body: "Open Sans", sans-serif;
--font-weight-body: 400;--font-weight-body-bold: 500;--font-style-body: normal;--font-weight-buttons: var(--font-weight-body-bold);--font-weight-menu: var(--font-weight-body-bold);--base-headings-size: 45;
--base-headings-line: 1.5;
--base-headings-spacing: 0.0em;
--base-body-size: 16;
--base-body-line: 1.6;
--base-body-spacing: -0.01em;
--base-menu-size: 15;
/* Color variables */
--color-background-header: #ffffff;
--color-secondary-background-header: rgba(29, 29, 29, 0.08);
--color-opacity-background-header: rgba(255, 255, 255, 0);
--color-text-header: #1d1d1d;
--color-foreground-header: #ffffff;
--color-accent-header: #000000;
--color-foreground-accent-header: #ffffff;
--color-borders-header: rgba(29, 29, 29, 0.1);
--color-background-main: #ffffff;
--color-secondary-background-main: rgba(29, 29, 29, 0.08);
--color-third-background-main: rgba(29, 29, 29, 0.04);
--color-fourth-background-main: rgba(29, 29, 29, 0.02);
--color-opacity-background-main: rgba(255, 255, 255, 0);
--color-text-main: #1d1d1d;
--color-foreground-main: #ffffff;
--color-secondary-text-main: rgba(29, 29, 29, 0.62);
--color-accent-main: #000000;
--color-foreground-accent-main: #ffffff;
--color-borders-main: rgba(29, 29, 29, 0.15);
--color-background-cards: #ffffff;
--color-gradient-cards: ;
--color-text-cards: #1d1d1d;
--color-foreground-cards: #ffffff;
--color-secondary-text-cards: rgba(29, 29, 29, 0.6);
--color-accent-cards: #1d1d1d;
--color-foreground-accent-cards: #ffffff;
--color-borders-cards: #e1e1e1;
--color-background-footer: #efefef;
--color-text-footer: #000000;
--color-accent-footer: #298556;
--color-borders-footer: rgba(0, 0, 0, 0.15);
--color-borders-forms-primary: rgba(29, 29, 29, 0.3);
--color-borders-forms-secondary: rgba(29, 29, 29, 0.6);
/* Borders */
--border-width-cards: 1px;
--border-radius-cards: 10px;
--border-width-buttons: 1px;
--border-radius-buttons: 30px;
--border-width-forms: 1px;
--border-radius-forms: 5px;
/* Shadows */
--shadow-x-cards: 0px;
--shadow-y-cards: 0px;
--shadow-blur-cards: 0px;
--color-shadow-cards: rgba(0,0,0,0);
--shadow-x-buttons: 0px;
--shadow-y-buttons: 0px;
--shadow-blur-buttons: 0px;
--color-shadow-buttons: rgba(0,0,0,0);
/* Layout */
--grid-gap-original-base: 26px;
--theme-max-width: 1750px;
--container-vertical-space-base: 100px;
--image-fit-padding: 10%;
}
@media screen and (max-width: 767px) {
:root {
--border-radius-cards: clamp(8px, 5px, 10px);
}
}
.facets__summary, #main select, .sidebar select, .modal-content select {
background-image: url('data:image/svg+xml;utf8,<svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="%231d1d1d"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="%231d1d1d"/></svg>');
}
.card .star-rating__stars {
background-image: url('data:image/svg+xml;utf8,<svg width="20" height="13" viewBox="0 0 14 13" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="m7 0 1.572 4.837h5.085l-4.114 2.99 1.572 4.836L7 9.673l-4.114 2.99 1.571-4.837-4.114-2.99h5.085L7 0Z" stroke="%231d1d1d" stroke-width="1"/></svg>');
}
.card .star-rating__stars-active {
background-image: url('data:image/svg+xml;utf8,<svg width="20" height="13" viewBox="0 0 14 13" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="m7 0 1.572 4.837h5.085l-4.114 2.99 1.572 4.836L7 9.673l-4.114 2.99 1.571-4.837-4.114-2.99h5.085L7 0Z" fill="%23058041" stroke-width="0"/></svg>');
}
.star-rating__stars {
background-image: url('data:image/svg+xml;utf8,<svg width="20" height="13" viewBox="0 0 14 13" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="m7 0 1.572 4.837h5.085l-4.114 2.99 1.572 4.836L7 9.673l-4.114 2.99 1.571-4.837-4.114-2.99h5.085L7 0Z" stroke="%231d1d1d" stroke-width="1"/></svg>');
}
.star-rating__stars-active {
background-image: url('data:image/svg+xml;utf8,<svg width="20" height="13" viewBox="0 0 14 13" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="m7 0 1.572 4.837h5.085l-4.114 2.99 1.572 4.836L7 9.673l-4.114 2.99 1.571-4.837-4.114-2.99h5.085L7 0Z" fill="%231d1d1d" stroke-width="0"/></svg>');
}
.product-item {--color-text-cards: #111111;}</style>
<style id="root-height">
:root {
--window-height: 100vh;
}
</style>
<script type="text/javascript">
window.KrownAssetLoader = {
loadedScripts: new Set(),
loadScript: function(url) {
if (this.loadedScripts.has(url)) return;
this.loadedScripts.add(url);
const script = document.createElement('script');
script.src = url;
script.defer = true;
document.head.appendChild(script);
}
};
</script><link href="//www.terra-ross.es/cdn/shop/t/27/assets/theme.css?v=116664019511233992671789890991" rel="stylesheet" type="text/css" media="all" />
<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script><meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/91251933506/digital_wallets/dialog">
<meta id="in-context-paypal-metadata" data-shop-id="91251933506" data-venmo-supported="false" data-environment="production" data-locale="es_ES" data-paypal-v4="true" data-currency="EUR">
<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" type="application/atom+xml" title="Feed" href="/blogs/truffle-guides.atom" />
<script async="async" src="/checkouts/internal/preloads.js?locale=es-ES&default_configuration_id=5247238466"></script>
<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=es-ES&default_configuration_id=5247238466&shop_id=91251933506" crossorigin="anonymous"></script>
<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":91251933506,"countryCode":"BG","currencyCode":"EUR","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/91251933506","merchantName":"Terra Ross","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","maestro","masterCard","amex"],"total":{"type":"pending","label":"Terra Ross","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
<script id="shopify-features" type="application/json">{"accessToken":"7238f307064f2db3443dfa43ed771836","betas":["rich-media-storefront-analytics"],"domain":"www.terra-ross.es","predictiveSearch":true,"shopId":91251933506,"locale":"es"}</script>
<script>var Shopify = Shopify || {};
Shopify.shop = "truffle-house-en.myshopify.com";
Shopify.locale = "es";
Shopify.currency = {"active":"EUR","rate":"1.0"};
Shopify.country = "ES";
Shopify.theme = {"name":"Local 4.1.2 - Main","id":192095682882,"schema_name":"Local","schema_version":"4.1.2","theme_store_id":1651,"role":"main"};
Shopify.theme.handle = "null";
Shopify.theme.style = {"id":null,"handle":null};
Shopify.cdnHost = "www.terra-ross.es/cdn";
Shopify.routes = Shopify.routes || {};
Shopify.routes.root = "/";
Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
Shopify.SignInWithShop = Shopify.SignInWithShop || {};
Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
Shopify.SignInWithShop.User.recognized = false;</script>
<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
<script>
window.ShopifyPay = window.ShopifyPay || {};
window.ShopifyPay.apiHost = "shop.app\/pay";
window.ShopifyPay.redirectState = null;
</script>
<script>
window.Shopify = window.Shopify || {};
window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
window.Shopify.SignInWithShop.eligible = true;
</script>
<script id="shop-js-analytics" type="application/json">{"pageType":"article"}</script>
<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.es.esm.js"></script>
<script type="module">
await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.es.esm.js");
window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
</script>
<script>
window.Shopify = window.Shopify || {};
if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.es.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.es.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.es.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.es.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.es.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.es.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.es.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.es.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.es.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.es.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.es.esm.js"],"listener":["modules/v2/loader.listener.es.esm.js"],"pay-button":["modules/v2/loader.pay-button.es.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.es.esm.js"],"shop-button":["modules/v2/loader.shop-button.es.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.es.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.es.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.es.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.es.esm.js"],"shop-login":["modules/v2/loader.shop-login.es.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.es.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.es.esm.js"]};
</script>
<script id="__st">var __st={"a":91251933506,"offset":10800,"reqid":"35a09771-bd46-48b2-a68e-58587a38392d-1792592804","pageurl":"www.terra-ross.es\/blogs\/truffle-guides\/types-of-black-and-white-truffles-flavor-season-culinary-uses","s":"articles-617080226114","u":"e91bdfb3fbf7","p":"article","rtyp":"article","rid":617080226114};</script>
<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protegido por hCaptcha',privacyText:'Privacidad',termsText:'Términos'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.terra-ross.es/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//www.terra-ross.es/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script><script crossorigin="anonymous" defer="defer" src="//www.terra-ross.es/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-f0e26bdf.js?v=20250812"></script>
<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
<script>
window.Shopify = window.Shopify || {};
window.Shopify.MCP = window.Shopify.MCP || {};
window.Shopify.MCP.enabled = true;
window.Shopify.MCP.shop = "truffle-house-en.myshopify.com";
window.Shopify.MCP.mcpEndpoint = "https:\/\/www.terra-ross.es\/api\/mcp";
window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\nSet policy_types to also get the store's written policies (full text and URL).\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question — e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}];
</script>
<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/www.terra-ross.es\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-f427de6a.js","sha256-ypGF+5vIq4Psw4WG7nsVtdd\/TCfsJWnrNuACdqLCElY=");})();
</script>
<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://www.terra-ross.es/cdn/shopifycloud/portable-wallets/latest/portable-wallets.es.js",t.type="module",document.head.appendChild(t)}};
</script>
<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent);
</script>
<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}}));
</script>
<script id='scb4127' type='text/javascript' async='' src='https://www.terra-ross.es/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script><link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.terra-ross.es/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
<style id="shopify-accelerated-checkout-cart">
#shopify-buyer-consent {
margin-top: 1em;
display: inline-block;
width: 100%;
}
#shopify-buyer-consent.hidden {
display: none;
}
#shopify-subscription-policy-button {
background: none;
border: none;
padding: 0;
text-decoration: underline;
font-size: inherit;
cursor: pointer;
}
#shopify-subscription-policy-button::before {
box-shadow: none;
}
</style>
<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
<script>
const rbi = [];
const ribSetSize = (img) => {
if ( img.offsetWidth / img.dataset.ratio < img.offsetHeight ) {
img.setAttribute('sizes', `${Math.ceil(img.offsetHeight * img.dataset.ratio)}px`);
} else {
img.setAttribute('sizes', `${Math.ceil(img.offsetWidth)}px`);
}
}
const debounce = (fn, wait) => {
let t;
return (...args) => {
clearTimeout(t);
t = setTimeout(() => fn.apply(this, args), wait);
};
}
window.KEYCODES = {
TAB: 9,
ESC: 27,
DOWN: 40,
RIGHT: 39,
UP: 38,
LEFT: 37,
RETURN: 13
};
window.addEventListener('resize', debounce(()=>{
for ( let img of rbi ) {
ribSetSize(img);
}
}, 250));
</script><noscript>
<link rel="stylesheet" href="//www.terra-ross.es/cdn/shop/t/27/assets/theme-noscript.css?v=42099867224588620941786777750">
</noscript>
<!-- BEGIN app block: shopify://apps/inbox/blocks/chat/841fc607-4181-4ad1-842d-e24d7f8bad6b --><link rel='modulepreload' href='https://cdn.shopify.com/storefront/web-components/chat.js' crossorigin fetchpriority='low'>
<script id='shopify-chat-app-embed-data' type='application/json'>
{
"settings": {
"invertActivatorColors": false,
"greetingMessage": "",
"showFeaturedProducts": true,
"featuredProducts": [],
"horizontalPosition": "bottom_right",
"icon": "chat_bubble",
"buttonLabel": "Chat"
}
}
</script>
<style data-shopify>
/* Shadow DOM content does not prevent theme-wide :empty rules from matching the host. */
shopify-chat:defined:empty {
display: grid;
}
:root {
--shopify-chat-bg-color: #ffffff;
--shopify-chat-text-color: #000000;
--shopify-chat-accent-bg-color: #000000;
--shopify-chat-accent-text-color: #ffffff;
--shopify-chat-activator-offset: 80px;
--shopify-chat-activator-font-size: 13px;
--shopify-chat-border-radius: 16px;
}
</style>
<script src='https://cdn.shopify.com/storefront/web-components/chat.js' type='module' crossorigin fetchpriority='low' async></script>
<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 -->
<script async src="https://static.klaviyo.com/onsite/js/RnW6mY/klaviyo.js?company_id=RnW6mY"></script>
<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
<script>
window.klaviyoReviewsProductDesignMode = false
</script>
<!-- END app block --><!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core -->
<link rel="dns-prefetch" href="https://cdn.judge.me">
<link rel="dns-prefetch" href="https://cdn1.judge.me">
<link rel="dns-prefetch" href="https://api.judge.me">
<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":true,"coupon_receiving_condition":"","coupon_value_type":"percentage","coupon_value_percentage":10,"coupon_value_fixed_amount":0,"coupon_discount_type":"tiered","coupon_tier_text_enabled":true,"coupon_tier_text_percentage":5,"coupon_tier_text_fixed_amount":0,"coupon_tier_photo_enabled":true,"coupon_tier_photo_percentage":8,"coupon_tier_photo_fixed_amount":0,"coupon_tier_video_enabled":true,"coupon_tier_video_percentage":10,"coupon_tier_video_fixed_amount":0,"enable_coupons":true,"badge_no_review_text":"Sin reseñas","badge_n_reviews_text":"{{ n }} reseña/reseñas","hide_badge_preview_if_no_reviews":true,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"Reseñas de Clientes","widget_open_form_text":"Escribir una reseña","widget_close_form_text":"Cancelar reseña","widget_refresh_page_text":"Actualizar página","widget_summary_text":"Basado en {{ number_of_reviews }} reseña/reseñas","widget_no_review_text":"Sé el primero en escribir una reseña","widget_name_field_text":"Nombre","widget_verified_name_field_text":"Nombre Verificado (público)","widget_name_placeholder_text":"Nombre","widget_required_field_error_text":"Este campo es obligatorio.","widget_email_field_text":"Dirección de correo electrónico","widget_verified_email_field_text":"Correo electrónico Verificado (privado, no se puede editar)","widget_email_placeholder_text":"Tu dirección de correo electrónico","widget_email_field_error_text":"Por favor, ingresa una dirección de correo electrónico válida.","widget_rating_field_text":"Calificación","widget_review_title_field_text":"Título de la Reseña","widget_review_title_placeholder_text":"Da un título a tu reseña","widget_review_body_field_text":"Contenido de la reseña","widget_review_body_placeholder_text":"Empieza a escribir aquí...","widget_pictures_field_text":"Imagen/Video (opcional)","widget_submit_review_text":"Enviar Reseña","widget_submit_verified_review_text":"Enviar Reseña Verificada","widget_submit_success_msg_with_auto_publish":"¡Gracias! Por favor, actualiza la página en unos momentos para ver tu reseña. Puedes eliminar o editar tu reseña iniciando sesión en \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_submit_success_msg_no_auto_publish":"¡Gracias! Tu reseña se publicará tan pronto como sea aprobada por el administrador de la tienda. Puedes eliminar o editar tu reseña iniciando sesión en \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_show_default_reviews_out_of_total_text":"Mostrando {{ n_reviews_shown }} de {{ n_reviews }} reseñas.","widget_show_all_link_text":"Mostrar todas","widget_show_less_link_text":"Mostrar menos","widget_author_said_text":"{{ reviewer_name }} dijo:","widget_days_text":"hace {{ n }} día/días","widget_weeks_text":"hace {{ n }} semana/semanas","widget_months_text":"hace {{ n }} mes/meses","widget_years_text":"hace {{ n }} año/años","widget_yesterday_text":"Ayer","widget_today_text":"Hoy","widget_replied_text":"\u003e\u003e {{ shop_name }} respondió:","widget_read_more_text":"Leer más","widget_reviewer_name_as_initial":"last_initial","widget_rating_filter_color":"#fbcd0a","widget_rating_filter_see_all_text":"Ver todas las reseñas","widget_sorting_most_recent_text":"Más Recientes","widget_sorting_highest_rating_text":"Mayor Calificación","widget_sorting_lowest_rating_text":"Menor Calificación","widget_sorting_with_pictures_text":"Solo Imágenes","widget_sorting_most_helpful_text":"Más Útiles","widget_open_question_form_text":"Hacer una pregunta","widget_reviews_subtab_text":"Reseñas","widget_questions_subtab_text":"Preguntas","widget_question_label_text":"Pregunta","widget_answer_label_text":"Respuesta","widget_question_placeholder_text":"Escribe tu pregunta aquí","widget_submit_question_text":"Enviar Pregunta","widget_question_submit_success_text":"¡Gracias por tu pregunta! Te notificaremos una vez que sea respondida.","verified_badge_text":"Verificado","verified_badge_bg_color":"","verified_badge_text_color":"","verified_badge_placement":"left-of-reviewer-name","widget_review_max_height":"","widget_hide_border":false,"widget_social_share":false,"widget_thumb":true,"widget_review_location_show":true,"widget_location_format":"","all_reviews_include_out_of_store_products":true,"all_reviews_out_of_store_text":"(fuera de la tienda)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"sobre","enable_review_pictures":true,"enable_question_anwser":false,"widget_theme":"default","review_date_format":"dd/mm/yyyy","default_sort_method":"most-recent","enable_ai_review_visibility":true,"widget_product_reviews_subtab_text":"Reseñas de Productos","widget_shop_reviews_subtab_text":"Reseñas de la Tienda","widget_other_products_reviews_text":"Reseñas para otros productos","widget_store_reviews_subtab_text":"Reseñas de la tienda","widget_product_variant_reference_text":"Reseña para","widget_no_store_reviews_text":"Esta tienda no ha recibido ninguna reseña todavía","widget_web_restriction_product_reviews_text":"Este producto no ha recibido ninguna reseña todavía","widget_no_items_text":"No se encontraron elementos","widget_show_more_text":"Mostrar más","widget_write_a_store_review_text":"Escribir una Reseña de la Tienda","widget_product_and_store_reviews_text":"Reseñas de productos y tienda","widget_reviews_in_collection_text":"Reseñas en esta colección","widget_other_languages_heading":"Reseñas en Otros Idiomas","widget_translate_review_text":"Traducir reseña a {{ language }}","widget_translating_review_text":"Traduciendo...","widget_show_original_translation_text":"Mostrar original ({{ language }})","widget_translate_review_failed_text":"No se pudo traducir la reseña.","widget_translate_review_retry_text":"Reintentar","widget_translate_review_try_again_later_text":"Intentar más tarde","show_product_url_for_grouped_product":false,"widget_sorting_pictures_first_text":"Imágenes Primero","show_pictures_on_all_rev_page_mobile":false,"show_pictures_on_all_rev_page_desktop":false,"floating_tab_hide_mobile_install_preference":false,"floating_tab_button_name":"★ Reseñas","floating_tab_title":"Deja que los clientes hablen por nosotros","floating_tab_button_color":"","floating_tab_button_background_color":"","floating_tab_url":"","floating_tab_url_enabled":false,"floating_tab_tab_style":"text","all_reviews_text_badge_text":"Los clientes nos califican {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 basado en {{ shop.metafields.judgeme.all_reviews_count }} reseñas.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} de 5 estrellas basado en {{ shop.metafields.judgeme.all_reviews_count }} reseñas","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":false,"all_reviews_text_badge_url":"","all_reviews_text_style":"branded","all_reviews_text_color_style":"judgeme_brand_color","all_reviews_text_color":"#108474","all_reviews_text_show_jm_brand":false,"featured_carousel_show_header":true,"featured_carousel_title":"Deja que los clientes hablen por nosotros","testimonials_carousel_title":"Los clientes nos dicen","videos_carousel_title":"Historias de clientes reales","cards_carousel_title":"Los clientes nos dicen","featured_carousel_count_text":"de {{ n }} reseñas","featured_carousel_add_link_to_all_reviews_page":false,"featured_carousel_url":"","featured_carousel_show_images":true,"featured_carousel_autoslide_interval":5,"featured_carousel_arrows_on_the_sides":true,"featured_carousel_height":250,"featured_carousel_width":80,"featured_carousel_image_size":0,"featured_carousel_image_height":250,"featured_carousel_arrow_color":"#eeeeee","verified_count_badge_style":"branded","verified_count_badge_orientation":"horizontal","verified_count_badge_color_style":"judgeme_brand_color","verified_count_badge_color":"#108474","is_verified_count_badge_a_link":false,"verified_count_badge_url":"","verified_count_badge_show_jm_brand":true,"widget_rating_preset_default":5,"widget_first_sub_tab":"product-reviews","widget_show_histogram":true,"widget_histogram_use_custom_color":false,"widget_pagination_use_custom_color":false,"widget_star_use_custom_color":false,"widget_verified_badge_use_custom_color":false,"widget_write_review_use_custom_color":false,"picture_reminder_submit_button":"Subir Imágenes","enable_review_videos":true,"mute_video_by_default":false,"widget_sorting_videos_first_text":"Videos Primero","widget_review_pending_text":"Pendiente","featured_carousel_items_for_large_screen":3,"social_share_options_order":"Facebook,Twitter","remove_microdata_snippet":true,"disable_json_ld":false,"enable_json_ld_products":false,"preview_badge_show_question_text":false,"preview_badge_no_question_text":"Sin preguntas","preview_badge_n_question_text":"{{ number_of_questions }} pregunta/preguntas","qa_badge_show_icon":false,"qa_badge_position":"same-row","remove_judgeme_branding":false,"widget_add_search_bar":false,"widget_search_bar_placeholder":"Buscar","widget_sorting_verified_only_text":"Solo verificadas","widget_sorting_most_relevant_text":"Más Relevantes","featured_carousel_theme":"gallery","featured_carousel_show_rating":true,"featured_carousel_show_title":true,"featured_carousel_show_body":true,"featured_carousel_show_date":false,"featured_carousel_show_reviewer":true,"featured_carousel_show_product":false,"featured_carousel_header_background_color":"#108474","featured_carousel_header_text_color":"#ffffff","featured_carousel_name_product_separator":"reviewed","featured_carousel_full_star_background":"#108474","featured_carousel_empty_star_background":"#dadada","featured_carousel_vertical_theme_background":"#f9fafb","featured_carousel_verified_badge_enable":true,"featured_carousel_verified_badge_color":"#108474","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":3,"featured_carousel_more_reviews_button_text":"Leer más reseñas","featured_carousel_view_product_button_text":"Ver producto","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"Cargar Más Reseñas","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_advanced_speed_features":5,"widget_public_name_text":"mostrado públicamente como","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"Anónimo","medals_widget_title":"Medallas de Reseñas Judge.me","medals_widget_background_color":"#f9fafb","medals_widget_position":"footer_all_pages","medals_widget_border_color":"#f9fafb","medals_widget_verified_text_position":"left","medals_widget_use_monochromatic_version":false,"medals_widget_elements_color":"#108474","show_reviewer_avatar":true,"widget_invalid_yt_video_url_error_text":"No es una URL de video de YouTube","widget_max_length_field_error_text":"Por favor, ingresa no más de {0} caracteres.","widget_show_country_flag":true,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"Verificado por la Tienda","widget_show_photo_gallery":false,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Hecho por nosotros, Compartido por ti","widget_ugc_subtitle":"Etiquétanos para ver tu imagen destacada en nuestra página","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Comprar Ahora","widget_ugc_primary_button_background_color":"#108474","widget_ugc_primary_button_text_color":"#ffffff","widget_ugc_primary_button_border_width":"0","widget_ugc_primary_button_border_style":"none","widget_ugc_primary_button_border_color":"#108474","widget_ugc_primary_button_border_radius":"25","widget_ugc_secondary_button_text":"Cargar Más","widget_ugc_secondary_button_background_color":"#ffffff","widget_ugc_secondary_button_text_color":"#108474","widget_ugc_secondary_button_border_width":"2","widget_ugc_secondary_button_border_style":"solid","widget_ugc_secondary_button_border_color":"#108474","widget_ugc_secondary_button_border_radius":"25","widget_ugc_reviews_button_text":"Ver Reseñas","widget_ugc_reviews_button_background_color":"#ffffff","widget_ugc_reviews_button_text_color":"#108474","widget_ugc_reviews_button_border_width":"2","widget_ugc_reviews_button_border_style":"solid","widget_ugc_reviews_button_border_color":"#108474","widget_ugc_reviews_button_border_radius":"25","widget_ugc_reviews_button_link_to":"judgeme-reviews-page","widget_ugc_show_post_date":true,"widget_ugc_max_width":"800","widget_rating_metafield_value_type":true,"widget_primary_color":"#058041","widget_enable_secondary_color":false,"widget_secondary_color":"#edf5f5","widget_summary_average_rating_text":"{{ average_rating }} de 5","widget_media_grid_title":"Fotos y videos de clientes","widget_media_grid_see_more_text":"Ver más","widget_round_style":false,"widget_show_product_medals":true,"widget_verified_by_judgeme_text":"Verificado por Judge.me","widget_show_store_medals":true,"widget_verified_by_judgeme_text_in_store_medals":"Verificado por Judge.me","widget_media_field_exceed_quantity_message":"Lo sentimos, solo podemos aceptar {{ max_media }} para una reseña.","widget_media_field_exceed_limit_message":"{{ file_name }} es demasiado grande, por favor selecciona un {{ media_type }} menor a {{ size_limit }}MB.","widget_review_submitted_text":"¡Reseña Enviada!","widget_question_submitted_text":"¡Pregunta Enviada!","widget_close_form_text_question":"Cancelar","widget_write_your_answer_here_text":"Escribe tu respuesta aquí","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":false,"widget_reviewer_name_color":"","widget_write_review_text_color":"","widget_write_review_bg_color":"","widget_collected_by_judgeme_text":"recopilado por Judge.me","widget_pagination_type":"standard","widget_load_more_text":"Cargar Más","widget_load_more_color":"#108474","widget_full_review_text":"Reseña Completa","widget_read_more_reviews_text":"Leer Más Reseñas","widget_read_questions_text":"Leer Preguntas","widget_questions_and_answers_text":"Preguntas y Respuestas","widget_verified_by_text":"Verificado por","widget_verified_text":"Verificado","widget_number_of_reviews_text":"{{ number_of_reviews }} reseñas","widget_back_button_text":"Atrás","widget_next_button_text":"Siguiente","widget_custom_forms_filter_button":"Filtros","custom_forms_style":"horizontal","widget_show_review_information":false,"how_reviews_are_collected":"¿Cómo se recopilan las reseñas?","widget_show_review_keywords":false,"widget_gdpr_statement":"Cómo usamos tus datos: Solo te contactaremos sobre la reseña que dejaste, y solo si es necesario. Al enviar tu reseña, aceptas los \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003etérminos\u003c/a\u003e, \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacidad\u003c/a\u003e y \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003epolíticas de contenido\u003c/a\u003e de Judge.me.","widget_multilingual_sorting_enabled":true,"widget_translate_review_content_enabled":true,"widget_translate_review_content_method":"automatic","popup_widget_review_selection":"automatically","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":true,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":false,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":false,"popup_widget_position":"bottom_right","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":3,"popup_widget_hide_on_mobile":true,"popup_widget_source_mode":"auto","popup_widget_page_product":"current_product","popup_widget_page_collection":"current_collection","popup_widget_page_cart":"cart_mode","popup_widget_page_home":"all","popup_widget_star_rating":"all","popup_widget_review_type":"all","popup_widget_top_up_thin_pages":true,"popup_widget_corner_styling":"soft","review_snippet_widget_round_border_style":true,"review_snippet_widget_card_color":"#FFFFFF","review_snippet_widget_text_color":"#000000","review_snippet_widget_lighter_text_color":"#7B7B7B","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#058041","show_product_variant":false,"all_reviews_product_variant_label_text":"Variante: ","widget_show_verified_branding":true,"widget_ai_summary_title":"Los clientes dicen","widget_ai_summary_disclaimer":"Resumido y seleccionado por IA a partir de reseñas recientes de clientes","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"write_review_button_visibility":"everyone","store_summary_widget_heading":"Los clientes califican esta tienda","store_summary_widget_button_text":"Ver opiniones de clientes","store_summary_widget_button_theme_text":"Ver resumen de opiniones con IA","widget_show_review_title_input":true,"widget_autofill_review_title":true,"redirect_reviewers_invited_via_email":"external_form","request_store_review_after_product_review":true,"request_review_other_products_in_order":true,"review_form_color_scheme":"default","review_form_corner_style":"square","review_form_star_color":"#058041","review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":"#058041","review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_form_theme":"multi_step","review_form_location":"in_store_popup","review_form_external_page_background_color":"#C5F7F0","review_content_screen_title_text":"¿Cómo calificarías este producto?","review_content_introduction_text":"Nos encantaría que compartieras un poco sobre tu experiencia.","store_review_form_title_text":"¿Cómo calificarías esta tienda?","store_review_form_introduction_text":"Nos encantaría que compartieras un poco sobre tu experiencia.","show_review_guidance_text":true,"one_star_review_guidance_text":"Pobre","five_star_review_guidance_text":"Excelente","customer_information_screen_title_text":"Sobre ti","customer_information_introduction_text":"Por favor, cuéntanos más sobre ti.","custom_questions_screen_title_text":"Tu experiencia en más detalle","custom_questions_introduction_text":"Aquí hay algunas preguntas para ayudarnos a entender más sobre tu experiencia.","review_submitted_screen_title_text":"¡Gracias por tu reseña!","review_submitted_screen_thank_you_text":"La estamos procesando y aparecerá en la tienda pronto.","review_submitted_screen_email_verification_text":"Por favor, confirma tu correo electrónico haciendo clic en el enlace que acabamos de enviarte. Esto nos ayuda a mantener las reseñas auténticas.","confirm_email_screen_title_text":"Confirma tu correo electrónico","confirm_email_screen_message_text":"Para mantener las reseñas auténticas, te enviaremos un enlace seguro para continuar escribiendo tu reseña. Solo toma un momento.","check_email_screen_title_text":"Revisa tu correo electrónico","check_email_screen_message_text":"Te enviamos un correo a {{ email }}. Haz clic en el botón del correo para continuar.","check_email_screen_resend_message_text":"¡Correo reenviado!","check_email_resend_hint_text":"¿No recibiste el correo electrónico? Revisa tu carpeta de spam o [reenvía el correo electrónico].","verification_email_rate_limit_error_text":"Has alcanzado el límite de intentos de reseña para este producto. Por favor, revisa tu bandeja de entrada o inténtalo de nuevo más tarde.","review_submitted_request_store_review_text":"¿Te gustaría compartir tu experiencia de compra con nosotros?","review_submitted_review_other_products_text":"¿Te gustaría reseñar estos productos?","store_review_screen_title_text":"¿Te gustaría compartir tu experiencia de compra con nosotros?","store_review_introduction_text":"Valoramos tu opinión y la utilizamos para mejorar. Por favor, comparte cualquier pensamiento o sugerencia que tengas.","reviewer_media_screen_title_picture_text":"Compartir una foto","reviewer_media_introduction_picture_text":"Sube una foto para apoyar tu reseña.","reviewer_media_screen_title_video_text":"Compartir un video","reviewer_media_introduction_video_text":"Sube un video para apoyar tu reseña.","reviewer_media_screen_title_picture_or_video_text":"Compartir una foto o video","reviewer_media_introduction_picture_or_video_text":"Sube una foto o video para apoyar tu reseña.","reviewer_media_youtube_url_text":"Pega tu URL de Youtube aquí","advanced_settings_next_step_button_text":"Siguiente","advanced_settings_close_review_button_text":"Cerrar","modal_write_review_flow":true,"write_review_flow_required_text":"Obligatorio","write_review_flow_privacy_message_text":"Respetamos tu privacidad.","write_review_flow_anonymous_text":"Reseña como anónimo","write_review_flow_visibility_text":"No será visible para otros clientes.","write_review_flow_multiple_selection_help_text":"Selecciona tantos como quieras","write_review_flow_single_selection_help_text":"Selecciona una opción","write_review_flow_required_field_error_text":"Este campo es obligatorio","write_review_flow_invalid_email_error_text":"Por favor ingresa una dirección de correo válida","write_review_flow_max_length_error_text":"Máx. {{ max_length }} caracteres.","write_review_flow_media_upload_text":"\u003cb\u003eHaz clic para subir\u003c/b\u003e o arrastrar y soltar","write_review_flow_gdpr_statement":"Solo te contactaremos sobre tu reseña si es necesario. Al enviar tu reseña, aceptas nuestros \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003etérminos y condiciones\u003c/a\u003e y \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003epolítica de privacidad\u003c/a\u003e.","rating_only_reviews_enabled":false,"show_negative_reviews_help_screen":false,"new_review_flow_help_screen_rating_threshold":3,"negative_review_resolution_screen_title_text":"Cuéntanos más","negative_review_resolution_text":"Tu experiencia es importante para nosotros. Si hubo problemas con tu compra, estamos aquí para ayudar. No dudes en contactarnos, nos encantaría la oportunidad de arreglar las cosas.","negative_review_resolution_button_text":"Contáctanos","negative_review_resolution_proceed_with_review_text":"Deja una reseña","negative_review_resolution_subject":"Problema con la compra de {{ shop_name }}.{{ order_name }}","coupon_promo_intro_any_review_text":"Escribe una reseña y obtén un cupón de {{ amount }} de descuento en tu próxima compra","coupon_promo_intro_with_photo_text":"Escribe una reseña y añade una foto o video para obtener un cupón de {{ amount }} de descuento en tu próxima compra","coupon_promo_intro_with_video_text":"Escribe una reseña y añade un video para obtener un cupón de {{ amount }} de descuento en tu próxima compra","coupon_promo_intro_up_to_any_review_text":"Escribe una reseña y obtén un cupón de hasta {{ amount }} de descuento en tu próxima compra","coupon_promo_intro_up_to_with_photo_text":"Escribe una reseña y añade una foto o video para obtener un cupón de hasta {{ amount }} de descuento en tu próxima compra","coupon_promo_intro_external_text":"Escribe una reseña y obtén una recompensa para tu próxima compra","coupon_promo_intro_external_with_photo_text":"Escribe una reseña y añade una foto o video para obtener una recompensa para tu próxima compra","coupon_promo_intro_external_with_video_text":"Escribe una reseña y añade un video para obtener una recompensa para tu próxima compra","coupon_promo_media_photo_text":"Añade una foto o video y obtén un cupón de {{ amount }} de descuento en tu próxima compra","coupon_promo_media_photo_only_text":"Añade una foto y obtén un cupón de {{ amount }} de descuento en tu próxima compra","coupon_promo_media_video_text":"Agrega un video y obtén un cupón de {{ amount }} de descuento en tu próxima compra","coupon_promo_media_external_photo_text":"Agrega una foto o video y obtén una recompensa para tu próxima compra","coupon_promo_media_external_photo_only_text":"Agrega una foto y obtén una recompensa para tu próxima compra","coupon_promo_media_external_video_text":"Agrega un video y obtén una recompensa para tu próxima compra","coupon_promo_success_text":"¡Obtuviste un cupón para tu próxima compra en {{ shop_name }}!","coupon_promo_success_subtext":"Recibirás el correo con tu cupón dentro de una hora.","preview_badge_collection_page_install_status":false,"widget_review_custom_css":"","preview_badge_custom_css":"","preview_badge_stars_count":"5-stars","featured_carousel_custom_css":"","floating_tab_custom_css":"","all_reviews_widget_custom_css":"","medals_widget_custom_css":"","verified_badge_custom_css":"","all_reviews_text_custom_css":"","transparency_badges_collected_via_store_invite":false,"transparency_badges_from_another_provider":false,"transparency_badges_collected_from_store_visitor":true,"transparency_badges_collected_by_verified_review_provider":true,"transparency_badges_earned_reward":false,"transparency_badges_collected_via_store_invite_text":"Reseña recopilada a través de una invitación al negocio","transparency_badges_from_another_provider_text":"Reseña recopilada de otro proveedor","transparency_badges_collected_from_store_visitor_text":"Reseña recopilada de un visitante del negocio","transparency_badges_written_in_google_text":"Reseña escrita en Google","transparency_badges_written_in_etsy_text":"Reseña escrita en Etsy","transparency_badges_written_in_shop_app_text":"Reseña escrita en Shop App","transparency_badges_earned_reward_text":"Reseña ganó una recompensa para una futura compra","product_review_widget_per_page":4,"widget_other_languages_reviews_per_page":3,"widget_store_review_label_text":"Reseña de la tienda","widget_cart_mode_aggregate_heading_text":"Los clientes valoran esta tienda","widget_sort_by_text":"Ordenar por","checkout_comment_extension_title_on_product_page":"Customer Comments","checkout_comment_extension_num_latest_comment_show":5,"checkout_comment_extension_format":"name_and_timestamp","checkout_comment_customer_name":"last_initial","checkout_comment_comment_notification":true,"preview_badge_collection_page_install_preference":false,"preview_badge_home_page_install_preference":false,"preview_badge_product_page_install_preference":false,"review_widget_install_preference":"","review_carousel_install_preference":false,"floating_reviews_tab_install_preference":"none","verified_reviews_count_badge_install_preference":false,"all_reviews_text_install_preference":false,"review_widget_best_location":false,"judgeme_medals_install_preference":false,"review_widget_revamp_enabled":true,"review_widget_qna_enabled":false,"review_widget_revamp_dual_publish_end_date":"2026-09-07T07:42:26.000+00:00","review_widget_header_theme":"minimal","review_widget_widget_title_enabled":true,"review_widget_header_text_size":"medium","review_widget_header_text_weight":"regular","review_widget_average_rating_style":"compact","review_widget_bar_chart_enabled":true,"review_widget_bar_chart_type":"numbers","review_widget_bar_chart_style":"standard","review_widget_expanded_media_gallery_enabled":false,"review_widget_show_review_highlights":false,"review_widget_show_review_keywords_in_gray":false,"review_widget_reviews_section_theme":"cards","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"medium","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"medium","review_widget_review_text_size":"medium","review_widget_review_text_length":"tall","review_widget_number_of_columns_desktop":4,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"always","review_widget_card_section_size":"tall","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#000000","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"rounded","review_widget_custom_css":".jdgm-review-card,\n.jdgm-review-card__content {\n background: #EFEFEF !important;\n}","review_widget_review_word_singular":"reseña","review_widget_review_word_plural":"reseñas","review_widget_voting_label":"¿Útil?","review_widget_shop_reply_label":"Respuesta de {{ shop_name }}:","review_widget_filters_title":"Filtros","review_widget_filter_rating_title":"Calificación","review_widget_filter_keyword_title":"Palabra clave","review_widget_clear_filters_text":"Borrar filtros","review_widget_expand_more_text":"Más","review_widget_review_highlights_title":"Aspectos destacados de reseñas","qna_widget_question_word_singular":"Pregunta","qna_widget_question_word_plural":"Preguntas","qna_widget_answer_reply_label":"Respuesta de {{ answerer_name }}:","qna_content_screen_title_text":"Preguntar sobre este producto","qna_widget_question_required_field_error_text":"Por favor, ingrese su pregunta.","qna_widget_flow_gdpr_statement":"Solo te contactaremos sobre tu pregunta si es necesario. Al enviar tu pregunta, aceptas nuestros \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003etérminos y condiciones\u003c/a\u003e y \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003epolítica de privacidad\u003c/a\u003e.","qna_widget_question_submitted_text":"¡Gracias por tu pregunta!","qna_widget_close_form_text_question":"Cerrar","qna_widget_question_submit_success_text":"Te informaremos por correo electrónico cuando te respondamos tu pregunta.","all_reviews_widget_v2025_enabled":false,"all_reviews_widget_v2025_header_theme":"default","all_reviews_widget_v2025_widget_title_enabled":true,"all_reviews_widget_v2025_header_text_size":"medium","all_reviews_widget_v2025_header_text_weight":"regular","all_reviews_widget_v2025_average_rating_style":"compact","all_reviews_widget_v2025_bar_chart_enabled":true,"all_reviews_widget_v2025_bar_chart_type":"numbers","all_reviews_widget_v2025_bar_chart_style":"standard","all_reviews_widget_v2025_expanded_media_gallery_enabled":false,"all_reviews_widget_v2025_show_store_medals":true,"all_reviews_widget_v2025_show_photo_gallery":true,"all_reviews_widget_v2025_show_review_keywords":false,"all_reviews_widget_v2025_show_ai_summary":false,"all_reviews_widget_v2025_show_ai_summary_bg":false,"all_reviews_widget_v2025_show_review_highlights":false,"all_reviews_widget_v2025_show_review_keywords_in_gray":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"default","all_reviews_widget_v2025_image_style":"thumbnails","all_reviews_widget_v2025_review_image_ratio":"square","all_reviews_widget_v2025_stars_size":"medium","all_reviews_widget_v2025_verified_badge":"standard_text","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_review_dates":false,"all_reviews_widget_v2025_card_section_size":"small","all_reviews_widget_v2025_show_product_variant":false,"all_reviews_widget_v2025_show_reviewer_avatar":true,"all_reviews_widget_v2025_reviewer_name_as_initial":"","all_reviews_widget_v2025_review_location_show":false,"all_reviews_widget_v2025_location_format":"","all_reviews_widget_v2025_show_country_flag":false,"all_reviews_widget_v2025_widget_thumb":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Reseñas de clientes","all_reviews_widget_v2025_ai_summary_title":"Los clientes dicen sobre esta tienda","all_reviews_widget_v2025_no_review_text":"Sé el primero en escribir una reseña","all_reviews_widget_v2025_review_highlights_title":"Aspectos destacados de reseñas","reviews_grid_widget_show_sample_reviews":false,"reviews_grid_widget_review_selection":"all","reviews_grid_widget_select_products":[],"reviews_grid_widget_show_media_only":false,"reviews_grid_widget_display_order":"media_first","reviews_grid_widget_card_grouping":"per_media","reviews_grid_widget_columns_desktop":3,"reviews_grid_widget_rows_desktop":3,"reviews_grid_widget_columns_mobile":2,"reviews_grid_widget_rows_mobile":6,"reviews_grid_widget_show_stars":true,"reviews_grid_widget_show_reviewer_name":true,"reviews_grid_widget_show_review_title_on_hover_desktop":true,"reviews_grid_widget_corner_styling":"soft","reviews_grid_widget_card_spacing":"medium","reviews_grid_widget_header_text_color":"#000000","reviews_grid_widget_star_and_reviewer_name_color":"#F9F9F9","reviews_grid_widget_overlay_and_background_color":"#000000","reviews_grid_widget_content_color":"#F9F9F9","reviews_grid_widget_header_text":"De nuestros clientes","reviews_grid_widget_show_average_rating":true,"trust_badge_enabled":true,"trust_badge_structure":"outline","trust_badge_color":"black","trust_badge_star":"black","trust_badge_rating_display_default":"show_trust_badge","platform":"shopify","branding_url":"https://app.judge.me/reviews/stores/terra-ross.com","branding_text":"Powered by Judge.me","locale":"es","reply_name":"Terra Ross","shop_currency":"EUR","widget_version":"3.0","footer":true,"autopublish":true,"review_dates":true,"enable_custom_form":false,"shop_use_review_site":true,"shop_locale":"en","enable_multi_locales_translations":true,"show_review_title_input":true,"autofill_review_title":true,"review_verification_email_status":"always","require_verification_before_submit":false,"sign_in_with_shop_enabled":false,"customer_account_validation_enabled":true,"most_relevant_sort_enabled":false,"widget_events_v4_impressions_enabled":false,"widget_events_review_grain_enabled":false,"widget_events_v4_time_in_view_enabled":false,"widget_events_v4_session_key_enabled":false,"widget_events_v4_interactions_enabled":false,"widget_attribution_exposure_timestamps_enabled":false,"widget_attribution_v4_exposures_enabled":false,"coupon_promo_invited_eligible":true,"coupon_promo_web_eligible":false,"uses_coupon_integration":false,"uses_external_coupon":false,"hostname_allowlist":"","can_be_branded":true,"rtl_stars_enabled_ar":true,"rtl_stars_enabled_he":true,"reply_name_text":"Terra Ross"};</script> <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #058041;--jdgm-secondary-color: rgba(5,128,65,0.1);--jdgm-star-color: #058041;--jdgm-write-review-text-color: white;--jdgm-write-review-bg-color: #058041;--jdgm-paginate-color: #058041;--jdgm-border-radius: 0;--jdgm-reviewer-name-color: #058041}.jdgm-histogram__bar-content{background-color:#058041}.jdgm-rev[data-verified-buyer=true] .jdgm-rev__icon.jdgm-rev__icon:after,.jdgm-rev__buyer-badge.jdgm-rev__buyer-badge{color:white;background-color:#058041}.jdgm-review-widget--small .jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"Ver más"}@media only screen and (min-width: 768px){.jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"Ver más"}}.jdgm-rev__thumb-btn{color:#058041}.jdgm-rev__thumb-btn:hover{opacity:0.8}.jdgm-rev__thumb-btn:not([disabled]):hover,.jdgm-rev__thumb-btn:hover,.jdgm-rev__thumb-btn:active,.jdgm-rev__thumb-btn:visited{color:#058041}.jdgm-widget .jdgm-write-rev-link{display:none}.jdgm-widget .jdgm-rev-widg[data-number-of-reviews='0']{display:none}.jdgm-prev-badge[data-average-rating='0.00']{display:none !important}.jdgm-author-fullname{display:none !important}.jdgm-author-all-initials{display:none !important}.jdgm-rev-widg__title{visibility:hidden}.jdgm-rev-widg__summary-text{visibility:hidden}.jdgm-prev-badge__text{visibility:hidden}.jdgm-rev__prod-link-prefix:before{content:'sobre'}.jdgm-rev__variant-label:before{content:'Variante: '}.jdgm-rev__out-of-store-text:before{content:'(fuera de la tienda)'}@media only screen and (min-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}@media only screen and (max-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}.jdgm-preview-badge[data-template="product"]{display:none !important}.jdgm-preview-badge[data-template="collection"]{display:none !important}.jdgm-preview-badge[data-template="index"]{display:none !important}.jdgm-review-widget[data-from-snippet="true"]{display:none !important}.jdgm-verified-count-badget[data-from-snippet="true"]{display:none !important}.jdgm-carousel-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-all-reviews-text[data-from-snippet="true"]{display:none !important}.jdgm-medals-section[data-from-snippet="true"]{display:none !important}.jdgm-ugc-media-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_via_store_invitation"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_another_provider"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_earned_for_future_purchase"]{display:none !important}.jdgm-review-snippet-widget{--jdgm-snippet-card-color: #fff;--jdgm-snippet-text-color: #000;--jdgm-snippet-lighter-text-color: #7B7B7B;--jdgm-snippet-star-color: #058041;--jdgm-snippet-border-radius: 8px;--jdgm-snippet-arrows-bg-color: #fff;--jdgm-snippet-arrows-color: #000}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:8px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#058041}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn{border-radius:50%;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn>svg,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn>svg{fill:#000}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jm-mfp-content,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__icon,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__pic-img,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__reply{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev[data-verified-buyer="true"] .jdgm-full-rev__icon::after{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-rev__buyer-badge{border-radius:calc( 8px / 2 )}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__replier::before{content:'Terra Ross'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 8px * 6 )}
</style> <style class='jdgm-settings-style'>.jdgm-review-widget .jdgm-review-card,.jdgm-review-widget .jdgm-review-card__content{background:#EFEFEF !important}
</style>
<style class='jdgm-miracle-styles'>
@-webkit-keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@font-face{font-family:'JudgemeStar';src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAScAA0AAAAABrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEgAAAABoAAAAcbyQ+3kdERUYAAARgAAAAHgAAACAAMwAGT1MvMgAAAZgAAABGAAAAVi+vS9xjbWFwAAAB8AAAAEAAAAFKwBMjvmdhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAAAkAAAAEJAAABdH33LXtoZWFkAAABMAAAAC0AAAA2BroQKWhoZWEAAAFgAAAAHAAAACQD5QHQaG10eAAAAeAAAAAPAAAAFAYAAABsb2NhAAACMAAAAA4AAAAOAO4AeG1heHAAAAF8AAAAHAAAACAASgAvbmFtZQAAA0wAAADeAAABkorWfVZwb3N0AAAELAAAACkAAABEp3ubLXgBY2BkYADhPPP4OfH8Nl8ZuJkYQODS2fRrCPr/aSYGxq1ALgcDWBoAO60LkwAAAHgBY2BkYGDc+v80gx4TAwgASaAICmABAFB+Arl4AWNgZGBgYGPQYWBiAAIwyQgWc2AAAwAHVQB6eAFjYGRiYJzAwMrAwejDmMbAwOAOpb8ySDK0MDAwMbByMsCBAAMCBKS5pjA4PGB4wMR44P8BBj3GrQymQGFGkBwAjtgK/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/IazfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-spinner:empty{display:block}.jdgm-prev-badge{display:block !important}
</style>
<script data-cfasync='false' class='jdgm-script'>
!function(e){window.jdgm=window.jdgm||{};
/* INF-1976 */
var _jdgmBlocked=function(){var raw=(window.jdgmSettings||{}).hostname_allowlist;var list=(raw==null?"":""+raw).split(/[\s,]+/).map(function(h){return h.trim().toLowerCase().replace(/\.$/,"");}).filter(function(h){return h;});if(!list.length)return false;var host=(e.location.hostname||"").toLowerCase().replace(/\.$/,"");if(/(^|\.)shopifypreview\.com$/.test(host))return false;var bare=host.replace(/^www\./,"");for(var i=0;i<list.length;i++){var en=list[i];if(en.indexOf("*.")===0){var b=en.slice(2);if(host===b||host.slice(-(b.length+1))==="."+b)return false;}else if(bare===en.replace(/^www\./,""))return false;}return true;}();
if(_jdgmBlocked){jdgm._loaderExecuted=true;jdgm._blocked=true;var _jdgmS=e.createElement("style");_jdgmS.textContent='[class^="jdgm-"],[class*=" jdgm-"]{display:none !important}';(e.head||e.documentElement).appendChild(_jdgmS);return;}
jdgm.CDN_HOST="https:\/\/cdnwidget.judge.me\/",jdgm.CDN_HOST_ALT="https:\/\/cdn2.judge.me\/cdn\/widget_frontend\/",jdgm.API_HOST="https:\/\/api.judge.me\/",jdgm.CDN_BASE_URL="https:\/\/cdn.shopify.com\/extensions\/01a15d82-7305-7be9-9c7a-0d0228ab97ad\/judgeme-805\/assets\/",jdgm.CDN_API_HOST="https:\/\/cdn.judge.me\/",
jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)?
setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){
!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d),
(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!",
a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))},
jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest;
t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))},
t.open("GET",e),t.onerror=function(){if(e.indexOf(jdgm.CDN_HOST)===0&&jdgm.CDN_HOST_ALT!==jdgm.CDN_HOST){var f=e.replace(jdgm.CDN_HOST,jdgm.CDN_HOST_ALT);jdgm.loadJS(f,d)}},t.send()},jdgm.docReady((function(){(window.jdgmLoadCSS||e.querySelectorAll(
".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting?
parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"):
jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css")
)}))}(document);
</script>
<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a15d82-7305-7be9-9c7a-0d0228ab97ad/judgeme-805/assets/shopify_v2.css"></noscript>
<!-- BEGIN app snippet: theme_fix_tags -->
<script>
(function() {
var jdgmThemeFixes = null;
if (!jdgmThemeFixes) return;
// "All themes" fix: CSS and JS applied on every theme. CSS is injected
// before the per-theme fix so the theme-specific CSS wins the cascade.
// HTML is never applied globally (too risky).
var allThemesFix = jdgmThemeFixes['all'];
if (allThemesFix && allThemesFix.css) {
var allStyleTag = document.createElement('style');
allStyleTag.classList.add('jdgm-theme-fix-style-all');
allStyleTag.innerHTML = allThemesFix.css;
document.head.append(allStyleTag);
};
if (allThemesFix && allThemesFix.js) {
var allScriptTag = document.createElement('script');
allScriptTag.classList.add('jdgm-theme-fix-script-all');
allScriptTag.innerHTML = allThemesFix.js;
document.head.append(allScriptTag);
};
var thisThemeFix = jdgmThemeFixes[Shopify.theme.id];
if (!thisThemeFix) return;
if (thisThemeFix.html) {
document.addEventListener("DOMContentLoaded", function() {
var htmlDiv = document.createElement('div');
htmlDiv.classList.add('jdgm-theme-fix-html');
htmlDiv.innerHTML = thisThemeFix.html;
document.body.append(htmlDiv);
});
};
if (thisThemeFix.css) {
var styleTag = document.createElement('style');
styleTag.classList.add('jdgm-theme-fix-style');
styleTag.innerHTML = thisThemeFix.css;
document.head.append(styleTag);
};
if (thisThemeFix.js) {
var scriptTag = document.createElement('script');
scriptTag.classList.add('jdgm-theme-fix-script');
scriptTag.innerHTML = thisThemeFix.js;
document.head.append(scriptTag);
};
})();
</script>
<!-- END app snippet -->
<!-- End of Judge.me Core -->
<!-- END app block --><!-- BEGIN app block: shopify://apps/t-lab-ai-language-translate/blocks/custom_translations/b5b83690-efd4-434d-8c6a-a5cef4019faf --><!-- BEGIN app snippet: custom_translation_scripts --><script>
var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(r){for(var n,t=1,e=arguments.length;t<e;t++)for(var a in n=arguments[t])Object.prototype.hasOwnProperty.call(n,a)&&(r[a]=n[a]);return r}).apply(this,arguments)},__spreadArray=this&&this.__spreadArray||function(r,n,t){if(t||2===arguments.length)for(var e,a=0,i=n.length;a<i;a++)!e&&a in n||((e=e||Array.prototype.slice.call(n,0,a))[a]=n[a]);return r.concat(e||Array.prototype.slice.call(n))};(()=>{var C=/\([0-9]+?\)$/,G=/\r?\n|\r|\t|\xa0|\u200B|\u200E| | /g,t=/<\/?[a-z][\s\S]*>/i,p=/^(https?:\/\/|\/\/)[^\s/$.?#].[^\s]*$/i,J=/\{\{\s*([a-zA-Z_]\w*)\s*\}\}/g,g=/\{\{\s*([a-zA-Z_]\w*)\s*\}\}/,tr=/\{\{\s*[a-zA-Z_]\w*\s*\}\}/g,l=/^(https:)?\/\/cdn\.shopify\.com\/(.+)\.(png|jpe?g|gif|webp|svgz?|bmp|tiff?|ico|avif)/i,m=/^(https:)?\/\/cdn\.shopify\.com/i,s=/\b(?:https?|ftp)?:?\/\/?[^\s\/]+\/[^\s]+\.(?:png|jpe?g|gif|webp|svgz?|bmp|tiff?|ico|avif)\b/i,h=/url\(['"]?(.*?)['"]?\)/,v="__label:",n=document.createElement("textarea"),o=new DOMParser,z=new Set(["SCRIPT","IFRAME","OBJECT","EMBED","LINK","META","BASE"]),W=/^(on\w+|srcdoc)$/i,F=/(expression|javascript:|@import|url\s*\()/i,q=new Set(["href","action","formaction","xlink:href"]),er=/^(?:javascript|vbscript|data):/i,ar=document.createElement("template"),O={t:"a",i:"button",u:"div",o:"iframe",l:"img",v:"input",p:"p",g:"picture",m:"section",h:"source",T:"span",S:"textarea",_:"video"},x={M:["src","data-src","data-source","data-href","data-zoom","data-master","data-bg","base-src"],A:"src",k:"data-src",I:["srcset","data-srcset"],R:"srcset",C:"data-srcset",O:["alt"],N:["href","data-href"],D:["href","data-href","data-src","data-zoom"],L:["src","data-src","data-bg"],P:["data-bgset"],H:["data-href"],U:["src"],j:["srcset","data-srcset"],W:["src"],F:["src"],q:["poster"],G:"value",J:"type",$:"value",B:["placeholder"],V:["placeholder"],Y:["data-label","title"],Z:["data-tooltip"],X:"class",K:"href"},k=Array.from(new Set(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([],x.M,!0),x.I,!0),x.F,!0),x.q,!0),x.O,!0),["style"],!1),x.P,!0))),ir=new Set(k),ur=new Set([O.l,O.g,O.i,O.p,O.t,O.v]),or=new Set([O.l,O.g,O.u,O.m,O._]),I=new Set([O.l,O.h]),fr=new Set([O.g,O._]),R=[O.l,O.g,O.h].join(", "),N=[O._,"".concat(O.u,"[data-bg]"),"".concat(O.u,"[data-src]"),"".concat(O.u,"[data-bgset]"),"".concat(O.m,"[data-bg]"),"".concat(O.m,"[data-src]"),"".concat(O.m,"[data-bgset]")].join(", "),u=R+", "+N,cr=16.67,lr=500,D=function(r){return r.nodeType===Node.ELEMENT_NODE},L=function(r){return r.nodeType===Node.TEXT_NODE};function P(r){return r&&"none"!==r&&(r=r.match(h))&&r[1]?r[1]:null}function H(r){r=r.trim();return l.test(r)||s.test(r)}function U(r){return t.test(r)}function j(r){r=r.trim();return"/"===r[0]&&"/"!==r[1]}var $=function(r){return!r||0===r.trim().length};function B(r){return r.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function V(t){var e=new Map;return{get:function(r){var n;if(e.has(r))return n=e.get(r),e.delete(r),e.set(r,n),n},set:function(r,n){e.has(r)?e.delete(r):e.size>=t&&e.delete(e.keys().next().value),e.set(r,n)}}}function Y(r,n){var t=r.get(n);return t||r.set(n,t=[]),t}function Z(r){return-1===r.indexOf("&")?r:(n.innerHTML=r,n.value)}function d(r){return X(Z(r))}function X(r){return r.trim().replace(C,"").replace(G,"").trim()}var b=1e3;function K(r){var n=r.length>b;return{key:n?gr(r):r,rr:n,nr:r.length}}function Q(r){return K(r.trim().replace(G,"").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/&/g,"&").trim())}function rr(r){return Q(r).key}var w=/<\s*([a-z][\w:-]*)\b(?:[^>"']|"[^"]*"|'[^']*')*>/gi,f="__IGNORED__";function r(r){return new RegExp("(\\s)(".concat(r,")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s\"'=<>]+)"),"i")}var a,i,c=[{name:x.X,pattern:r(x.X)},{name:x.K,pattern:r(x.K),tr:O.t}];function sr(r){return r.replace(w,function(r,n){for(var t,e=n.toLowerCase(),a=r,i=0;i<c.length;i++){var u=c[i];void 0!==u.tr&&u.tr!==e||(t=a,u=u.pattern,a=t.replace(u,function(r,n,t){return"".concat(n).concat(t,'="').concat(f,'"')}))}return a})}function vr(r){for(var n,t=[],e=/<\s*(\/?)\s*([a-z][\w:-]*)\b/gi;null!==(n=e.exec(r));)t.push(n[1]+n[2].toLowerCase());return t.join("|")}function dr(r){for(var r=o.parseFromString(r,"text/html"),i=r.body.querySelectorAll("*"),n=function(r){for(var a=i[r],n=Array.from(a.attributes).map(function(r){var n,t,e=r.name.toLowerCase();return{name:e,value:(n=a.localName,t=e,c.some(function(r){return r.name===t&&(void 0===r.tr||r.tr===n)})?f:r.value)}}).sort(function(r,n){return r.name.localeCompare(n.name)||r.value.localeCompare(n.value)});0<a.attributes.length;)a.removeAttribute(a.attributes[0].name);for(var t=0;t<n.length;t++){var e=n[t];a.setAttribute(e.name,e.value)}},t=0;t<i.length;t++)n(t);return r.body.innerHTML}function T(r,n,t){r=r.getAttribute(t);null===r?n.removeAttribute(t):n.setAttribute(t,r)}function pr(r,n){var r=o.parseFromString(r,"text/html"),n=o.parseFromString(n,"text/html"),t=r.body.querySelectorAll("*"),e=n.body.querySelectorAll("*");if(((r,n)=>{if(r.length===n.length){for(var t=0;t<r.length;t++)if(r[t].localName!==n[t].localName)return;return 1}})(t,e))for(var a=0;a<t.length;a++)T(t[a],e[a],x.X);var i=r.body.querySelectorAll(O.t),u=n.body.querySelectorAll(O.t);if(i.length!==u.length)return null;for(a=0;a<i.length;a++)T(i[a],u[a],x.K);return n.body.innerHTML}function nr(r){return r.trim().toLowerCase().replace(/^https:/i,"")}function gr(r){for(var n=5381,t=0;t<r.length;t++)n=(n<<5)+n^r.charCodeAt(t);return(n>>>0).toString(36)}function mr(r,n,t){void 0===t&&(t=20);for(var e=r,a=0;e&&e.parentElement&&a<t;){for(var i=e.parentElement,u=0,o=n;u<o.length;u++)for(var f=o[u],c=0,l=f.er;c<l.length;c++){var s=l[c];switch(s.type){case"class":for(var v=0,d=i.classList;v<d.length;v++){var p=d[v];if(s.value.test(p))return f.label}break;case"id":if(i.id&&s.value.test(i.id))return f.label;break;case"attribute":if(i.hasAttribute(s.name)){if(!s.value)return f.label;var g=i.getAttribute(s.name);if(g&&s.value.test(g))return f.label}}}e=i,a++}return"unknown"}function hr(){var l=/([^\s]+)\.(png|jpe?g|gif|webp|svgz?|bmp|tiff?|ico|avif)$/i,s=/_(\{width\}x*|\{width\}x\{height\}|\d{3,4}x\d{3,4}|\d{3,4}x|x\d{3,4}|pinco|icon|thumb|small|compact|medium|large|grande|original|master)(_crop_\w+)*(@[2-3]x)*(.progressive)*$/i,v=/^(https?|ftp|file):\/\//i;function t(r){var n,t="".concat(r.path).concat(r.ar).concat(null!=(t=r.size)?t:"",".").concat(r.ir);return r.ur&&(t="".concat(r.path).concat(r.ur,"/").concat(r.ar).concat(null!=(n=r.size)?n:"",".").concat(r.ir)),r.host&&(t="".concat(null!=(n=r.protocol)?n:"","//").concat(r.host).concat(t)),r.cr&&(t+=r.cr),t}return{lr:function(r){var n,t=!0,e=(v.test(r)||r.startsWith("//")||(t=!1,r="https://example.com"+r),t);r.startsWith("//")&&(e=!1,r="https:"+r);try{n=new URL(r)}catch(r){return null}var a,i,u,o,f,c,r=n.pathname.split("/").filter(function(r){return r});return r.length<1||(i=r.pop(),a=null!=(a=r.pop())?a:null,null===(i=i.match(l)))?null:(c=i[1],i=i[2],u=c.match(s),o=c,(f=null)!==u&&(o=c.substring(0,u.index),f=u[0]),c=0<r.length?"/"+r.join("/")+"/":"/",{protocol:e?n.protocol:null,host:t?n.host:null,path:c,cr:n.search,ur:a,ar:o,size:f,ir:i,version:n.searchParams.get("v"),width:n.searchParams.get("width")})},sr:t,vr:function(r){var n=r.ur?"/".concat(r.ur):"";return"".concat(n,"/").concat(r.ar,".").concat(r.ir)},dr:function(r,n){return t(__assign(__assign({},n),{size:r.size}))}}}function y(p,r){var u={},o={},f=new Map,c=[],l=new Map,s=new Map,v=new Map,d=new Map,i=new Map,a=new Map,t=new Map,g=function(r){return r.toLowerCase().replace(/[\s\W_]+/g,"")},m=new Set(r.pr.map(g)),h=0,b=0,w=0,T=!1,y=!1,S=!0,_=[],M=new Set,A=/\w/;function E(r){if(!u[r])for(var n=0;n<_.length;n++){var t=_[n];if(!(r===t||r.length>t.length))for(var e=t.indexOf(r);-1!==e;){var a=0<e?t[e-1]:null,i=e+r.length<t.length?t[e+r.length]:null;if(!(null!==a&&A.test(a)||null!==i&&A.test(i)))return u[r]=t,void((a=f.get(r))&&(o[r]=X(a)));e=t.indexOf(r,e+1)}}}var k=hr();function I(r,n,t){return r&&n&&!(0<m.size&&m.has(g(r)))&&(t.set(r,n),T=!0)}function R(r){var n=k.vr(r);return["".concat(n,"?v=").concat(r.version||"0").toLowerCase(),n.toLowerCase()]}function H(r){var n=[nr(r)],r=k.lr(r);if(r)for(var t=0,e=R(r);t<e.length;t++){var a=e[t];n.push(a)}return n}var U=16;function C(r,f,c,i,n){if(0!==f.size){var l=new Set,s=[];f.forEach(function(r,n){for(var t=new Set,e=r;e;){var a=c(e);if(-1!==a.indexOf(n))return void s.push(n);if(a.some(function(r){return t.has(r)}))break;for(var i=0,u=a;i<u.length;i++){var o=u[i];t.add(o)}e=(r=>{for(var n=0,t=c(r);n<t.length;n++){var e=t[n];if(l.has(e))return null!=(e=f.get(e))?e:null}return null})(e)}l.add(n)});for(var t=0,e=s;t<e.length;t++){var a=e[t];f.delete(a),null!=n&&n(a,null)}var u=[];f.forEach(function(r,n){for(var t=r,e=U;0<e;e--){var a=i(t);if(!a)break;t=a}t!==r&&u.push([n,t])});for(var o=0,v=u;o<v.length;o++){var d=v[o],a=d[0],d=d[1];f.set(a,d),null!=n&&n(a,d)}(0<s.length||0<u.length)&&p.log("dictionary","Cycles resolved in ".concat(r,". Dropped:"),s,"Collapsed:",u)}}var e=new Map;function j(r,n){r=e.get(r);r&&(null===n?f.delete(r):f.set(r,n))}function z(r,n){var t,e;return $(r)||0===f.size&&0===c.length?null:(t=X(r),S||M.has(t)||!f.has(t)||(M.add(t),E(t)),(e=u[t])&&(p.log("dictionary",'Overlapping text: "'.concat(r,'" related to html: "').concat(e,'"')),n)&&(r=>{if(r&&!D(r.textContent))for(var n=x(r.outerHTML),t=n.gr,e=(n.mr||(t=0),r.parentElement),a=0;e&&a<5;){if(D(e.textContent))return;var i=x(e.outerHTML),u=i.mr,i=i.gr;if(u){if(p.log("dictionary","Ancestor depth ".concat(a,": overlap score=").concat(i.toFixed(3),", base=").concat(t.toFixed(3))),t<i)return 1;if(i<t&&0<t)return}e=e.parentElement,a++}})(n)?(p.log("dictionary",'Skipping text translation for "'.concat(r,'" because an ancestor HTML translation exists')),null):f.get(t)||($(e=r)||0===c.length?null:(e=e.trim(),void 0===(n=N.get(e))&&(n=(r=>{for(var n,t,e=r.replace(/\s+/g,""),a=0;a<c.length;a++){var i=c[a];if(!i.hr||-1!==e.indexOf(i.hr)){var u=r.match(i.br);if(u&&1<u.length){n=i.mr,t=u;break}}}if(n&&t){var o=t.slice(1),f=n.match(J);if(f&&f.length===o.length)return f.reduce(function(r,n,t){return r.replace(n,function(){return o[t]})},n)}return null})(e),N.set(e,n)),n)))}var O=V(500);function x(r){if($(r)||0===l.size)return{mr:null,gr:0};var r=Q(r),t=r.key;if(t.length>b)return{mr:null,gr:0};var e=null,a=0,n=l.get(t);if(null!=n)return{mr:n,gr:1};if(r.rr)return{mr:null,gr:0};n=O.get(t);if(n)return n;l.forEach(function(r,n){-1!==n.indexOf(t)&&(n=t.length/n.length,a<n)&&(a=n,e=r)});r={mr:e,gr:a};return O.set(t,r),r}var N=V(1e3);function D(r){var n=w;if(r&&!(r.length<=n))for(var t=0,e=0;e<r.length;e++){var a=r.charCodeAt(e);if(32!==a&&9!==a&&10!==a&&13!==a&&160!==a&&8203!==a&&8206!==a&&++t>n)return!0}return!1}function W(r){if($(r)||0===l.size)return null;var n=l.get(rr(r));if(null!=n)return n;if(0===s.size)return null;if(-1===r.indexOf("<"))return null;var n=vr(r),t=d.get(n);if(!t||0===t.length)return null;var e,n=sr(r),n=v.get(n);if(n&&0<n.length)return e=n[0].mr,n.some(function(r){return r.mr!==e})?null:pr(r,e);for(var a=dr(r),i=null,u=0;u<t.length;u++){var o=t[u];if(null!=o.wr||(o.wr=dr(o.Tr)),a===o.wr){if(i&&i.mr!==o.mr)return null;i=o}}return i?pr(r,i.mr):null}function L(r){if(!$(r)&&0!==i.size){var n=i.get(nr(r));if(n)return n;n=k.lr(r);if(n)for(var t=0,e=R(n);t<e.length;t++){var a=e[t],a=i.get(a);if(a)return a}}return null}function P(r){return!$(r)&&0!==a.size&&null!=(r=a.get(nr(r)))?r:null}function F(r){var n;return!$(r)&&0!==t.size&&null!=(n=null!=(n=t.get(X(r)))?n:t.get(rr(r)))?n:null}function q(){var r={yr:f,Sr:c.map(function(r){return{pattern:r.br.source,mr:r.mr}}),_r:l,Mr:i,Ar:a,Er:t,kr:T,Ir:0<i.size,Rr:h,Cr:o};return JSON.stringify(r,function(r,n){var t;return n instanceof Map?(t={},n.forEach(function(r,n){t[String(n)]=r}),t):n})}return{Or:function(r,n){I(r,n,f)},Nr:function(r,n){if(r&&n&&!(0<m.size&&m.has(g(r)))){var r=r.trim(),t=r.match(J);if(t&&0!==t.length){var e,a=B(r);t.forEach(function(r){a=a.replace(B(r),function(){return"([\\s\\S]*)"})}),a="\\s*"+(a=a.replace(/\s+/g,"\\s+"))+"\\s*";try{e=new RegExp("^"+a+"$")}catch(r){return void p.log("dictionary","Skipping invalid string template pattern",a,String(r))}for(var i=r.split(tr).map(function(r){return r.replace(/\s+/g,"")}),u="",o=0;o<i.length;o++)i[o].length>u.length&&(u=i[o]);c.push({br:e,mr:n,hr:u}),T=!0}}},Dr:function(r,n){var t,e,a;r!==n&&I(e=(t=K(Z(r).trim().replace(G,"").trim())).key,n,l)&&((a=s.get(r))?(a.mr=n,a.wr=void 0):(a={mr:n,Tr:sr(r)},s.set(r,a),Y(v,a.Tr).push(a),Y(d,vr(r)).push(a)),h=Math.max(h,r.length),b=Math.max(b,e.length),w=Math.max(w,t.nr))},Lr:function(r,n){if(I(r,n,i),r=k.lr(r))for(var t=0,e=R(r);t<e.length;t++)I(e[t],n,i)},Pr:function(r,n){I(r,n,a)},Hr:function(r,n,t){I(r,t,a),I(n,t,f),e.set(r,n)},Ur:function(r,n){y=!0,I(r,n,t)},jr:function(){var n,t,e;return C("images",i,H,L),C("links",a,function(r){return[nr(r)]},P,j),p.log("dictionary","Translation dictionaries: ",q),0<l.size&&0<f.size&&(n=Array.from(f.keys()),_=Array.from(l.keys()),S=!1,t=0,(e=function(){for(var r=performance.now();t<n.length;)if(E(n[t++]),8<=performance.now()-r)return void window.setTimeout(e,0);S=!0,p.log("dictionary","appliedTextTranslations: ",function(){return JSON.stringify(o)}),p.log("dictionary","overlappingTexts: ",function(){return JSON.stringify(u)})})()),{kr:T,Ir:0<i.size,zr:y,Wr:D,Fr:z,qr:W,Gr:L,Jr:P,$r:F}}}}function S(r,n,t){function l(r,n){n=r.split(n);return 2===n.length?n[1].trim()?n:[n[0]]:[r]}var s=y(t,n);return r.forEach(function(r){if(r){var f,c=r.name,r=r.value;if(c&&r){if("string"==typeof r)try{f=JSON.parse(r)}catch(r){return void t.log("dictionary","Invalid metafield JSON for "+c,function(){return String(r)})}else f=r;f&&Object.keys(f).forEach(function(e){if(e){var r,n,a=f[e];if(a)if(e!==a)if(c.includes("judge"))r=d(e),s.Ur(r,a);else if(e.startsWith("[img-src]"))n=nr(e.replace("[img-src]","")),s.Lr(n,a);else if(U(e))s.Dr(e,a);else if(H(e))n=nr(e),s.Lr(n,a);else if(r=(r=e).trim(),p.test(r)||m.test(r))n=nr(e),s.Pr(n,a);else if(j(e))n=nr(e),o=d(e),s.Hr(n,o,a);else if(g.test(e))s.Nr(e,a);else if(e.startsWith(v))n=a.replace(v,""),o=e.replace(v,""),s.Or(d(o),n);else{if("product_tags"===c)for(var t=0,i=["_",":"];t<i.length;t++){var u=(r=>{if(e.includes(r)){var n=l(e,r),t=l(a,r);if(n.length===t.length)return n.forEach(function(r,n){r!==t[n]&&(s.Or(d(r),t[n]),s.Or(d("".concat(r,":")),"".concat(t[n],":")))}),{value:void 0}}})(i[t]);if("object"==typeof u)return u.value}var o=d(e);o!==a&&s.Or(o,a)}}})}}}),s.jr()}function _(u,a){var e=[{label:"judge-me",er:[{type:"class",value:/jdgm/i},{type:"class",value:/^jm-review/i},{type:"id",value:/judge-me/i},{type:"attribute",name:"data-widget-name",value:/review_widget/i}]}],f=hr(),n=new Set(a.Br),i=0,o=new WeakMap;function c(r){var n,t=r.parentElement;return t?(n=o.get(t))&&n.Vr===i?n.Yr:(n=mr(r,e,5),o.set(t,{Vr:i,Yr:n}),n):mr(r,e,5)}var l=new WeakMap;function s(r,n,t){r.getAttribute(n)!==t&&r.setAttribute(n,t);var e=l.get(r);e||l.set(r,e={}),e[n]=t}function v(r,n,t){r=l.get(r);return r&&r[n]===t}function d(r,n,t){if(r.hasAttributes())for(var e=0;e<n.length;e++){var a=n[e],i=r.getAttribute(a);!i||v(r,a,i)||(i=t(a,i))&&s(r,a,i)}}function p(r,n,t){d(r,n,function(r,n){return r.includes("href")&&null!=(r=t.Jr(n))?r:t.Fr(n)})}function g(r,n,t){d(r,n,function(r,n){return t.Jr(n)})}function m(r,n,t){d(r,[n],function(r,n){return t.Fr(n)})}function h(r,n,t){for(var e,a,i,u,o,f=0;f<n.length;f++)a=n[f],i=t,o=u=void 0,(o=(e=r).getAttribute(a))&&!v(e,a,o)&&(o=nr(o.split("&")[0]),(u=S(o,i))?s(e,a,u):(u=i.Jr(o))&&s(e,a,u))}function b(r,n,t){for(var e,a,i,u,o=0;o<n.length;o++)a=n[o],i=t,u=void 0,(u=(e=r).getAttribute(a))&&!v(e,a,u)&&(u=((r,n)=>{if(0!==(r=r.split(",").filter(function(r){return r&&""!==r.trim()}).map(y)).length){var t=r[0].url,t=S(t=r[0].version?"".concat(t,"?").concat(r[0].version):t,n);if(t){var u=f.lr(t);if(u)return r.map(function(r){var n,t,e=u,a=r.url,i=f.lr(a);return i&&(a=f.dr(i,e)),r.Zr&&(i=r.Zr.split("&"),n=i.map(function(r){return r.split("=")[0]}),e=a.indexOf("?"),t=-1===e?[]:a.slice(e+1).split("&").filter(function(r){return-1===n.indexOf(r.split("=")[0])}),e=-1===e?a:a.slice(0,e),a="".concat(e,"?").concat(t.concat(i).join("&"))),a=r.size?"".concat(a," ").concat(r.size):a}).join(",")}}})(u,i))&&s(e,a,u)}function w(r,n){for(var t=r.childNodes,e=0;e<t.length;e++){var a=t[e],i=a.localName?n[a.localName]:null;i&&i(a)}}function T(r){return(r=r&&(null==(r=r.split(",")[0])?void 0:r.trim()))&&r.split(/\s+/)[0]||null}function y(r){var r=r.trim().split(/\s+/),n=r[0].split("?"),t=n[0],n=n[1],n=n?n.split("&"):[];return{url:t,version:((r,n)=>{for(var t=0;t<r.length;t++)if(n(r[t]))return r[t];return null})(n,function(r){return r.startsWith("v=")}),Zr:n.filter(function(r){return!r.startsWith("v=")}).join("&"),size:r[1]}}function S(r,n){var t=f.lr(r);return null===t?null:(r=n.Gr(r))?null===(r=f.lr(r))?null:f.dr(t,r):(r=f.vr(t),null===(n=n.Gr(r))||null===(r=f.lr(n))?null:f.dr(t,r))}function _(r,n,t){var e,a;if(e=x.D,a=n,d(r,e,function(r,n){return H(n)?a.Gr(n):a.Jr(n)}),t.Xr)for(var i=r,u=x.N,o=t.Kr,f=0;f<u.length;f++){var c,l=u[f],s=i.getAttribute(l);s&&(c=s===o||s.startsWith(o+"/")||s.startsWith(o+"?")||s.startsWith(o+"#"),j(s))&&!c&&(c="".concat(o).concat(s),i.setAttribute(l,c))}}function M(r,n){((r,n)=>{if(r instanceof HTMLImageElement&&!r.getAttribute(x.A))for(var t=[r.currentSrc,r.getAttribute(x.k),T(r.getAttribute(x.R)),T(r.getAttribute(x.C))],e=0;e<t.length;e++){var a=t[e];if(a){a=S(a,n);if(a)return s(r,x.A,a)}}})(r,n),h(r,x.M,n),b(r,x.I,n),p(r,x.O,n)}function A(r,n){h(r,x.U,n),b(r,x.j,n)}function E(r,n){g(r,x.U,n)}function k(r,n){var n=u.Gr(n);return!!n&&(n='url("'.concat(n,'")'),r.style.backgroundImage!==n)&&(r.style.backgroundImage=n,!0)}function I(r){var n,t,e,a,i;switch(r.localName){case O.l:M(r,u);break;case O.g:i=u,w(a=r,((a={})[O.h]=function(r){return A(r,i)},a[O.l]=function(r){return M(r,i)},a));break;case O.u:case O.m:a=u,(e=P((t=r).style.backgroundImage||t.getAttribute("data-bg")||""))&&k(t,e),h(t,x.L,a),b(t,x.P,a),p(t,x.H,a);break;case O._:n=u,g(e=r,x.F,n),h(e,x.q,n),w(e,((e={})[O.h]=function(r){return E(r,n)},e));break;case O.h:((null==(t=r.parentElement)?void 0:t.localName)===O._?E:A)(r,u)}}function R(r,n){n=(r=>{var n=ar;try{n.innerHTML=r;for(var t=[],e=document.createTreeWalker(n.content,NodeFilter.SHOW_ELEMENT),a=e.nextNode();a;a=e.nextNode()){var i=a;if(z.has(i.nodeName))t.push(i);else{for(var u,o=i.attributes.length-1;0<=o;--o){var f,c=i.attributes[o].name;W.test(c)?i.removeAttribute(c):q.has(c.toLowerCase())&&(f=(i.attributes[o].value||"").replace(/[\u0000-\u0020]+/g,""),er.test(f))&&i.removeAttribute(c)}i.hasAttribute("style")&&(u=i.getAttribute("style")||"",F.test(u))&&i.removeAttribute("style")}}for(o=0;o<t.length;o++)t[o].remove();return n.innerHTML}finally{n.innerHTML=""}})(n);return r.innerHTML!==n&&(r.innerHTML=n,1)}return{Qr:function(r){return!(!r||!D(r)||n.has((r=r).localName)||r.classList.contains("tl-switcher-container")||(r=r.parentNode)&&["SCRIPT","STYLE"].includes(r.nodeName.toUpperCase()))},rn:function(r){if(L(r)&&null!=(n=r.textContent)&&n.trim()){if(u.zr)if("judge-me"===c(r)){var n=u.$r(r.textContent);if(n)return void(r.textContent=Z(n))}var t=u.Fr(r.textContent,r.parentElement||void 0);t&&(U(t)?(n=r.parentElement)&&1===n.childNodes.length&&R(n,t):(n=r.textContent.trim().replace(C,"").trim(),r.textContent=Z(r.textContent.replace(n,function(){return t}))))}},nn:function(r){if(!!$(r.textContent)||!r.innerHTML)return!1;if(u.zr&&"judge-me"===c(r)){var n,t=u.$r(r.innerHTML);if((t=t?t:(n=u.$r(r.textContent))&&(e=r,1!==(e=Array.from(e.childNodes).filter(function(r){return!$(X(null!=(r=r.textContent)?r:""))})).length||!D(e[0]))?n:null)&&R(r,t))return!0}var e=u.Wr(r.textContent)?null:u.qr(r.innerHTML);return!(!e||!R(r,e))},tn:function(r){switch(p(r,x.Y,u),r.localName){case O.T:p(r,x.Z,u);break;case O.t:_(r,u,a);break;case O.v:t=u,!(e=(n=r).getAttribute(x.J))||"submit"!==e&&"button"!==e||m(n,x.$,t),p(n,x.B,t);break;case O.S:p(r,x.V,u);break;case O.l:case O.g:case O.u:case O.m:case O._:I(r);break;case O.i:m(r,x.G,u);break;case O.o:g(r,x.W,u)}var n,t,e},en:I,an:k,un:function(r){var n;return!!r&&(n=r.localName,!!or.has(n)||n===O.h&&!!r.parentElement&&fr.has(r.parentElement.localName))},on:function(r){return u.zr||!u.Wr(r.textContent)},zr:function(){return u.zr},fn:function(){i++},Ir:function(){return u.Ir},getImageTranslation:function(r){return S(r,u)}}}function e(n){var t=[],e=0;function a(){0!==e&&(e===t.length?e=t.length=0:64<e&&t.length<=2*e&&(t.splice(0,e),e=0))}return{cn:function(r){return!(n<=t.length-e||(a(),t.push(r),0))},ln:function(){var r;return t.length<=e?(a(),null):(r=t[e++],a(),r)},sn:function(){return e<t.length}}}function br(r,t){var n=new Map([["high",0],["normal",1],["deferred",2]]);function u(r){return null!=(r=n.get(r))?r:1}var o=[e(r),e(r),e(r)],f=new WeakMap;function i(r){var n=navigator.scheduling;return n&&"function"==typeof n.isInputPending&&n.isInputPending()||performance.now()-r>=t}function c(){return o[0].sn()||o[1].sn()||o[2].sn()}function l(r,n,t,e){if(void 0===e&&(e=!1),r.sn()){if(!e&&i(n))return!1;e=r.ln();e&&e.isActive&&((n=f.get(e.node))&&n[e.kind]===e&&delete n[e.kind],t(e))}return!0}return{vn:function(r,n,t,e){var a=f.get(r),i=null!=(i=null==a?void 0:a[n])?i:null;return i&&u(e)>=u(i.priority)?"deduped":(t={node:r,kind:n,source:t,priority:e,isActive:!0},o[u(e)].cn(t)?(i&&(i.isActive=!1),a?a[n]=t:f.set(r,((e={})[n]=t,e)),"enqueued"):"dropped")},dn:c,pn:function(r){var n=performance.now();if(c()){for(var t=0;t<o.length;t++)l(o[t],n,r,!0);for(;!i(n);){for(var e=!1,t=0;t<o.length;t++){var a=o[t];if(a.sn()){e=!0;if(!l(a,n,r))return}}if(!e)break}}}}}function wr(d,t){var p=new WeakSet,g=new WeakMap,m=new WeakSet;function e(r,n){return!(!r.isConnected||!d.un(r)||(d.en(r),t.log("media","Processed media attributes immediately",n,r),0))}function a(r,n){for(var t=0;t<r.length;t++)e(r[t],n)}function i(r,n,t){D(r)&&(e(r,n),I.has(r.localName)||a(r.querySelectorAll(t),n))}function n(){if(d.Ir()){for(var r=document.querySelectorAll('[style*="background"]'),n=0;n<r.length;n++)s(r[n]);for(var t=[],e=document.styleSheets,n=0;n<e.length;n++){var a=e[n];if(!p.has(a)){var i=void 0;try{i=a.cssRules}catch(r){p.add(a);continue}var u=g.get(a);if(u&&u.gn===i.length)for(var o=0;o<u.mn.length;o++)t.push(u.mn[o]);else{var f=[];v(i,f),g.set(a,{gn:i.length,mn:f});for(o=0;o<f.length;o++)t.push(f[o])}}}if(0<t.length)for(var c=0;c<t.length;c+=200)for(var l=document.querySelectorAll(t.slice(c,c+200).join(", ")),n=0;n<l.length;n++)s(l[n])}function s(r){var n;m.has(r)||(n=P(getComputedStyle(r).backgroundImage))&&d.an(r,n)&&m.add(r)}function v(r,n){for(var t=0;t<r.length;t++){var e,a=r[t];a.type===CSSRule.STYLE_RULE?((r,n)=>{var t;if(null!=(t=r.style)&&t.backgroundImage&&r.selectorText){try{document.documentElement.matches(r.selectorText)}catch(r){return}n.push(r.selectorText)}})(a,n):(e=void 0,(e=(a=a).type===CSSRule.MEDIA_RULE?(e=a,"function"!=typeof window.matchMedia||window.matchMedia(e.conditionText).matches?e.cssRules:null):"cssRules"in a?a.cssRules:null)&&v(e,n))}}}return{hn:e,bn:function(r,n){i(r,n,u)},wn:function(r,n){i(r,n,N)},Tn:function(r){a(document.querySelectorAll(u),r),n()},yn:n}}function M(p,g,m){var a=br(lr,2*cr),h=new WeakMap,t=new WeakMap,r=null,i=null,u=!1,b=wr(p,m);function o(){null===r&&a.dn()&&(r=requestAnimationFrame(v))}function w(r,n,t,e){if(r&&("subtree"!==n||r.nodeType!==Node.TEXT_NODE||p.Qr(r.parentElement))&&("subtree"===n||r.isConnected)){t=a.vn(r,n,t,e);if("enqueued"!==t)return"dropped"!==t||(u=!0,m.log("messageHandler","Dropped work item, queue full:",n,r),!1);"subtree"===n&&D(r)&&"deferred"===e&&i&&i.observe(r),o()}return!0}function T(r,n){return r.nodeType===Node.TEXT_NODE?w(r,"characterData",n,"high"):!p.Qr(r)||w(r,"subtree",n,ur.has(r.localName)?"high":i?"deferred":"normal")}function e(){if(document.body){for(var r=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT),n=[],t=r.nextNode();t;t=r.nextNode())n.push(t);for(var e,a=0;a<n.length;a++)L(e=n[a])&&e.isConnected&&p.Qr(e.parentElement)&&null!=(e=e.textContent)&&e.trim()&&f(n[a])}}function f(r){var n;!p.Qr(r.parentElement)||h.has(r)&&r.textContent===h.get(r)||(n=r.textContent,p.rn(r),r.textContent!==n&&h.set(r,null!=(n=r.textContent)?n:""))}var c=new WeakMap;function l(r){for(var n=r.childNodes,t=!0,e=0;e<n.length;e++)T(n[e],"continuation")||(t=!1);return t}function n(r){r=r.node;if(i&&D(r)&&i.unobserve(r),r.isConnected)if(r.nodeType===Node.TEXT_NODE)f(r);else if(p.Qr(r))if(m.log("messageHandler","Processing element:",r),p.Qr(r)){if(p.tn(r),!(r!==document.body&&p.on(r)))return void(n=r.textContent,n="".concat(r.childNodes.length,":").concat(n?gr(n):""),c.get(r)===n||l(r)&&c.set(r,n));var n=r.innerHTML;t.get(r)!==n&&(p.nn(r)?r.innerHTML!==n&&t.set(r,r.innerHTML):(m.log("messageHandler","Child nodes:",r.childNodes),l(r)))}}function s(r){switch(r.kind){case"subtree":n(r);break;case"attributes":p.Qr(r.node)&&p.tn(r.node);break;case"mediaAttributes":b.hn(r.node,r.source);break;case"mediaSubtree":b.wn(r.node,r.source);break;case"characterData":!g.Sn&&"mutation"===r.source||f(r.node)}}function v(){try{a.pn(s)}finally{r=null,o()}}"undefined"!=typeof IntersectionObserver&&(i=new IntersectionObserver(function(r){for(var n=0;n<r.length;n++){var t=r[n];t.isIntersecting&&(null!=i&&i.unobserve(t.target),w(t.target,"subtree","intersection","high"))}},{rootMargin:"300px"}));var d=["class","id","data-widget-name"],y=new Set(d),S=p.zr(),_={subtree:!0,childList:!0,attributes:!0,attributeFilter:g._n?void 0:S?k.concat(d):k,characterData:g.Sn},M=new WeakMap;var A=new MutationObserver(function(r){m.log("observer","Observer:",r);for(var n=0;n<r.length;n++){var t=r[n];switch(t.type){case"childList":S&&p.fn();for(var e=t.addedNodes,a=0;a<e.length;a++){o=u=i=void 0;var i=e[a];if(D(i))if(I.has(i.localName)||i.localName===O.g)b.bn(i,"mutation");else{for(var u=i.querySelectorAll(R),o=0;o<u.length;o++)b.hn(u[o],"mutation");(p.un(i)||i.querySelector(N))&&w(i,"mediaSubtree","mutation","high")}if(T(e[a],"mutation"),g.Mn&&D(e[a])&&e[a].shadowRoot){var f=e[a].shadowRoot;A.observe(f,_);for(var c=0;c<f.childNodes.length;c++)T(f.childNodes[c],"mutation")}}break;case"attributes":S&&t.attributeName&&y.has(t.attributeName)&&p.fn();var l=t.target;if(p.Qr(l)){var s=l;if(t.attributeName&&ir.has(t.attributeName)&&p.un(s)){if("style"===t.attributeName){var v=s.style.backgroundImage||"";if(M.get(s)===v)break;M.set(s,v)}b.hn(s,"mutation");break}g._n&&s&&w(s,"attributes","mutation","normal")}break;case"characterData":if(g.Sn){var d=t.target;if(d&&d.nodeType===Node.TEXT_NODE){if(h.has(d)&&d.textContent===h.get(d))break;w(d,"characterData","mutation","high")}}}}}),E=(A.observe(document.documentElement,_),!1);return{An:function(){if(e(),document.body)for(var r=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT),n=r.nextNode();n;n=r.nextNode()){var t=n;p.Qr(t)&&p.tn(t)}!document.body||E&&!u||(u=!1,w(document.body,"subtree","page-load","high")),E?b.yn():(b.Tn("page-load"),E=!0)}}}void 0===window.TranslationLab&&(window.TranslationLab={}),window.TranslationLab.CustomTranslations=(a=(()=>{var a;try{a=window.localStorage.getItem("tlab_debug_mode")||null}catch(r){a=null}return{log:function(r,n){for(var t=[],e=2;e<arguments.length;e++)t[e-2]=arguments[e];!a||"observer"===r&&"all"===a||("all"===a||a===r||"custom"===r&&"custom"===a)&&(r=t.map(function(r){if("function"==typeof r)try{return r()}catch(r){return"Error generating parameter: ".concat(r.message)}return r}),console.log.apply(console,[n].concat(r)))}}})(),i=null,{init:function(r,n){var t,e;r&&!r.isPrimaryLocale&&r.translationsMetadata&&r.translationsMetadata.length&&(0<(n=((r,n,t,e)=>{function a(r,n){for(var t=[],e=2;e<arguments.length;e++)t[e-2]=arguments[e];for(var a=0,i=t;a<i.length;a++){var u=i[a];if(u&&void 0!==u[r])return u[r]}return n}var i=null;try{i=window.localStorage.getItem("tlab_feature_options")}catch(r){e.log("dictionary","localStorage unavailable for tlab_feature_options",String(r))}var u=null;if(i)try{u=JSON.parse(i)}catch(r){e.log("dictionary","Invalid tlab_feature_options JSON",String(r))}var t=a("useMessageHandler",!0,u,i=t),o=a("localizeUrls",!1,u,i),f=a("processShadowRoot",!1,u,i),c=a("attributesMutations",!1,u,i),l=a("processCharacterData",!1,u,i),s=a("excludedTemplates",[],u,i),u=a("phraseIgnoreList",[],u,i);return e.log("dictionary","useMessageHandler:",t),e.log("dictionary","localizeUrls:",o),e.log("dictionary","processShadowRoot:",f),e.log("dictionary","attributesMutations:",c),e.log("dictionary","processCharacterData:",l),e.log("dictionary","excludedTemplates:",s),e.log("dictionary","phraseIgnoreList:",u),{Br:["html","head","meta","script","noscript","style","link","canvas","svg","g","path","ellipse","br","hr"],locale:r,Kr:n,kn:t,Xr:o,Mn:f,_n:c,Sn:l,En:s,pr:u}})(r.locale,r.Kr,n,a)).En.length&&n.En.includes(r.template)||n.kn&&(r=S(r.translationsMetadata,n,a),t=i=_(r,n),r.kr)&&(e=M(t,n,a),r=function(){e.An(),window.setTimeout(function(){return e.An()},500)},"loading"===document.readyState?window.addEventListener("DOMContentLoaded",r,{once:!0}):r(),"complete"!==document.readyState)&&window.addEventListener("load",function(){return e.An()},{once:!0}))},getImageTranslation:function(r){return a.log("dictionary","translationManager: ",i),i?i.getImageTranslation(r):null}})})();
</script><!-- END app snippet --><script>
(function() {
var ctx = {
locale: "es",
isPrimaryLocale: false,
rootUrl: "",
translationsMetadata: [{"name":"custom-resource-h39iog4c2d","value":{"I agree to the terms and conditions":"Acepto los términos y condiciones"}},{"name":"custom-resource-wimppsqshg","value":{"Read More":"Leer más"}},{"name":"custom-resource-nm517bf972","value":{"Read Less":"Leer menos"}},{"name":"custom-resource-8h162pcqcc","value":{"Often bought together":"A menudo se compran juntos"}},{"name":"custom-resource-29z8f01v92","value":{"I would like an invoice":"Me gustaría una factura"}}],
template: "article",
};
var settings = null;
TranslationLab.CustomTranslations.init(ctx, settings);
})();
</script>
<!-- END app block --><!-- BEGIN app block: shopify://apps/hreflang-tags/blocks/hreglang_tag/9a38367c-c3ce-4d6e-93ea-48ab8009c8a5 --><!-- Hreflang tags managed by apps.shopify.com/hreflang-tags -->
<link rel="alternate" hreflang="bg-BG" href="https://www.truffles.bg/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="cs-CZ" href="https://www.terra-ross.eu/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="da-DK" href="https://www.terra-ross.eu/da/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="de-AT" href="https://www.terra-ross.de/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="de-CH" href="https://www.terra-ross.ch/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="de-DE" href="https://www.terra-ross.de/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="de-LI" href="https://www.terra-ross.de/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="el-GR" href="https://www.terra-ross.eu/el/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-AE" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-AM" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-AR" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-AU" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-AZ" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-BR" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-CA" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-CN" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-CY" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-DM" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-DO" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-EE" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-EG" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-GB" href="https://www.terra-ross.uk/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-GI" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-HK" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-HR" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-ID" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-IE" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-IL" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-IN" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-IS" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-KR" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-LT" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-LV" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-MT" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-MX" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-RS" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-SA" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-SG" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-SI" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-SK" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-SM" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-TH" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-TR" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-TW" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-US" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-VA" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="en-ZA" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="es-ES" href="https://www.terra-ross.es/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="fi-FI" href="https://www.terra-ross.eu/fi/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="fr-BE" href="https://www.terra-ross.fr/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="fr-FR" href="https://www.terra-ross.fr/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="fr-LU" href="https://www.terra-ross.fr/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="fr-MC" href="https://www.terra-ross.fr/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="hu-HU" href="https://www.terra-ross.eu/hu/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="it-IT" href="https://www.terra-ross.it/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-AM" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-AR" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-AU" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-AZ" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-BR" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-CN" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-DM" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-DO" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-EG" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-GI" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-HK" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-ID" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-IL" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-IN" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-IS" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-JP" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-KR" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-MX" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-RS" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-SA" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-SG" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-SM" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-TH" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-TR" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-TW" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-VA" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ja-ZA" href="https://www.terra-ross.com/ja/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="nl-NL" href="https://www.terra-ross.eu/nl/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="no-NO" href="https://www.terra-ross.eu/no/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="pl-PL" href="https://www.terra-ross.eu/pl/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="pt-PT" href="https://www.terra-ross.eu/pt-pt/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="ro-RO" href="https://www.terra-ross.eu/ro/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="sv-SE" href="https://www.terra-ross.eu/sv/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<link rel="alternate" hreflang="x-default" href="https://www.terra-ross.com/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses">
<!-- END app block --><!-- BEGIN app block: shopify://apps/nabu-redirect-manager/blocks/script-block/1ec76215-4f32-4e94-950a-ce6073ea1b48 -->
<script>
(function() {
const storageKeyMap = {
redirectChain: 'ADNABU_REDIRECT_CHAIN',
redirectLog: 'ADNABU_REDIRECT_LOG',
debugMode: 'ADNABU_REDIRECT_DEBUG_MODE',
sessionId: 'ADNABU_REDIRECT_MANAGER_SESSION_ID',
}
// Storage access can throw (Safari with site data blocked, sandboxed frames);
// an unguarded throw here would abort the whole script tag, geo runtime included.
// The area is passed by name because even reading window.localStorage throws in
// sandboxed frames — it must be dereferenced inside the try.
function safeStorageGet(area, key) {
try {
return window[area].getItem(key);
} catch (error) {
return null;
}
}
function safeStorageSet(area, key, value) {
try {
window[area].setItem(key, value);
return true;
} catch (error) {
return false;
}
}
function safeStorageRemove(area, key) {
try {
window[area].removeItem(key);
} catch (error) {
// Storage is blocked; there is nothing to remove
}
}
const redirectConfig = {
mappings: null,
apiEndpoint: "https://nabu-seo.adnabu.com/flux",
shopId: "truffle-house-en.myshopify.com",
debugMode: safeStorageGet('localStorage', storageKeyMap.debugMode) || false,
};
// Utility functions
function log(message, data = null) {
if (redirectConfig.debugMode) {
console.log('[Nabu Redirect Manager]', message, data);
}
}
function generateUUID() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
// Session ID management functions
function getSessionId() {
let sessionId = safeStorageGet('sessionStorage', storageKeyMap.sessionId);
if (!sessionId) {
sessionId = generateUUID();
safeStorageSet('sessionStorage', storageKeyMap.sessionId, sessionId);
log('New session ID generated', sessionId);
}
return sessionId;
}
function clearSessionId() {
safeStorageRemove('sessionStorage', storageKeyMap.sessionId);
log('Session ID cleared');
}
function sendLogs(endpoint, logData) {
if (!endpoint || !logData) return;
// Use sendBeacon for better reliability, especially during page unload/redirect
if (navigator.sendBeacon) {
const blob = new Blob([JSON.stringify(logData)], { type: 'application/json' });
const success = navigator.sendBeacon(endpoint, blob);
if (success) {
log('Log sent successfully via sendBeacon');
safeStorageRemove('localStorage', storageKeyMap.redirectLog);
} else {
log('Failed to send log via sendBeacon');
}
} else {
// Fallback to XMLHttpRequest for older browsers
var xhr = new XMLHttpRequest();
xhr.open("POST", endpoint, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
log('Log sent successfully via XHR fallback');
safeStorageRemove('localStorage', storageKeyMap.redirectLog);
} else {
log('Failed to send log via XHR fallback', xhr.status);
}
}
};
xhr.send(JSON.stringify(logData));
}
}
function containsValidDomain(url) {
const regex = /^(https?:\/\/)?(www\.)?([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}/;
return regex.test(url);
}
function patternMatchesPath(pattern, path, caseInsensitive) {
// Used when there is no query in the pattern
let regex;
const isRegexPattern = pattern.startsWith('^');
if (isRegexPattern) {
regex = new RegExp(pattern, caseInsensitive ? 'i' : '');
} else {
// Convert wildcard pattern to regex - make wildcards capturing groups
const regexPattern = '^' + pattern.replace(/\$([0-9]+)/g, '([^/]+)').replace(/\*/g, '(.*)') + '/?$';
regex = new RegExp(regexPattern, caseInsensitive ? 'i' : '');
}
return path.match(regex);
}
function patternMatchesPathWithQuery(pattern, path, caseInsensitive) {
const isRegexPattern = pattern.startsWith('^');
if (isRegexPattern) {
const regex = new RegExp(pattern, caseInsensitive ? 'i' : '');
return path.match(regex);
}
// Split pattern and path into base path and query parts
const [patternBase, patternQuery] = pattern.split('?');
const [pathBase, pathQuery] = path.split('?');
// Check base path match first
const baseRegex = '^' + patternBase
.replace(/[.+^{}()|[\]\\]/g, '\\$&') // Escape special regex chars
.replace(/\$([0-9]+)/g, '([^/]+)') // Handle $1, $2, etc. placeholders
.replace(/\*/g, '(.*)') + '/?$'; // Handle wildcards as capturing groups
const baseMatch = pathBase.match(new RegExp(baseRegex, caseInsensitive ? 'i' : ''));
if (!baseMatch) {
return null;
}
// If no query in pattern, but query in path, still match base path
if (!patternQuery) {
return baseMatch;
}
// If pattern has query but path doesn't, no match
if (!pathQuery) {
return null;
}
// Parse query parameters from both pattern and path
function parseQueryParams(queryString) {
const params = {};
if (!queryString) return params;
queryString.split('&').forEach(param => {
const [key, value] = param.split('=');
if (key) {
params[decodeURIComponent(key)] = value ? decodeURIComponent(value) : '';
}
});
return params;
}
const patternParams = parseQueryParams(patternQuery);
const pathParams = parseQueryParams(pathQuery);
// Check if all pattern query parameters match
for (const [key, patternValue] of Object.entries(patternParams)) {
const pathValue = pathParams[key];
// If key doesn't exist in path, no match
if (pathValue === undefined) {
return null;
}
// Create regex for the parameter value (handle wildcards and placeholders)
let valueRegex = '^' + patternValue
.replace(/[.+^{}()|[\]\\]/g, '\\$&') // Escape special regex chars
.replace(/\$([0-9]+)/g, '(.+)') // Handle $1, $2, etc. placeholders
.replace(/\*/g, '(.*)') + '$'; // Handle wildcards as capturing groups
const valueMatch = pathValue.match(new RegExp(valueRegex, caseInsensitive ? 'i' : ''));
if (!valueMatch) {
return null;
}
// Merge any captured groups from query parameter matches
if (valueMatch.length > 1) {
baseMatch.push(...valueMatch.slice(1));
}
}
return baseMatch;
}
function smartPatternMatch(pattern, path, caseInsensitive) {
// Check if either pattern or path contains query parameters
const patternHasQuery = pattern.includes('?');
const pathHasQuery = path.includes('?');
// If either has query parameters, use the query-aware function
if (patternHasQuery || pathHasQuery) {
return patternMatchesPathWithQuery(pattern, path, caseInsensitive);
}
// Otherwise, use the simpler function
return patternMatchesPath(pattern, path, caseInsensitive);
}
function getEventType(pattern) {
// Determine event type based on whether pattern starts with ^
return pattern.startsWith('^') ? 'REGEX_REDIRECT' : 'WILDCARD_REDIRECT';
}
function parseQueryParams(queryString) {
const params = {};
if (!queryString) return params;
queryString.split('&').forEach(param => {
const [key, value] = param.split('=');
if (key) {
params[decodeURIComponent(key)] = value ? decodeURIComponent(value) : '';
}
});
return params;
}
function buildQueryString(params) {
const queryParts = [];
for (const [key, value] of Object.entries(params)) {
if (value === '') {
queryParts.push(encodeURIComponent(key));
} else {
queryParts.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));
}
}
return queryParts.join('&');
}
function handleRedirect(path, target, match) {
// First, handle $n pattern replacements
const usedGroups = new Set();
target = target.replace(/\$(\d+)/g, function(_, groupIndex) {
const index = parseInt(groupIndex);
usedGroups.add(index);
return match[index] || '';
});
// Then handle wildcard (*) replacements with remaining capture groups
let wildcardGroupIndex = 1;
target = target.replace(/\*/g, function() {
// Find next unused capture group
while (usedGroups.has(wildcardGroupIndex) && wildcardGroupIndex < match.length) {
wildcardGroupIndex++;
}
const replacement = match[wildcardGroupIndex] || '';
wildcardGroupIndex++;
return replacement;
});
// Now handle query parameter merging
const [currentPathBase, currentQuery] = path.split('?');
const [targetBase, targetQuery] = target.split('?');
// If no query parameters in current path, return target as is
if (!currentQuery) {
return target;
}
const currentParams = parseQueryParams(currentQuery);
const targetParams = parseQueryParams(targetQuery);
// Merge parameters with target taking precedence (target overrides current)
const mergedParams = { ...currentParams, ...targetParams };
// Build final target with merged query parameters
const mergedQuery = buildQueryString(mergedParams);
return targetBase + (mergedQuery ? '?' + mergedQuery : '');
}
function isPageNotFound() {
// Multiple ways to detect 404 pages
return document.title.toLowerCase().includes('404') ||
document.title.toLowerCase().includes('not found') ||
window.location.pathname.includes('404') ||
document.body.classList.contains('template-404') ||
document.querySelector('.template-404') !== null;
}
function getRedirectChain() {
const chainData = safeStorageGet('sessionStorage', storageKeyMap.redirectChain);
if (!chainData) {
return { urls: [], count: 0, sessionId: getSessionId() };
}
try {
const chain = JSON.parse(chainData);
// Ensure we use the persistent session ID
chain.sessionId = getSessionId();
return chain;
} catch (e) {
log('Error parsing redirect chain, resetting', e);
return { urls: [], count: 0, sessionId: getSessionId() };
}
}
function updateRedirectChain(url) {
const chain = getRedirectChain();
chain.urls.push(url);
chain.count++;
safeStorageSet('sessionStorage', storageKeyMap.redirectChain, JSON.stringify(chain));
return chain;
}
function clearRedirectChain() {
safeStorageRemove('sessionStorage', storageKeyMap.redirectChain);
}
function isCircularRedirect(targetUrl, chain) {
// Check if we've already visited this URL in the current chain
return chain.urls.includes(targetUrl);
}
function hasExceededRedirectLimit(chain) {
const MAX_REDIRECTS = 5;
return chain.count >= MAX_REDIRECTS;
}
function getSanitizedCurrentPath() {
let currentPath = window.location.pathname;
// Remove trailing slash from currentPath (except for root path)
if (currentPath.length > 1 && currentPath.endsWith('/')) {
currentPath = currentPath.slice(0, -1);
}
return currentPath;
}
function handle404Redirects() {
const currentPath = getSanitizedCurrentPath();
const queryParams = window.location.search;
const fullPath = currentPath + queryParams;
const currentUrl = window.location.origin + fullPath;
const locationHref = window.location.href;
// Get current redirect chain
const redirectChain = getRedirectChain();
// Create log entry
let redirectLog = {
'from_url': fullPath,
'from_path': currentPath,
'full_path': locationHref,
'session_id': redirectChain.sessionId,
'referrer': document.referrer,
'timestamp': Date.now() / 1000,
'shop_id': redirectConfig.shopId,
'user_agent': navigator.userAgent,
'market_country_code': Shopify.country,
'market_locale': Shopify.locale,
};
log('Checking for redirects', {
path: fullPath,
is404: isPageNotFound(),
redirectChain: redirectChain
});
// Only process redirects if this is a 404 page
if (isPageNotFound() && redirectConfig.mappings && Array.isArray(redirectConfig.mappings)) {
log('Processing 404 redirects');
// Check if we've exceeded the redirect limit
if (hasExceededRedirectLimit(redirectChain)) {
log('Redirect limit exceeded, breaking chain', redirectChain);
redirectLog['event_type'] = "CIRCULAR_REDIRECT_DETECTED";
redirectLog['redirect_id'] = null;
redirectLog['matched_regex'] = null;
redirectLog['to_url'] = null;
redirectLog['error'] = 'redirect_limit_exceeded';
redirectLog['success'] = false;
sendLogs(redirectConfig.apiEndpoint, redirectLog);
clearRedirectChain();
return;
}
// Iterate through redirect mappings
for (const mapping of redirectConfig.mappings) {
const pattern = mapping.pattern;
if (!pattern) continue;
const redirectId = mapping.redirect_id;
const caseInsensitive = mapping.case_insensitive || false;
const match = smartPatternMatch(pattern, fullPath, caseInsensitive);
if (match) {
log('Pattern matched', {pattern, match});
let target = mapping.target;
target = handleRedirect(fullPath, target, match);
// Handle external vs internal redirects
let targetUrl = target;
if (containsValidDomain(target)) {
if (!/^https?:\/\//i.test(target)) {
targetUrl = 'https://' + target;
}
} else {
// Internal redirect - construct full URL
targetUrl = window.location.origin + (target.startsWith('/') ? target : '/' + target);
}
// Check for circular redirect
if (isCircularRedirect(targetUrl, redirectChain)) {
log('Circular redirect detected', {
current: currentUrl,
target: targetUrl,
chain: redirectChain.urls
});
redirectLog['event_type'] = getEventType(pattern);
redirectLog['error'] = 'circular_redirect_detected';
redirectLog['to_url'] = targetUrl;
redirectLog['redirect_id'] = redirectId;
redirectLog['matched_regex'] = pattern;
redirectLog['success'] = false;
sendLogs(redirectConfig.apiEndpoint, redirectLog);
clearRedirectChain();
return;
}
// Update redirect chain before redirecting
updateRedirectChain(currentUrl);
// Add target to log
redirectLog['event_type'] = getEventType(pattern);
redirectLog['redirect_id'] = redirectId;
redirectLog['to_url'] = targetUrl;
redirectLog['matched_regex'] = pattern;
redirectLog['success'] = true;
safeStorageSet('localStorage', storageKeyMap.redirectLog, JSON.stringify(redirectLog));
sendLogs(redirectConfig.apiEndpoint, redirectLog);
log('Redirecting to', targetUrl);
// Perform redirect
window.location.replace(targetUrl);
return;
}
}
}
// No redirect found - log the 404
if (isPageNotFound()) {
redirectLog['event_type'] = "404_NO_REDIRECT";
// Direct marker only for 404s; keep in sync with DIRECT_REFERRER_SENTINEL in adnabu-api.
redirectLog['referrer'] = document.referrer || '__DIRECT__';
redirectLog['to_url'] = null;
redirectLog['redirect_id'] = null;
redirectLog['matched_regex'] = null;
redirectLog['success'] = false;
sendLogs(redirectConfig.apiEndpoint, redirectLog);
clearRedirectChain();
log('No redirect found, logging 404');
}
}
function checkForSuccessfulRedirect() {
// Check if there's a redirect log in localStorage (indicates successful redirect)
const redirectLog = safeStorageGet('localStorage', storageKeyMap.redirectLog);
if (redirectLog && !isPageNotFound()) {
log('Successful redirect detected, sending completion log');
sendLogs(redirectConfig.apiEndpoint, JSON.parse(redirectLog));
// Clear redirect chain on successful landing
clearRedirectChain();
log('Redirect chain cleared after successful landing');
}
}
// Initialize based on page type
function init() {
log('Redirect Manager initialized', redirectConfig);
// Run redirect logic immediately
if (isPageNotFound()) {
// Handle 404 redirects
handle404Redirects();
} else {
// Check for successful redirects
checkForSuccessfulRedirect();
// If we're on a valid page and there's no redirect log,
// clear any stale redirect chains (manual navigation)
const redirectLog = safeStorageGet('localStorage', storageKeyMap.redirectLog);
if (!redirectLog) {
const chain = getRedirectChain();
if (chain.count > 0) {
log('Clearing stale redirect chain due to manual navigation');
clearRedirectChain();
}
}
}
}
// Run when DOM is ready
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
init();
}
// Expose configuration update function for dynamic updates
window.updateRedirectConfig = function(newConfig) {
Object.assign(redirectConfig, newConfig);
log('Configuration updated', redirectConfig);
};
// Expose redirect chain debugging functions
window.getRedirectChainInfo = function() {
return getRedirectChain();
};
window.clearRedirectChainDebug = function() {
clearRedirectChain();
log('Redirect chain cleared manually');
};
window.enableRedirectDebugMode = function() {
safeStorageSet('localStorage', storageKeyMap.debugMode, 'true');
redirectConfig.debugMode = true;
log('Debug mode enabled');
};
window.disableRedirectDebugMode = function() {
safeStorageRemove('localStorage', storageKeyMap.debugMode);
redirectConfig.debugMode = false;
log('Debug mode disabled');
};
window.getAdNabuRedirectManagerSessionId = function() {
return getSessionId();
};
window.clearAdNabuRedirectManagerSessionId = function() {
clearSessionId();
log('Session ID cleared manually');
};
})();
</script>
<script>
/* ADNABU_GEO_START */
(function() {
const STORAGE_KEYS = {
handled: 'ADNABU_GEO_REDIRECT_HANDLED',
sessionId: 'ADNABU_REDIRECT_MANAGER_SESSION_ID',
debug: 'ADNABU_REDIRECT_DEBUG_MODE',
detectedCountry: 'ADNABU_GEO_DETECTED_COUNTRY',
detectionAttempted: 'ADNABU_GEO_DETECTION_ATTEMPTED',
};
// The extra replace keeps merchant copy from breaking out of this script tag: a literal
// closing tag would end it early, and an opening comment plus script tag flips the HTML
// tokenizer into its double-escaped state.
// Escaping every '<' (it only ever appears inside JSON strings) covers both and stays valid JS.
const config = {"enabled":false};
// Fallback only — localization.country.iso_code reflects the current market context,
// not the visitor's IP country; browsing_context_suggestions.json is the primary source.
const visitorCountryFromLiquid = "ES";
const apiEndpoint = 'https://nabu-seo.adnabu.com/flux';
const shopId = 'truffle-house-en.myshopify.com';
// Storage access throws in Safari with site data blocked and in sandboxed frames, which
// would otherwise kill the whole runtime — reads fall back to null, writes become no-ops.
function storageGet(area, key) {
try { return window[area].getItem(key); } catch (_e) { return null; }
}
function storageSet(area, key, value) {
try { window[area].setItem(key, value); } catch (_e) {}
}
const debug = storageGet('localStorage', STORAGE_KEYS.debug) === 'true';
// Shopify's routes.root ends with a slash, but a theme overriding Shopify.routes
// without one would silently produce paths like '/frlocalization'
function getRoutesRoot() {
const root = (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) || '/';
return root.replace(/\/*$/, '/');
}
let detectedCountryCache = storageGet('sessionStorage', STORAGE_KEYS.detectedCountry) || null;
// A miss (blocked endpoint, no country in the response, fetch failure) leaves detectedCountry
// unset, so remember that detection ran to avoid refetching the endpoint on every pageview
let detectionAttempted = storageGet('sessionStorage', STORAGE_KEYS.detectionAttempted) === '1';
async function warmUpCountryDetection() {
if (detectedCountryCache || detectionAttempted) return;
try {
const res = await fetch(getRoutesRoot() + 'browsing_context_suggestions.json?country[enabled]=true', {cache: 'no-store'});
if (!res.ok) return;
const data = await res.json();
const country = data && data.detected_values && data.detected_values.country && data.detected_values.country.handle;
if (country) {
// Shopify's handle casing isn't guaranteed; market country_codes are uppercase
detectedCountryCache = String(country).toUpperCase();
storageSet('sessionStorage', STORAGE_KEYS.detectedCountry, detectedCountryCache);
}
} catch (_e) {
} finally {
detectionAttempted = true;
storageSet('sessionStorage', STORAGE_KEYS.detectionAttempted, '1');
}
}
function detectVisitorCountry() {
return detectedCountryCache
|| visitorCountryFromLiquid
|| (window.Shopify && Shopify.country)
|| null;
}
// Prefer the visitor's detected country when the market covers it; otherwise fall back
// to the market's primary country code. With region_detection off the visitor's location
// must not influence anything, so the detected country is ignored entirely.
function pickDisplayCountry(market) {
const visitor = config.region_detection !== false ? detectVisitorCountry() : null;
const codes = (market && market.country_codes) || [];
if (visitor && codes.indexOf(visitor) !== -1) return visitor;
// Visitor's country isn't in the target market (e.g. a no-market country routed to the
// fallback market): prefer the merchant's chosen fallback country over the market's
// first country, which is otherwise arbitrary for a multi-country market
if (config.fallback_country && codes.indexOf(config.fallback_country) !== -1) return config.fallback_country;
return codes[0] || config.fallback_country || visitor || null;
}
function log() {
if (debug) console.log.apply(console, ['[Nabu Geo Redirect]'].concat([].slice.call(arguments)));
}
// Accept a boolean true or the string "true" so a metafield written as a string
// doesn't silently disable the feature
if (!config || (config.enabled !== true && config.enabled !== 'true')) {
log('Disabled or config missing', config);
return;
}
if (storageGet('sessionStorage', STORAGE_KEYS.handled) === '1') {
log('Already handled this session');
return;
}
function uuid() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
function getSessionId() {
let id = storageGet('sessionStorage', STORAGE_KEYS.sessionId);
if (!id) {
id = uuid();
storageSet('sessionStorage', STORAGE_KEYS.sessionId, id);
}
return id;
}
function sendEvent(eventType, extra) {
const payload = Object.assign({
event_type: eventType,
shop_id: shopId,
session_id: getSessionId(),
timestamp: Date.now() / 1000,
visitor_country_code: config.region_detection !== false ? detectVisitorCountry() : null,
visitor_locale: (window.Shopify && Shopify.locale) || null,
// market_* mirrors the 404 event schema — the current market context, not the visitor's IP country
market_country_code: (window.Shopify && Shopify.country) || null,
market_locale: (window.Shopify && Shopify.locale) || null,
user_agent: navigator.userAgent,
}, extra || {});
try {
if (navigator.sendBeacon) {
navigator.sendBeacon(apiEndpoint, new Blob([JSON.stringify(payload)], {type: 'application/json'}));
} else {
const xhr = new XMLHttpRequest();
xhr.open('POST', apiEndpoint, true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify(payload));
}
} catch (e) {
log('sendEvent failed', e);
}
}
// Returns whether the marker actually persisted — with storage blocked the guard at the
// top of the IIFE never trips, and AUTO mode must not redirect without that brake.
function markHandled() {
storageSet('sessionStorage', STORAGE_KEYS.handled, '1');
return storageGet('sessionStorage', STORAGE_KEYS.handled) === '1';
}
// return_to must be locale-root-relative; a locale-prefixed path would pin the old language.
// The locale home page has no trailing slash ('/fr' with root '/fr/'), so compare without it.
function toLocaleRootRelative(returnTo) {
let returnPath = returnTo || '/';
const rootNoSlash = getRoutesRoot().replace(/\/+$/, '');
if (rootNoSlash && returnPath.indexOf(rootNoSlash) === 0) {
const rest = returnPath.slice(rootNoSlash.length);
if (rest === '') returnPath = '/';
else if (rest.charAt(0) === '/') returnPath = rest;
}
// Collapse leading slashes, backslashes and control chars: '//evil.example/x',
// '/\evil.example/x' and control-char-prefixed forms all normalize to a
// protocol-relative URL in browsers, not a path
return '/' + returnPath.replace(/^[/\\\x00-\x1f]+/, '');
}
// Submit Shopify's localization form so Shopify updates country/market/currency and
// redirects to the locale-aware URL; self-built market URLs are brittle.
function switchCountry(countryCode, returnTo, localeCode) {
const form = document.createElement('form');
form.method = 'POST';
form.action = getRoutesRoot() + 'localization';
form.hidden = true;
const fields = [
['_method', 'PUT'],
['country_code', countryCode || ''],
['return_to', toLocaleRootRelative(returnTo) + (window.location.search || '')],
];
if (localeCode) fields.push(['locale_code', localeCode]);
for (const pair of fields) {
const input = document.createElement('input');
input.type = 'hidden';
input.name = pair[0];
input.value = pair[1];
form.appendChild(input);
}
document.body.appendChild(form);
form.submit();
}
function findTargetMarket() {
// With region_detection off, skip the country lookup and go straight to fallback
if (config.region_detection !== false) {
const byCountry = marketForCountry(detectVisitorCountry());
if (byCountry) return byCountry;
}
if (config.fallback_market_id) {
const byId = (config.markets || []).find(function(m) { return m.shopify_id === config.fallback_market_id; });
if (byId) return byId;
}
return marketForCountry(config.fallback_country);
}
// Auto-detect (no saved default_language) maps the visitor's browser language(s) to a locale the
// market publishes: an exact locale match wins, then a base-language match (e.g. fr-FR -> fr).
function detectBrowserLocale(locales) {
if (!locales || !locales.length) return null;
const nav = window.navigator || {};
const prefs = (nav.languages && nav.languages.length) ? nav.languages : (nav.language ? [nav.language] : []);
for (let i = 0; i < prefs.length; i++) {
const pref = String(prefs[i]).toLowerCase();
const base = pref.split('-')[0];
const exact = locales.find(function(l) { return String(l).toLowerCase() === pref; });
if (exact) return exact;
const baseMatch = locales.find(function(l) { return String(l).toLowerCase().split('-')[0] === base; });
if (baseMatch) return baseMatch;
}
return null;
}
// Prefer the shop-wide default_language URL when the market supports it, then the visitor's
// browser language, then the market's own locales, then primary_url (which can point at the
// shop root on partially-configured shops).
function pickMarketUrl(market) {
if (!market) return null;
const localeUrls = market.locale_urls || {};
const globalDefault = config.default_language;
if (globalDefault && localeUrls[globalDefault]) return localeUrls[globalDefault];
const detected = detectBrowserLocale(market.locales || []);
if (detected && localeUrls[detected]) return localeUrls[detected];
const marketDefault = (market.locales && market.locales[0]) || null;
if (marketDefault && localeUrls[marketDefault]) return localeUrls[marketDefault];
const anyLocaleUrl = Object.values(localeUrls)[0];
if (anyLocaleUrl) return anyLocaleUrl;
return market.primary_url || null;
}
// Analytics to_url should be where the visitor actually lands — the market URL joined
// with the return path and query string, matching what switchCountry submits as return_to
function buildDestinationUrl(market, returnTo) {
const base = pickMarketUrl(market);
if (!base) return null;
return base.replace(/\/+$/, '') + toLocaleRootRelative(returnTo) + (window.location.search || '');
}
function marketPathFromUrl(url) {
try {
const path = new URL(url).pathname.replace(/\/+$/, '');
return path || '/';
} catch (_e) { return null; }
}
function isSameOrigin(url) {
try { return new URL(url).origin.toLowerCase() === window.location.origin.toLowerCase(); }
catch (_e) { return false; }
}
// Detect the market the visitor is currently browsing by matching subfolder prefixes
function findVisitorMarketPath() {
const markets = config.markets || [];
const visitorPath = window.location.pathname.replace(/\/+$/, '') || '/';
const sorted = markets.slice().sort(function(a, b) {
return (marketPathFromUrl(b.primary_url) || '').length - (marketPathFromUrl(a.primary_url) || '').length;
});
for (const m of sorted) {
// A market on another domain can share a subfolder with a locale prefix on this
// one, so only same-origin markets can claim the current path.
if (!isSameOrigin(m.primary_url)) continue;
const mp = marketPathFromUrl(m.primary_url);
if (!mp) continue;
if (mp === '/') return '/';
if (visitorPath === mp || visitorPath.startsWith(mp + '/')) return mp;
}
return null;
}
// Compare against the market's primary_url on both sides — pickMarketUrl() prefers a
// locale URL whose path prefix differs from the primary one, which would flag visitors
// already in the right market as needing a switch.
function isAlreadyInMarket(market, targetUrl) {
const referenceUrl = (market && market.primary_url) || targetUrl;
if (!isSameOrigin(referenceUrl)) return false;
// Markets can share one domain with no subfolder (the context then comes from the
// buyer's localization cookie), so the URL alone can't prove the market — the
// current context country must also be covered by the target market.
if (visitorCountryFromLiquid && market
&& (market.country_codes || []).indexOf(visitorCountryFromLiquid) === -1) {
return false;
}
// Without a primary_url there is no path to anchor a comparison — same origin plus
// a covered context country is the strongest signal left.
if (!market || !market.primary_url) return true;
return findVisitorMarketPath() === marketPathFromUrl(referenceUrl);
}
// Display names resolve in the storefront's locale and are memoized — Intl.DisplayNames
// construction is expensive and countryName() runs inside the dropdown sort comparator.
const displayNameResolvers = {};
const displayNameCaches = {region: {}, language: {}};
function resolveDisplayName(type, locale, code) {
const resolverKey = type + ':' + locale;
if (!(resolverKey in displayNameResolvers)) {
try { displayNameResolvers[resolverKey] = new Intl.DisplayNames([locale], {type: type}); }
catch (_e) { displayNameResolvers[resolverKey] = null; }
}
const resolver = displayNameResolvers[resolverKey];
if (!resolver) return code;
try { return resolver.of(code) || code; }
catch (_e) { return code; }
}
function countryName(code) {
if (!code) return '';
const locale = (window.Shopify && Shopify.locale) || 'en';
const cache = displayNameCaches.region;
if (cache[code] === undefined) cache[code] = resolveDisplayName('region', locale, code);
return cache[code];
}
// SVG flag from flagcdn.com — same source as the admin preview; emoji flags don't render on Windows
function flagImgMarkup(countryCode) {
if (!countryCode || !/^[A-Za-z]{2}$/.test(countryCode)) return '';
const cc = String(countryCode).toLowerCase();
// onerror removes the img so a CSP-blocked or unreachable CDN never shows a broken icon
return '<img src="https://flagcdn.com/' + cc + '.svg" alt="" width="16" height="12" '
+ 'referrerpolicy="no-referrer" loading="lazy" onerror="this.remove()" '
+ 'style="display:inline-block;vertical-align:middle;object-fit:cover;" />';
}
function languageName(code) {
if (!code) return '';
const cache = displayNameCaches.language;
if (cache[code] === undefined) cache[code] = resolveDisplayName('language', code, code);
return cache[code];
}
function substituteTokens(template, replacements) {
if (typeof template !== 'string' || !template) return '';
return template
.replace(/\{country\}/g, replacements.country || '')
.replace(/\{language\}/g, replacements.language || '')
.replace(/\{currency\}/g, replacements.currency || '');
}
// Injects the flag SVG before the country name; all template segments are escaped
function renderHeaderHtml(template, replacements, flagHtml) {
if (typeof template !== 'string' || !template) return '';
const parts = template.split('{country}');
const substituteNonCountry = function(segment) {
return substituteTokens(segment, Object.assign({}, replacements, {country: ''}));
};
const before = escapeHtml(substituteNonCountry(parts[0]));
if (parts.length === 1) return before;
const country = escapeHtml(replacements.country || '');
// Later {country} occurrences render the plain name — the flag only decorates the first
const after = escapeHtml(substituteTokens(parts.slice(1).join('{country}'), replacements));
return before + flagHtml + (flagHtml ? ' ' : '') + country + after;
}
function escapeHtml(str) {
return String(str == null ? '' : str)
.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>')
.replace(/"/g, '"').replace(/'/g, ''');
}
function marketForCountry(code) {
return (config.markets || []).find(function(m) {
return (m.country_codes || []).indexOf(code) !== -1;
}) || null;
}
function collectMarketCountryCodes() {
const codes = [];
(config.markets || []).forEach(function(m) {
(m.country_codes || []).forEach(function(code) {
if (code && codes.indexOf(code) === -1) codes.push(code);
});
});
return codes.sort(function(a, b) { return countryName(a).localeCompare(countryName(b)); });
}
function localesForCountry(code, fallbackMarket) {
const market = marketForCountry(code) || fallbackMarket;
const locales = (market && market.locales) || [];
if (locales.length) return locales;
return config.shop_primary_locale ? [config.shop_primary_locale] : [];
}
function preferredLocaleFor(market) {
if (config.default_language) return config.default_language;
const locales = (market && market.locales) || [];
return detectBrowserLocale(locales)
|| locales[0]
|| config.shop_primary_locale || '';
}
// Detected/default value first (and preselected); the rest keep their order
function orderedWithFirst(list, first) {
if (!first || list.indexOf(first) === -1) return list;
return [first].concat(list.filter(function(item) { return item !== first; }));
}
function selectOptionsMarkup(values, labelFor) {
return values.map(function(value, index) {
return '<option value="' + escapeHtml(value) + '"' + (index === 0 ? ' selected' : '') + '>'
+ escapeHtml(labelFor(value)) + '</option>';
}).join('');
}
function selectFieldMarkup(id, label, attribute, optionsHtml) {
// label for + matching id ties the visible caption to the select, so voice-control
// users can target it (an aria-label alone is invisible and not voice-addressable)
return [
'<div>',
'<label for="' + id + '" style="display:block;margin:0 0 4px;font-size:11px;color:#6b7280;">' + escapeHtml(label) + '</label>',
'<select id="' + id + '" ' + attribute + ' style="width:100%;background:#fff;border:1px solid #dfe3e8;border-radius:6px;padding:4px 0;font-size:12px;color:#111827;">' + optionsHtml + '</select>',
'</div>',
].join('');
}
function renderModal(market, targetUrl) {
const modalCopy = config.modal_copy || {};
const allCountryCodes = collectMarketCountryCodes();
const picked = pickDisplayCountry(market);
// The header/CTA must describe the same country the dropdown preselects, so a pick
// no market covers (empty country_codes + uncovered fallback) falls back to the list
const countryCode = allCountryCodes.indexOf(picked) !== -1 ? picked : (allCountryCodes[0] || picked);
const preferredLanguage = preferredLocaleFor(market);
const languageOptions = orderedWithFirst(localesForCountry(countryCode, market), preferredLanguage);
// {language} copy must name the option the dropdown actually preselects — a
// default_language the target market doesn't publish is dropped from the list
const languageCode = languageOptions[0] || preferredLanguage;
const flagHtml = flagImgMarkup(countryCode);
const replacements = {
country: countryName(countryCode) || market.name || '',
language: languageName(languageCode),
currency: (marketForCountry(countryCode) || market).currency_code || '',
};
// Hex-only guard: cta_color lands in a style attribute, so reject arbitrary CSS
const ctaColor = /^#[0-9a-fA-F]{3,8}$/.test(modalCopy.cta_color || '') ? modalCopy.cta_color : '#1F1F1F';
const headerTemplate = modalCopy.header || 'It looks like you are shopping from {country}';
const descriptionTemplate = modalCopy.description || 'Visit our {country} store for {currency} pricing.';
const ctaTemplate = modalCopy.cta_label || 'Continue to {country} store';
const countryOptions = orderedWithFirst(allCountryCodes, countryCode);
const overlay = document.createElement('div');
overlay.setAttribute('data-adnabu-geo-modal', '');
overlay.style.cssText = 'position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(15,15,15,0.32);z-index:2147483646;display:flex;align-items:center;justify-content:center;font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;';
overlay.innerHTML = [
'<div role="dialog" aria-modal="true" data-adnabu-geo-dialog aria-label="' + escapeHtml(substituteTokens(headerTemplate, replacements)) + '" style="background:#fff;border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,0.18);padding:20px;max-width:340px;width:calc(100% - 40px);">',
'<div style="display:flex;justify-content:space-between;align-items:flex-start;gap:12px;">',
'<p data-adnabu-geo-header aria-live="polite" style="margin:0;font-size:15px;font-weight:500;line-height:1.35;">' + renderHeaderHtml(headerTemplate, replacements, flagHtml) + '</p>',
'<button type="button" aria-label="Close" data-adnabu-geo-dismiss style="background:transparent;border:none;padding:0;cursor:pointer;color:#5c6a7a;font-size:20px;line-height:1;">×</button>',
'</div>',
'<p data-adnabu-geo-description aria-live="polite" style="margin:12px 0 0;font-size:13px;color:#374151;line-height:1.4;">' + escapeHtml(substituteTokens(descriptionTemplate, replacements)) + '</p>',
'<div style="display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;">',
selectFieldMarkup('adnabu-geo-country-select', modalCopy.country_field_label || 'Country', 'data-adnabu-geo-country', selectOptionsMarkup(countryOptions, countryName)),
selectFieldMarkup('adnabu-geo-language-select', modalCopy.language_field_label || 'Language', 'data-adnabu-geo-language', selectOptionsMarkup(languageOptions, languageName)),
'</div>',
'<button type="button" data-adnabu-geo-accept style="margin-top:16px;width:100%;background:' + escapeHtml(ctaColor) + ';color:#fff;border:none;border-radius:8px;padding:10px 14px;font-weight:600;font-size:13px;cursor:pointer;">',
escapeHtml(substituteTokens(ctaTemplate, replacements)),
'</button>',
'</div>',
].join('');
const previouslyFocused = document.activeElement;
const previousBodyOverflow = document.body.style.overflow;
// Lock background scroll so the page doesn't scroll behind the overlay on mobile
document.body.style.overflow = 'hidden';
document.body.appendChild(overlay);
const dialogElement = overlay.querySelector('[data-adnabu-geo-dialog]');
const headerElement = overlay.querySelector('[data-adnabu-geo-header]');
const descriptionElement = overlay.querySelector('[data-adnabu-geo-description]');
const countrySelect = overlay.querySelector('[data-adnabu-geo-country]');
const languageSelect = overlay.querySelector('[data-adnabu-geo-language]');
const acceptButton = overlay.querySelector('[data-adnabu-geo-accept]');
// All templated copy tracks the current selection, not just the CTA — a modal that
// still says "Shopping from France?" above a "Continue to Germany store" button lies
function updateModalCopy() {
const chosenCountry = countrySelect.value || countryCode;
const chosenMarket = marketForCountry(chosenCountry) || market;
const chosen = {
country: countryName(chosenCountry) || chosenMarket.name || '',
language: languageName(languageSelect.value || languageCode),
currency: chosenMarket.currency_code || '',
};
headerElement.innerHTML = renderHeaderHtml(headerTemplate, chosen, flagImgMarkup(chosenCountry));
descriptionElement.textContent = substituteTokens(descriptionTemplate, chosen);
acceptButton.textContent = substituteTokens(ctaTemplate, chosen);
dialogElement.setAttribute('aria-label', substituteTokens(headerTemplate, chosen));
}
function handleKeydown(e) {
if (e.key === 'Escape') { dismiss(); return; }
if (e.key !== 'Tab') return;
// Keep Tab cycling inside the dialog while it is open
const focusables = overlay.querySelectorAll('select, button');
const first = focusables[0];
const last = focusables[focusables.length - 1];
if (e.shiftKey && document.activeElement === first) { e.preventDefault(); last.focus(); }
else if (!e.shiftKey && document.activeElement === last) { e.preventDefault(); first.focus(); }
}
function dismiss() {
sendEvent('GEO_MODAL_DISMISSED', {target_country_code: countryCode, target_market_id: market.shopify_id});
document.removeEventListener('keydown', handleKeydown);
document.body.style.overflow = previousBodyOverflow;
overlay.remove();
if (previouslyFocused && typeof previouslyFocused.focus === 'function') previouslyFocused.focus();
}
function accept() {
// Guard against double submission — the first click already navigates
if (acceptButton.disabled) return;
acceptButton.disabled = true;
document.removeEventListener('keydown', handleKeydown);
document.body.style.overflow = previousBodyOverflow;
const chosenCountry = countrySelect.value || countryCode;
const chosenMarket = marketForCountry(chosenCountry) || market;
sendEvent('GEO_MODAL_ACCEPTED', {
target_country_code: chosenCountry, target_market_id: chosenMarket.shopify_id,
to_url: buildDestinationUrl(chosenMarket, window.location.pathname) || targetUrl,
});
switchCountry(chosenCountry, window.location.pathname, languageSelect.value || languageCode);
}
countrySelect.addEventListener('change', function() {
// Same preference order as the initial render, so toggling a country away and
// back preselects the same language
const chosenMarket = marketForCountry(countrySelect.value) || market;
const locales = orderedWithFirst(localesForCountry(countrySelect.value, market), preferredLocaleFor(chosenMarket));
languageSelect.innerHTML = selectOptionsMarkup(locales, languageName);
updateModalCopy();
});
languageSelect.addEventListener('change', updateModalCopy);
overlay.querySelector('[data-adnabu-geo-dismiss]').addEventListener('click', dismiss);
acceptButton.addEventListener('click', accept);
overlay.addEventListener('click', function(e) { if (e.target === overlay) dismiss(); });
document.addEventListener('keydown', handleKeydown);
// Emitted only after a successful render + wiring, so a throw above (caught in run())
// never counts an impression for a modal the visitor can't see
sendEvent('GEO_MODAL_SHOWN', {target_country_code: countryCode, target_market_id: market.shopify_id});
countrySelect.focus({preventScroll: true});
}
// Best-effort bot exclusion: JS-rendering crawlers (Googlebot, Bingbot) keep their bot UA
// while rendering, and navigator.webdriver catches headless automation.
// Redirecting crawlers by IP breaks indexing of localized markets, so bots get neither
// redirects nor modals — and never reach sendEvent, keeping analytics human-only.
function isBot() {
if (navigator.webdriver) return true;
return /bot|crawler|spider|crawling|slurp|lighthouse|headless|bingpreview|facebookexternalhit|whatsapp|telegram|pinterest|semrush|ahrefs|screaming frog/i
.test(navigator.userAgent);
}
const botDetected = isBot();
async function run() {
if (botDetected) {
log('Bot or automation detected; skipping geo handling');
return;
}
await countryDetectionReady;
const targetMarket = findTargetMarket();
if (!targetMarket) {
log('No target market found for visitor country', detectVisitorCountry());
return;
}
const targetUrl = pickMarketUrl(targetMarket);
if (!targetUrl) {
log('No URL resolved for target market', targetMarket);
return;
}
if (isAlreadyInMarket(targetMarket, targetUrl)) {
log('Visitor already in target market origin', targetUrl);
return;
}
if (config.mode === 'AUTO') {
// Submit only a country the target market covers, so the reported market and
// the market Shopify resolves can't diverge
const targetCountries = targetMarket.country_codes || [];
const picked = pickDisplayCountry(targetMarket);
const submitCountry = targetCountries.indexOf(picked) !== -1 ? picked : targetCountries[0];
if (!submitCountry) {
log('Target market has no country to submit; skipping AUTO redirect');
return;
}
// No persisted marker means no brake against reload loops — storage-blocked
// visitors usually block the localization cookie too, so the switch won't stick
if (!markHandled()) {
log('Session marker not persisted; skipping AUTO redirect');
return;
}
sendEvent('GEO_AUTO_REDIRECTED', {
target_country_code: submitCountry, target_market_id: targetMarket.shopify_id,
to_url: buildDestinationUrl(targetMarket, window.location.pathname) || targetUrl,
});
// Honor default_language when the target market publishes it, matching pickMarketUrl's choice
const autoLocale = config.default_language
&& (targetMarket.locales || []).indexOf(config.default_language) !== -1
? config.default_language : null;
switchCountry(submitCountry, window.location.pathname, autoLocale);
return;
}
if (config.mode !== 'MODAL') {
log('Unknown redirection mode; skipping', config.mode);
return;
}
// Mark handled only after a successful render — a throw partway would otherwise cost
// the visitor the modal for the whole session and leave a dead overlay on the page
try {
renderModal(targetMarket, targetUrl);
} catch (renderError) {
const partialOverlay = document.querySelector('[data-adnabu-geo-modal]');
if (partialOverlay) partialOverlay.remove();
log('Modal render failed', renderError);
return;
}
markHandled();
}
// Detection starts at script evaluation (this block targets head) so the network round
// trip overlaps document parsing instead of delaying the redirect past DOMContentLoaded.
// With region_detection off the visitor is never geolocated — no lookup, no cache.
const countryDetectionReady = !botDetected && config.region_detection !== false
? warmUpCountryDetection() : Promise.resolve();
// async run() would otherwise surface storage/network failures as unhandled rejections
function startGeo() {
run().catch(function(e) { log('Geo run failed', e); });
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', startGeo);
} else {
startGeo();
}
})();
/* ADNABU_GEO_END */
</script>
<!-- END app block --><script src="https://cdn.shopify.com/extensions/01a15d82-7305-7be9-9c7a-0d0228ab97ad/judgeme-805/assets/loader.js" type="text/javascript" defer="defer"></script>
<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 91251933506,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "article"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
<script>
window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
</script>
<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 91251933506,storefrontBaseUrl: "https://www.terra-ross.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.terra-ross.es/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab"],webPixelsConfigList: [{"id":"3075047746","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"GT-T5MG45W8\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-ZPFDG6M4MC\\\"},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-ZPFDG6M4MC\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":\\\"G-ZPFDG6M4MC\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":\\\"G-ZPFDG6M4MC\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":\\\"G-ZPFDG6M4MC\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-ZPFDG6M4MC\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-ZPFDG6M4MC\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"2426044738","configuration":"{\"accountID\":\"91251933506\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"9cf281f576a3744d05c8685f9f7f3f72","type":"APP","apiClientId":10250649601,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1120207170","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Terra Ross","paymentSettings":{"currencyCode":"EUR"},"myshopifyDomain":"truffle-house-en.myshopify.com","countryCode":"BG","storefrontUrl":"https:\/\/www.terra-ross.es"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://www.terra-ross.es/cdn","1a9baebawdc64f25fp260b5808mb1d3394f",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"192095682882","themeStoreId":"1651","themePublished":"true","eventMetadataId":"1675ad44-b148-43b5-b349-9daab43b9e63","pageType":"article","resourceId":"617080226114","shopId":"91251933506","storefrontBaseUrl":"https:\/\/www.terra-ross.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\"]","isMerchantRequest":"false","hashVersion":"1a9baebawdc64f25fp260b5808mb1d3394f","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script><script>
window.ShopifyAnalytics = window.ShopifyAnalytics || {};
window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
window.ShopifyAnalytics.meta.currency = 'EUR';
var meta = {"page":{"pageType":"article","resourceType":"article","resourceId":617080226114,"requestId":"35a09771-bd46-48b2-a68e-58587a38392d-1792592804"}};
for (var attr in meta) {
window.ShopifyAnalytics.meta[attr] = meta[attr];
}
</script>
<script class="analytics">
(function () {
var customDocumentWrite = function(content) {
var jquery = null;
if (window.jQuery) {
jquery = window.jQuery;
} else if (window.Checkout && window.Checkout.$) {
jquery = window.Checkout.$;
}
if (jquery) {
jquery('body').append(content);
}
};
var hasLoggedConversion = function(token) {
if (token) {
return document.cookie.indexOf('loggedConversion=' + token) !== -1;
}
return false;
}
var setCookieIfConversion = function(token) {
if (token) {
var twoMonthsFromNow = new Date(Date.now());
twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
}
}
var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
window.ShopifyAnalytics.lib.trekkie = window.trekkie;
if (trekkie.integrations) {
return;
}
trekkie.methods = [
'identify',
'page',
'ready',
'track',
'trackForm',
'trackLink'
];
trekkie.factory = function(method) {
return function() {
var args = Array.prototype.slice.call(arguments);
args.unshift(method);
trekkie.push(args);
if (method == 'track' || method == 'page') {
var pageUrl;
try {
pageUrl = window.location.href;
} catch (e) {}
var pageReferrer;
try {
pageReferrer = document.referrer;
} catch (e) {}
try {
if (window.__TREKKIE_SHIM_QUEUE == null) {
window.__TREKKIE_SHIM_QUEUE = [];
}
window.__TREKKIE_SHIM_QUEUE.push({
from: 'trekkie-stub',
method: method,
args: args.slice(1),
pageContext: {
url: pageUrl,
referrer: pageReferrer
}
});
} catch (e) {
// no-op
}
}
return trekkie;
};
};
for (var i = 0; i < trekkie.methods.length; i++) {
var key = trekkie.methods[i];
trekkie[key] = trekkie.factory(key);
}
trekkie.load = function(config) {
trekkie.config = config || {};
trekkie.config.initialDocumentCookie = document.cookie;
var first = document.getElementsByTagName('script')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.onerror = function(e) {
var scriptFallback = document.createElement('script');
scriptFallback.type = 'text/javascript';
scriptFallback.onerror = function(error) {
var Monorail = {
produce: function produce(monorailDomain, schemaId, payload) {
var currentMs = new Date().getTime();
var event = {
schema_id: schemaId,
payload: payload,
metadata: {
event_created_at_ms: currentMs,
event_sent_at_ms: currentMs
}
};
return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
},
sendRequest: function sendRequest(endpointUrl, payload) {
// Try the sendBeacon API
if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
var blobData = new window.Blob([payload], {
type: 'text/plain'
});
if (window.navigator.sendBeacon(endpointUrl, blobData)) {
return true;
} // sendBeacon was not successful
} // XHR beacon
var xhr = new XMLHttpRequest();
try {
xhr.open('POST', endpointUrl);
xhr.setRequestHeader('Content-Type', 'text/plain');
xhr.send(payload);
} catch (e) {
console.log(e);
}
return false;
},
isIos12: function isIos12() {
return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
}
};
Monorail.produce('monorail-edge.shopifysvc.com',
'trekkie_storefront_load_errors/1.1',
{shop_id: 91251933506,
theme_id: 192095682882,
app_name: "storefront",
context_url: window.location.href,
source_url: "//www.terra-ross.es/cdn/s/trekkie.storefront.6efba1340ec6769622eb0d10b5cb070d43fb8d55.min.js"});
};
scriptFallback.async = true;
scriptFallback.src = '//www.terra-ross.es/cdn/s/trekkie.storefront.6efba1340ec6769622eb0d10b5cb070d43fb8d55.min.js';
first.parentNode.insertBefore(scriptFallback, first);
};
script.async = true;
script.src = '//www.terra-ross.es/cdn/s/trekkie.storefront.6efba1340ec6769622eb0d10b5cb070d43fb8d55.min.js';
first.parentNode.insertBefore(script, first);
};
trekkie.load(
{"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":91251933506,"isMerchantRequest":null,"themeId":192095682882,"themeCityHash":"14328319629423137921","contentLanguage":"es","currency":"EUR","eventMetadataId":"1675ad44-b148-43b5-b349-9daab43b9e63"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}}
);
var loaded = false;
trekkie.ready(function() {
if (loaded) return;
loaded = true;
window.ShopifyAnalytics.lib = window.trekkie;
var originalDocumentWrite = document.write;
document.write = customDocumentWrite;
try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
document.write = originalDocumentWrite;
var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
var token = match? match[1]: undefined;
if (!hasLoggedConversion(token)) {
setCookieIfConversion(token);
}
});
window.ShopifyAnalytics.lib.page(null,{"pageType":"article","resourceType":"article","resourceId":617080226114,"requestId":"35a09771-bd46-48b2-a68e-58587a38392d-1792592804","shopifyEmitted":true});
var eventsListenerScript = document.createElement('script');
eventsListenerScript.async = true;
eventsListenerScript.src = "//www.terra-ross.es/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
})();</script>
<script
defer
src="https://www.terra-ross.es/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.11.0.min.js"
data-application="storefront-renderer"
data-shop-id="91251933506"
data-render-region="gcp-europe-west1"
data-page-type="article"
data-theme-instance-id="192095682882"
data-theme-name="Local"
data-theme-version="4.1.2"
data-monorail-region="shop_domain"
data-resource-timing-sampling-rate="10"
data-shs="true"
data-shs-beacon="true"
data-shs-export-with-fetch="true"
data-shs-logs-sample-rate="1"
data-shs-beacon-endpoint="https://www.terra-ross.es/api/collect"
></script>
<script src="https://cdn.shopify.com/storefront/web-components/account.js" type="module" crossorigin fetchpriority="low" async></script><script id="shopify-customer-account-data" type="application/json">{"customer":null,"shop":{"id":"91251933506","customerAccountTranslations":[{"key":"account_menu.signed_out_state.sheet_title","value":"Iniciar sesión o crear cuenta"},{"key":"account_menu.signed_out_state.section_divider","value":"Más formas de iniciar sesión"},{"key":"account_menu.signed_out_state.alternate_divider","value":"O"},{"key":"account_menu.signed_out_state.email_field_label","value":"Correo electrónico"},{"key":"account_menu.signed_out_state.orders_button","value":"Pedidos"},{"key":"account_menu.signed_out_state.profile_button","value":"Perfil"},{"key":"account_menu.signed_out_state.shop_login_button","value":"Iniciar sesión con Shop"},{"key":"account_menu.signed_out_state.continue_with_google","value":"Continuar con Google"},{"key":"account_menu.signed_out_state.continue_with_facebook","value":"Continuar con Facebook"},{"key":"account_menu.signed_out_state.marketing_consent_label","value":"Enviarme novedades y ofertas por correo electrónico"},{"key":"account_menu.signed_in_state.greeting_with_name","value":"Hola, {{first_name}}"},{"key":"account_menu.signed_in_state.greeting_without_name","value":"Cuenta"},{"key":"account_menu.signed_in_state.orders_button","value":"Pedidos"},{"key":"account_menu.signed_in_state.profile_button","value":"Perfil"},{"key":"account_menu.location_picker.sheet_title","value":"Sucursales"},{"key":"account_menu.location_picker.search_field_placeholder","value":"Búsqueda"},{"key":"account_menu.aria_labels.close_menu","value":"Cerrar menú"},{"key":"account_menu.aria_labels.back_to_main_menu","value":"Volver al menú principal desde {{title}}"},{"key":"account_menu.aria_labels.open_submenu","value":"{{title}} abre un submenú"},{"key":"account_menu.aria_labels.loading_menu","value":"Cargando menú"},{"key":"account_menu.aria_labels.loading","value":"Cargando"},{"key":"account_menu.aria_labels.account","value":"Cuenta"},{"key":"account_menu.aria_labels.sign_in_with_email","value":"Iniciar sesión con correo electrónico"},{"key":"account_menu.aria_labels.sign_in","value":"Iniciar sesión"}],"socialLoginProviders":[{"handle":"Shop"},{"handle":"Google"},{"handle":"Facebook"}],"legacyCustomerAccounts":false,"signInLinksVisible":true,"b2bEnabled":true,"marketingConsentSigninEnabled":true,"marketingConsentPreselected":true},"visitor":{"country":"ES","language":"es"}}</script>
<script id="shopify-chat-page-data" type="application/json">{"greetingMessage":"Te damos la bienvenida a Terra Ross. ¿En qué puedo ayudarte?","customerServiceEmail":"[email protected]","onlineStorePasswordProtected":false,"continueAsChip":true,"exportCommand":false,"shopName":"Terra Ross","translations":[{"key":"agent_chat.panel.open_chat","value":"Abrir chat"},{"key":"agent_chat.panel.ask_anything","value":"Pregunta cualquier cosa"},{"key":"agent_chat.panel.title","value":"Storekick"},{"key":"agent_chat.panel.unread_replies","value":"Respuestas no leídas"},{"key":"agent_chat.panel.back_to_chat","value":"Volver al chat"},{"key":"agent_chat.panel.see_history","value":"Ver historial de chat"},{"key":"agent_chat.panel.new_chat","value":"Crear un chat nuevo"},{"key":"agent_chat.panel.close","value":"Cerrar chat"},{"key":"agent_chat.panel.undock","value":"Desacoplar chat"},{"key":"agent_chat.panel.dock","value":"Acoplar chat"},{"key":"agent_chat.panel.expand","value":"Expandir chat"},{"key":"agent_chat.panel.contract","value":"Contraer chat"},{"key":"agent_chat.panel.jump_to_latest","value":"Ir al más reciente"},{"key":"agent_chat.panel.loading_chat","value":"Cargando chat"},{"key":"agent_chat.input.label","value":"Escribe tu mensaje"},{"key":"agent_chat.input.placeholder","value":"Pregunta cualquier cosa..."},{"key":"agent_chat.input.send","value":"Enviar"},{"key":"agent_chat.input.stop","value":"Detener generación"},{"key":"agent_chat.thinking","value":"Pensando..."},{"key":"agent_chat.first_response_delayed","value":"El agente está tardando más en responder…"},{"key":"agent_chat.searching","value":"Buscando..."},{"key":"agent_chat.message.sent_timestamp","value":"Enviado · {{time}}"},{"key":"agent_chat.message.automated_label","value":"Automatizado"},{"key":"agent_chat.message.automated_timestamp","value":"Automático · {{time}}"},{"key":"agent_chat.liveAgentHandoff","value":"Alguien de nuestro equipo te atenderá en breve"},{"key":"agent_chat.human_handoff.action","value":"Chatear con nuestro equipo"},{"key":"agent_chat.human_handoff.request","value":"Me gustaría hablar con alguien de tu equipo"},{"key":"agent_chat.human_handoff.ai_assistant","value":"Asistente de IA"},{"key":"agent_chat.greeting.default","value":"¡Hola!"},{"key":"agent_chat.greeting.with_name","value":"¡Hola, {{name}}!"},{"key":"agent_chat.greeting.welcome","value":"Puedes hacer preguntas sobre compras, tallas\/dimensiones, envíos, devoluciones o el estado del pedido."},{"key":"agent_chat.greeting.welcome_back","value":"¡Te damos la bienvenida de nuevo a %{shop_name}! ¿En qué puedo ayudarte?"},{"key":"agent_chat.greeting.welcome_back_no_shop","value":"¡Te damos la bienvenida de nuevo! ¿En qué puedo ayudarte?"},{"key":"agent_chat.greeting.welcome_to_shop","value":"Te damos la bienvenida a %{shop_name}. ¿En qué puedo ayudarte?"},{"key":"agent_chat.greeting.generic","value":"¿En qué puedo ayudarte?"},{"key":"agent_chat.disclaimer.text","value":"Este chat funciona con IA de Shopify y puede cometer errores. Tus mensajes son visibles para {{shop_name}}. Consulta la"},{"key":"agent_chat.disclaimer.text_human","value":"{{shop_name}} y Shopify pueden ver tus mensajes para proporcionar y mejorar los servicios. Ver"},{"key":"agent_chat.disclaimer.link_text","value":"política de privacidad"},{"key":"agent_chat.error.response_unavailable","value":"Respuesta no disponible"},{"key":"agent_chat.error.generic","value":"Hubo un problema."},{"key":"agent_chat.error.response_failed","value":"No se pudo cargar este mensaje"},{"key":"agent_chat.error.message_send_failed","value":"No se pudo enviar tu mensaje"},{"key":"agent_chat.error.attachment_upload_failed","value":"No se subió tu archivo adjunto"},{"key":"agent_chat.error.first_response_stalled","value":"El agente no pudo responder"},{"key":"agent_chat.error.try_again","value":"Volver a intentar"},{"key":"agent_chat.error.unavailable","value":"El chat no está disponible en este momento. Inténtalo de nuevo más tarde."},{"key":"agent_chat.error.usage_limit","value":"Se alcanzó el límite de mensajes: vuelve a intentarlo más tarde o envíanos un correo electrónico a {{email}}"},{"key":"agent_chat.error.usage_limit_no_email","value":"Se alcanzó el límite de mensajes: vuelve a intentarlo más tarde"},{"key":"agent_chat.error.cost_quota_unhandled","value":"El chat no está disponible en este momento: envíanos un correo a {{email}}"},{"key":"agent_chat.error.cost_quota_unhandled_no_email","value":"El chat no está disponible en este momento"},{"key":"agent_chat.error.cost_quota_handover","value":"El asistente de IA no está disponible en este momento; nuestro equipo te responderá en breve"},{"key":"agent_chat.unavailable.title","value":"El chat no está disponible en este momento"},{"key":"agent_chat.unavailable.description","value":"Hubo un problema al cargar el chat."},{"key":"agent_chat.history.heading","value":"Historial de chat"},{"key":"agent_chat.history.loading","value":"Cargando historial de la conversación"},{"key":"agent_chat.history.aria_label","value":"Historial de la conversación"},{"key":"agent_chat.history.no_conversations","value":"No hay conversaciones"},{"key":"agent_chat.history.conversation.one","value":"conversación"},{"key":"agent_chat.history.conversation.other","value":"conversaciones"},{"key":"agent_chat.history.conversation.many","value":"conversaciones"},{"key":"agent_chat.history.error_message","value":"Hubo un problema."},{"key":"agent_chat.history.try_again","value":"Volver a intentarlo"},{"key":"agent_chat.history.no_past","value":"No hay conversaciones anteriores"},{"key":"agent_chat.history.start_new","value":"Iniciar un chat nuevo"},{"key":"agent_chat.history.untitled","value":"Conversación sin título"},{"key":"agent_chat.history.resume","value":"Reanudar: {{title}}"},{"key":"agent_chat.history.resume_with_time","value":"Reanudar: {{title}}, {{time}}"},{"key":"agent_chat.history.delete","value":"Eliminar conversación: {{title}}"},{"key":"agent_chat.history.delete_failed","value":"No se pudo eliminar la conversación"},{"key":"agent_chat.feedback.group_label","value":"Comentarios sobre el mensaje"},{"key":"agent_chat.feedback.thumbs_up","value":"Pulgar hacia arriba"},{"key":"agent_chat.feedback.thumbs_down","value":"Pulgar hacia abajo"},{"key":"agent_chat.feedback.add_comment","value":"Agregar comentario"},{"key":"agent_chat.feedback.thanks","value":"Gracias por tu comentario"},{"key":"agent_chat.feedback.placeholder_up","value":"Cuéntanos qué salió bien"},{"key":"agent_chat.feedback.placeholder_down","value":"Cuéntanos qué se podría mejorar"},{"key":"agent_chat.feedback.comment_label","value":"Comentario"},{"key":"agent_chat.feedback.cancel","value":"Cancelar"},{"key":"agent_chat.feedback.submit","value":"Enviar"},{"key":"agent_chat.feedback.character_count","value":"{{current}}\/{{max}}"},{"key":"agent_chat.feedback.character_limit_reached","value":"Se alcanzó la longitud máxima. El comentario está limitado a {{max}} caracteres."},{"key":"agent_chat.buyer_profile.button.open","value":"Perfil del comprador"},{"key":"agent_chat.buyer_profile.title","value":"Perfil del comprador"},{"key":"agent_chat.buyer_profile.empty","value":"No hay ningún perfil del comprador disponible."},{"key":"agent_chat.buyer_profile.close","value":"Cerrar"},{"key":"agent_chat.suggestions.empty_state_label","value":"Preguntas sugeridas"},{"key":"agent_chat.suggestions.quick_reply_label","value":"Respuestas sugeridas"},{"key":"agent_chat.auth.sign_in_to_continue","value":"Inicia sesión para continuar"},{"key":"agent_chat.auth.sign_in","value":"Iniciar sesión"},{"key":"agent_chat.auth.skip_and_chat","value":"Omitir y empezar a chatear"},{"key":"agent_chat.auth.pre_chat_title","value":"Inicia sesión para personalizar y guardar tus chats"},{"key":"agent_chat.auth.pre_chat_subtitle","value":"Inicia sesión o crea una cuenta"},{"key":"agent_chat.auth.staff_chat_required_title","value":"No te pierdas ninguna respuesta"},{"key":"agent_chat.auth.staff_chat_required_subtitle","value":"Inicia sesión para chatear con nuestro equipo. Te enviaremos un correo electrónico si abandonas el chat."},{"key":"agent_chat.auth.share_disclaimer","value":"Si continúas, Shop compartirá tu nombre y correo electrónico con esta tienda. Consulta sus {{terms_link}} y su {{privacy_link}}"},{"key":"agent_chat.auth.terms_link","value":"términos"},{"key":"agent_chat.auth.privacy_link","value":"política de privacidad"},{"key":"agent_chat.auth.declined_pre_chat","value":"No puedo conectarte con la tienda a menos que inicies sesión."},{"key":"agent_chat.reply_by_email.continuation_prompt","value":"Si sales del chat, te enviaremos un correo electrónico cuando haya una respuesta."},{"key":"agent_chat.reply_by_email.sign_in_prompt","value":"Inicia sesión para recibir un correo electrónico cuando haya una respuesta."},{"key":"agent_chat.order_lookup.track_order","value":"Hacer seguimiento de mi pedido"},{"key":"agent_chat.order_lookup.track_another_order","value":"Hacer seguimiento de otro pedido"},{"key":"agent_chat.order_lookup.new_conversation","value":"Nueva conversación"},{"key":"agent_chat.order_lookup.follow_up_label","value":"Acciones de búsqueda de pedidos"},{"key":"agent_chat.order_lookup.enter_order_information","value":"Ingresa la información del pedido"},{"key":"agent_chat.order_lookup.prompt","value":"Para ver el estado de tu pedido, proporciona la información del pedido."},{"key":"agent_chat.order_lookup.form_title","value":"Hacer seguimiento de mi pedido"},{"key":"agent_chat.order_lookup.form_subtitle","value":"Proporciona tu información."},{"key":"agent_chat.order_lookup.order_number_label","value":"Número de pedido"},{"key":"agent_chat.order_lookup.email_label","value":"Dirección de correo electrónico"},{"key":"agent_chat.order_lookup.submit","value":"Hacer seguimiento de mi pedido"},{"key":"agent_chat.order_lookup.cancel","value":"Cancelar"},{"key":"agent_chat.order_lookup.invalid_order_number","value":"Ingresa un número de pedido válido que solo contenga números y letras, sin espacios (por ejemplo, 1006)."},{"key":"agent_chat.order_lookup.invalid_order_number_whitespace","value":"Ingresa un número de pedido válido que solo contenga números y letras, sin espacios (por ejemplo, 1006)."},{"key":"agent_chat.order_lookup.invalid_email","value":"Ingresa una dirección de correo electrónico válida"},{"key":"agent_chat.order_lookup.generic_error","value":"Hubo un problema al buscar tu pedido. Vuelve a intentarlo."},{"key":"agent_chat.order_lookup.rate_limited_error","value":"Demasiados intentos. Vuelve a intentarlo más tarde."},{"key":"agent_chat.order_lookup.locked_composer_status","value":"La búsqueda de pedidos está en curso. Inicia una nueva conversación para preguntar sobre otra cosa."},{"key":"agent_chat.legacy_contact.form_title","value":"Antes de empezar"},{"key":"agent_chat.legacy_contact.form_subtitle","value":"Proporciona tus datos para que podamos responderte si abandonas el chat."},{"key":"agent_chat.legacy_contact.first_name_label","value":"Nombre"},{"key":"agent_chat.legacy_contact.last_name_label","value":"Apellido"},{"key":"agent_chat.legacy_contact.email_label","value":"Correo electrónico"},{"key":"agent_chat.legacy_contact.marketing_opt_in","value":"Enviarme noticias y ofertas por correo electrónico"},{"key":"agent_chat.legacy_contact.submit","value":"Iniciar chat"},{"key":"agent_chat.legacy_contact.cancel","value":"Cancelar"},{"key":"agent_chat.legacy_contact.invalid_first_name","value":"Ingresa un nombre válido."},{"key":"agent_chat.legacy_contact.invalid_last_name","value":"Ingresa un apellido válido."},{"key":"agent_chat.legacy_contact.invalid_email","value":"Ingresa una dirección de correo electrónico válida."},{"key":"agent_chat.legacy_contact.invalid_email_length","value":"La dirección de correo electrónico es demasiado larga."},{"key":"agent_chat.legacy_contact.generic_error","value":"Algo salió mal."},{"key":"agent_chat.legacy_contact.rate_limited_error","value":"Demasiados intentos. Vuelve a intentarlo más tarde."},{"key":"agent_chat.discountCard.useDiscount","value":"Usar descuento"},{"key":"agent_chat.discountCard.discountApplicationContext","value":"Se aplica automáticamente en el pago"},{"key":"agent_chat.cart.checkout","value":"Pago"},{"key":"agent_chat.product.add_to_cart","value":"Agregar al carrito"},{"key":"agent_chat.product.view_details","value":"Ver detalles"},{"key":"agent_chat.product.out_of_stock","value":"Agotado"},{"key":"agent_chat.product.compare_suggestions","value":"Comparar sugerencias"},{"key":"agent_chat.product.hide_suggestions","value":"Ocultar sugerencias"},{"key":"agent_chat.product.sold_out","value":"Agotado"},{"key":"agent_chat.order.item.one","value":"artículo"},{"key":"agent_chat.order.item.other","value":"artículos"},{"key":"agent_chat.order.item.many","value":"artículos"},{"key":"agent_chat.order.less_items.one","value":"- ocultar {{count}} artículo"},{"key":"agent_chat.order.less_items.other","value":"- ocultar {{count}} artículos"},{"key":"agent_chat.order.less_items.many","value":"- ocultar {{count}} artículos"},{"key":"agent_chat.order.more_items.one","value":"+ {{count}} artículo más"},{"key":"agent_chat.order.more_items.other","value":"+ {{count}} artículos más"},{"key":"agent_chat.order.more_items.many","value":"+ {{count}} artículos más"},{"key":"agent_chat.order.view_order","value":"Ver pedido {{orderId}}"},{"key":"agent_chat.order.track_shipment","value":"Hacer seguimiento del envío"},{"key":"agent_chat.order.of_total","value":"{{index}} de {{total}}"},{"key":"agent_chat.order.label","value":"Pedido {{number}}"},{"key":"agent_chat.order.count.one","value":"{{count}} pedido"},{"key":"agent_chat.order.count.other","value":"{{count}} pedidos"},{"key":"agent_chat.order.count.many","value":"{{count}} pedidos"},{"key":"agent_chat.order.ordered_on","value":"Pedido el {{date}}"},{"key":"agent_chat.order.select","value":"Seleccionar pedido {{number}}"},{"key":"agent_chat.return.heading","value":"Selecciona los artículos para devolver"},{"key":"agent_chat.return.toggle_item","value":"Seleccionar {{name}}"},{"key":"agent_chat.return.select_item_non_returnable","value":"{{name}}, no se puede devolver"},{"key":"agent_chat.return.quantity_label","value":"Cantidad a devolver"},{"key":"agent_chat.return.reason_label","value":"Motivo de la devolución"},{"key":"agent_chat.return.reason_placeholder","value":"Seleccionar un motivo"},{"key":"agent_chat.return.confirm","value":"Solicitar devolución"},{"key":"agent_chat.return.confirmed","value":"Devolución solicitada"},{"key":"agent_chat.return.reason.size_too_small","value":"Talla muy pequeña"},{"key":"agent_chat.return.reason.size_too_large","value":"Talla muy grande"},{"key":"agent_chat.return.reason.unwanted","value":"No deseado"},{"key":"agent_chat.return.reason.not_as_described","value":"No coincide con la descripción"},{"key":"agent_chat.return.reason.wrong_item","value":"Artículo incorrecto"},{"key":"agent_chat.return.reason.defective","value":"Defectuoso"},{"key":"agent_chat.return.reason.style","value":"Estilo"},{"key":"agent_chat.return.reason.color","value":"Color"},{"key":"agent_chat.return.reason.other_reason","value":"Otro"},{"key":"agent_chat.scroll.previous","value":"Anterior"},{"key":"agent_chat.scroll.next","value":"Siguiente"}]}</script>
<meta name="shopify-y" content="00000000-0000-0000-5000-000000000000" data-expiration="1824150404000"><meta name="shopify-s" content="00000000-0000-0000-5000-000000000000" data-expiration="1792594604000">
</head>
<body id="tipos-de-trufas-negras-y-blancas-temporada-y-usos" class="no-touchevents
template-article template-article
">
<script type="text/javascript">
if ( 'ontouchstart' in window || window.DocumentTouch && document instanceof DocumentTouch ) { document.querySelector('body').classList.remove('no-touchevents'); document.querySelector('body').classList.add('touchevents'); }
</script>
<a href="#main" class="visually-hidden skip-to-content" tabindex="0" data-js-inert>Ir al contenido</a>
<div id="screen-reader-info" aria-live="polite" class="visually-hidden"></div>
<header>
<link href="//www.terra-ross.es/cdn/shop/t/27/assets/section-header.css?v=38854884185764721981786777741" rel="stylesheet" type="text/css" media="all" />
<!-- BEGIN sections: header-group -->
<div id="shopify-section-sections--28394383573314__announcement" class="shopify-section shopify-section-group-header-group mount-announcement-bar"><script src="//www.terra-ross.es/cdn/shop/t/27/assets/section-announcement-bar.js?v=16459133832327406681786777739" defer></script><announcement-bar
id="announcement-sections--28394383573314__announcement"
style="display:block"
data-js-inert
data-autoplay="true"
data-autoplay-interval="6000"
>
<div class="container--large">
<div class="announcement-bar">
<div class="announcement-bar__social-icons lap-hide"></div>
<div class="announcement-bar__content"><button
class="announcement-bar__content-nav announcement-bar__content-nav--left announcement-bar__content-nav--disabled"
tabindex="0"
>
<span class="visually-hidden">Anterior</span><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></button><div class="announcement-bar__slider" data-js-slider><span class="announcement" ><a
href="/pages/b2b"
>¿NÚMERO DE IVA DE LA UE VÁLIDO? REGÍSTRATE AQUÍ PARA OBTENER PRECIOS UN 20 % MÁS BAJOS
</a></span><span class="announcement" ><a
href="/pages/need-delivery-see-estimates"
>Envío gratuito a la UE, Suiza y el Reino Unido para pedidos superiores a 149 €
</a></span></div><button class="announcement-bar__content-nav announcement-bar__content-nav--right" tabindex="0">
<span class="visually-hidden">Siguiente</span><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></button></div>
<div class="announcement-bar__localization-form lap-hide"><link href="//www.terra-ross.es/cdn/shop/t/27/assets/component-localization-form.css?v=123939860244224298581789063618" rel="stylesheet" type="text/css" media="all" />
<form method="post" action="/localization" id="localization_form-ancmt" accept-charset="UTF-8" class="localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses" /><localization-form class="localization-form__item">
<span class="visually-hidden" id="currency-heading-ancmt">País/región</span>
<input type="hidden" name="country_code" id="CurrencySelector-ancmt" value="ES" />
<button class="localization-form__item-button" data-js-localization-form-button aria-expanded="false" aria-controls="country-list-ancmt" data-location="ancmt">
<span class="localization-form__item-text">
<span class="localization-form__country">España</span><span class="localization-form__flag" style="
background-image: url(//cdn.shopify.com/static/images/flags/es.svg?width=20);
"></span><span class="localization-form__currency">EUR €</span>
</span>
<span class="localization-form__item-symbol" aria-hidden="true"><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></span>
</button>
<ul id="country-list-ancmt" class="localization-form__content" data-js-localization-form-content data-js-localization-form-insert-helper-content>
</ul>
</localization-form></form><script src="//www.terra-ross.es/cdn/shop/t/27/assets/component-localization-form.js?v=93090086328802551921786777722" defer></script></div>
</div>
</div>
</announcement-bar>
<style data-shopify>
#announcement-sections--28394383573314__announcement .announcement-bar, #announcement-sections--28394383573314__announcement .announcement-bar a, #announcement-sections--28394383573314__announcement .announcement-bar .localization-form__item-text {
color: #ffffff;
}
#announcement-sections--28394383573314__announcement .announcement-bar svg *, #announcement-sections--28394383573314__announcement .announcement-bar .localization-form__item-symbol * {
fill: #ffffff;
}#announcement-sections--28394383573314__announcement, #announcement-sections--28394383573314__announcement .announcement-bar__content-nav {
background: #0b0a0a;
}</style>
</div><div id="shopify-section-sections--28394383573314__marquee_NEje4h" class="shopify-section shopify-section-group-header-group mount-scrolling-text">
</div><div id="shopify-section-sections--28394383573314__header" class="shopify-section shopify-section-group-header-group site-header-container mount-header"><style data-shopify>
.header__top {
--header-logo: 70px;
}
@media screen and (max-width: 767px) {
.header__top {
--header-logo: 40px;
}
#logo-sticky .logo-img {
--header-logo: 40px
}
}
@media screen and (min-width: 1751px) {
.site-nav.style--classic .submenu.mega-menu {
width: 100vw;
max-width: 100%;
margin-inline-start: 0;
}
}
</style>
<main-header
id="site-header"
class="site-header "
data-js-inert
data-sticky-header
>
<div class="header-container header-container--top hide-border-on-portable ">
<div class="header__top container--large">
<!-- logo -->
<div id="logo" class="logo"><a class="logo-img logo-img--mobile" title="Terra Ross" href="/"><img
src="//www.terra-ross.es/cdn/shop/files/terra-ross-logo-mobile.fw.jpg?v=1766075497"
alt="Terra Ross"
width="600"
height="132"
style="width: 182px; object-fit:contain"
>
</a><a
class="logo-img logo-img--desk-only "
title="Terra Ross"
href="/"
style="height:var(--header-logo)"
><img
src="//www.terra-ross.es/cdn/shop/files/new-logo-1.png?v=1736001697"
alt="Terra Ross"
width="600"
height="200"
style="width: 210px; object-fit:contain"
>
</a>
</div>
<!-- header blocks -->
<div class="header-actions header-actions--buttons header-actions--show-search portable-hide"><search-form style="position:relative">
<div class="button button--outline button--icon button--outline-hover button--no-padding button--no-hover site-search-handle">
<span class="button__icon" role="img" aria-hidden="true"><svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="10.5" cy="10.5" r="7.5" stroke="black" stroke-width="2" style="fill:none!important"/><path d="M17.1213 15.2929L16.4142 14.5858L15 16L15.7071 16.7071L17.1213 15.2929ZM19.2426 20.2426C19.6331 20.6332 20.2663 20.6332 20.6568 20.2426C21.0473 19.8521 21.0473 19.219 20.6568 18.8284L19.2426 20.2426ZM15.7071 16.7071L19.2426 20.2426L20.6568 18.8284L17.1213 15.2929L15.7071 16.7071Z" fill="black" style="stroke:none!important"/></svg></span>
<form action="/search" method="get" role="search" autocomplete="off">
<input
name="q"
type="search"
autocomplete="off"
placeholder="Buscar por..."
aria-label="Buscar por..."
data-js-search-input
data-js-focus-overlay="search-results-overlay-desktop"
>
<button type="submit" style="display:none">Buscar</button>
</form>
</div>
<div
class="search-results-overlay"
id="search-results-overlay-desktop"
onclick="this.classList.remove('active')"
style="display:none"
></div>
<div class="search-results-container" data-js-search-results></div>
</search-form><span class="button button--outline button--icon button--account-handle">
<shopify-store store-domain="https://www.terra-ross.es" country="ES" language="es"></shopify-store>
<shopify-account menu="customer-account-main-menu">
<div slot="signed-out-avatar">
Mi cuenta
<span class="button__icon" role="img" aria-hidden="true"><svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18.3333 19.25V17.4167C18.3333 16.4442 17.947 15.5116 17.2593 14.8239C16.5717 14.1363 15.6391 13.75 14.6666 13.75H7.33329C6.36083 13.75 5.4282 14.1363 4.74057 14.8239C4.05293 15.5116 3.66663 16.4442 3.66663 17.4167V19.25" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="fill:none!important"/><path d="M11 10.0833C13.0251 10.0833 14.6667 8.44171 14.6667 6.41667C14.6667 4.39162 13.0251 2.75 11 2.75C8.975 2.75 7.33337 4.39162 7.33337 6.41667C7.33337 8.44171 8.975 10.0833 11 10.0833Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="fill:none!important"/></svg></span>
</div>
</shopify-account>
</span><a
class="button button--solid button--icon no-js-hidden button--cart-handle"
data-js-sidebar-handle aria-expanded="false" aria-controls="site-cart-sidebar" role="button"
title="Abrir carrito"
tabindex="0"
>
<span class="visually-hidden">Abrir carrito</span>
<span class="button__icon" role="img" aria-hidden="true"><svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" style="margin-left:-2px"><path class="circle" d="M9.5 20C9.77614 20 10 19.7761 10 19.5C10 19.2239 9.77614 19 9.5 19C9.22386 19 9 19.2239 9 19.5C9 19.7761 9.22386 20 9.5 20Z" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path class="circle" d="M18.5 20C18.7761 20 19 19.7761 19 19.5C19 19.2239 18.7761 19 18.5 19C18.2239 19 18 19.2239 18 19.5C18 19.7761 18.2239 20 18.5 20Z" fill="white" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path d="M3 3H6.27273L8.46545 13.7117C8.54027 14.08 8.7452 14.4109 9.04436 14.6464C9.34351 14.8818 9.71784 15.0069 10.1018 14.9997H18.0545C18.4385 15.0069 18.8129 14.8818 19.112 14.6464C19.4112 14.4109 19.6161 14.08 19.6909 13.7117L21 6.9999H7.09091" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="fill:none !important"/></svg></span>
<span class="visually-hidden">Carrito
Total:</span
>
<span data-header-cart-total>€0,00</span>
<span data-header-cart-count class="element--wrap-paranth" aria-hidden="true">0</span>
<span class="visually-hidden"> productos en tu carrito</span>
</a>
<noscript>
<a
class="button button--solid button--icon button--regular data-js-hidden"
href="/cart"
tabindex="0"
>
<span class="button__icon" role="img" aria-hidden="true"><svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" style="margin-left:-2px"><path class="circle" d="M9.5 20C9.77614 20 10 19.7761 10 19.5C10 19.2239 9.77614 19 9.5 19C9.22386 19 9 19.2239 9 19.5C9 19.7761 9.22386 20 9.5 20Z" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path class="circle" d="M18.5 20C18.7761 20 19 19.7761 19 19.5C19 19.2239 18.7761 19 18.5 19C18.2239 19 18 19.2239 18 19.5C18 19.7761 18.2239 20 18.5 20Z" fill="white" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path d="M3 3H6.27273L8.46545 13.7117C8.54027 14.08 8.7452 14.4109 9.04436 14.6464C9.34351 14.8818 9.71784 15.0069 10.1018 14.9997H18.0545C18.4385 15.0069 18.8129 14.8818 19.112 14.6464C19.4112 14.4109 19.6161 14.08 19.6909 13.7117L21 6.9999H7.09091" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="fill:none !important"/></svg></span>
<span data-header-cart-total aria-hidden="true">€0,00</span
> (<span data-header-cart-count aria-hidden="true">0</span>)
</a>
</noscript>
</div>
<div class="mobile-header-left hide portable-show">
<button
data-js-sidebar-handle
class="mobile-menu-button"
aria-expanded="false"
aria-controls="site-menu-sidebar"
>
<span class="visually-hidden">Abrir menú</span><svg fill="none" height="16" viewBox="0 0 20 16" width="20" xmlns="http://www.w3.org/2000/svg"><g fill="#000"><path d="m0 0h20v2h-20z"/><path d="m0 7h20v2h-20z"/><path d="m0 14h20v2h-20z"/></g></svg></button>
<button
type="button"
class="mobile-search-button"
data-header-mobile-search-toggle
aria-expanded="false"
aria-controls="header-mobile-search"
>
<span class="visually-hidden">Abrir búsqueda</span><svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="10.5" cy="10.5" r="7.5" stroke="black" stroke-width="2" style="fill:none!important"/><path d="M17.1213 15.2929L16.4142 14.5858L15 16L15.7071 16.7071L17.1213 15.2929ZM19.2426 20.2426C19.6331 20.6332 20.2663 20.6332 20.6568 20.2426C21.0473 19.8521 21.0473 19.219 20.6568 18.8284L19.2426 20.2426ZM15.7071 16.7071L19.2426 20.2426L20.6568 18.8284L17.1213 15.2929L15.7071 16.7071Z" fill="black" style="stroke:none!important"/></svg></button>
</div>
<div class="mobile-header-actions hide portable-show"><span class="mobile-account-button">
<shopify-account menu="customer-account-main-menu">
<div slot="signed-out-avatar">
<span class="button__icon" role="img" aria-hidden="true"><svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18.3333 19.25V17.4167C18.3333 16.4442 17.947 15.5116 17.2593 14.8239C16.5717 14.1363 15.6391 13.75 14.6666 13.75H7.33329C6.36083 13.75 5.4282 14.1363 4.74057 14.8239C4.05293 15.5116 3.66663 16.4442 3.66663 17.4167V19.25" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="fill:none!important"/><path d="M11 10.0833C13.0251 10.0833 14.6667 8.44171 14.6667 6.41667C14.6667 4.39162 13.0251 2.75 11 2.75C8.975 2.75 7.33337 4.39162 7.33337 6.41667C7.33337 8.44171 8.975 10.0833 11 10.0833Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="fill:none!important"/></svg></span>
</div>
</shopify-account>
</span><a
data-js-sidebar-handle aria-expanded="false" aria-controls="site-cart-sidebar" role="button"
class="mobile-cart-button"
title="Abrir carrito"
tabindex="0"
>
<span class="visually-hidden">Abrir carrito</span><svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" style="margin-left:-2px"><path class="circle" d="M9.5 20C9.77614 20 10 19.7761 10 19.5C10 19.2239 9.77614 19 9.5 19C9.22386 19 9 19.2239 9 19.5C9 19.7761 9.22386 20 9.5 20Z" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path class="circle" d="M18.5 20C18.7761 20 19 19.7761 19 19.5C19 19.2239 18.7761 19 18.5 19C18.2239 19 18 19.2239 18 19.5C18 19.7761 18.2239 20 18.5 20Z" fill="white" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path d="M3 3H6.27273L8.46545 13.7117C8.54027 14.08 8.7452 14.4109 9.04436 14.6464C9.34351 14.8818 9.71784 15.0069 10.1018 14.9997H18.0545C18.4385 15.0069 18.8129 14.8818 19.112 14.6464C19.4112 14.4109 19.6161 14.08 19.6909 13.7117L21 6.9999H7.09091" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="fill:none !important"/></svg><span data-header-cart-count aria-hidden="true">0</span>
</a>
</div>
</div>
</div>
<!-- header menu --><div
class="
header-container header-container--bottom
portable-hide
"
>
<div class="header__bottom container--large">
<span class="scrollable-navigation-button scrollable-navigation-button--left" aria-hidden="true"><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></span>
<scrollable-navigation class="header-links"><div class="site-nav style--classic">
<div class="site-nav-container">
<nav><ul class="link-list"><li
class="has-submenu"
id="menu-item-fresh-truffles-classic"
>
<a
class="menu-link "
href="/collections/fresh-truffles-in-season"
aria-controls="SiteNavLabel-fresh-truffles-classic" aria-expanded="false" aria-haspopup="true"
>
<span><span class="text-animation--underline-in-header">Trufas frescas</span></span>
<span class="icon"><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></span>
</a>
<ul
class="submenu normal-menu "
id="SiteNavLabel-fresh-truffles-classic"
>
<div class="submenu-holder "><li
><a class="menu-link no-focus-link "
href="/collections/fresh-truffles-in-season"
>
<span><span class="text-animation--underline-in-header">Actualmente en temporada</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/seasonal-truffles-online"
>
<span><span class="text-animation--underline-in-header">Todas las especies de trufa fresca</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/tuber-magnatum-white-truffles"
>
<span><span class="text-animation--underline-in-header">Trufa blanca | Tuber magnatum</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/spring-white-truffle-tuber-borchii"
>
<span><span class="text-animation--underline-in-header">Trufa bianchetto | Tuber borchii</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/terra-ross-black-diamond-truffle-tuber-melanosporum"
>
<span><span class="text-animation--underline-in-header">Trufa negra | Tuber melanosporum</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/burgundy-truffle-tuber-uncinatum-collection"
>
<span><span class="text-animation--underline-in-header">Trufa de otoño | Tuber uncinatum</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/tuber-aestivum-black-summer-truffle"
>
<span><span class="text-animation--underline-in-header">Trufa de verano | Tuber aestivum</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/winter-truffle-tuber-brumale"
>
<span><span class="text-animation--underline-in-header">Trufa negra de invierno | Tuber brumale</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/tuber-macrosporum-garlic-truffle"
>
<span><span class="text-animation--underline-in-header">Trufa negra lisa | Tuber macrosporum</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/bagnoli-truffle-tuber-mesentericum-powerful-phenolic-aroma"
>
<span><span class="text-animation--underline-in-header">Trufa de Bagnoli | Tuber mesentericum</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/chinese-black-truffles-tuber-indicum"
>
<span><span class="text-animation--underline-in-header">Trufa negra china | Tuber indicum</span></span></a></li></div>
</ul>
</li><li
id="menu-item-frozen-truffles-classic"
>
<a
class="menu-link no-focus-link "
href="/collections/frozen-truffles"
>
<span><span class="text-animation--underline-in-header">Trufas congeladas</span></span>
</a>
</li><li
class="has-submenu"
id="menu-item-truffle-products-classic"
>
<a
class="menu-link "
href="/collections/exquisite-truffle-products-online"
aria-controls="SiteNavLabel-truffle-products-classic" aria-expanded="false" aria-haspopup="true"
>
<span><span class="text-animation--underline-in-header">Productos de trufa</span></span>
<span class="icon"><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></span>
</a>
<ul
class="submenu normal-menu "
id="SiteNavLabel-truffle-products-classic"
>
<div class="submenu-holder "><li
><a class="menu-link no-focus-link "
href="/collections/exquisite-truffle-products-online"
>
<span><span class="text-animation--underline-in-header">Todos los productos de trufa</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/dried-truffle-delights"
>
<span><span class="text-animation--underline-in-header">Trufas y hongos secos</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/gourmet-truffle-gift-sets"
>
<span><span class="text-animation--underline-in-header">Regalos de Trufa y Tarjetas de Regalo</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/products/truffle-gift-card"
>
<span><span class="text-animation--underline-in-header">Tarjeta regalo para trufas</span></span></a></li></div>
</ul>
</li><li
id="menu-item-wholesale-classic"
>
<a
class="menu-link no-focus-link "
href="/collections/premium-truffle-products-for-restaurants-b2b-clients"
>
<span><span class="text-animation--underline-in-header">Venta al por mayor</span></span>
</a>
</li><li
id="menu-item-dog-training-classic"
>
<a
class="menu-link no-focus-link "
href="/collections/truffle-hunting-dog-training"
>
<span><span class="text-animation--underline-in-header">Entrenamiento de perros</span></span>
</a>
</li><li
class="has-submenu"
id="menu-item-knowledge-center-classic"
>
<a
class="menu-link active "
href="/blogs/truffle-guides"
aria-controls="SiteNavLabel-knowledge-center-classic" aria-expanded="false" aria-haspopup="true"
>
<span><span class="text-animation--underline-in-header">Centro de Conocimiento</span></span>
<span class="icon"><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></span>
</a>
<ul
class="submenu normal-menu "
id="SiteNavLabel-knowledge-center-classic"
>
<div class="submenu-holder "><li
><a class="menu-link active no-focus-link "
href="/blogs/truffle-guides"
>
<span><span class="text-animation--underline-in-header">Guías de Trufas</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/blogs/buying-guides"
>
<span><span class="text-animation--underline-in-header">Guías de compra</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/blogs/storage-guides"
>
<span><span class="text-animation--underline-in-header">Guías de almacenamiento</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/blogs/recipes"
>
<span><span class="text-animation--underline-in-header">Recetas</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/blogs/market-guides"
>
<span><span class="text-animation--underline-in-header">Guías de mercado</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/blogs/food-manufacturing-guides"
>
<span><span class="text-animation--underline-in-header">Guías de fabricación de alimentos</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/blogs/dog-training"
>
<span><span class="text-animation--underline-in-header">Guías de entrenamiento para perros</span></span></a></li></div>
</ul>
</li><!---->
</ul></nav>
</div>
</div></scrollable-navigation>
<span class="scrollable-navigation-button scrollable-navigation-button--right" aria-hidden="true"><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></span>
<div class="header-actions header-actions--blocks" data-js-header-actions>
<a href="/pages/b2b" target="_self" id="site-header-block-1" class="header-info-block"
data-type="info"><div class="header-info-block__image"><img src="//www.terra-ross.es/cdn/shop/files/purchase-order-256.webp?crop=center&height=76&v=1786874043&width=76" width="256" height="256" style="width:38px;height:38px" alt="Una ilustración vectorial minimalista en blanco y negro de una lista de verificación, con cinco barras horizontales con extremos rectangulares redondeados y dos pequeñas marcas de verificación ovaladas en cada barra, sobre un fondo blanco sólido."></div><div class="header-info-block__text"><span class="header-info-block__caption text-size--xsmall">¿Empresa?</span><span class="header-info-block__title">
<span class="text-animation--underline-in-header" >B2B y venta mayorista</span>
</span></div></a>
<a href="/pages/faqs" target="_self" id="site-header-block-2" class="header-info-block"
data-type="info"><div class="header-info-block__image"><img src="//www.terra-ross.es/cdn/shop/files/support-256.png?crop=center&height=76&v=1737989943&width=76" width="256" height="256" style="width:38px;height:38px" alt="mostrando la imagen del ícono «¿Tienes alguna pregunta?»"></div><div class="header-info-block__text"><span class="header-info-block__caption text-size--xsmall">Preguntas frecuentes</span><span class="header-info-block__title">
<span class="text-animation--underline-in-header" >¿Ayuda?</span>
</span></div></a>
</div>
</div>
</div>
<!-- header mobile search --><div
id="header-mobile-search"
class="
header-container header--container--bottom container--large mobile-search
mobile-search--compact hide
"
data-header-mobile-search-panel
>
<search-form style="position:relative">
<div class="button button--outline button--icon button--outline-hover button--no-padding button--no-hover site-search-handle">
<form action="/search" method="get" role="search" autocomplete="off">
<input
name="q"
type="search"
autocomplete="off"
placeholder="Buscar por..."
aria-label="Buscar por..."
data-js-search-input
data-js-focus-overlay="search-results-overlay-mobile"
>
<button type="submit" style="display:none">Buscar</button>
</form>
</div>
<div
id="search-results-overlay-mobile"
class="search-results-overlay"
onclick="this.classList.remove('active')"
style="display:none"
></div>
<div class="search-results-container" data-js-search-results></div>
</search-form>
</div></main-header>
<sidebar-drawer
id="site-menu-sidebar"
class="sidebar sidebar--left"
tabindex="-1"
role="dialog"
aria-modal="true"
aria-hidden="true"
style="display:none"
>
<div class="sidebar__header">
<span class="sidebar__title h5">
Menú
</span>
<button class="sidebar__close" data-js-close>
<span class="visually-hidden">Cerrar barra lateral</span>
<span aria-hidden="true"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17 1L1 17" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M1 1L17 17" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></span>
</button>
</div>
<div class="sidebar__body">
<mobile-navigation data-show-header-actions="true"><div class="site-nav style--sidebar">
<div class="site-nav-container">
<nav><ul class="link-list"><li
class="has-submenu"
id="menu-item-fresh-truffles-sidebar"
>
<a
class="menu-link "
href="/collections/fresh-truffles-in-season"
aria-controls="SiteNavLabel-fresh-truffles-sidebar" aria-expanded="false" aria-haspopup="true"
>
<span><span class="">Trufas frescas</span></span>
<span class="icon"><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></span>
</a>
<ul
class="submenu normal-menu "
id="SiteNavLabel-fresh-truffles-sidebar"
>
<div class="submenu-holder "><li class="submenu-back">
<button type="button">
<span class="icon" aria-hidden="true"><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></span>
Volver
</button>
</li><li
><a class="menu-link no-focus-link "
href="/collections/fresh-truffles-in-season"
>
<span><span class="">Actualmente en temporada</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/seasonal-truffles-online"
>
<span><span class="">Todas las especies de trufa fresca</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/tuber-magnatum-white-truffles"
>
<span><span class="">Trufa blanca | Tuber magnatum</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/spring-white-truffle-tuber-borchii"
>
<span><span class="">Trufa bianchetto | Tuber borchii</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/terra-ross-black-diamond-truffle-tuber-melanosporum"
>
<span><span class="">Trufa negra | Tuber melanosporum</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/burgundy-truffle-tuber-uncinatum-collection"
>
<span><span class="">Trufa de otoño | Tuber uncinatum</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/tuber-aestivum-black-summer-truffle"
>
<span><span class="">Trufa de verano | Tuber aestivum</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/winter-truffle-tuber-brumale"
>
<span><span class="">Trufa negra de invierno | Tuber brumale</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/tuber-macrosporum-garlic-truffle"
>
<span><span class="">Trufa negra lisa | Tuber macrosporum</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/bagnoli-truffle-tuber-mesentericum-powerful-phenolic-aroma"
>
<span><span class="">Trufa de Bagnoli | Tuber mesentericum</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/chinese-black-truffles-tuber-indicum"
>
<span><span class="">Trufa negra china | Tuber indicum</span></span></a></li></div>
</ul>
</li><li
id="menu-item-frozen-truffles-sidebar"
>
<a
class="menu-link no-focus-link "
href="/collections/frozen-truffles"
>
<span><span class="">Trufas congeladas</span></span>
</a>
</li><li
class="has-submenu"
id="menu-item-truffle-products-sidebar"
>
<a
class="menu-link "
href="/collections/exquisite-truffle-products-online"
aria-controls="SiteNavLabel-truffle-products-sidebar" aria-expanded="false" aria-haspopup="true"
>
<span><span class="">Productos de trufa</span></span>
<span class="icon"><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></span>
</a>
<ul
class="submenu normal-menu "
id="SiteNavLabel-truffle-products-sidebar"
>
<div class="submenu-holder "><li class="submenu-back">
<button type="button">
<span class="icon" aria-hidden="true"><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></span>
Volver
</button>
</li><li
><a class="menu-link no-focus-link "
href="/collections/exquisite-truffle-products-online"
>
<span><span class="">Todos los productos de trufa</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/dried-truffle-delights"
>
<span><span class="">Trufas y hongos secos</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/collections/gourmet-truffle-gift-sets"
>
<span><span class="">Regalos de Trufa y Tarjetas de Regalo</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/products/truffle-gift-card"
>
<span><span class="">Tarjeta regalo para trufas</span></span></a></li></div>
</ul>
</li><li
id="menu-item-wholesale-sidebar"
>
<a
class="menu-link no-focus-link "
href="/collections/premium-truffle-products-for-restaurants-b2b-clients"
>
<span><span class="">Venta al por mayor</span></span>
</a>
</li><li
id="menu-item-dog-training-sidebar"
>
<a
class="menu-link no-focus-link "
href="/collections/truffle-hunting-dog-training"
>
<span><span class="">Entrenamiento de perros</span></span>
</a>
</li><li
class="has-submenu"
id="menu-item-knowledge-center-sidebar"
>
<a
class="menu-link active "
href="/blogs/truffle-guides"
aria-controls="SiteNavLabel-knowledge-center-sidebar" aria-expanded="false" aria-haspopup="true"
>
<span><span class="">Centro de Conocimiento</span></span>
<span class="icon"><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></span>
</a>
<ul
class="submenu normal-menu "
id="SiteNavLabel-knowledge-center-sidebar"
>
<div class="submenu-holder "><li class="submenu-back">
<button type="button">
<span class="icon" aria-hidden="true"><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></span>
Volver
</button>
</li><li
><a class="menu-link active no-focus-link "
href="/blogs/truffle-guides"
>
<span><span class="">Guías de Trufas</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/blogs/buying-guides"
>
<span><span class="">Guías de compra</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/blogs/storage-guides"
>
<span><span class="">Guías de almacenamiento</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/blogs/recipes"
>
<span><span class="">Recetas</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/blogs/market-guides"
>
<span><span class="">Guías de mercado</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/blogs/food-manufacturing-guides"
>
<span><span class="">Guías de fabricación de alimentos</span></span></a></li><li
><a class="menu-link no-focus-link "
href="/blogs/dog-training"
>
<span><span class="">Guías de entrenamiento para perros</span></span></a></li></div>
</ul>
</li><!--<li id="menu-item-account">
<a class="menu-link" href="https://www.terra-ross.es/customer_authentication/redirect?locale=es®ion_country=ES" title="Mi cuenta">
<span style="display: inline-flex; align-items: center;">
<span aria-hidden="true" style="display:flex; margin-inline-end:6px;"><svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18.3333 19.25V17.4167C18.3333 16.4442 17.947 15.5116 17.2593 14.8239C16.5717 14.1363 15.6391 13.75 14.6666 13.75H7.33329C6.36083 13.75 5.4282 14.1363 4.74057 14.8239C4.05293 15.5116 3.66663 16.4442 3.66663 17.4167V19.25" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="fill:none!important"/><path d="M11 10.0833C13.0251 10.0833 14.6667 8.44171 14.6667 6.41667C14.6667 4.39162 13.0251 2.75 11 2.75C8.975 2.75 7.33337 4.39162 7.33337 6.41667C7.33337 8.44171 8.975 10.0833 11 10.0833Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="fill:none!important"/></svg></span>
Mi cuenta
</span>
</a>
</li>-->
</ul></nav>
</div>
</div></mobile-navigation>
</div>
<div class="sidebar__footer site-menu-sidebar-footer"><link href="//www.terra-ross.es/cdn/shop/t/27/assets/component-localization-form.css?v=123939860244224298581789063618" rel="stylesheet" type="text/css" media="all" />
<form method="post" action="/localization" id="localization_form-header" accept-charset="UTF-8" class="localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses" /><localization-form class="localization-form__item">
<span class="visually-hidden" id="currency-heading-header">País/región</span>
<input type="hidden" name="country_code" id="CurrencySelector-header" value="ES" />
<button class="localization-form__item-button" data-js-localization-form-button aria-expanded="false" aria-controls="country-list-header" data-location="header">
<span class="localization-form__item-text">
<span class="localization-form__country">España</span><span class="localization-form__flag" style="
background-image: url(//cdn.shopify.com/static/images/flags/es.svg?width=20);
"></span><span class="localization-form__currency">EUR €</span>
</span>
<span class="localization-form__item-symbol" aria-hidden="true"><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></span>
</button>
<ul id="country-list-header" class="localization-form__content" data-js-localization-form-content data-js-localization-form-insert-helper-content>
</ul>
</localization-form></form><script src="//www.terra-ross.es/cdn/shop/t/27/assets/component-localization-form.js?v=93090086328802551921786777722" defer></script></div>
<link
rel="stylesheet"
href="//www.terra-ross.es/cdn/shop/t/27/assets/component-mobile-navigation.css?v=156292183670265648561789060149"
media="print"
onload="this.media='all'"
>
</sidebar-drawer>
<style> #shopify-section-sections--28394383573314__header h2 {font-size: 28px;} #shopify-section-sections--28394383573314__header h3 {font-size: 24px;} #shopify-section-sections--28394383573314__header h4 {font-size: 20px;} #shopify-section-sections--28394383573314__header h5 {font-size: 18px;} </style></div>
<!-- END sections: header-group --></header>
<link href="//www.terra-ross.es/cdn/shop/t/27/assets/component-slider.css?v=20392564870709467991789102548" rel="stylesheet" type="text/css" media="all" />
<link href="//www.terra-ross.es/cdn/shop/t/27/assets/component-video.css?v=61547995474515706101786777737" rel="stylesheet" type="text/css" media="all" />
<script src="//www.terra-ross.es/cdn/shop/t/27/assets/component-product-form.js?v=118387121960085889251786777726" defer></script>
<main id="main" class="main-content
main-content--align-product-items
"><div class="breadcrumb-main ">
<div class="breadcrumb-container">
<link href="//www.terra-ross.es/cdn/shop/t/27/assets/component-breadcrumb.css?v=111254562021816194791786777715" rel="stylesheet" type="text/css" media="all" />
<nav class="breadcrumb" role="navigation" aria-label="breadcrumbs">
<span class="breadcrumb__link"><a href="/">Página de inicio</a></span><span class="breadcrumb__separator">/</span><span class="breadcrumb__link"><a href="/blogs/truffle-guides">Guías de Trufas</a></span><span class="breadcrumb__separator">/</span>
<span class="breadcrumb__current">Tipos de trufas blancas y negras: sabor, temporada y usos</span></nav>
</div>
</div><div id="shopify-section-template--28394380820802__main-article" class="shopify-section article"><link href="//www.terra-ross.es/cdn/shop/t/27/assets/section-main-article.css?v=30226787609489779941789388094" rel="stylesheet" type="text/css" media="all" />
<link href="//www.terra-ross.es/cdn/shop/t/27/assets/component-blog-item.css?v=165969672717598901641786777715" rel="stylesheet" type="text/css" media="all" />
<div
class="container--large container--vertical-space-small container--no-margin-if-not-first"
>
<div class="article"><div class="article__featured-image element--border-radius"><figure
class="lazy-image
"
data-ratio="1.5" style="padding-top: 66.66666666666667%"
data-crop="false"
>
<img
src="//www.terra-ross.es/cdn/shop/articles/black-and-white-truffles-1_23fc89c1-f5d1-415c-b6b7-58b930c51e12.webp?v=1790063019&width=480" alt="Tipos de trufas blancas y negras: sabor, temporada y usos"
srcset="//www.terra-ross.es/cdn/shop/articles/black-and-white-truffles-1_23fc89c1-f5d1-415c-b6b7-58b930c51e12.webp?crop=center&height=160&v=1790063019&width=240 240w,//www.terra-ross.es/cdn/shop/articles/black-and-white-truffles-1_23fc89c1-f5d1-415c-b6b7-58b930c51e12.webp?crop=center&height=240&v=1790063019&width=360 360w,//www.terra-ross.es/cdn/shop/articles/black-and-white-truffles-1_23fc89c1-f5d1-415c-b6b7-58b930c51e12.webp?crop=center&height=280&v=1790063019&width=420 420w,//www.terra-ross.es/cdn/shop/articles/black-and-white-truffles-1_23fc89c1-f5d1-415c-b6b7-58b930c51e12.webp?crop=center&height=320&v=1790063019&width=480 480w,//www.terra-ross.es/cdn/shop/articles/black-and-white-truffles-1_23fc89c1-f5d1-415c-b6b7-58b930c51e12.webp?crop=center&height=427&v=1790063019&width=640 640w,//www.terra-ross.es/cdn/shop/articles/black-and-white-truffles-1_23fc89c1-f5d1-415c-b6b7-58b930c51e12.webp?crop=center&height=453&v=1790063019&width=680 680w,//www.terra-ross.es/cdn/shop/articles/black-and-white-truffles-1_23fc89c1-f5d1-415c-b6b7-58b930c51e12.webp?crop=center&height=480&v=1790063019&width=720 720w,//www.terra-ross.es/cdn/shop/articles/black-and-white-truffles-1_23fc89c1-f5d1-415c-b6b7-58b930c51e12.webp?crop=center&height=560&v=1790063019&width=840 840w,//www.terra-ross.es/cdn/shop/articles/black-and-white-truffles-1_23fc89c1-f5d1-415c-b6b7-58b930c51e12.webp?crop=center&height=720&v=1790063019&width=1080 1080w,//www.terra-ross.es/cdn/shop/articles/black-and-white-truffles-1_23fc89c1-f5d1-415c-b6b7-58b930c51e12.webp?crop=center&height=853&v=1790063019&width=1280 1280w"
class="img"
width="1536"
height="1024"
data-ratio="1.5"
sizes="(max-width: 1750px) calc(100vw - 20px), 1650px"
fetchpriority="high"
style="
opacity: 1;
transition: none;
"
onload="this.parentNode.classList.add('lazyloaded')"
/>
</figure>
</div>
</div>
</div><div class="container container--medium container--vertical-space-xsmall main-page" >
<header>
<div class="rte article">
<h1 class="h2">Tipos de trufas blancas y negras: sabor, temporada y usos</h1>
<div class="blog-item__meta"><span class="blog-item__date text-size--small">26 de junio de 2026</span><span class="blog-item__author text-size--small">Rostislav Savov</span><span class="blog-item__date text-size--small">0 comentarios</span></div>
</div>
</header>
</div><div class="container container--medium container--vertical-space-xsmall main-page" >
<div class="article "><div class="article__content rte">
<p class="article-updated"><strong>Última actualización:</strong> 11 de julio de 2026</p>
<section id="quick-answer">
<h2>Respuesta rápida</h2>
<p>Las trufas negras y blancas son grupos comerciales amplios definidos por el color, no nombres científicos precisos de especies. Las trufas blancas pueden incluir <em>Tuber magnatum</em> y <em>Tuber borchii</em>. Las trufas negras pueden incluir <em>Tuber melanosporum</em>, <em>Tuber aestivum</em>, <em>Tuber uncinatum</em>, <em>Tuber brumale</em>, <em>Tuber macrosporum</em> y <em>Tuber mesentericum</em>. Cada una tiene su propia temporada, aroma, uso y valor.</p>
<p>Por lo general, las trufas blancas se laminan sobre platos calientes ya terminados, mientras que varias especies negras toleran un calentamiento suave. La denominación científica exacta, la madurez y la frescura importan más que el color por sí solo, y no debe esperarse que dos ejemplares se comporten de forma idéntica.</p>
</section>
<section id="black-and-white-meaning">
<h2>¿Qué significan las trufas negras y blancas?</h2>
<p>La terminología del color es útil comercialmente porque ofrece a los compradores una orientación rápida, pero no basta para la identificación. Dos trufas pálidas pueden pertenecer a especies diferentes, aparecer en temporadas distintas y ofrecer aromas diferentes. Lo mismo ocurre con las trufas oscuras.</p>
<p><em>Tuber magnatum</em> y <em>Tuber borchii</em> son especies blancas distintas. <em>Tuber melanosporum</em>, <em>Tuber brumale</em>, <em>Tuber aestivum</em> y <em>Tuber indicum</em> son especies oscuras o categorías comerciales distintas. El color exterior por sí solo no permite autenticar ninguna de ellas. Por ello, la denominación comercial transparente debe ir acompañada del nombre científico, especialmente en compras de productos de alto valor, descripciones de menús y producción alimentaria.</p>
<p>Para conocer la biología del crecimiento subterráneo y la simbiosis, consulta <a href="/blogs/truffle-guides/truffle-guide-what-they-are-and-how-they-grow">Guía de la trufa: qué son y cómo crecen</a>. Esta página se centra en la comparación culinaria.</p>
</section>
<section id="main-species">
<h2>Principales especies de trufas negras y blancas</h2>
<div class="table-scroll" role="region" tabindex="0"><table>
<caption>Principales especies de trufas negras y blancas, temporadas, aromas y usos culinarios</caption><thead>
<tr>
<th scope="col">Grupo de color</th>
<th scope="col">Nombre común</th>
<th scope="col">Nombre científico</th>
<th scope="col">Temporada general</th>
<th scope="col">Carácter aromático general</th>
<th scope="col">Mejor uso culinario</th>
</tr>
</thead>
<tbody>
<tr>
<td>Blanca</td>
<th scope="row">Trufa blanca o blanca de Alba</th>
<td><em>Tuber magnatum</em></td>
<td>Principalmente desde el otoño hasta principios del invierno</td>
<td>Potencialmente intensa, con matices de azufre, ajo, miel, queso, tierra y fermentación</td>
<td>Laminada sobre pasta caliente ya terminada, risotto, huevos, patatas o queso suave</td>
</tr>
<tr>
<td>Blanca</td>
<th scope="row">Trufa blanca de primavera o bianchetto</th>
<td><em>Tuber borchii</em></td>
<td>Principalmente desde el invierno hasta la primavera</td>
<td>Ajo, tierra, queso y, en ocasiones, notas aromáticas penetrantes</td>
<td>Pasta, huevos, salsas, mantequilla y preparaciones cocinadas adecuadas</td>
</tr>
<tr>
<td>Negra</td>
<th scope="row">Trufa negra o del Périgord</th>
<td><em>Tuber melanosporum</em></td>
<td>Principalmente en invierno</td>
<td>Posibles notas complejas terrosas, de suelo forestal, parecidas al cacao, de frutos secos y sabrosas</td>
<td>En láminas, mantequilla, salsas, rellenos, pasta, huevos, aves y carne</td>
</tr>
<tr>
<td>Negra</td>
<th scope="row">Trufa de verano</th>
<td><em>Tuber aestivum</em></td>
<td>Principalmente desde finales de primavera hasta el verano o principios de otoño</td>
<td>Generalmente suave, con notas de frutos secos, terrosas y delicadamente sabrosas</td>
<td>Pasta, huevos, patatas, pizza, ensaladas y salsas ligeras</td>
</tr>
<tr>
<td>Negra</td>
<th scope="row">Trufa de Borgoña o de otoño</th>
<td>
<em>Tuber aestivum</em> / <em>Tuber uncinatum</em> en el uso comercial</td>
<td>Principalmente en otoño</td>
<td>A menudo más desarrollada que la producción de principios de verano, pero variable</td>
<td>Pasta otoñal, huevos, mantequilla, queso suave y menús de restaurante</td>
</tr>
<tr>
<td>Negra</td>
<th scope="row">Trufa negra de invierno</th>
<td><em>Tuber brumale</em></td>
<td>Principalmente en invierno</td>
<td>Posibles notas terrosas, almizcladas y fermentadas</td>
<td>Cocción, salsas, mantequilla y formatos procesados adecuados</td>
</tr>
<tr>
<td>Negra</td>
<th scope="row">Trufa negra lisa</th>
<td><em>Tuber macrosporum</em></td>
<td>Principalmente en otoño</td>
<td>Carácter pronunciado de ajo y compuestos relacionados con el azufre en algunos ejemplares</td>
<td>Platos de temporada especializados adecuados para su aroma intenso</td>
</tr>
<tr>
<td>Negra</td>
<th scope="row">Trufa de Bagnoli</th>
<td><em>Tuber mesentericum</em></td>
<td>Principalmente de otoño a invierno</td>
<td>Carácter fenólico o similar al alquitrán, distintivo e intenso, en algunos ejemplares</td>
<td>Maridaje cuidadoso por parte de cocineros que entienden su perfil</td>
</tr>
</tbody>
</table>
</div><p>Las descripciones de temporada son aproximadas. El clima, el origen, las condiciones meteorológicas, la madurez y el año afectan a la disponibilidad real, mientras que el aroma individual varía dentro de cada especie.</p>
</section>
<section id="white-species">
<h2>Tipos de trufa blanca</h2>
<h3><em>Tuber magnatum</em></h3>
<p><em>Tuber magnatum</em> se conoce comúnmente como trufa blanca, trufa blanca italiana o trufa blanca de Alba. Generalmente se asocia con el comercio de otoño y principios de invierno. Los ejemplares maduros pueden presentar matices de azufre, ajo, miel, queso, tierra y fermentación cálida, pero no se garantiza ninguna combinación exacta.</p>
<p>Es mejor laminarla sobre platos calientes ya terminados. El calor intenso y prolongado puede desperdiciar su aroma altamente volátil, y la calidad depende mucho de la madurez, la manipulación y un servicio rápido. Para obtener información más detallada sobre la especie, consulta la <a href="/blogs/truffle-guides/white-truffle-guide">Guía de la trufa blanca</a>.</p>
<h3><em>Tuber borchii</em></h3>
<p><em>Tuber borchii</em>, la trufa blanca de primavera o bianchetto, suele aparecer más adelante en el comercio de invierno y primavera. Puede presentar notas de ajo, tierra, queso y aromas más pungentes. Es una especie distinta legítima, no una imitación inferior de <em>Tuber magnatum</em>.</p>
<p>Según su madurez y formato, puede combinar bien con pasta, huevos, salsas, mantequilla y preparaciones cocinadas. Un carácter intenso de ajo o azufre no debe confundirse automáticamente con deterioro; también deben evaluarse la firmeza, la humedad y el estado visible. Para conocer la taxonomía a nivel de especie, la morfología, la ecología y los límites de identificación, consulta la <a href="/blogs/truffle-guides/tuber-borchii">Guía de la especie <em>Tuber borchii</em></a>.</p>
</section>
<section id="black-species">
<h2>Tipos de trufa negra</h2>
<p><strong>La trufa negra, <em>Tuber melanosporum</em>,</strong> es una especie invernal que puede presentar notas terrosas, de suelo forestal, cacao, frutos secos y sabores umami. Es adecuada para laminar y cocinar suavemente. La <a href="/blogs/truffle-guides/black-truffle-guide">Guía de la trufa negra</a> explica en profundidad su biología e identidad.</p>
<p><strong>La trufa de verano, <em>Tuber aestivum</em>,</strong> está disponible durante la temporada cálida y suele tener un carácter terroso y de frutos secos más suave. Combina bien con pasta, huevos, patatas, ensaladas, pizza y salsas ligeras. Suavidad no significa falta de sabor. Consulta la <a href="/blogs/truffle-guides/summer-truffle-guide">Guía de la trufa de verano</a>.</p>
<p><strong>La trufa de Borgoña u otoño, <em>Tuber uncinatum</em> en el uso comercial habitual,</strong> está estrechamente relacionada con el complejo <em>Tuber aestivum</em> o se considera científicamente parte de él. Una cosecha más tardía y una mayor madurez pueden respaldar un perfil comercial más intenso que el del material de principios de verano. Para conocer la taxonomía y la interpretación comercial del nombre Borgoña, lee la <a href="/blogs/truffle-guides/tuber-uncinatum">Guía de la especie <em>Tuber uncinatum</em></a>.</p>
<p><strong>La trufa negra de invierno, <em>Tuber brumale</em>,</strong> es distinta de <em>Tuber melanosporum</em> y puede presentar un carácter terroso, almizclado o fermentado. <strong><em>Tuber macrosporum</em></strong> puede tener un pronunciado aroma a ajo y relacionado con el azufre, mientras que <strong><em>Tuber mesentericum</em></strong> puede mostrar un perfil fenólico o parecido al alquitrán intenso. Estas especies de carácter marcado deben ser elegidas por cocineros que comprendan su orientación sensorial. La preferencia personal no hace que una especie comestible correctamente etiquetada sea falsa o inválida. Para consultar información detallada sobre las especies, utiliza la <a href="/blogs/truffle-guides/tuber-macrosporum">Guía de la especie <em>Tuber macrosporum</em></a> y la <a href="/blogs/truffle-guides/tuber-mesentericum">Guía de la especie <em>Tuber mesentericum</em></a>.</p>
</section>
<section id="aestivum-uncinatum">
<h2>
<em>Tuber aestivum</em> y <em>Tuber uncinatum</em>
</h2>
<p>Los estudios científicos a menudo han tratado estos nombres como sinónimos o como miembros de una misma especie biológica, y <em>Tuber aestivum</em> tiene prioridad nomenclatural en las investigaciones sobre la especie citadas. No obstante, el comercio europeo distingue el material de verano y el de Borgoña u otoño por el periodo de cosecha, la madurez, el carácter sensorial y el posicionamiento comercial.</p>
<p>Esta convención comercial es útil cuando se explica con transparencia. No debe dar a entender que todos los ejemplares de principios de verano y todos los ejemplares de otoño tienen un aroma idéntico, ni la relación científica debe borrar las colecciones estacionales legítimas y las expectativas de compra.</p>
</section>
<section id="aroma-flavour">
<h2>Diferencias de aroma y sabor</h2>
<p>El aroma de la trufa proviene de combinaciones de compuestos orgánicos volátiles, incluidos compuestos de azufre, alcoholes, cetonas, aldehídos y otros volátiles. Solo una parte del perfil químico detectado contribuye directamente al aroma percibido por el ser humano. Ningún compuesto individual define toda la calidad.</p>
<p>La especie, el genotipo, la madurez, el entorno, la microbiología, el origen y la manipulación poscosecha influyen en la expresión sensorial. El sabor incluye el aroma, el gusto, la textura y la matriz alimentaria circundante. Las trufas blancas suelen generar un impacto aromático más inmediato; las trufas negras del Périgord ofrecen con frecuencia un perfil más profundo, compatible con un calor suave; las trufas de verano suelen proporcionar una expresión más ligera.</p>
<p>Cada ejemplar es diferente. El aroma perdido por la edad o una manipulación deficiente no puede recuperarse, y nunca deben prometerse notas sensoriales exactas basándose únicamente en el nombre de la especie.</p>
</section>
<section id="season-maturity">
<h2>Temporada, madurez y calidad de la trufa</h2>
<p><em>Tuber magnatum</em> se comercializa principalmente desde el otoño hasta principios del invierno; <em>Tuber melanosporum</em> y <em>Tuber brumale</em>, principalmente en invierno; <em>Tuber aestivum</em>, desde finales de la primavera hasta el verano o principios del otoño; el producto comercial de Borgoña, principalmente en otoño; <em>Tuber borchii</em>, principalmente desde el invierno hasta la primavera; <em>Tuber macrosporum</em>, principalmente en otoño; y <em>Tuber mesentericum</em>, principalmente desde el otoño hasta el invierno.</p>
<p>El momento exacto varía según el clima, el origen, el tiempo, la madurez y el año. La temporada por sí sola no demuestra la madurez. Evalúa conjuntamente el aroma propio de la especie, la firmeza, el desarrollo de la gleba y el estado general. Las trufas inmaduras pueden ser más pálidas y menos aromáticas. La blandura excesiva, la viscosidad, la pérdida de líquido, el moho extendido o un olor reciente a podredumbre o fuertemente ácido son señales de advertencia.</p>
<p>La disponibilidad actual debe comprobarse mediante información actualizada sobre productos o colecciones, en lugar de darse por supuesta según el calendario.</p>
</section>
<section id="culinary-use">
<h2>Usos culinarios y calor según el tipo de trufa</h2>
<p>La trufa blanca <em>Tuber magnatum</em> generalmente se lamina sobre pasta, risotto, huevos, patatas o queso suave calientes ya terminados. Los platos sencillos mantienen su aroma en el centro, mientras que una cocción prolongada reduce su intensidad.</p>
<p>La trufa negra <em>Tuber melanosporum</em> puede laminarse, rallarse o incorporarse a mantequilla, salsas, rellenos, pasta, risotto, huevos, aves y carne. Un calor suave puede realzarla, pero el calor agresivo sigue reduciendo su complejidad.</p>
<p>Las trufas de verano y de Borgoña combinan bien con huevos, pasta, patatas, mantequilla, nata, pizza, ensaladas y queso suave. Utiliza suficiente producto para que su aroma más suave siga siendo perceptible y evita las salsas muy intensas. <em>Tuber borchii</em> y las especies oscuras especializadas deben combinarse según la intensidad y el tipo de aroma.</p>
<p>La trufa fresca puede laminarse o rallarse sobre un plato caliente ya terminado, mientras que la trufa picada puede incorporarse a mantequilla, salsas o rellenos. Hervirla, freírla o someterla a temperaturas muy altas durante mucho tiempo no conserva todo su aroma fresco. Los productos procesados se comportan de otra manera.</p>
</section>
<section id="pairing-matrix">
<h2>Combinaciones de trufa y selección de platos</h2>
<div class="table-scroll" role="region" tabindex="0"><table>
<caption>Tipos de trufa, combinaciones adecuadas, usos preferentes y orientación sobre el calor</caption><thead>
<tr>
<th scope="col">Tipo de trufa</th>
<th scope="col">Combinaciones adecuadas</th>
<th scope="col">Uso preferente</th>
<th scope="col">Orientación sobre el calor</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row"><em>Tuber magnatum</em></th>
<td>Pasta, risotto, huevos, patatas, queso suave</td>
<td>Laminar en la mesa o en el último momento</td>
<td>Añadir después de cocinar, sobre un plato caliente ya terminado</td>
</tr>
<tr>
<th scope="row"><em>Tuber borchii</em></th>
<td>Pasta, huevos, mantequilla, salsas</td>
<td>Laminar o preparaciones cocinadas adecuadas</td>
<td>Adapta el calor a la madurez y la intensidad del aroma</td>
</tr>
<tr>
<th scope="row"><em>Tuber melanosporum</em></th>
<td>Mantequilla, huevos, pasta, patatas, aves, carne de vacuno, salsas</td>
<td>Laminar, rallar, salsas y rellenos</td>
<td>Es adecuada una temperatura suave; evita el calor agresivo prolongado</td>
</tr>
<tr>
<th scope="row">Trufa de verano o de Borgoña</th>
<td>Huevos, pasta, pizza, patatas, nata, ensaladas, queso suave</td>
<td>Platos de temporada accesibles y acabados</td>
<td>Utiliza un calor suave y evita los ingredientes que dominen el sabor</td>
</tr>
<tr>
<th scope="row">
<em>Tuber macrosporum</em> o <em>Tuber mesentericum</em>
</th>
<td>Mantequilla, pasta, huevo o platos regionales cuidadosamente seleccionados</td>
<td>Uso especializado adaptado al ejemplar</td>
<td>Utiliza un calor moderado y cantidades adecuadas para un aroma intenso</td>
</tr>
</tbody>
</table>
</div><p>La elección correcta depende de la especie, la temporada, la madurez, la preferencia aromática, el plato, la presentación, el calor, la cantidad, la categoría, el presupuesto y el formato. La especie más cara no es automáticamente la más adecuada.</p>
</section>
<section id="quality-grade">
<h2>Calidad, frescura y categoría comercial</h2>
<p>Comprueba la especie exacta, la madurez, el aroma propio de la especie, la firmeza, el estado de la superficie, la humedad, el moho, las fugas, la categoría, el tamaño, la forma, la trazabilidad, las condiciones de entrega y el historial de almacenamiento. El aspecto ayuda en la evaluación, pero por sí solo no puede autenticar la especie ni la madurez.</p>
<p>Los sistemas de clasificación comercial varían según el proveedor. Los ejemplares enteros atractivos son adecuados para regalar, fotografiar y laminar en la mesa. Las trufas enteras de calidad estándar para restauración son adecuadas para el servicio general. Las piezas irregulares pueden ser apropiadas para mantequilla, salsas, rellenos y producción. El tamaño por sí solo no demuestra un aroma más intenso, y las piezas no son automáticamente inferiores en identidad ni en calidad sensorial.</p>
<p>Compara las ofertas solo después de confirmar la especie, el formato, la cantidad, la temporada, la entrega y el uso previsto. Para conocer los precios reales, deben utilizarse las páginas o cotizaciones actuales, en lugar de afirmaciones fijas sobre el mercado.</p>
</section>
<section id="species-confusion">
<h2>Cómo evitar la confusión entre especies</h2>
<p>Los nombres comunes son insuficientes para compras de alto valor. <em>Tuber magnatum</em> y <em>Tuber borchii</em> son especies blancas distintas. <em>Tuber melanosporum</em>, <em>Tuber brumale</em>, <em>Tuber aestivum</em> y <em>Tuber indicum</em> son especies oscuras o grupos comerciales distintos.</p>
<p>El parecido visual puede dificultar la identificación. La nomenclatura científica transparente, la trazabilidad y la documentación del proveedor son importantes, y pueden ser necesarios métodos moleculares o analíticos para una autenticación fiable. Una especie de menor precio correctamente etiquetada no es falsa; el problema es la sustitución engañosa o el etiquetado incorrecto.</p>
</section>
<section id="formats">
<h2>Formatos frescos, congelados, deshidratados y conservados</h2>
<p><strong>Las trufas frescas</strong> ofrecen la conexión más intensa con la temporada, el ejemplar, la textura y el aroma inmediato, pero requieren un uso rápido y una refrigeración cuidadosa. <strong>Las trufas congeladas</strong> son adecuadas para platos cocinados y para planificar durante todo el año, aunque su textura y aroma difieren de los de las frescas.</p>
<p><strong>Las trufas deshidratadas</strong> son adecuadas para almacenar en la despensa y para preparaciones específicas, pero no reproducen la textura ni el aroma de las frescas. <strong>Los productos conservados y formulados</strong> incluyen trufas en salmuera, mantequilla, aceites, salsas, carpaccio y otros formatos. Su valor depende de la especie, la concentración, los ingredientes, el procesamiento y la formulación.</p>
<p>Estos formatos no son equivalentes desde el punto de vista sensorial. Consulta <a href="/blogs/buying-guides/fresh-vs-preserved-truffles">Trufas frescas frente a trufas en conserva</a> para una comparación detallada de los formatos.</p>
</section>
<section id="buyer-types">
<h2>Cómo elegir trufas para uso doméstico, en restaurantes y en comercios minoristas</h2>
<p><strong>Los cocineros aficionados</strong> deben elegir una especie y una cantidad para un plan de comida inmediato y leer las indicaciones de conservación antes de hacer el pedido. Por lo general, un plato bien diseñado es mejor que repartir una trufa pequeña entre muchas porciones.</p>
<p><strong>Los chefs y restaurantes</strong> deben indicar las especies con precisión en los menús, ajustar la cantidad y la categoría a la demanda confirmada, registrar la especie, la categoría, el peso, la fecha de llegada y el estado, y asignar la responsabilidad de conservación. Los ejemplares enteros son adecuados para el servicio en mesa, mientras que las piezas irregulares apropiadas sirven para salsas y producción.</p>
<p><strong>Los minoristas y compradores de regalos</strong> deben priorizar la presentación, las instrucciones y los plazos de entrega. Las trufas frescas no deben ofrecerse sin una planificación clara del destinatario. <strong>Los profesionales de la alimentación</strong> deben distinguir entre formatos frescos, congelados, deshidratados y en conserva, y seleccionar la documentación, la categoría y la forma adecuadas para el método de producción.</p>
<p class="terra-ross-market-note">Terra Ross atiende a clientes del Reino Unido, Francia, Alemania, Suiza, Italia, España y Portugal, con especial atención a las trufas prémium, los productos de trufa y las entregas fiables para clientes particulares, chefs, restaurantes y profesionales de la alimentación.</p>
</section>
<section id="storage-buying">
<h2>Resumen de conservación y compra</h2>
<p>Por lo general, refrigera las trufas frescas aproximadamente a 2–4 °C en un recipiente limpio y apto para alimentos, con papel absorbente limpio. Cambia el papel húmedo, inspecciona cada ejemplar a diario, evita el exceso de humedad y los olores fuertes del frigorífico, limpia las trufas poco antes de usarlas y utilízalas cuanto antes. Sigue <a href="/blogs/storage-guides/how-to-store-fresh-truffles">Cómo conservar las trufas frescas</a> para consultar el método completo.</p>
<p>Antes de hacer un pedido, verifica la especie científica, el nombre comercial, la temporada, la madurez, la categoría, el formato, la trazabilidad, el aroma y la descripción del estado, los plazos de entrega, las indicaciones de conservación y el uso previsto. Consulta <a href="/blogs/buying-guides/buy-fresh-truffles-online">Cómo comprar trufas frescas en línea</a> para conocer el marco completo de compra.</p>
</section>
<section id="related-guides">
<h2>Especies relacionadas y guías de compra</h2>
<ul>
<li><a href="/blogs/truffle-guides/truffle-guide-what-they-are-and-how-they-grow">Guía de la trufa: qué son y cómo crecen</a></li>
<li><a href="/blogs/truffle-guides/white-truffle-guide">Guía de la trufa blanca</a></li>
<li><a href="/blogs/truffle-guides/black-truffle-guide">Guía de la trufa negra</a></li>
<li><a href="/blogs/truffle-guides/summer-truffle-guide">Guía de la trufa de verano</a></li>
<li><a href="/blogs/storage-guides/fresh-black-truffles-guide">Trufas negras frescas: sabor, uso, conservación y compra</a></li>
<li><a href="/blogs/storage-guides/white-truffle-storage-guide-professional-techniques">Guía de conservación de la trufa blanca</a></li>
<li><a href="/blogs/storage-guides/how-to-store-fresh-truffles">Cómo conservar las trufas frescas</a></li>
<li><a href="/blogs/buying-guides/buy-fresh-truffles-online">Cómo comprar trufas frescas por Internet</a></li>
<li><a href="/blogs/buying-guides/fresh-vs-preserved-truffles">Trufas frescas frente a trufas en conserva</a></li>
</ul>
</section>
<section id="commercial-links">
<h2>Colecciones relacionadas</h2>
<ul>
<li><a href="/collections/fresh-truffles-in-season">Trufas frescas de temporada</a></li>
<li><a href="/collections/tuber-magnatum-white-truffles">Trufas blancas <em>Tuber magnatum</em></a></li>
<li><a href="/collections/terra-ross-black-diamond-truffle-tuber-melanosporum">Colección de <em>Tuber melanosporum</em></a></li>
<li><a href="/collections/tuber-aestivum-black-summer-truffle">Colección de <em>Tuber aestivum</em></a></li>
<li><a href="/collections/frozen-truffles">Trufas congeladas</a></li>
<li><a href="https://www.terra-ross.com/collections/premium-truffle-products-for-restaurants-b2b-clients"> Productos de trufa para restaurantes y empresas </a></li>
</ul>
</section>
<section id="related-product-examples">
<h2>Ejemplos de productos relacionados</h2>
<ul>
<li><a href="/products/fresh-white-truffle-tuber-magnatum-medium-size">Trufa blanca fresca | <em>Tuber magnatum</em> — Tamaño mediano</a></li>
<li><a href="/products/fresh-black-truffle-tuber-melanosporum-a-grade">Trufa negra fresca | <em>Tuber melanosporum</em> — Categoría A</a></li>
</ul>
</section>
<section id="key-topics">
<h2>Temas clave sobre la trufa negra y blanca</h2>
<ul>
<li><a href="/blogs/truffle-guides/truffle-guide-what-they-are-and-how-they-grow">Cómo crecen las trufas</a></li>
<li><a href="/blogs/truffle-guides/white-truffle-guide">Guía de la trufa blanca</a></li>
<li><a href="/blogs/truffle-guides/black-truffle-guide">Guía de la trufa negra</a></li>
<li><a href="/blogs/truffle-guides/summer-truffle-guide">Guía de la trufa de verano</a></li>
<li><a href="/blogs/storage-guides/fresh-black-truffles-guide">Trufas negras frescas</a></li>
<li><a href="/blogs/storage-guides/white-truffle-storage-guide-professional-techniques">Conservación de la trufa blanca</a></li>
<li><a href="/blogs/storage-guides/how-to-store-fresh-truffles">Cómo conservar las trufas frescas</a></li>
<li><a href="/blogs/buying-guides/buy-fresh-truffles-online">Cómo comprar trufas frescas por Internet</a></li>
<li><a href="/blogs/buying-guides/fresh-vs-preserved-truffles">Trufas frescas frente a trufas en conserva</a></li>
<li><a href="/collections/fresh-truffles-in-season">Trufas frescas de temporada</a></li>
<li><a href="/collections/frozen-truffles">Trufas congeladas</a></li>
<li><a href="https://www.terra-ross.com/collections/premium-truffle-products-for-restaurants-b2b-clients"> Productos de trufa para restaurantes y empresas </a></li>
</ul>
</section>
<section id="scientific-references">
<h2>Referencias científicas y lecturas adicionales</h2>
<ul>
<li><a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC7765491/" rel="noopener" target="_blank">Descripción general del aroma de la trufa y de los principales compuestos volátiles</a></li>
<li><a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC7405009/" rel="noopener" target="_blank">Autenticación de especies de Tuber de relevancia comercial</a></li>
<li><a href="https://pubmed.ncbi.nlm.nih.gov/16156727/" rel="noopener" target="_blank">Reconocimiento de especies y relación entre Tuber aestivum y Tuber uncinatum</a></li>
<li><a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC4519792/" rel="noopener" target="_blank">Compuestos orgánicos volátiles en los cuerpos fructíferos de Tuber magnatum</a></li>
<li><a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC10969277/" rel="noopener" target="_blank">Evaluación instrumental y sensorial del aroma de la trufa negra</a></li>
<li><a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC9414745/" rel="noopener" target="_blank">Sustancias marcadoras del aroma de distintas especies de trufa</a></li>
<li><a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC11066859/" rel="noopener" target="_blank">Marcadores volátiles para diferenciar Tuber magnatum y Tuber borchii</a></li>
</ul>
</section>
<section id="faq">
<h2>Preguntas frecuentes</h2>
<h3>¿Cuál es la principal diferencia entre las trufas negras y blancas?</h3>
<p>Estos son grupos generales basados en el color que contienen distintas especies. Las especies blancas suelen utilizarse como acabados aromáticos, mientras que varias especies negras toleran un calor suave, pero la identidad exacta es importante.</p>
<h3>¿Es toda trufa blanca <em>Tuber magnatum</em>?</h3>
<p>No. También existen <em>Tuber borchii</em> y otras especies pálidas, que deben denominarse con precisión.</p>
<h3>¿Es toda trufa negra <em>Tuber melanosporum</em>?</h3>
<p>No. Las trufas de verano, de Borgoña, de invierno y otras trufas oscuras son especies o grupos comerciales distintos.</p>
<h3>¿Qué trufa tiene el aroma más intenso?</h3>
<p>La trufa madura <em>Tuber magnatum</em> suele ser muy aromática, pero la intensidad varía según el ejemplar, la madurez, el estado y la manipulación. Ninguna especie gana en todos los casos individuales.</p>
<h3>¿Es la trufa de verano lo mismo que la trufa de Borgoña?</h3>
<p>Los estudios científicos suelen situar <em>Tuber aestivum</em> y <em>Tuber uncinatum</em> dentro de una misma especie o complejo, mientras que el comercio diferencia el material de verano y de Borgoña por el período de recolección, la madurez y el posicionamiento.</p>
<h3>¿Se pueden cocinar las trufas negras y blancas de la misma manera?</h3>
<p>Por lo general, no. La trufa blanca, muy aromática, suele añadirse después de cocinar, mientras que la trufa negra y algunas otras trufas oscuras pueden combinar bien con un calor suave.</p>
<h3>¿Cómo deben conservarse las trufas frescas?</h3>
<p>Refrigéralas en un recipiente limpio con papel absorbente, cambia el papel húmedo, inspecciónalas a diario y úsalas pronto sin depender de un período de conservación universal fijo.</p>
<h3>¿Qué deben comprobar los compradores antes de pedir trufas frescas por Internet?</h3>
<p>Comprueba la especie científica, el nombre comercial, la temporada, la madurez, la categoría, el formato, la trazabilidad, la descripción del estado, el plazo de entrega, las indicaciones de conservación y el uso previsto.</p>
</section>
<section id="conclusion">
<h2>Conclusión</h2>
<p>Elige las trufas por especie y no solo por color. Relaciona la especie con su temporada, madurez, aroma, plato y nivel de calor; después, verifica la frescura, la categoría y la entrega. Consulta las guías detalladas de cada especie cuando necesites información más profunda. La mejor trufa es la que se adapta correctamente al uso previsto, no necesariamente la opción más cara.</p>
</section>
</div><script>
document.querySelectorAll('.article__content a[href]').forEach((link, i) => {
if (link.getAttribute('href').includes('products')) {
const enhancedLink = document.createElement('quick-view-product');
enhancedLink.innerHTML = `<a href="${link.href}" data-js-product-add-to-cart data-id="product-content-${i}">
${link.textContent}
</a>`;
link.parentNode.replaceChild(enhancedLink, link);
}
});
</script></div>
</div>
<style> #shopify-section-template--28394380820802__main-article h2 {font-size: 28px;} #shopify-section-template--28394380820802__main-article h3 {font-size: 24px;} #shopify-section-template--28394380820802__main-article h4 {font-size: 20px;} #shopify-section-template--28394380820802__main-article h5 {font-size: 18px;} </style></div><div id="shopify-section-template--28394380820802__main-article-navigation" class="shopify-section container--medium container--vertical-space"><link href="//www.terra-ross.es/cdn/shop/t/27/assets/component-blog-item.css?v=165969672717598901641786777715" rel="stylesheet" type="text/css" media="all" />
<h2 class="h4 gutter-top--large">Más artículos</h2><div class="grid grid--layout grid-2 grid-palm-1 gutter-top--regular"><div class="blog-item
spacing--small
remove-empty-space"><a class="blog-item__image element--has-border element--border-radius increased-spacing" href="/blogs/truffle-guides/truffle-guide-what-they-are-and-how-they-grow" title="Guía de las trufas: qué son y cómo crecen"><figure
class="lazy-image lazy-image--animation element--border-radius
"
data-ratio="1.33333" style="padding-top: 75.00018750046875%"
data-crop="false"
>
<img
src="//www.terra-ross.es/cdn/shop/articles/Where-grow-truffles_0c6b258c-93a3-4020-b632-e18be737ac13.jpg?v=1788466413&width=480" alt="Guía de las trufas: qué son y cómo crecen"
srcset="//www.terra-ross.es/cdn/shop/articles/Where-grow-truffles_0c6b258c-93a3-4020-b632-e18be737ac13.jpg?crop=center&height=180&v=1788466413&width=240 240w,//www.terra-ross.es/cdn/shop/articles/Where-grow-truffles_0c6b258c-93a3-4020-b632-e18be737ac13.jpg?crop=center&height=270&v=1788466413&width=360 360w,//www.terra-ross.es/cdn/shop/articles/Where-grow-truffles_0c6b258c-93a3-4020-b632-e18be737ac13.jpg?crop=center&height=315&v=1788466413&width=420 420w,//www.terra-ross.es/cdn/shop/articles/Where-grow-truffles_0c6b258c-93a3-4020-b632-e18be737ac13.jpg?crop=center&height=360&v=1788466413&width=480 480w,//www.terra-ross.es/cdn/shop/articles/Where-grow-truffles_0c6b258c-93a3-4020-b632-e18be737ac13.jpg?crop=center&height=480&v=1788466413&width=640 640w,//www.terra-ross.es/cdn/shop/articles/Where-grow-truffles_0c6b258c-93a3-4020-b632-e18be737ac13.jpg?crop=center&height=510&v=1788466413&width=680 680w,//www.terra-ross.es/cdn/shop/articles/Where-grow-truffles_0c6b258c-93a3-4020-b632-e18be737ac13.jpg?crop=center&height=540&v=1788466413&width=720 720w,//www.terra-ross.es/cdn/shop/articles/Where-grow-truffles_0c6b258c-93a3-4020-b632-e18be737ac13.jpg?crop=center&height=630&v=1788466413&width=840 840w,//www.terra-ross.es/cdn/shop/articles/Where-grow-truffles_0c6b258c-93a3-4020-b632-e18be737ac13.jpg?crop=center&height=810&v=1788466413&width=1080 1080w,//www.terra-ross.es/cdn/shop/articles/Where-grow-truffles_0c6b258c-93a3-4020-b632-e18be737ac13.jpg?crop=center&height=960&v=1788466413&width=1280 1280w"
class="img"
width="1536"
height="1024"
data-ratio="1.33333"
sizes="(max-width: 767px) 100vw, (max-width: 1750px) 33vw, calc(1750px / 3)"
loading="lazy"
style="
"
onload="this.parentNode.classList.add('lazyloaded')"
/>
</figure></a><div class="blog-item__title-holder" >
<a href="/blogs/truffle-guides/truffle-guide-what-they-are-and-how-they-grow" title="Guía de las trufas: qué son y cómo crecen">
<span class=" text-size--large text-weight--bold text-animation--underline">Guía de las trufas: qué son y cómo crecen</span>
</a>
</div><div class="blog-item__meta text-color--opacity" ><span class="blog-item__author text-size--small">Rostislav Savov</span><span class="blog-item__date text-size--small">19 de junio de 2026</span><span class="blog-item__date text-size--small">0 comentarios</span></div></div><div class="blog-item
spacing--small
remove-empty-space"><a class="blog-item__image element--has-border element--border-radius increased-spacing" href="/blogs/truffle-guides/white-truffle-guide" title="Guía de la trufa blanca: Tuber magnatum, sabor, temporada y usos"><figure
class="lazy-image lazy-image--animation element--border-radius
"
data-ratio="1.33333" style="padding-top: 75.00018750046875%"
data-crop="false"
>
<img
src="//www.terra-ross.es/cdn/shop/articles/white-truffle-tuber-magnatum-pico_f0186752-bff1-461a-96d6-15a74e76b3ad.jpg?v=1788458423&width=480" alt="Guía de la trufa blanca: Tuber magnatum, sabor, temporada y usos"
srcset="//www.terra-ross.es/cdn/shop/articles/white-truffle-tuber-magnatum-pico_f0186752-bff1-461a-96d6-15a74e76b3ad.jpg?crop=center&height=180&v=1788458423&width=240 240w,//www.terra-ross.es/cdn/shop/articles/white-truffle-tuber-magnatum-pico_f0186752-bff1-461a-96d6-15a74e76b3ad.jpg?crop=center&height=270&v=1788458423&width=360 360w,//www.terra-ross.es/cdn/shop/articles/white-truffle-tuber-magnatum-pico_f0186752-bff1-461a-96d6-15a74e76b3ad.jpg?crop=center&height=315&v=1788458423&width=420 420w,//www.terra-ross.es/cdn/shop/articles/white-truffle-tuber-magnatum-pico_f0186752-bff1-461a-96d6-15a74e76b3ad.jpg?crop=center&height=360&v=1788458423&width=480 480w,//www.terra-ross.es/cdn/shop/articles/white-truffle-tuber-magnatum-pico_f0186752-bff1-461a-96d6-15a74e76b3ad.jpg?crop=center&height=480&v=1788458423&width=640 640w,//www.terra-ross.es/cdn/shop/articles/white-truffle-tuber-magnatum-pico_f0186752-bff1-461a-96d6-15a74e76b3ad.jpg?crop=center&height=510&v=1788458423&width=680 680w,//www.terra-ross.es/cdn/shop/articles/white-truffle-tuber-magnatum-pico_f0186752-bff1-461a-96d6-15a74e76b3ad.jpg?crop=center&height=540&v=1788458423&width=720 720w,//www.terra-ross.es/cdn/shop/articles/white-truffle-tuber-magnatum-pico_f0186752-bff1-461a-96d6-15a74e76b3ad.jpg?crop=center&height=630&v=1788458423&width=840 840w,//www.terra-ross.es/cdn/shop/articles/white-truffle-tuber-magnatum-pico_f0186752-bff1-461a-96d6-15a74e76b3ad.jpg?crop=center&height=810&v=1788458423&width=1080 1080w"
class="img"
width="1672"
height="941"
data-ratio="1.33333"
sizes="(max-width: 767px) 100vw, (max-width: 1750px) 33vw, calc(1750px / 3)"
loading="lazy"
style="
"
onload="this.parentNode.classList.add('lazyloaded')"
/>
</figure></a><div class="blog-item__title-holder" >
<a href="/blogs/truffle-guides/white-truffle-guide" title="Guía de la trufa blanca: Tuber magnatum, sabor, temporada y usos">
<span class=" text-size--large text-weight--bold text-animation--underline">Guía de la trufa blanca: Tuber magnatum, sabor, temporada y usos</span>
</a>
</div><div class="blog-item__meta text-color--opacity" ><span class="blog-item__author text-size--small">Rostislav Savov</span><span class="blog-item__date text-size--small">28 de junio de 2026</span><span class="blog-item__date text-size--small">0 comentarios</span></div></div></div>
<style> #shopify-section-template--28394380820802__main-article-navigation h2 {font-size: 28px;} #shopify-section-template--28394380820802__main-article-navigation h3 {font-size: 24px;} #shopify-section-template--28394380820802__main-article-navigation h4 {font-size: 20px;} #shopify-section-template--28394380820802__main-article-navigation h5 {font-size: 18px;} </style></div><div id="shopify-section-template--28394380820802__main-article-comments" class="shopify-section container--medium container--vertical-space"><link href="//www.terra-ross.es/cdn/shop/t/27/assets/section-main-article-comments.css?v=126005478257635852721786777743" rel="stylesheet" type="text/css" media="all" />
<div id="comments" class="article__comments">
<h2 class="h4">Comentarios (0)</h2><p>No hay comentarios todavía. Sé el primero en comentar.</p><div id="comments-form" class="comments__form"><form method="post" action="/blogs/truffle-guides/types-of-black-and-white-truffles-flavor-season-culinary-uses/comments#comment_form" id="comment_form" accept-charset="UTF-8" class="simple-form"><input type="hidden" name="form_type" value="new_comment" /><input type="hidden" name="utf8" value="✓" /><h2 class="h4" id="add-comment">Deja un comentario</h2><div class="form-field">
<label for="comment-author" class="visually-hidden">Nombre</label>
<input
type="text"
name="comment[author]"
placeholder="Nombre"
id="comment-author"
value=""
autocapitalize="words"
required
>
</div>
<div class="form-field">
<label for="comment-email" class="visually-hidden">Email</label>
<input
type="email"
name="comment[email]"
placeholder="Email"
id="comment-email"
value=""
autocorrect="off"
autocapitalize="off"
required
>
</div>
<div class="form-field">
<label for="comment-body" class="visually-hidden">Mensaje</label>
<textarea
name="comment[body]"
id="comment-body"
placeholder="Mensaje"
required
></textarea>
</div>
<div class="form-field">
<button type="submit" class="button button--outline button--regular">
Publicar comentario
</button>
</div><small
><em>¡Tu comentario ha sido enviado. Será visible una vez que el dueño de la tienda lo haya aceptado!</em></small
></form></div></div>
<style> #shopify-section-template--28394380820802__main-article-comments h2 {font-size: 28px;} #shopify-section-template--28394380820802__main-article-comments h3 {font-size: 24px;} #shopify-section-template--28394380820802__main-article-comments h4 {font-size: 20px;} #shopify-section-template--28394380820802__main-article-comments h5 {font-size: 18px;} </style></div>
</main>
<footer><!-- BEGIN sections: footer-group -->
<div id="shopify-section-sections--28394383540546__footer" class="shopify-section shopify-section-group-footer-group main-footer"><link href="//www.terra-ross.es/cdn/shop/t/27/assets/section-footer.css?v=92580148604769442531786777741" rel="stylesheet" type="text/css" media="all" />
<div class="container--large gutter-top--xlarge gutter-bottom--xlarge footer-top" data-js-inert>
<div class="grid grid--layout grid--gap-xlarge grid-5 grid-portable-4 grid-lap-3 grid-palm-2 smel"><div class="footer-item" ><h2
class="footer-item__title h4 "
style="display:block"
>Terra Ross | Trufas frescas y productos de trufa</h2><div class="footer-item__content rte"><p><strong>Experiencia en trufas frescas</strong></p><p>Terra Ross se especializa en obtener, seleccionar, envasar y suministrar trufas frescas, congeladas y secas, así como productos de trufas cuidadosamente seleccionados para clientes privados, restaurantes y profesionales de la alimentación.</p><p><strong>Seguridad alimentaria</strong></p><p>Los productos se manipulan y preparan de acuerdo con los procedimientos de seguridad alimentaria aplicables de la empresa. La documentación de calidad específica del producto está disponible previa solicitud cuando corresponda.</p><p><strong>Entrega internacional</strong></p><p>Los servicios de entrega disponibles, los cargos de envío y los tiempos de tránsito estimados dependen del destino y el servicio seleccionado y se muestran al finalizar la compra. Los pedidos de trufa fresca se preparan en envases protectores aislados con materiales refrigerantes.</p><p><strong>Uso responsable de la energía</strong></p><p>Aproximadamente el 90 % de la energía utilizada por Terra Ross proviene del sistema de energía solar de la empresa, lo que respalda un proceso de producción más eficiente.</p><div style="display: inline-flex; align-items: center; padding: 8px 12px; margin-top: 12px; background-color: #191919; border-radius: 999px;"><script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.shop-follow-button.es.esm.js"></script>
<script type="module">
await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.shop-follow-button.es.esm.js");
</script>
<shop-follow-button ux-mode="windoid" return-uri="https://www.terra-ross.es/account/redirect" proxy="true"></shop-follow-button>
</div></div></div><div class="footer-item" ><h2
class="footer-item__title h5 "
style="display:block"
>Enlaces útiles</h2><nav class="footer-item__menu rte"><span>
<a
href="/collections/fresh-truffles-in-season"
>Trufas frescas de temporada</a>
</span><span>
<a
href="/collections/premium-truffle-products-for-restaurants-b2b-clients"
>Trufas B2B para restaurantes y fabricantes de alimentos</a>
</span><span>
<a
href="/collections/frozen-truffles"
>Trufas congeladas</a>
</span><span>
<a
href="/collections/tuber-aestivum-black-summer-truffle"
>Trufa de verano</a>
</span><span>
<a
href="/collections/truffle-hunting-dog-training"
>Productos para el adiestramiento de perros truferos</a>
</span><span>
<a
href="/pages/about-us-terra-ross-ltd-your-trusted-partner"
>Acerca de Terra Ross</a>
</span><span>
<a
href="/pages/contact-terra-ross"
>Contactar a Terra Ross</a>
</span></nav></div><div class="footer-item" ><h2
class="footer-item__title h5 "
style="display:block"
>Enlaces para clientes</h2><nav class="footer-item__menu rte"><span>
<a
href="https://account.terra-ross.com/orders?locale=es®ion_country=ES&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ0cnVmZmxlLWhvdXNlLWVuLm15c2hvcGlmeS5jb20iLCJmbGFncyI6W10sImV4cCI6MTc5MzE5NzYwNCwibmJmIjoxNzkyNTkyODA0fQ.ZaxMnIlkWgixeNueDaf9uLUs02ObXUnlUB2t5BK5Shs"
>Pedidos</a>
</span><span>
<a
href="https://account.terra-ross.com/profile?locale=es®ion_country=ES&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ0cnVmZmxlLWhvdXNlLWVuLm15c2hvcGlmeS5jb20iLCJmbGFncyI6W10sImV4cCI6MTc5MzE5NzYwNCwibmJmIjoxNzkyNTkyODA0fQ.ZaxMnIlkWgixeNueDaf9uLUs02ObXUnlUB2t5BK5Shs"
>Cuenta | Dirección</a>
</span><span>
<a
href="https://account.terra-ross.com/pages/83c32665-6c37-4ad0-a13c-bd21069b037f?locale=es®ion_country=ES&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ0cnVmZmxlLWhvdXNlLWVuLm15c2hvcGlmeS5jb20iLCJmbGFncyI6W10sImV4cCI6MTc5MzE5NzYwNCwibmJmIjoxNzkyNTkyODA0fQ.ZaxMnIlkWgixeNueDaf9uLUs02ObXUnlUB2t5BK5Shs"
>Página de reseñas</a>
</span><span>
<a
href="/pages/faqs"
>Preguntas frecuentes</a>
</span></nav></div><div class="footer-item" ><h2
class="footer-item__title h5 "
style="display:block"
>Enlaces de políticas</h2><nav class="footer-item__menu rte"><span>
<a
href="/policies/terms-of-service"
>Términos de Servicio</a>
</span><span>
<a
href="/policies/legal-notice"
>Aviso Legal</a>
</span><span>
<a
href="/policies/shipping-policy"
>Política de Envío</a>
</span><span>
<a
href="/policies/refund-policy"
>Política de reembolso</a>
</span><span>
<a
href="/policies/privacy-policy"
>Política de Privacidad</a>
</span><span>
<a
href="/policies/subscription-policy"
>Política de suscripción</a>
</span><span>
<a
href="/policies/contact-information"
>Información de contacto</a>
</span></nav></div><div class="footer-item" ><h2
class="footer-item__title h5 "
style="display:block"
>Ofertas y suscripción al boletín</h2><div class="footer-item__newsletter"><form method="post" action="/contact#newsletter-footer-block" id="newsletter-footer-block" accept-charset="UTF-8" class=""><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" /><fieldset>
<input type="hidden" name="contact[tags]" value="newsletter">
<div class="form-row" style="position:relative;padding-top:0;">
<input
type="email"
class="newsletter__input"
value=""
placeholder="Correo electrónico"
name="contact[email]"
id="Email-newsletter-footer-block"
aria-label="Correo electrónico"
autocorrect="off"
autocapitalize="off"
required
>
<button
type="submit"
id="Subscribe-newsletter-footer-block"
aria-label="Registrarme"
>
<span class="visually-hidden">Registrarme</span>
<span aria-hidden="true" role="img"><svg width="52" height="52" viewBox="0 0 52 52" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M47.5 2.5 22.75 27.25M47.5 2.5l-15.75 45-9-20.25-20.25-9 45-15.75Z" stroke="#fff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/></svg></span>
</button>
</div>
</fieldset></form></div></div></div>
</div><div class="footer-bottom" data-js-inert>
<div class="container--large gutter-top--regular gutter-bottom--regular rte">
<span>
Derechos de autor © 2026
<a href="/">Terra Ross</a>.<span class="powered-by-shopify"><a target="_blank" rel="nofollow" href="https://www.shopify.com?utm_campaign=poweredby&utm_medium=shopify&utm_source=onlinestore">Tecnología de Shopify</a></span></span></div>
</div>
</div>
<!-- END sections: footer-group --></footer><div id="shopify-section-popups" class="shopify-section"><style>
.sidebar--top {
border-radius: 0px;
}
</style>
</div><div id="shopify-section-popup-age-verification" class="shopify-section mount-popup">
</div><div id="shopify-section-exit-intent-popup" class="shopify-section element--has-section-borders mount-exit-intent-popup">
</div><div id="shopify-section-store-selector" class="shopify-section mount-popup mount-store-selector mount-map">
</div><script src="//www.terra-ross.es/cdn/shop/t/27/assets/component-modal.js?v=183852734125365992941786777723" defer></script>
<link rel="stylesheet" href="//www.terra-ross.es/cdn/shop/t/27/assets/component-modal.css?v=68846274709650022401786777722" media="print" onload="this.media='all'">
<link rel="stylesheet" href="//www.terra-ross.es/cdn/shop/t/27/assets/component-popup.css?v=53532109820971467261786777725" media="print" onload="this.media='all'">
<script type="text/javascript">
KROWN = {
themeName: "Local",
themeVersion: "4.1.2",
compare: {
storageKey: 'compare-products',
toggleKey: 'compare-mode-active',
maxProducts: 4
},
settings: {
shop_money_format: '€{{amount_with_comma_separator}}',
iso_code: '',
cart_action: "overlay",
google_maps_api_key: "AIzaSyDazcrXquJd7VrnZ8ef7f7cWibRRdVS270",
google_maps_map_id: "",
routes: {
cart_url: "/cart",
cart_add_url: "/cart/add",
cart_change_url: "/cart/change",
cart_update_url: "/cart/update",
predictive_search_url: "/search/suggest",
product_recommendations_url: "/recommendations/products"
},
locales: {
products_add_to_cart_button: `Añadir al Carrito`,
products_preorder_button: `Reservar`,
products_sold_out_variant: `Agotado`,
products_unavailable_variant: `No Disponible`,
products_variant_required: `Seleccionar opciones`,
products_one_product: `<span class="pill"><span class="pill__icon" aria-hidden="true"><svg height="64" viewBox="0 0 64 64" width="64" xmlns="http://www.w3.org/2000/svg"><g style="fill:none;stroke:#202020;stroke-linecap:round;stroke-miterlimit:10;stroke-width:2;stroke-linejoin:round"><path d="m54 6v10h-10m-12 43a27 27 0 1 1 21.751-43m-8.766 39.678a26.819 26.819 0 0 1 -6.985 2.653m15.751-10.331a27.159 27.159 0 0 1 -4.711 4.945m8.751-12.932a26.821 26.821 0 0 1 -1.58 3.952"/><circle cx="32" cy="32" r="3"/><path d="m33.961 34.261 10.039 7.739m-12-30v17"/></g></svg></span><span class="pill__text text-size--small">¡Sólo queda uno!</span></span>`,
products_few_products: `<span class="pill"><span class="pill__icon" aria-hidden="true"><svg height="64" viewBox="0 0 64 64" width="64" xmlns="http://www.w3.org/2000/svg"><g style="fill:none;stroke:#202020;stroke-linecap:round;stroke-miterlimit:10;stroke-width:2;stroke-linejoin:round"><path d="m54 6v10h-10m-12 43a27 27 0 1 1 21.751-43m-8.766 39.678a26.819 26.819 0 0 1 -6.985 2.653m15.751-10.331a27.159 27.159 0 0 1 -4.711 4.945m8.751-12.932a26.821 26.821 0 0 1 -1.58 3.952"/><circle cx="32" cy="32" r="3"/><path d="m33.961 34.261 10.039 7.739m-12-30v17"/></g></svg></span><span class="pill__text text-size--small">Quedan {{ count }} productos</span></span>`,
products_many_products: `<span class="pill"><span class="pill__icon" aria-hidden="true"><svg style="transform:scale(.9)" height="64" viewBox="0 0 64 64" width="64" xmlns="http://www.w3.org/2000/svg"><g style="fill:none;stroke:#202020;stroke-miterlimit:10;stroke-width:2;stroke-linejoin:round;stroke-linecap:round"><circle cx="32" cy="32" r="30" transform="matrix(.70710678 -.70710678 .70710678 .70710678 -13.254834 32)"/><path d="m20.998 32.015 8.992 8.992 16.011-16.011"/></g></svg></span><span class="pill__text text-size--small">Quedan {{ count }} productos</span></span>`,
products_no_products: `<span class="pill"><span class="pill__icon" aria-hidden="true"><svg style="transform:scale(.9)" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg"><g style="fill:none;stroke:#202020;stroke-miterlimit:10;stroke-width:2;stroke-linejoin:round;stroke-linecap:round"><circle cx="32" cy="32" r="30"/><path d="m32 15v24"/><circle cx="32" cy="47" r="2"/></g></svg></span><span class="pill__text text-size--small">No quedan productos</span></span>`,
products_preorder: `<span class="pill"><span class="pill__icon" aria-hidden="true"><svg style="transform:scale(.9)" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg"><g style="fill:none;stroke:#202020;stroke-miterlimit:10;stroke-width:2;stroke-linejoin:round;stroke-linecap:round"><circle cx="32" cy="32" r="30"/><path d="m32 15v24"/><circle cx="32" cy="47" r="2"/></g></svg></span><span class="pill__text text-size--small">Actualmente no tenemos stock de este producto, pero puedes seguir comprándolo.</span></span>`,
products_enough_products: `<span class="pill"><span class="pill__icon" aria-hidden="true"><svg style="transform:scale(.9)" height="64" viewBox="0 0 64 64" width="64" xmlns="http://www.w3.org/2000/svg"><g style="fill:none;stroke:#202020;stroke-miterlimit:10;stroke-width:2;stroke-linejoin:round;stroke-linecap:round"><circle cx="32" cy="32" r="30" transform="matrix(.70710678 -.70710678 .70710678 .70710678 -13.254834 32)"/><path d="m20.998 32.015 8.992 8.992 16.011-16.011"/></g></svg></span><span class="pill__text text-size--small">En stock</span></span>`,
cart_general_error: `Hay algunos errores. Actualiza la página y vuelve a intentarlo.`,
cart_announcement: `Artículo agregado a tu carrito`,
cart_discount_code_error: `<span class="alert alert--error text-size--small">El código de descuento no se puede aplicar a tu carrito</span>`,
store_selector_title_default: `¿Recogiendo?`,
store_selector_title_selected: `Mi tienda`,
store_selector_label: `Seleccionar tienda`,
shipping_calculator_results_heading_one: `Hay una tarifa de envío para tu dirección`,
shipping_calculator_results_heading_multiple: `Tarifas de envío para tu dirección`,
shipping_notice_remaining_to_free: `Te encuentras a {{ remaining_amount }} del envío gratuito.`,
shipping_notice_eligible_for_free: `¡Eres elegible para el envío gratuito!`,
slider_next_button_label: `Siguiente diapositiva`,
slider_prev_button_label: `Diapositiva anterior`,
slider_thumbnail_label: `Mostrar diapositiva {{ count }}`
},
symbols: {
zoom_out: `<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="9.08008" cy="9" r="8" stroke="var(--main-text)" stroke-width="2" style="fill:none!important" /><rect x="14.2988" y="15.9062" width="1.98612" height="6.65426" transform="rotate(-45 14.2988 15.9062)" fill="#111111"/><path d="M13.0801 8V10L5.08008 10L5.08008 8L13.0801 8Z" fill="#111111"/></svg>`,
zoom_loader: `<svg class="zoom__loader-element" viewBox="25 25 50 50"><circle cx="50" cy="50" r="20" fill="none" stroke-width="4"/></svg>`,
close: `<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17 1L1 17" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M1 1L17 17" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>`,
toggle_pack: `<span class="toggle__icon"><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></span>`,
toggle_pack_alternate: `<span class="toggle__icon-alternate"><span class="toggle__icon--plus"><svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M5 0H7V12H5V0Z" fill="black" style="stroke:none"/><path d="M12 5V7H0L1.19209e-07 5L12 5Z" fill="black" style="stroke:none"/></svg></span><span class="toggle__icon--minus"><svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 5V7H0L1.19209e-07 5L12 5Z" fill="black" style="stroke:none"/></svg></span></span>`
},
predictive_search_enabled: "true",
predictive_search_fields: "title,product_type,variants.title,vendor,variants.sku,variants.barcode,tag",
predictive_search_script: "//www.terra-ross.es/cdn/shop/t/27/assets/component-predictive-search.js?v=46222849696953245241786777725",
predictive_search_placeholder: `<div class="search-results"><div class="search-block"><a class="search-item search-item--blank"><div class="thumbnail"></div><div class="content"><span class="title"></span><span class="caption"></span></div></a><a class="search-item search-item--blank"><div class="thumbnail"></div><div class="content"><span class="title"></span><span class="caption"></span></div></a><a class="search-item search-item--blank"><div class="thumbnail"></div><div class="content"><span class="title"></span><span class="caption"></span></div></a></div></div>`
},
functions: {
eventDispatcher: (eventType, detail) => {
document.dispatchEvent(new CustomEvent(eventType, {
bubbles: true,
detail: detail
}));
}
}
}
</script>
<script src="//www.terra-ross.es/cdn/shop/t/27/assets/component-quick-buy.js?v=75831469797571166711786777729" defer></script>
<script src="//www.terra-ross.es/cdn/shop/t/27/assets/component-pickup-availability.js?v=59313063598970683791786777724" defer></script>
<script src="//www.terra-ross.es/cdn/shop/t/27/assets/component-slider.js?v=112308150742794689361789206638" defer></script><sidebar-drawer id="site-cart-sidebar" class="sidebar sidebar--right cart-is-empty " tabindex="-1" role="dialog" aria-modal="true" aria-hidden="true" data-cart-items="0" style="display:none" data-js-site-cart-sidebar>
<div class="sidebar__header">
<span class="sidebar__title h5">
Carrito
(<span data-header-cart-count>0</span>)
</span>
<button class="sidebar__close" data-js-close>
<span class="visually-hidden">Cerrar barra lateral</span>
<span aria-hidden="true" aria-role="img"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17 1L1 17" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M1 1L17 17" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></span>
</button>
</div>
<div class="sidebar__body sidebar__body--flex">
<div class="sidebar__body-top">
<div class="cart-form"><cart-form id="AjaxCartForm"><shipping-notice
class="cart-notice hide-if-empty-cart"
data-free-shipping="14900"
data-cart-total-amount="0"
></shipping-notice>
<script src="//www.terra-ross.es/cdn/shop/t/27/assets/component-shipping-notice.js?v=126034721894511375741786777732" defer></script><form action="/cart" method="post" novalidate class="cart__form cart--empty " id="cart">
<div class="cart-holder" data-items="0">
<div class="cart__items">Tu Carrito está vacío.
</div>
</div>
</form>
<span class="cart__count hidden" aria-hidden="true" data-cart-count>0</span>
<span class="cart__total hidden" aria-hidden="true" data-cart-total>€0,00</span>
</cart-form><a href="/collections/all" class="cart-continue button button--fullwidth button--solid button--regular">
Seguir Navegando
</a>
</div><cart-recommendations id="cart-recommendations" data-section="cart-recommendations" data-limit="6"></cart-recommendations>
<script src="//www.terra-ross.es/cdn/shop/t/27/assets/component-cart-recommendations.js?v=26923185994243591031786777716" defer></script></div><div class="sidebar__body-bottom hide-if-empty-cart"><div class="cart__instructions cart-detail--collapsible-true"><details class="cart__accordion-details">
<summary class="align-content align-content--vertical-middle">
<span class="cart__accordion-title cart__note-title">
Instrucciones del pedido
</span>
<span class="cart__accordion-icon cart__note-icon" aria-hidden="true"><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></span>
</summary><div class="form-field">
<cart-note>
<label for="CartDrawer-Note" class="visually-hidden">
Instrucciones del pedido
</label>
<textarea id="CartDrawer-Note" name="note"></textarea>
</cart-note>
</div></details></div><div class="cart-detail--collapsible-true">
<details class="cart__accordion-details">
<summary class="align-content align-content--vertical-middle">
<span class="cart__accordion-title cart__discount-title">
Códigos de descuento
</span>
<span class="cart__accordion-icon cart__discount-icon" aria-hidden="true"><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></span>
</summary><div class="form-field">
<cart-discounts>
<label for="CartPage-Discount" class="visually-hidden">
Códigos de descuento
</label>
<form class="cart__coupons-form">
<input id="CartPage-Discount" name="discount" type="text" data-js-discount-input>
<button type="submit" id="cartDiscountSubmit" class="button button--small button--small-mobile button--solid" data-js-discount-submit>
Aplicar
</button>
</form><div class="cart__coupons-error" data-js-discount-error></div>
<div class="cart__coupons-codes" data-js-discount-codes></div>
</cart-discounts>
</div></details></div></div></div><div class="sidebar__footer hide-if-empty-cart"
><div id="AjaxCartSubtotal"><div class="cart__details
cart--empty
"><div class="cart__total">
<span>Total</span>
<strong class="text-size--heading">€0,00</strong>
</div><div data-js-discount-codes style="display: none !important"></div><div class="cart__shipping text-color--opacity text-size--small">Impuesto incluido. Los <a href="/policies/shipping-policy">gastos de envío</a> se calculan en la pantalla de pago.</div><invoice-request
data-value="No"
style="display: block; margin-bottom: 1rem;"
>
<div class="agree-to-terms gutter-top--small">
<input
type="hidden"
name="attributes[Invoice requested]"
value="No"
form="cart"
data-invoice-value
>
<input
type="checkbox"
id="InvoiceRequest-sidebar"
class="styled-checkbox"
data-invoice-checkbox
aria-describedby="InvoiceRequestError-sidebar"
>
<label
for="InvoiceRequest-sidebar"
class="text-size--small"
>
I would like an invoice
</label>
</div>
<p
id="InvoiceRequestError-sidebar"
class="text-size--small"
role="alert"
data-invoice-error
hidden
>
Your choice could not be saved. Please try again.
</p>
</invoice-request><terms-checkbox>
<div class="agree-to-terms gutter-top--small">
<input type="checkbox" id="AgreeToTos" class="styled-checkbox" required>
<label for="AgreeToTos" class="text-size--small">
I agree to the terms and conditions
</label>
</div>
</terms-checkbox>
<script src="//www.terra-ross.es/cdn/shop/t/27/assets/component-terms-checkbox.js?v=128965975763693775411790940747" defer></script><div class="flex-buttons"><a
id="ViewCart"
href="/cart"
class="button button--regular button--outline"
>
Editar Carrito
</a><button
id="CheckOut"
class="button button--regular button--solid"
type="submit"
name="checkout"
form="cart"
disabled
>
Finalizar compra
</button></div></div>
</div></div>
</sidebar-drawer>
<script>
new MutationObserver((mutations, observer) => {
if ( document.getElementById('cart').classList.contains('cart--empty') ) {
document.getElementById('site-cart-sidebar').classList.add('cart-is-empty');
} else {
document.getElementById('site-cart-sidebar').classList.remove('cart-is-empty');
}
}).observe(document.querySelector('.cart-form'), {
attributes: false, childList: true, subtree: true
})
</script><link rel="stylesheet" href="//www.terra-ross.es/cdn/shop/t/27/assets/component-cart.css?v=113166854762746971021786777716" media="print" onload="this.media='all'">
<script src="//www.terra-ross.es/cdn/shop/t/27/assets/component-quantity-selector.js?v=107340247695255654671786777728" defer></script><script src="//www.terra-ross.es/cdn/shop/t/27/assets/component-cart.js?v=25031518693597556841786777716" defer></script><link rel="stylesheet" href="//www.terra-ross.es/cdn/shop/t/27/assets/component-sidebar.css?v=112015281036912637291786777732" media="print" onload="this.media='all';">
<script src="//www.terra-ross.es/cdn/shop/t/27/assets/section-header.js?v=140053913013082127551789060149" defer></script><div class="site-overlay" style="display:none"></div>
<link rel="stylesheet" href="//www.terra-ross.es/cdn/shop/t/27/assets/section-main-product.css?v=58460561246436703791789103194" media="print" onload="this.media='all';"><span id="go-top" class="main-go-top"
onclick="window.scrollTo({ top: 0, behavior: 'smooth' })"
>
<span class="visually-hidden">Top</span>
<span class="main-go-top__icon" aria-hidden="true"><svg width="13" height="8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.414.086 7.9 6.57 6.485 7.985 0 1.5 1.414.086Z" fill="#000"/><path d="M12.985 1.515 6.5 8 5.085 6.586 11.571.101l1.414 1.414Z" fill="#000"/></svg></span>
</span>
<script>
window.addEventListener('scroll', ()=>{
if ( window.scrollY > 100 ) {
document.getElementById('go-top').classList.add('show');
} else {
document.getElementById('go-top').classList.remove('show');
}
}, {passive: true});
</script><script>
document.querySelectorAll('.rte a img').forEach(elm=>{
elm.parentNode.style.border = 'none';
});
</script><script src="//www.terra-ross.es/cdn/shop/t/27/assets/instantpage.js?v=99963444960178710701786777738" type="module" defer></script><style>
.lazy-image img,
.lazy-image img:hover {
transition: all 0ms !important;
opacity: 1 !important;
transform: none !important;
}
.no-touchevents a:hover .lazy-image.lazy-image--zoom-animation img,
.no-touchevents .card--animation:hover .lazy-image.lazy-image--animation img {
top: 0;
left: 0;
height: 100%;
width: 100%;
object-fit: cover;
}
</style>
<script type="module">
import * as SE from 'https://cdn.shopify.com/storefront/standard-events.js';
window.Shopify = window.Shopify || {};
window.Shopify.StandardEvents = SE;
const dispatchPageView = () => {
document.dispatchEvent(new SE.PageViewEvent({
page: {
template: "article",
title: document.title,
url: window.location.href
}
}));
};
if (document.readyState === 'complete') {
dispatchPageView();
} else {
document.addEventListener('DOMContentLoaded', dispatchPageView, { once: true });
}
</script>
<script>
document.addEventListener('DOMContentLoaded', () => {
if ( ! window.Shopify || ! window.Shopify.actions ) return;
Shopify.actions.openCart.configure({
handler() {
const drawer = document.getElementById('site-cart-sidebar');
if ( drawer && typeof drawer.show === 'function' ) {
drawer.show();
} else {
window.location.href = window.KROWN.settings.routes.cart_url;
}
}
});
Shopify.actions.updateCart.configure({
eventTarget: () => document.getElementById('AjaxCartForm') || document.body,
async handler(defaultHandler) {
const result = await defaultHandler();
await fetch('?section_id=helper-cart')
.then(response => response.text())
.then(text => {
if ( document.getElementById('AjaxCartForm') && typeof window.renderHelperCart === 'function' ) {
window.renderHelperCart(text);
} else {
const sectionInnerHTML = new DOMParser().parseFromString(text, 'text/html');
const cartCount = sectionInnerHTML.querySelector('[data-cart-count]');
const cartTotal = sectionInnerHTML.querySelector('[data-cart-total]');
if ( cartCount ) {
document.querySelectorAll('[data-header-cart-count]').forEach(elm => elm.textContent = cartCount.textContent);
}
if ( cartTotal ) {
document.querySelectorAll('[data-header-cart-total]').forEach(elm => elm.textContent = cartTotal.textContent);
}
}
})
.catch(error => console.warn('standard-events: updateCart refresh', error));
return result;
}
});
});
</script>
<!-- Customisation-->
<script>
document.addEventListener('DOMContentLoaded', function () {
const maximumCollapsedHeight = 100;
const headingGap = 12;
const reducedMotion = window.matchMedia(
'(prefers-reduced-motion: reduce)'
).matches;
/*
* Calculates the collapsed height for each collection description.
*
* Rules:
* - Short descriptions <= 180px remain fully visible.
* - If introductory paragraphs exist before the first H2,
* collapse immediately before that H2.
* - Never exceed 180px.
* - Older descriptions that begin directly with an H2
* keep the standard 180px behavior until their content
* is migrated to the new H1 → intro → H2 structure.
*/
const getCollapsedHeight = function (content) {
const firstHeading = content.querySelector('h2');
if (!firstHeading) {
return maximumCollapsedHeight;
}
let sibling = firstHeading.previousElementSibling;
let hasIntroParagraph = false;
while (sibling) {
if (
sibling.tagName === 'P' &&
sibling.textContent.trim() !== ''
) {
hasIntroParagraph = true;
break;
}
sibling = sibling.previousElementSibling;
}
if (!hasIntroParagraph) {
return maximumCollapsedHeight;
}
const headingTop = firstHeading.offsetTop;
if (headingTop <= 0) {
return maximumCollapsedHeight;
}
return Math.min(
maximumCollapsedHeight,
Math.max(0, headingTop - headingGap)
);
};
const prepareDescription = function (wrapper) {
const content = wrapper.querySelector(
'.collection-description-content'
);
const button = wrapper.querySelector(
'.collection-description-toggle'
);
if (!content || !button) {
return;
}
const fullHeight = content.scrollHeight;
/*
* Short descriptions do not need Read More.
*/
if (fullHeight <= maximumCollapsedHeight) {
content.classList.remove('is-collapsed');
content.style.maxHeight = 'none';
content.style.removeProperty(
'--collection-collapsed-height'
);
button.hidden = true;
button.setAttribute('aria-expanded', 'true');
return;
}
const collapsedHeight =
getCollapsedHeight(content);
content.dataset.collapsedHeight =
collapsedHeight;
content.style.setProperty(
'--collection-collapsed-height',
collapsedHeight + 'px'
);
button.hidden = false;
/*
* Preserve expanded state when recalculating after
* resize, font loading or translation changes.
*/
if (
button.getAttribute('aria-expanded') === 'true' &&
!content.classList.contains('is-collapsed')
) {
content.style.maxHeight = 'none';
return;
}
content.classList.add('is-collapsed');
content.style.maxHeight =
collapsedHeight + 'px';
button.setAttribute(
'aria-expanded',
'false'
);
};
const prepareAllDescriptions = function () {
document
.querySelectorAll(
'.collection-description-wrapper'
)
.forEach(function (wrapper) {
prepareDescription(wrapper);
});
};
prepareAllDescriptions();
/*
* Recalculate after full page load because fonts,
* images or translation scripts may change text flow.
*/
window.addEventListener(
'load',
prepareAllDescriptions
);
/*
* T Lab and other storefront scripts can update
* translated text shortly after DOMContentLoaded.
*/
window.setTimeout(
prepareAllDescriptions,
750
);
/*
* Recalculate on responsive layout changes.
*/
let resizeTimer;
window.addEventListener(
'resize',
function () {
window.clearTimeout(resizeTimer);
resizeTimer = window.setTimeout(
prepareAllDescriptions,
150
);
}
);
document.addEventListener(
'click',
function (event) {
const button = event.target.closest(
'.collection-description-toggle'
);
if (!button) {
return;
}
const wrapper = button.closest(
'.collection-description-wrapper'
);
if (!wrapper) {
return;
}
const content = wrapper.querySelector(
'.collection-description-content'
);
if (!content) {
return;
}
const collapsedHeight =
parseFloat(
content.dataset.collapsedHeight
) || maximumCollapsedHeight;
/*
* EXPAND
*/
if (
content.classList.contains(
'is-collapsed'
)
) {
const fullHeight =
content.scrollHeight;
content.style.maxHeight =
fullHeight + 'px';
content.classList.remove(
'is-collapsed'
);
button.setAttribute(
'aria-expanded',
'true'
);
if (reducedMotion) {
content.style.maxHeight =
'none';
return;
}
let fallbackTimer;
const finishExpandedState =
function () {
if (
!content.classList.contains(
'is-collapsed'
)
) {
content.style.maxHeight =
'none';
}
content.removeEventListener(
'transitionend',
onExpanded
);
if (fallbackTimer) {
window.clearTimeout(
fallbackTimer
);
}
};
const onExpanded =
function (transitionEvent) {
if (
transitionEvent.target ===
content &&
transitionEvent.propertyName ===
'max-height'
) {
finishExpandedState();
}
};
content.addEventListener(
'transitionend',
onExpanded
);
fallbackTimer =
window.setTimeout(
finishExpandedState,
600
);
}
/*
* COLLAPSE
*/
else {
content.style.maxHeight =
content.scrollHeight + 'px';
void content.offsetHeight;
content.classList.add(
'is-collapsed'
);
content.style.maxHeight =
collapsedHeight + 'px';
button.setAttribute(
'aria-expanded',
'false'
);
}
}
);
});
</script>
<style>
.collection-description-wrapper {
position: relative;
}
.collection-description-content {
position: relative;
overflow: hidden;
transition:
max-height .45s cubic-bezier(.4, 0, .2, 1);
}
/*
* SEO / UX:
* meaningful introductory content remains visible
* immediately, without depending on JavaScript.
*/
.collection-description-content.is-collapsed {
max-height: var(
--collection-collapsed-height,
100px
);
}
/*
* Fade is visible only in the collapsed state.
*/
.collection-description-content.is-collapsed::after {
content: '';
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 50px;
pointer-events: none;
background: linear-gradient(
to bottom,
var(--color-opacity-background-main),
var(--color-background-main)
);
}
/*
* The button itself uses the native Local theme
* button classes defined in the section markup.
*/
.collection-description-toggle {
margin-top: 18px;
}
.collection-description-toggle__less {
display: none;
}
.collection-description-toggle[aria-expanded="true"]
.collection-description-toggle__more {
display: none;
}
.collection-description-toggle[aria-expanded="true"]
.collection-description-toggle__less {
display: inline;
}
.collection-description-toggle[hidden] {
display: none !important;
}
@media screen and (max-width: 767px) {
.collection-description-toggle {
margin-top: 16px;
}
}
@media (prefers-reduced-motion: reduce) {
.collection-description-content,
.collection-description-toggle {
transition: none;
}
}
</style>
<!--End Customisation-->
<script>
/* Terra Ross: add missing alt to Judge.me verified badge */
(() => {
const selector = '.jdgm-verified-badge__image img';
function fixBadge(root) {
if (!(root instanceof Element)) return;
const images = root.matches(selector)
? [root]
: root.querySelectorAll(selector);
images.forEach((img) => {
if (!img.hasAttribute('alt')) {
img.setAttribute(
'alt',
'Judge.me verified customer reviews'
);
}
});
}
fixBadge(document.body);
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (mutation.type === 'attributes') {
fixBadge(mutation.target);
} else {
mutation.addedNodes.forEach(fixBadge);
}
});
});
observer.observe(document.body, {
childList: true,
subtree: true,
attributes: true,
attributeFilter: ['alt']
});
})();
</script>
<style>
/* Target the teaser close button, without changing modal close buttons.
The sibling selector uses the teaser class seen in the supplied report
and does not depend on the language of the accessible button label. */
[class*="Teaser-pointer-"] ~ button.klaviyo-close-form {
box-sizing: border-box !important;
width: 44px !important;
height: 44px !important;
min-width: 44px !important;
min-height: 44px !important;
max-width: none !important;
max-height: none !important;
padding: 10px !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
}
[class*="Teaser-pointer-"] ~ button.klaviyo-close-form svg {
width: 20px !important;
height: 20px !important;
flex-shrink: 0;
}
[class*="Teaser-pointer-"] ~ button.klaviyo-close-form:focus-visible {
outline: 2px solid #315643 !important;
outline-offset: 2px !important;
}
</style>
<script>
(() => {
if (window.terraRossVideoTitlesInstalled) return;
window.terraRossVideoTitlesInstalled = true;
const selector = '.jdgm-videos-carousel iframe';
function labelFrame(frame) {
if (!frame.matches(selector)) return;
if ((frame.getAttribute('title') || '').trim()) return;
const carousel = frame.closest('.jdgm-videos-carousel');
const card = frame.closest('.jdgm-card');
const cards = Array.from(carousel.querySelectorAll('.jdgm-card'));
const index = cards.indexOf(card);
const suffix = index >= 0 ? ' ' + (index + 1) : '';
frame.setAttribute('title', 'Terra Ross customer video review' + suffix);
}
function scan(root) {
if (!(root instanceof Element)) return;
if (root.matches(selector)) labelFrame(root);
root.querySelectorAll(selector).forEach(labelFrame);
}
scan(document.body);
// Handle app content added later. Only inspect added subtrees, not the
// entire document on every mutation. Title writes are idempotent.
const observer = new MutationObserver(records => {
records.forEach(record => {
if (record.type === 'attributes') {
if (record.target.matches(selector)) labelFrame(record.target);
} else {
record.addedNodes.forEach(scan);
}
});
});
observer.observe(document.body, {
childList: true,
subtree: true,
attributes: true,
attributeFilter: ['title']
});
})();
</script>
<script>
/* Terra Ross: keep Judge.me accessible names aligned with visible labels. */
(() => {
'use strict';
if (window.terraRossJudgeMeLabelFix) return;
window.terraRossJudgeMeLabelFix = true;
const selector = 'a.jm-average-rating-display, button.jm-voting-controls__button';
const labels = new WeakMap();
const normalize = (value) => (value || '').replace(/\s+/g, ' ').trim();
function fixLabel(element) {
if (!element.isConnected || element.hasAttribute('aria-labelledby')) return;
// The rating link already contains its meaningful accessible name.
// Let the browser derive it from the content instead of duplicating it.
if (element.matches('a.jm-average-rating-display')) {
if (element.hasAttribute('aria-label')) element.removeAttribute('aria-label');
return;
}
const visible = normalize(element.innerText);
const current = normalize(element.getAttribute('aria-label'));
// Leave unlabelled controls and empty/hidden controls to the widget.
if (!visible || !current) return;
const previous = labels.get(element);
const original = previous && current === previous.applied
? previous.original : current;
// Retain the action description, including helpful / not helpful.
const next = original.toLocaleLowerCase().includes(visible.toLocaleLowerCase())
? original : visible + ' — ' + original;
labels.set(element, { original: original, applied: next });
if (current !== next) element.setAttribute('aria-label', next);
}
function scan(root) {
if (!(root instanceof Element)) return;
if (root.matches(selector)) fixLabel(root);
root.querySelectorAll(selector).forEach(fixLabel);
}
function start() {
scan(document.body);
const observer = new MutationObserver((mutations) => {
const changed = new Set();
mutations.forEach((mutation) => {
const target = mutation.target instanceof Element
? mutation.target : mutation.target.parentElement;
const control = target && target.closest(selector);
if (control) changed.add(control);
if (mutation.type === 'childList') mutation.addedNodes.forEach(scan);
});
changed.forEach(fixLabel);
});
observer.observe(document.body, {
childList: true,
characterData: true,
subtree: true,
attributes: true,
attributeFilter: ['aria-label']
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', start, { once: true });
} else {
start();
}
})();
</script>
<script src="//www.terra-ross.es/cdn/shop/t/27/assets/component-invoice-request.js?v=159716906997312218141791782194" defer></script>
<style> span.powered-by-shopify {display: none;} .product-item__text.text-size--xsmall.text-line-height--medium.equalize-white-space {min-height: 28px;} .restock-rocket-button.restock-rocket-button-collection {margin-top: 10px !important;} .product-item__icons.restock-rocket-collection-rendered {margin-top: 12px;} .product-item__text {justify-content: end;} .css-slider-container .product-item:has([href*="shipping-insurance"]) {display: none !important;} .shop-the-look__slider .star-rating__caption {display: block;} @media screen and (max-width: 474px) {.palm-hide {display: block !important; }} @media screen and (min-width: 1024px) {.site-nav.style--classic nav > ul > li:first-child > .submenu.normal-menu {width: max-content; min-width: 330px; max-width: none; } .site-nav.style--classic nav > ul > li:first-child > .submenu.normal-menu .menu-link {white-space: nowrap; }} @media screen and (max-width: 767px) {footer .footer-item__menu, footer .footer-item__menu > span {min-width: 0; max-width: 100%; } footer .footer-item__menu a {white-space: normal; overflow-wrap: anywhere; }} /* Междуредие за статиите в падащото търсене */.search-results-container a[href*="/blogs/"] {display: block; line-height: 1.45 !important;} </style>
<div id="shopify-block-AWitpMC8rZDJCSlg4R__15573056287721514228" class="shopify-block shopify-app-block json-ld-for-seo"><!-- generated: 2026-10-21 17:26:44 +0300 -->
<!-- BEGIN app snippet: json_ld_for_seo_web_page --><script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"@id": "https:\/\/www.terra-ross.es\/blogs\/truffle-guides\/types-of-black-and-white-truffles-flavor-season-culinary-uses#json-ld-for-seo-webpage",
"url": "https:\/\/www.terra-ross.es\/blogs\/truffle-guides\/types-of-black-and-white-truffles-flavor-season-culinary-uses",
"image": "https:\/\/www.terra-ross.es\/cdn\/shop\/articles\/black-and-white-truffles-1_23fc89c1-f5d1-415c-b6b7-58b930c51e12.webp?v=1790063019\u0026width=1536",
"primaryImageOfPage": "https:\/\/www.terra-ross.es\/cdn\/shop\/articles\/black-and-white-truffles-1_23fc89c1-f5d1-415c-b6b7-58b930c51e12.webp?v=1790063019\u0026width=1536",
"dateCreated": "2026-06-26T04:37:35+0300",
"datePublished": "2026-06-26T06:06:01+0300"
}
</script>
<!-- END app snippet -->
<!-- wp 0 --><!-- BEGIN app snippet: json_ld_for_seo_organization -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "OnlineStore","@id": "https:\/\/www.terra-ross.com\/#org",
"name": "Terra Ross",
"url": "https:\/\/www.terra-ross.es",
"description": "Compra trufas frescas negras y blancas de temporada. Consulta precios y disponibilidad. Envío exprés a España en embalaje isotérmico.",
"telephone": "+49 177 1592737",
"logo": "https:\/\/www.terra-ross.com\/cdn\/shop\/files\/new-logo-1_392713c8-060a-4ce1-9c90-6501b655ab28.png?v=1742573686",
"image": "https:\/\/www.terra-ross.com\/cdn\/shop\/files\/new-logo-1_392713c8-060a-4ce1-9c90-6501b655ab28.png?v=1742573686",
"sameAs": ["","https:\/\/www.facebook.com\/people\/Terra-Ross-Truffles\/61575664750779\/"],
"brand": {
"@type": "Brand",
"name": "Terra Ross"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "3 Calle Mebelna",
"addressLocality": "Razgrad",
"addressRegion": "Razgrad",
"postalCode": "7200",
"addressCountry": "BG"
},
"contactPoint": [
{
"@type": "ContactPoint",
"telephone": "+49 177 1592737",
"email": "[email protected]"
}
]}
</script>
<!-- END app snippet --> <!-- o 1 --><!-- BEGIN app snippet: json_ld_for_seo_product_group --><!-- END app snippet -->
<!-- p 0 --><!-- BEGIN app snippet: json_ld_for_seo_article -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"@id": "https:\/\/www.terra-ross.es\/blogs\/truffle-guides\/types-of-black-and-white-truffles-flavor-season-culinary-uses#article",
"url": "https:\/\/www.terra-ross.es\/blogs\/truffle-guides\/types-of-black-and-white-truffles-flavor-season-culinary-uses",
"mainEntityOfPage": "https:\/\/www.terra-ross.es\/blogs\/truffle-guides\/types-of-black-and-white-truffles-flavor-season-culinary-uses",
"name": "Tipos de trufas blancas y negras: sabor, temporada y usos",
"author": {
"@type": "Person",
"name": "Rostislav Savov",
"url": "https:\/\/www.terra-ross.com\/pages\/about-us-terra-ross-ltd-your-trusted-partner"
},
"publisher": {
"@type": "Organization",
"logo": {
"@type": "ImageObject",
"url": "https:\/\/www.terra-ross.com\/cdn\/shop\/files\/new-logo-1_392713c8-060a-4ce1-9c90-6501b655ab28.png?v=1742573686"
},
"name": "Terra Ross"
},
"headline": "Tipos de trufas blancas y negras: sabor, temporada y usos",
"image": {
"@type": "ImageObject","url": "https:\/\/www.terra-ross.es\/cdn\/shop\/articles\/black-and-white-truffles-1_23fc89c1-f5d1-415c-b6b7-58b930c51e12.webp?v=1790063019\u0026width=1536"
},
"datePublished": "2026-06-26 06:06:01 +0300",
"dateModified": "2026-10-02 17:49:08 +0300",
"description": "Última actualización: 11 de julio de 2026\n\nRespuesta rápida\nLas trufas negras y blancas son grupos comerciales amplios definidos por el color, no nombres científicos precisos de especies. Las trufas blancas pueden incluir Tuber magnatum y Tuber borchii. Las trufas negras pueden incluir Tuber melanosporum, Tuber aestivum, Tuber uncinatum, Tuber brumale, Tuber macrosporum y Tuber mesentericum. Cada una tiene su propia temporada, aroma, uso y valor.\nPor lo general, las trufas blancas se laminan sobre platos calientes ya terminados, mientras que varias especies negras toleran un calentamiento suave. La denominación científica exacta, la madurez y la frescura importan más que el color por sí solo, y no debe esperarse que dos ejemplares se comporten de forma idéntica.\n\n\n¿Qué significan las trufas negras y blancas?\nLa terminología del color es útil comercialmente porque ofrece a los compradores una orientación rápida, pero no basta para la identificación. Dos trufas pálidas pueden pertenecer a especies diferentes, aparecer en temporadas distintas y ofrecer aromas diferentes. Lo mismo ocurre con las trufas oscuras.\nTuber magnatum y Tuber borchii son especies blancas distintas. Tuber melanosporum, Tuber brumale, Tuber aestivum y Tuber indicum son especies oscuras o categorías comerciales distintas. El color exterior por sí solo no permite autenticar ninguna de ellas. Por ello, la denominación comercial transparente debe ir acompañada del nombre científico, especialmente en compras de productos de alto valor, descripciones de menús y producción alimentaria.\nPara conocer la biología del crecimiento subterráneo y la simbiosis, consulta Guía de la trufa: qué son y cómo crecen. Esta página se centra en la comparación culinaria.\n\n\nPrincipales especies de trufas negras y blancas\n\nPrincipales especies de trufas negras y blancas, temporadas, aromas y usos culinarios\n\nGrupo de color\nNombre común\nNombre científico\nTemporada general\nCarácter aromático general\nMejor uso culinario\n\n\n\n\nBlanca\nTrufa blanca o blanca de Alba\nTuber magnatum\nPrincipalmente desde el otoño hasta principios del invierno\nPotencialmente intensa, con matices de azufre, ajo, miel, queso, tierra y fermentación\nLaminada sobre pasta caliente ya terminada, risotto, huevos, patatas o queso suave\n\n\nBlanca\nTrufa blanca de primavera o bianchetto\nTuber borchii\nPrincipalmente desde el invierno hasta la primavera\nAjo, tierra, queso y, en ocasiones, notas aromáticas penetrantes\nPasta, huevos, salsas, mantequilla y preparaciones cocinadas adecuadas\n\n\nNegra\nTrufa negra o del Périgord\nTuber melanosporum\nPrincipalmente en invierno\nPosibles notas complejas terrosas, de suelo forestal, parecidas al cacao, de frutos secos y sabrosas\nEn láminas, mantequilla, salsas, rellenos, pasta, huevos, aves y carne\n\n\nNegra\nTrufa de verano\nTuber aestivum\nPrincipalmente desde finales de primavera hasta el verano o principios de otoño\nGeneralmente suave, con notas de frutos secos, terrosas y delicadamente sabrosas\nPasta, huevos, patatas, pizza, ensaladas y salsas ligeras\n\n\nNegra\nTrufa de Borgoña o de otoño\n\nTuber aestivum \/ Tuber uncinatum en el uso comercial\nPrincipalmente en otoño\nA menudo más desarrollada que la producción de principios de verano, pero variable\nPasta otoñal, huevos, mantequilla, queso suave y menús de restaurante\n\n\nNegra\nTrufa negra de invierno\nTuber brumale\nPrincipalmente en invierno\nPosibles notas terrosas, almizcladas y fermentadas\nCocción, salsas, mantequilla y formatos procesados adecuados\n\n\nNegra\nTrufa negra lisa\nTuber macrosporum\nPrincipalmente en otoño\nCarácter pronunciado de ajo y compuestos relacionados con el azufre en algunos ejemplares\nPlatos de temporada especializados adecuados para su aroma intenso\n\n\nNegra\nTrufa de Bagnoli\nTuber mesentericum\nPrincipalmente de otoño a invierno\nCarácter fenólico o similar al alquitrán, distintivo e intenso, en algunos ejemplares\nMaridaje cuidadoso por parte de cocineros que entienden su perfil\n\n\n\nLas descripciones de temporada son aproximadas. El clima, el origen, las condiciones meteorológicas, la madurez y el año afectan a la disponibilidad real, mientras que el aroma individual varía dentro de cada especie.\n\n\nTipos de trufa blanca\nTuber magnatum\nTuber magnatum se conoce comúnmente como trufa blanca, trufa blanca italiana o trufa blanca de Alba. Generalmente se asocia con el comercio de otoño y principios de invierno. Los ejemplares maduros pueden presentar matices de azufre, ajo, miel, queso, tierra y fermentación cálida, pero no se garantiza ninguna combinación exacta.\nEs mejor laminarla sobre platos calientes ya terminados. El calor intenso y prolongado puede desperdiciar su aroma altamente volátil, y la calidad depende mucho de la madurez, la manipulación y un servicio rápido. Para obtener información más detallada sobre la especie, consulta la Guía de la trufa blanca.\nTuber borchii\nTuber borchii, la trufa blanca de primavera o bianchetto, suele aparecer más adelante en el comercio de invierno y primavera. Puede presentar notas de ajo, tierra, queso y aromas más pungentes. Es una especie distinta legítima, no una imitación inferior de Tuber magnatum.\nSegún su madurez y formato, puede combinar bien con pasta, huevos, salsas, mantequilla y preparaciones cocinadas. Un carácter intenso de ajo o azufre no debe confundirse automáticamente con deterioro; también deben evaluarse la firmeza, la humedad y el estado visible. Para conocer la taxonomía a nivel de especie, la morfología, la ecología y los límites de identificación, consulta la Guía de la especie Tuber borchii.\n\n\nTipos de trufa negra\nLa trufa negra, Tuber melanosporum, es una especie invernal que puede presentar notas terrosas, de suelo forestal, cacao, frutos secos y sabores umami. Es adecuada para laminar y cocinar suavemente. La Guía de la trufa negra explica en profundidad su biología e identidad.\nLa trufa de verano, Tuber aestivum, está disponible durante la temporada cálida y suele tener un carácter terroso y de frutos secos más suave. Combina bien con pasta, huevos, patatas, ensaladas, pizza y salsas ligeras. Suavidad no significa falta de sabor. Consulta la Guía de la trufa de verano.\nLa trufa de Borgoña u otoño, Tuber uncinatum en el uso comercial habitual, está estrechamente relacionada con el complejo Tuber aestivum o se considera científicamente parte de él. Una cosecha más tardía y una mayor madurez pueden respaldar un perfil comercial más intenso que el del material de principios de verano. Para conocer la taxonomía y la interpretación comercial del nombre Borgoña, lee la Guía de la especie Tuber uncinatum.\nLa trufa negra de invierno, Tuber brumale, es distinta de Tuber melanosporum y puede presentar un carácter terroso, almizclado o fermentado. Tuber macrosporum puede tener un pronunciado aroma a ajo y relacionado con el azufre, mientras que Tuber mesentericum puede mostrar un perfil fenólico o parecido al alquitrán intenso. Estas especies de carácter marcado deben ser elegidas por cocineros que comprendan su orientación sensorial. La preferencia personal no hace que una especie comestible correctamente etiquetada sea falsa o inválida. Para consultar información detallada sobre las especies, utiliza la Guía de la especie Tuber macrosporum y la Guía de la especie Tuber mesentericum.\n\n\n\nTuber aestivum y Tuber uncinatum\n\nLos estudios científicos a menudo han tratado estos nombres como sinónimos o como miembros de una misma especie biológica, y Tuber aestivum tiene prioridad nomenclatural en las investigaciones sobre la especie citadas. No obstante, el comercio europeo distingue el material de verano y el de Borgoña u otoño por el periodo de cosecha, la madurez, el carácter sensorial y el posicionamiento comercial.\nEsta convención comercial es útil cuando se explica con transparencia. No debe dar a entender que todos los ejemplares de principios de verano y todos los ejemplares de otoño tienen un aroma idéntico, ni la relación científica debe borrar las colecciones estacionales legítimas y las expectativas de compra.\n\n\nDiferencias de aroma y sabor\nEl aroma de la trufa proviene de combinaciones de compuestos orgánicos volátiles, incluidos compuestos de azufre, alcoholes, cetonas, aldehídos y otros volátiles. Solo una parte del perfil químico detectado contribuye directamente al aroma percibido por el ser humano. Ningún compuesto individual define toda la calidad.\nLa especie, el genotipo, la madurez, el entorno, la microbiología, el origen y la manipulación poscosecha influyen en la expresión sensorial. El sabor incluye el aroma, el gusto, la textura y la matriz alimentaria circundante. Las trufas blancas suelen generar un impacto aromático más inmediato; las trufas negras del Périgord ofrecen con frecuencia un perfil más profundo, compatible con un calor suave; las trufas de verano suelen proporcionar una expresión más ligera.\nCada ejemplar es diferente. El aroma perdido por la edad o una manipulación deficiente no puede recuperarse, y nunca deben prometerse notas sensoriales exactas basándose únicamente en el nombre de la especie.\n\n\nTemporada, madurez y calidad de la trufa\nTuber magnatum se comercializa principalmente desde el otoño hasta principios del invierno; Tuber melanosporum y Tuber brumale, principalmente en invierno; Tuber aestivum, desde finales de la primavera hasta el verano o principios del otoño; el producto comercial de Borgoña, principalmente en otoño; Tuber borchii, principalmente desde el invierno hasta la primavera; Tuber macrosporum, principalmente en otoño; y Tuber mesentericum, principalmente desde el otoño hasta el invierno.\nEl momento exacto varía según el clima, el origen, el tiempo, la madurez y el año. La temporada por sí sola no demuestra la madurez. Evalúa conjuntamente el aroma propio de la especie, la firmeza, el desarrollo de la gleba y el estado general. Las trufas inmaduras pueden ser más pálidas y menos aromáticas. La blandura excesiva, la viscosidad, la pérdida de líquido, el moho extendido o un olor reciente a podredumbre o fuertemente ácido son señales de advertencia.\nLa disponibilidad actual debe comprobarse mediante información actualizada sobre productos o colecciones, en lugar de darse por supuesta según el calendario.\n\n\nUsos culinarios y calor según el tipo de trufa\nLa trufa blanca Tuber magnatum generalmente se lamina sobre pasta, risotto, huevos, patatas o queso suave calientes ya terminados. Los platos sencillos mantienen su aroma en el centro, mientras que una cocción prolongada reduce su intensidad.\nLa trufa negra Tuber melanosporum puede laminarse, rallarse o incorporarse a mantequilla, salsas, rellenos, pasta, risotto, huevos, aves y carne. Un calor suave puede realzarla, pero el calor agresivo sigue reduciendo su complejidad.\nLas trufas de verano y de Borgoña combinan bien con huevos, pasta, patatas, mantequilla, nata, pizza, ensaladas y queso suave. Utiliza suficiente producto para que su aroma más suave siga siendo perceptible y evita las salsas muy intensas. Tuber borchii y las especies oscuras especializadas deben combinarse según la intensidad y el tipo de aroma.\nLa trufa fresca puede laminarse o rallarse sobre un plato caliente ya terminado, mientras que la trufa picada puede incorporarse a mantequilla, salsas o rellenos. Hervirla, freírla o someterla a temperaturas muy altas durante mucho tiempo no conserva todo su aroma fresco. Los productos procesados se comportan de otra manera.\n\n\nCombinaciones de trufa y selección de platos\n\nTipos de trufa, combinaciones adecuadas, usos preferentes y orientación sobre el calor\n\nTipo de trufa\nCombinaciones adecuadas\nUso preferente\nOrientación sobre el calor\n\n\n\n\nTuber magnatum\nPasta, risotto, huevos, patatas, queso suave\nLaminar en la mesa o en el último momento\nAñadir después de cocinar, sobre un plato caliente ya terminado\n\n\nTuber borchii\nPasta, huevos, mantequilla, salsas\nLaminar o preparaciones cocinadas adecuadas\nAdapta el calor a la madurez y la intensidad del aroma\n\n\nTuber melanosporum\nMantequilla, huevos, pasta, patatas, aves, carne de vacuno, salsas\nLaminar, rallar, salsas y rellenos\nEs adecuada una temperatura suave; evita el calor agresivo prolongado\n\n\nTrufa de verano o de Borgoña\nHuevos, pasta, pizza, patatas, nata, ensaladas, queso suave\nPlatos de temporada accesibles y acabados\nUtiliza un calor suave y evita los ingredientes que dominen el sabor\n\n\n\nTuber macrosporum o Tuber mesentericum\n\nMantequilla, pasta, huevo o platos regionales cuidadosamente seleccionados\nUso especializado adaptado al ejemplar\nUtiliza un calor moderado y cantidades adecuadas para un aroma intenso\n\n\n\nLa elección correcta depende de la especie, la temporada, la madurez, la preferencia aromática, el plato, la presentación, el calor, la cantidad, la categoría, el presupuesto y el formato. La especie más cara no es automáticamente la más adecuada.\n\n\nCalidad, frescura y categoría comercial\nComprueba la especie exacta, la madurez, el aroma propio de la especie, la firmeza, el estado de la superficie, la humedad, el moho, las fugas, la categoría, el tamaño, la forma, la trazabilidad, las condiciones de entrega y el historial de almacenamiento. El aspecto ayuda en la evaluación, pero por sí solo no puede autenticar la especie ni la madurez.\nLos sistemas de clasificación comercial varían según el proveedor. Los ejemplares enteros atractivos son adecuados para regalar, fotografiar y laminar en la mesa. Las trufas enteras de calidad estándar para restauración son adecuadas para el servicio general. Las piezas irregulares pueden ser apropiadas para mantequilla, salsas, rellenos y producción. El tamaño por sí solo no demuestra un aroma más intenso, y las piezas no son automáticamente inferiores en identidad ni en calidad sensorial.\nCompara las ofertas solo después de confirmar la especie, el formato, la cantidad, la temporada, la entrega y el uso previsto. Para conocer los precios reales, deben utilizarse las páginas o cotizaciones actuales, en lugar de afirmaciones fijas sobre el mercado.\n\n\nCómo evitar la confusión entre especies\nLos nombres comunes son insuficientes para compras de alto valor. Tuber magnatum y Tuber borchii son especies blancas distintas. Tuber melanosporum, Tuber brumale, Tuber aestivum y Tuber indicum son especies oscuras o grupos comerciales distintos.\nEl parecido visual puede dificultar la identificación. La nomenclatura científica transparente, la trazabilidad y la documentación del proveedor son importantes, y pueden ser necesarios métodos moleculares o analíticos para una autenticación fiable. Una especie de menor precio correctamente etiquetada no es falsa; el problema es la sustitución engañosa o el etiquetado incorrecto.\n\n\nFormatos frescos, congelados, deshidratados y conservados\nLas trufas frescas ofrecen la conexión más intensa con la temporada, el ejemplar, la textura y el aroma inmediato, pero requieren un uso rápido y una refrigeración cuidadosa. Las trufas congeladas son adecuadas para platos cocinados y para planificar durante todo el año, aunque su textura y aroma difieren de los de las frescas.\nLas trufas deshidratadas son adecuadas para almacenar en la despensa y para preparaciones específicas, pero no reproducen la textura ni el aroma de las frescas. Los productos conservados y formulados incluyen trufas en salmuera, mantequilla, aceites, salsas, carpaccio y otros formatos. Su valor depende de la especie, la concentración, los ingredientes, el procesamiento y la formulación.\nEstos formatos no son equivalentes desde el punto de vista sensorial. Consulta Trufas frescas frente a trufas en conserva para una comparación detallada de los formatos.\n\n\nCómo elegir trufas para uso doméstico, en restaurantes y en comercios minoristas\nLos cocineros aficionados deben elegir una especie y una cantidad para un plan de comida inmediato y leer las indicaciones de conservación antes de hacer el pedido. Por lo general, un plato bien diseñado es mejor que repartir una trufa pequeña entre muchas porciones.\nLos chefs y restaurantes deben indicar las especies con precisión en los menús, ajustar la cantidad y la categoría a la demanda confirmada, registrar la especie, la categoría, el peso, la fecha de llegada y el estado, y asignar la responsabilidad de conservación. Los ejemplares enteros son adecuados para el servicio en mesa, mientras que las piezas irregulares apropiadas sirven para salsas y producción.\nLos minoristas y compradores de regalos deben priorizar la presentación, las instrucciones y los plazos de entrega. Las trufas frescas no deben ofrecerse sin una planificación clara del destinatario. Los profesionales de la alimentación deben distinguir entre formatos frescos, congelados, deshidratados y en conserva, y seleccionar la documentación, la categoría y la forma adecuadas para el método de producción.\nTerra Ross atiende a clientes del Reino Unido, Francia, Alemania, Suiza, Italia, España y Portugal, con especial atención a las trufas prémium, los productos de trufa y las entregas fiables para clientes particulares, chefs, restaurantes y profesionales de la alimentación.\n\n\nResumen de conservación y compra\nPor lo general, refrigera las trufas frescas aproximadamente a 2–4 °C en un recipiente limpio y apto para alimentos, con papel absorbente limpio. Cambia el papel húmedo, inspecciona cada ejemplar a diario, evita el exceso de humedad y los olores fuertes del frigorífico, limpia las trufas poco antes de usarlas y utilízalas cuanto antes. Sigue Cómo conservar las trufas frescas para consultar el método completo.\nAntes de hacer un pedido, verifica la especie científica, el nombre comercial, la temporada, la madurez, la categoría, el formato, la trazabilidad, el aroma y la descripción del estado, los plazos de entrega, las indicaciones de conservación y el uso previsto. Consulta Cómo comprar trufas frescas en línea para conocer el marco completo de compra.\n\n\nEspecies relacionadas y guías de compra\n\nGuía de la trufa: qué son y cómo crecen\nGuía de la trufa blanca\nGuía de la trufa negra\nGuía de la trufa de verano\nTrufas negras frescas: sabor, uso, conservación y compra\nGuía de conservación de la trufa blanca\nCómo conservar las trufas frescas\nCómo comprar trufas frescas por Internet\nTrufas frescas frente a trufas en conserva\n\n\n\nColecciones relacionadas\n\nTrufas frescas de temporada\nTrufas blancas Tuber magnatum\nColección de Tuber melanosporum\nColección de Tuber aestivum\nTrufas congeladas\n Productos de trufa para restaurantes y empresas \n\n\n\nEjemplos de productos relacionados\n\nTrufa blanca fresca | Tuber magnatum — Tamaño mediano\nTrufa negra fresca | Tuber melanosporum — Categoría A\n\n\n\nTemas clave sobre la trufa negra y blanca\n\nCómo crecen las trufas\nGuía de la trufa blanca\nGuía de la trufa negra\nGuía de la trufa de verano\nTrufas negras frescas\nConservación de la trufa blanca\nCómo conservar las trufas frescas\nCómo comprar trufas frescas por Internet\nTrufas frescas frente a trufas en conserva\nTrufas frescas de temporada\nTrufas congeladas\n Productos de trufa para restaurantes y empresas \n\n\n\nReferencias científicas y lecturas adicionales\n\nDescripción general del aroma de la trufa y de los principales compuestos volátiles\nAutenticación de especies de Tuber de relevancia comercial\nReconocimiento de especies y relación entre Tuber aestivum y Tuber uncinatum\nCompuestos orgánicos volátiles en los cuerpos fructíferos de Tuber magnatum\nEvaluación instrumental y sensorial del aroma de la trufa negra\nSustancias marcadoras del aroma de distintas especies de trufa\nMarcadores volátiles para diferenciar Tuber magnatum y Tuber borchii\n\n\n\nPreguntas frecuentes\n¿Cuál es la principal diferencia entre las trufas negras y blancas?\nEstos son grupos generales basados en el color que contienen distintas especies. Las especies blancas suelen utilizarse como acabados aromáticos, mientras que varias especies negras toleran un calor suave, pero la identidad exacta es importante.\n¿Es toda trufa blanca Tuber magnatum?\nNo. También existen Tuber borchii y otras especies pálidas, que deben denominarse con precisión.\n¿Es toda trufa negra Tuber melanosporum?\nNo. Las trufas de verano, de Borgoña, de invierno y otras trufas oscuras son especies o grupos comerciales distintos.\n¿Qué trufa tiene el aroma más intenso?\nLa trufa madura Tuber magnatum suele ser muy aromática, pero la intensidad varía según el ejemplar, la madurez, el estado y la manipulación. Ninguna especie gana en todos los casos individuales.\n¿Es la trufa de verano lo mismo que la trufa de Borgoña?\nLos estudios científicos suelen situar Tuber aestivum y Tuber uncinatum dentro de una misma especie o complejo, mientras que el comercio diferencia el material de verano y de Borgoña por el período de recolección, la madurez y el posicionamiento.\n¿Se pueden cocinar las trufas negras y blancas de la misma manera?\nPor lo general, no. La trufa blanca, muy aromática, suele añadirse después de cocinar, mientras que la trufa negra y algunas otras trufas oscuras pueden combinar bien con un calor suave.\n¿Cómo deben conservarse las trufas frescas?\nRefrigéralas en un recipiente limpio con papel absorbente, cambia el papel húmedo, inspecciónalas a diario y úsalas pronto sin depender de un período de conservación universal fijo.\n¿Qué deben comprobar los compradores antes de pedir trufas frescas por Internet?\nComprueba la especie científica, el nombre comercial, la temporada, la madurez, la categoría, el formato, la trazabilidad, la descripción del estado, el plazo de entrega, las indicaciones de conservación y el uso previsto.\n\n\nConclusión\nElige las trufas por especie y no solo por color. Relaciona la especie con su temporada, madurez, aroma, plato y nivel de calor; después, verifica la frescura, la categoría y la entrega. Consulta las guías detalladas de cada especie cuando necesites información más profunda. La mejor trufa es la que se adapta correctamente al uso previsto, no necesariamente la opción más cara.\n",
"articleBody": "Última actualización: 11 de julio de 2026\n\nRespuesta rápida\nLas trufas negras y blancas son grupos comerciales amplios definidos por el color, no nombres científicos precisos de especies. Las trufas blancas pueden incluir Tuber magnatum y Tuber borchii. Las trufas negras pueden incluir Tuber melanosporum, Tuber aestivum, Tuber uncinatum, Tuber brumale, Tuber macrosporum y Tuber mesentericum. Cada una tiene su propia temporada, aroma, uso y valor.\nPor lo general, las trufas blancas se laminan sobre platos calientes ya terminados, mientras que varias especies negras toleran un calentamiento suave. La denominación científica exacta, la madurez y la frescura importan más que el color por sí solo, y no debe esperarse que dos ejemplares se comporten de forma idéntica.\n\n\n¿Qué significan las trufas negras y blancas?\nLa terminología del color es útil comercialmente porque ofrece a los compradores una orientación rápida, pero no basta para la identificación. Dos trufas pálidas pueden pertenecer a especies diferentes, aparecer en temporadas distintas y ofrecer aromas diferentes. Lo mismo ocurre con las trufas oscuras.\nTuber magnatum y Tuber borchii son especies blancas distintas. Tuber melanosporum, Tuber brumale, Tuber aestivum y Tuber indicum son especies oscuras o categorías comerciales distintas. El color exterior por sí solo no permite autenticar ninguna de ellas. Por ello, la denominación comercial transparente debe ir acompañada del nombre científico, especialmente en compras de productos de alto valor, descripciones de menús y producción alimentaria.\nPara conocer la biología del crecimiento subterráneo y la simbiosis, consulta Guía de la trufa: qué son y cómo crecen. Esta página se centra en la comparación culinaria.\n\n\nPrincipales especies de trufas negras y blancas\n\nPrincipales especies de trufas negras y blancas, temporadas, aromas y usos culinarios\n\nGrupo de color\nNombre común\nNombre científico\nTemporada general\nCarácter aromático general\nMejor uso culinario\n\n\n\n\nBlanca\nTrufa blanca o blanca de Alba\nTuber magnatum\nPrincipalmente desde el otoño hasta principios del invierno\nPotencialmente intensa, con matices de azufre, ajo, miel, queso, tierra y fermentación\nLaminada sobre pasta caliente ya terminada, risotto, huevos, patatas o queso suave\n\n\nBlanca\nTrufa blanca de primavera o bianchetto\nTuber borchii\nPrincipalmente desde el invierno hasta la primavera\nAjo, tierra, queso y, en ocasiones, notas aromáticas penetrantes\nPasta, huevos, salsas, mantequilla y preparaciones cocinadas adecuadas\n\n\nNegra\nTrufa negra o del Périgord\nTuber melanosporum\nPrincipalmente en invierno\nPosibles notas complejas terrosas, de suelo forestal, parecidas al cacao, de frutos secos y sabrosas\nEn láminas, mantequilla, salsas, rellenos, pasta, huevos, aves y carne\n\n\nNegra\nTrufa de verano\nTuber aestivum\nPrincipalmente desde finales de primavera hasta el verano o principios de otoño\nGeneralmente suave, con notas de frutos secos, terrosas y delicadamente sabrosas\nPasta, huevos, patatas, pizza, ensaladas y salsas ligeras\n\n\nNegra\nTrufa de Borgoña o de otoño\n\nTuber aestivum \/ Tuber uncinatum en el uso comercial\nPrincipalmente en otoño\nA menudo más desarrollada que la producción de principios de verano, pero variable\nPasta otoñal, huevos, mantequilla, queso suave y menús de restaurante\n\n\nNegra\nTrufa negra de invierno\nTuber brumale\nPrincipalmente en invierno\nPosibles notas terrosas, almizcladas y fermentadas\nCocción, salsas, mantequilla y formatos procesados adecuados\n\n\nNegra\nTrufa negra lisa\nTuber macrosporum\nPrincipalmente en otoño\nCarácter pronunciado de ajo y compuestos relacionados con el azufre en algunos ejemplares\nPlatos de temporada especializados adecuados para su aroma intenso\n\n\nNegra\nTrufa de Bagnoli\nTuber mesentericum\nPrincipalmente de otoño a invierno\nCarácter fenólico o similar al alquitrán, distintivo e intenso, en algunos ejemplares\nMaridaje cuidadoso por parte de cocineros que entienden su perfil\n\n\n\nLas descripciones de temporada son aproximadas. El clima, el origen, las condiciones meteorológicas, la madurez y el año afectan a la disponibilidad real, mientras que el aroma individual varía dentro de cada especie.\n\n\nTipos de trufa blanca\nTuber magnatum\nTuber magnatum se conoce comúnmente como trufa blanca, trufa blanca italiana o trufa blanca de Alba. Generalmente se asocia con el comercio de otoño y principios de invierno. Los ejemplares maduros pueden presentar matices de azufre, ajo, miel, queso, tierra y fermentación cálida, pero no se garantiza ninguna combinación exacta.\nEs mejor laminarla sobre platos calientes ya terminados. El calor intenso y prolongado puede desperdiciar su aroma altamente volátil, y la calidad depende mucho de la madurez, la manipulación y un servicio rápido. Para obtener información más detallada sobre la especie, consulta la Guía de la trufa blanca.\nTuber borchii\nTuber borchii, la trufa blanca de primavera o bianchetto, suele aparecer más adelante en el comercio de invierno y primavera. Puede presentar notas de ajo, tierra, queso y aromas más pungentes. Es una especie distinta legítima, no una imitación inferior de Tuber magnatum.\nSegún su madurez y formato, puede combinar bien con pasta, huevos, salsas, mantequilla y preparaciones cocinadas. Un carácter intenso de ajo o azufre no debe confundirse automáticamente con deterioro; también deben evaluarse la firmeza, la humedad y el estado visible. Para conocer la taxonomía a nivel de especie, la morfología, la ecología y los límites de identificación, consulta la Guía de la especie Tuber borchii.\n\n\nTipos de trufa negra\nLa trufa negra, Tuber melanosporum, es una especie invernal que puede presentar notas terrosas, de suelo forestal, cacao, frutos secos y sabores umami. Es adecuada para laminar y cocinar suavemente. La Guía de la trufa negra explica en profundidad su biología e identidad.\nLa trufa de verano, Tuber aestivum, está disponible durante la temporada cálida y suele tener un carácter terroso y de frutos secos más suave. Combina bien con pasta, huevos, patatas, ensaladas, pizza y salsas ligeras. Suavidad no significa falta de sabor. Consulta la Guía de la trufa de verano.\nLa trufa de Borgoña u otoño, Tuber uncinatum en el uso comercial habitual, está estrechamente relacionada con el complejo Tuber aestivum o se considera científicamente parte de él. Una cosecha más tardía y una mayor madurez pueden respaldar un perfil comercial más intenso que el del material de principios de verano. Para conocer la taxonomía y la interpretación comercial del nombre Borgoña, lee la Guía de la especie Tuber uncinatum.\nLa trufa negra de invierno, Tuber brumale, es distinta de Tuber melanosporum y puede presentar un carácter terroso, almizclado o fermentado. Tuber macrosporum puede tener un pronunciado aroma a ajo y relacionado con el azufre, mientras que Tuber mesentericum puede mostrar un perfil fenólico o parecido al alquitrán intenso. Estas especies de carácter marcado deben ser elegidas por cocineros que comprendan su orientación sensorial. La preferencia personal no hace que una especie comestible correctamente etiquetada sea falsa o inválida. Para consultar información detallada sobre las especies, utiliza la Guía de la especie Tuber macrosporum y la Guía de la especie Tuber mesentericum.\n\n\n\nTuber aestivum y Tuber uncinatum\n\nLos estudios científicos a menudo han tratado estos nombres como sinónimos o como miembros de una misma especie biológica, y Tuber aestivum tiene prioridad nomenclatural en las investigaciones sobre la especie citadas. No obstante, el comercio europeo distingue el material de verano y el de Borgoña u otoño por el periodo de cosecha, la madurez, el carácter sensorial y el posicionamiento comercial.\nEsta convención comercial es útil cuando se explica con transparencia. No debe dar a entender que todos los ejemplares de principios de verano y todos los ejemplares de otoño tienen un aroma idéntico, ni la relación científica debe borrar las colecciones estacionales legítimas y las expectativas de compra.\n\n\nDiferencias de aroma y sabor\nEl aroma de la trufa proviene de combinaciones de compuestos orgánicos volátiles, incluidos compuestos de azufre, alcoholes, cetonas, aldehídos y otros volátiles. Solo una parte del perfil químico detectado contribuye directamente al aroma percibido por el ser humano. Ningún compuesto individual define toda la calidad.\nLa especie, el genotipo, la madurez, el entorno, la microbiología, el origen y la manipulación poscosecha influyen en la expresión sensorial. El sabor incluye el aroma, el gusto, la textura y la matriz alimentaria circundante. Las trufas blancas suelen generar un impacto aromático más inmediato; las trufas negras del Périgord ofrecen con frecuencia un perfil más profundo, compatible con un calor suave; las trufas de verano suelen proporcionar una expresión más ligera.\nCada ejemplar es diferente. El aroma perdido por la edad o una manipulación deficiente no puede recuperarse, y nunca deben prometerse notas sensoriales exactas basándose únicamente en el nombre de la especie.\n\n\nTemporada, madurez y calidad de la trufa\nTuber magnatum se comercializa principalmente desde el otoño hasta principios del invierno; Tuber melanosporum y Tuber brumale, principalmente en invierno; Tuber aestivum, desde finales de la primavera hasta el verano o principios del otoño; el producto comercial de Borgoña, principalmente en otoño; Tuber borchii, principalmente desde el invierno hasta la primavera; Tuber macrosporum, principalmente en otoño; y Tuber mesentericum, principalmente desde el otoño hasta el invierno.\nEl momento exacto varía según el clima, el origen, el tiempo, la madurez y el año. La temporada por sí sola no demuestra la madurez. Evalúa conjuntamente el aroma propio de la especie, la firmeza, el desarrollo de la gleba y el estado general. Las trufas inmaduras pueden ser más pálidas y menos aromáticas. La blandura excesiva, la viscosidad, la pérdida de líquido, el moho extendido o un olor reciente a podredumbre o fuertemente ácido son señales de advertencia.\nLa disponibilidad actual debe comprobarse mediante información actualizada sobre productos o colecciones, en lugar de darse por supuesta según el calendario.\n\n\nUsos culinarios y calor según el tipo de trufa\nLa trufa blanca Tuber magnatum generalmente se lamina sobre pasta, risotto, huevos, patatas o queso suave calientes ya terminados. Los platos sencillos mantienen su aroma en el centro, mientras que una cocción prolongada reduce su intensidad.\nLa trufa negra Tuber melanosporum puede laminarse, rallarse o incorporarse a mantequilla, salsas, rellenos, pasta, risotto, huevos, aves y carne. Un calor suave puede realzarla, pero el calor agresivo sigue reduciendo su complejidad.\nLas trufas de verano y de Borgoña combinan bien con huevos, pasta, patatas, mantequilla, nata, pizza, ensaladas y queso suave. Utiliza suficiente producto para que su aroma más suave siga siendo perceptible y evita las salsas muy intensas. Tuber borchii y las especies oscuras especializadas deben combinarse según la intensidad y el tipo de aroma.\nLa trufa fresca puede laminarse o rallarse sobre un plato caliente ya terminado, mientras que la trufa picada puede incorporarse a mantequilla, salsas o rellenos. Hervirla, freírla o someterla a temperaturas muy altas durante mucho tiempo no conserva todo su aroma fresco. Los productos procesados se comportan de otra manera.\n\n\nCombinaciones de trufa y selección de platos\n\nTipos de trufa, combinaciones adecuadas, usos preferentes y orientación sobre el calor\n\nTipo de trufa\nCombinaciones adecuadas\nUso preferente\nOrientación sobre el calor\n\n\n\n\nTuber magnatum\nPasta, risotto, huevos, patatas, queso suave\nLaminar en la mesa o en el último momento\nAñadir después de cocinar, sobre un plato caliente ya terminado\n\n\nTuber borchii\nPasta, huevos, mantequilla, salsas\nLaminar o preparaciones cocinadas adecuadas\nAdapta el calor a la madurez y la intensidad del aroma\n\n\nTuber melanosporum\nMantequilla, huevos, pasta, patatas, aves, carne de vacuno, salsas\nLaminar, rallar, salsas y rellenos\nEs adecuada una temperatura suave; evita el calor agresivo prolongado\n\n\nTrufa de verano o de Borgoña\nHuevos, pasta, pizza, patatas, nata, ensaladas, queso suave\nPlatos de temporada accesibles y acabados\nUtiliza un calor suave y evita los ingredientes que dominen el sabor\n\n\n\nTuber macrosporum o Tuber mesentericum\n\nMantequilla, pasta, huevo o platos regionales cuidadosamente seleccionados\nUso especializado adaptado al ejemplar\nUtiliza un calor moderado y cantidades adecuadas para un aroma intenso\n\n\n\nLa elección correcta depende de la especie, la temporada, la madurez, la preferencia aromática, el plato, la presentación, el calor, la cantidad, la categoría, el presupuesto y el formato. La especie más cara no es automáticamente la más adecuada.\n\n\nCalidad, frescura y categoría comercial\nComprueba la especie exacta, la madurez, el aroma propio de la especie, la firmeza, el estado de la superficie, la humedad, el moho, las fugas, la categoría, el tamaño, la forma, la trazabilidad, las condiciones de entrega y el historial de almacenamiento. El aspecto ayuda en la evaluación, pero por sí solo no puede autenticar la especie ni la madurez.\nLos sistemas de clasificación comercial varían según el proveedor. Los ejemplares enteros atractivos son adecuados para regalar, fotografiar y laminar en la mesa. Las trufas enteras de calidad estándar para restauración son adecuadas para el servicio general. Las piezas irregulares pueden ser apropiadas para mantequilla, salsas, rellenos y producción. El tamaño por sí solo no demuestra un aroma más intenso, y las piezas no son automáticamente inferiores en identidad ni en calidad sensorial.\nCompara las ofertas solo después de confirmar la especie, el formato, la cantidad, la temporada, la entrega y el uso previsto. Para conocer los precios reales, deben utilizarse las páginas o cotizaciones actuales, en lugar de afirmaciones fijas sobre el mercado.\n\n\nCómo evitar la confusión entre especies\nLos nombres comunes son insuficientes para compras de alto valor. Tuber magnatum y Tuber borchii son especies blancas distintas. Tuber melanosporum, Tuber brumale, Tuber aestivum y Tuber indicum son especies oscuras o grupos comerciales distintos.\nEl parecido visual puede dificultar la identificación. La nomenclatura científica transparente, la trazabilidad y la documentación del proveedor son importantes, y pueden ser necesarios métodos moleculares o analíticos para una autenticación fiable. Una especie de menor precio correctamente etiquetada no es falsa; el problema es la sustitución engañosa o el etiquetado incorrecto.\n\n\nFormatos frescos, congelados, deshidratados y conservados\nLas trufas frescas ofrecen la conexión más intensa con la temporada, el ejemplar, la textura y el aroma inmediato, pero requieren un uso rápido y una refrigeración cuidadosa. Las trufas congeladas son adecuadas para platos cocinados y para planificar durante todo el año, aunque su textura y aroma difieren de los de las frescas.\nLas trufas deshidratadas son adecuadas para almacenar en la despensa y para preparaciones específicas, pero no reproducen la textura ni el aroma de las frescas. Los productos conservados y formulados incluyen trufas en salmuera, mantequilla, aceites, salsas, carpaccio y otros formatos. Su valor depende de la especie, la concentración, los ingredientes, el procesamiento y la formulación.\nEstos formatos no son equivalentes desde el punto de vista sensorial. Consulta Trufas frescas frente a trufas en conserva para una comparación detallada de los formatos.\n\n\nCómo elegir trufas para uso doméstico, en restaurantes y en comercios minoristas\nLos cocineros aficionados deben elegir una especie y una cantidad para un plan de comida inmediato y leer las indicaciones de conservación antes de hacer el pedido. Por lo general, un plato bien diseñado es mejor que repartir una trufa pequeña entre muchas porciones.\nLos chefs y restaurantes deben indicar las especies con precisión en los menús, ajustar la cantidad y la categoría a la demanda confirmada, registrar la especie, la categoría, el peso, la fecha de llegada y el estado, y asignar la responsabilidad de conservación. Los ejemplares enteros son adecuados para el servicio en mesa, mientras que las piezas irregulares apropiadas sirven para salsas y producción.\nLos minoristas y compradores de regalos deben priorizar la presentación, las instrucciones y los plazos de entrega. Las trufas frescas no deben ofrecerse sin una planificación clara del destinatario. Los profesionales de la alimentación deben distinguir entre formatos frescos, congelados, deshidratados y en conserva, y seleccionar la documentación, la categoría y la forma adecuadas para el método de producción.\nTerra Ross atiende a clientes del Reino Unido, Francia, Alemania, Suiza, Italia, España y Portugal, con especial atención a las trufas prémium, los productos de trufa y las entregas fiables para clientes particulares, chefs, restaurantes y profesionales de la alimentación.\n\n\nResumen de conservación y compra\nPor lo general, refrigera las trufas frescas aproximadamente a 2–4 °C en un recipiente limpio y apto para alimentos, con papel absorbente limpio. Cambia el papel húmedo, inspecciona cada ejemplar a diario, evita el exceso de humedad y los olores fuertes del frigorífico, limpia las trufas poco antes de usarlas y utilízalas cuanto antes. Sigue Cómo conservar las trufas frescas para consultar el método completo.\nAntes de hacer un pedido, verifica la especie científica, el nombre comercial, la temporada, la madurez, la categoría, el formato, la trazabilidad, el aroma y la descripción del estado, los plazos de entrega, las indicaciones de conservación y el uso previsto. Consulta Cómo comprar trufas frescas en línea para conocer el marco completo de compra.\n\n\nEspecies relacionadas y guías de compra\n\nGuía de la trufa: qué son y cómo crecen\nGuía de la trufa blanca\nGuía de la trufa negra\nGuía de la trufa de verano\nTrufas negras frescas: sabor, uso, conservación y compra\nGuía de conservación de la trufa blanca\nCómo conservar las trufas frescas\nCómo comprar trufas frescas por Internet\nTrufas frescas frente a trufas en conserva\n\n\n\nColecciones relacionadas\n\nTrufas frescas de temporada\nTrufas blancas Tuber magnatum\nColección de Tuber melanosporum\nColección de Tuber aestivum\nTrufas congeladas\n Productos de trufa para restaurantes y empresas \n\n\n\nEjemplos de productos relacionados\n\nTrufa blanca fresca | Tuber magnatum — Tamaño mediano\nTrufa negra fresca | Tuber melanosporum — Categoría A\n\n\n\nTemas clave sobre la trufa negra y blanca\n\nCómo crecen las trufas\nGuía de la trufa blanca\nGuía de la trufa negra\nGuía de la trufa de verano\nTrufas negras frescas\nConservación de la trufa blanca\nCómo conservar las trufas frescas\nCómo comprar trufas frescas por Internet\nTrufas frescas frente a trufas en conserva\nTrufas frescas de temporada\nTrufas congeladas\n Productos de trufa para restaurantes y empresas \n\n\n\nReferencias científicas y lecturas adicionales\n\nDescripción general del aroma de la trufa y de los principales compuestos volátiles\nAutenticación de especies de Tuber de relevancia comercial\nReconocimiento de especies y relación entre Tuber aestivum y Tuber uncinatum\nCompuestos orgánicos volátiles en los cuerpos fructíferos de Tuber magnatum\nEvaluación instrumental y sensorial del aroma de la trufa negra\nSustancias marcadoras del aroma de distintas especies de trufa\nMarcadores volátiles para diferenciar Tuber magnatum y Tuber borchii\n\n\n\nPreguntas frecuentes\n¿Cuál es la principal diferencia entre las trufas negras y blancas?\nEstos son grupos generales basados en el color que contienen distintas especies. Las especies blancas suelen utilizarse como acabados aromáticos, mientras que varias especies negras toleran un calor suave, pero la identidad exacta es importante.\n¿Es toda trufa blanca Tuber magnatum?\nNo. También existen Tuber borchii y otras especies pálidas, que deben denominarse con precisión.\n¿Es toda trufa negra Tuber melanosporum?\nNo. Las trufas de verano, de Borgoña, de invierno y otras trufas oscuras son especies o grupos comerciales distintos.\n¿Qué trufa tiene el aroma más intenso?\nLa trufa madura Tuber magnatum suele ser muy aromática, pero la intensidad varía según el ejemplar, la madurez, el estado y la manipulación. Ninguna especie gana en todos los casos individuales.\n¿Es la trufa de verano lo mismo que la trufa de Borgoña?\nLos estudios científicos suelen situar Tuber aestivum y Tuber uncinatum dentro de una misma especie o complejo, mientras que el comercio diferencia el material de verano y de Borgoña por el período de recolección, la madurez y el posicionamiento.\n¿Se pueden cocinar las trufas negras y blancas de la misma manera?\nPor lo general, no. La trufa blanca, muy aromática, suele añadirse después de cocinar, mientras que la trufa negra y algunas otras trufas oscuras pueden combinar bien con un calor suave.\n¿Cómo deben conservarse las trufas frescas?\nRefrigéralas en un recipiente limpio con papel absorbente, cambia el papel húmedo, inspecciónalas a diario y úsalas pronto sin depender de un período de conservación universal fijo.\n¿Qué deben comprobar los compradores antes de pedir trufas frescas por Internet?\nComprueba la especie científica, el nombre comercial, la temporada, la madurez, la categoría, el formato, la trazabilidad, la descripción del estado, el plazo de entrega, las indicaciones de conservación y el uso previsto.\n\n\nConclusión\nElige las trufas por especie y no solo por color. Relaciona la especie con su temporada, madurez, aroma, plato y nivel de calor; después, verifica la frescura, la categoría y la entrega. Consulta las guías detalladas de cada especie cuando necesites información más profunda. La mejor trufa es la que se adapta correctamente al uso previsto, no necesariamente la opción más cara.\n"
}
</script>
<!-- END app snippet -->
<!-- a 1 --><!-- BEGIN app snippet: json_ld_for_seo_breadcrumbs --><script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"name": "Terra Ross",
"item": "https:\/\/www.terra-ross.es\/"
},{
"@type": "ListItem",
"position": 2,
"name": "Guías de Trufas",
"item": "https:\/\/www.terra-ross.es\/blogs\/truffle-guides"
},{
"@type": "ListItem",
"position":3,
"name": "Tipos de trufas blancas y negras: sabor, temporada y usos"
}]
}
</script>
<!-- END app snippet -->
<!-- A 5 -->
</div><div id="shopify-block-AVXBQNStRQmpsZWtaO__12914283376487586735" class="shopify-block shopify-app-block">
<script type="application/json" id="octava-cart-embed-config">
{
"buttonText": "Seleccionar punto de recogida",
"enhanceCheckout": true,
"compatibilityMode": true,
"shop": "truffle-house-en.myshopify.com",
"appHandle": "izpratibg",
"backendBaseUrl": "",
"appProxyBaseUrl": "",
"attributionLogoUrl": "https:\/\/cdn.shopify.com\/extensions\/01a15bf4-bb83-7ab7-8c92-16eec35ce89c\/shpfy-319-1-80-1\/assets\/trimitein-logo.png",
"showCompanyForm": false,
"showAdditionalText": false,
"doNotRequireEmail": false,
"requireCitySelection": false,
"showAddressLine2": false,
"checkoutBrowserGeolocationEnabled": true,
"checkoutMapEnabled": true,
"initialDeliveryOptionSort": "carrier",
"deliveryTypeOrder": "office_locker_address",
"showPrecheckoutPaymentMethod": false,
"showNextStepPaymentHint": false,
"destinationTarget": "cart",
"checkoutFlow": "prefilled_cart",
"precheckoutTemplate": "compact",
"popupSize": "full",
"containerId": "octava-checkout-popup-embed",
"locale": "es",
"language": "es",
"country": "ES",
"allProductsUrl": "\/collections\/all",
"hideDynamicCheckoutButtons": true,
"attributionPoweredByPrefix": "Powered by ",
"attributionMarkWord": "ИЗПРАТИ.БГ",
"attributionUrl": "https:\/\/izprati.bg",
"demoBannerText": "Modo demo — solo vista previa. Activa \u0026quot;Activar para clientes\u0026quot; en este embed para compradores.",
"demoEmbedActiveText": "El embed de pre-checkout está activo en esta página (enlace demo). Pulsa Pagar para probar.",
"demoEcontCompatButtonLabel": "Probar Izprati.BG",
"demoEmptyCartText": "Añade un producto para probar la vista previa del checkout.",
"demoChooseProductLabel": "Elegir un producto",
"demoCancelPreviewLabel": "Cancelar vista previa"
}
</script>
<script type="application/json" id="octava-cart-embed-labels">
{
"modalTitle": "Entrega y finalizar pedido",
"contactTitle": "Contacto",
"phoneLabel": "Teléfono",
"phonePlaceholder": "Teléfono",
"emailLabel": "Correo electrónico",
"emailPlaceholder": "Dirección de correo",
"optionalLabel": "opcional",
"firstName": "Nombre",
"lastName": "Apellido",
"deliveryMethodTitle": "Método de entrega",
"toOffice": "A oficina",
"toBox": "A locker",
"toOfficeAndLocker": "To office \/ locker",
"office": "Oficina",
"locker": "Locker",
"toAddress": "A dirección",
"toShopifyPickup": "Store pickup",
"shopifyPickupDescription": "Pick up from the store location",
"shopifyPickupCarrier": "Store pickup",
"orderSummary": "Resumen del pedido",
"subtotal": "Subtotal",
"delivery": "Envío",
"freeDelivery": "Gratis",
"chooseDelivery": "Elegir entrega",
"codTax": "Comisión contra reembolso",
"total": "Total",
"discount": "Descuento",
"youSave": "You save",
"promoPlaceholder": "Código de descuento",
"promoApply": "Aplicar",
"promoInvalid": "Introduce un código de descuento",
"promoError": "No se pudo aplicar el código de descuento",
"promoApplying": "Aplicando...",
"promoApplied": "Aplicado",
"promoRemove": "Eliminar",
"promoRemoving": "Eliminando...",
"promoUpdating": "Actualizando descuento y envío...",
"deliveryPricesUpdating": "Actualizando precios de entrega...",
"deliveryPriceVerifying": "Comprobando el precio de entrega...",
"deliveryPriceChanged": "El precio de entrega ha cambiado. Revísalo y continúa de nuevo.",
"cartAvailabilityChanged": "Algunos artículos de tu carrito ya no están disponibles o sus cantidades han cambiado. Revisa el carrito antes de continuar.",
"addressRevalidating": "Comprobando dirección...",
"addressUnavailable": "No disponible para esta dirección",
"suggestedLocalityContext": "Ubicación sugerida: {locality}",
"promoNotApplicable": "Este código de descuento no es válido para tu carrito",
"promoFreeDeliveryExcluded": "Este código promocional no se puede combinar con el envío gratuito. El envío se cobra por separado.",
"wheelRewardApplied": "Premio de la ruleta aplicado",
"wheelRewardNotApplied": "No se pudo aplicar el premio de la ruleta",
"quantityLabel": "Cant.",
"decreaseQuantity": "Disminuir cantidad de {item}",
"increaseQuantity": "Aumentar cantidad de {item}",
"removeItem": "Eliminar",
"removeItemAria": "Eliminar {item}",
"cartItemUpdateError": "No se pudo actualizar este artículo. Inténtalo de nuevo.",
"continueLabel": "Continuar →",
"nextStepLabel": "Continuar al pago",
"nextStepPaymentHint": "Elegirás el método de pago en el siguiente paso.",
"deliverySoon": "Las opciones de entrega estarán disponibles pronto.",
"noShippingOptions": "No hay opciones de envío disponibles.",
"deliveryNotRequiredNotice": "Los productos de tu carrito no requieren entrega.",
"deliveryNotRequiredSummary": "No necesaria",
"softCalculationError": "No es posible calcular la entrega en este paso. Continúa con el siguiente paso.",
"softCalculationRetry": "Reintentar",
"processing": "Procesando...",
"creatingOrder": "Creando tu pedido...",
"orderCreatedRedirecting": "Pedido creado. Redirigiendo...",
"invalidEmail": "Formato de correo inválido",
"invalidPhone": "Teléfono no válido",
"pleaseSelectDeliveryMethod": "Seleccione un método de entrega",
"pleaseSelectShippingOption": "Seleccione una opción de envío",
"pleaseSelectPickupPoint": "Seleccione un punto de recogida",
"pleaseSelectPaymentMethod": "Seleccione un método de pago",
"pleaseAcceptTerms": "Please accept the terms and conditions",
"requiredField": "El campo {field} es obligatorio",
"loading": "Cargando...",
"errorLoadingForm": "Error al cargar el formulario",
"localityLabel": "Ciudad",
"localityPlaceholder": "Escriba para buscar ciudad",
"localityNoResults": "No se encontraron ciudades",
"localitySearchError": "No se pudieron cargar las ciudades. Intenta buscar de nuevo.",
"pleaseSelectLocality": "Seleccione una ciudad",
"pickupSearchPlaceholder": "Buscar por ciudad, oficina o dirección",
"pickupChangePoint": "Cambiar punto de recogida",
"pickupNoResults": "No se encontraron ubicaciones",
"nearMe": "Cerca de mí",
"servicePointSortLabel": "Ordenar:",
"servicePointSortNearest": "Más cercanos",
"servicePointSortAlphabetical": "A–Z",
"allCarriers": "Transportistas",
"locating": "Localizando...",
"searchingMore": "Buscando...",
"paginationPrevious": "Previous",
"paginationNext": "Next",
"paginationPage": "Page",
"paginationPageOf": "Page {page} of {total}",
"mapTitle": "Mapa de puntos de recogida",
"pickupPoints": "puntos de recogida",
"noServicePoints": "No se encontraron puntos de recogida",
"mapLegend": "Leyenda",
"mapCarrierLabel": "Transportista",
"mapSelectPoint": "Seleccionar",
"mapSelectedPoint": "Seleccionado",
"mapCurrentLocation": "Ubicación actual",
"tabOffices": "Oficinas",
"tabLockers": "Lockers",
"addressPostcodeLabel": "Código postal",
"addressPostcodePlaceholder": "Código postal",
"addressStreet1Label": "Calle",
"addressStreet1Placeholder": "Calle",
"addressStreet2Label": "Calle 2",
"addressStreet2Placeholder": "Calle 2 (opcional)",
"paymentMethodTitle": "Método de pago",
"cashOnDelivery": "Contra reembolso",
"paymentCard": "Tarjeta",
"paymentPayPal": "PayPal",
"paymentManual": "Pago manual",
"prepaidOnlyBadge": "Solo prepago",
"prepaidOnlyNotice": "El pago contra reembolso no está disponible",
"completeOrderLabel": "Completar pedido",
"selectOfficePlaceholder": "Seleccionar oficina\/locker",
"filterByCity": "Filtrar por ciudad (opcional)",
"companySectionTitle": "Empresa",
"companyNameLabel": "Razón social",
"companyNamePlaceholder": "Nombre legal de la empresa",
"companyEikLabel": "NIF\/CIF de la empresa",
"companyEikPlaceholder": "NIF, CIF o número de IVA",
"companyVatRegisteredLabel": "Registrado para IVA",
"additionalTextLabel": "Texto adicional",
"additionalTextPlaceholder": "Detalles adicionales de entrega",
"fiscalIdLabel": "NIF \/ CIF",
"fiscalIdPlaceholder": "Introduce NIF\/CIF (opcional)",
"poweredByPrefix": "Powered by ",
"poweredByMarkWord": "ИЗПРАТИ.БГ",
"attributionUrl": "https:\/\/izprati.bg",
"noCalculatorRatesNotice": "To show delivery options, finish setup in the Izprati.bg app: open Home, find «Office selection at checkout (Basic)», and tap Configure.",
"noCalculatorRatesDocsLabel": "setup guide",
"noCalculatorRatesDocsUrl": "https:\/\/izprati.bg\/docs\/custom-chekout\/",
"noCalculatorRatesHelpPrefix": "For help, contact ",
"noCalculatorRatesContactLabel": "izprati.bg",
"noCalculatorRatesContactUrl": "https:\/\/izprati.bg",
"freePlanBrandingNote": "Branding is removed when you activate a paid subscription.",
"termsAcceptPrefix": "I agree to the ",
"termsLinkLabel": "terms and conditions",
"termsAcceptSuffix": ".",
"privacyAcceptPrefix": "He leído la ",
"privacyLinkLabel": "política de privacidad",
"privacyAcceptSuffix": "."
}
</script>
<script
src="https://cdn.shopify.com/extensions/01a15bf4-bb83-7ab7-8c92-16eec35ce89c/shpfy-319-1-80-1/assets/cart-button-injector.js?v=1792592804"
defer
data-custom-delivery-injector
data-enabled="false"
data-css-url="https://cdn.shopify.com/extensions/01a15bf4-bb83-7ab7-8c92-16eec35ce89c/shpfy-319-1-80-1/assets/checkout-popup.css?v=1792592804"
data-popup-js-url="https://cdn.shopify.com/extensions/01a15bf4-bb83-7ab7-8c92-16eec35ce89c/shpfy-319-1-80-1/assets/delivery-selector-runtime.js?v=1792592804"
></script>
<link href="//cdn.shopify.com/extensions/01a15bf4-bb83-7ab7-8c92-16eec35ce89c/shpfy-319-1-80-1/assets/cart-button-injector.css?v=1792592804" rel="stylesheet" type="text/css" media="all" />
</div><script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
<shopify-chat></shopify-chat>
</body>
</html>
| # |
Url |
Url |
Source |
Date |
| 1 |
https://www.terra-ross.es/blogs/tr… |
|
2026-10-21 14:26:44 |
| 2 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 14:26:44 |
| 3 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 14:26:44 |
| 4 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 14:26:43 |
| 5 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 14:26:43 |
| 6 |
https://auth.mediacorp.sg/u/login?… |
|
2026-10-21 14:26:43 |
| 7 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-21 14:26:43 |
| 8 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 14:26:42 |
| 9 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 14:26:41 |
| 10 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 14:26:41 |
| 11 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 14:26:41 |
| 12 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 14:26:41 |
| 13 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 14:26:40 |
| 14 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-21 14:26:40 |
| 15 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 14:26:40 |
| 16 |
https://www.texarkanatwins.com/%25… |
|
2026-10-21 14:26:39 |
| 17 |
https://auth.mediacorp.sg/u/login?… |
|
2026-10-21 14:26:39 |
| 18 |
https://www.texarkanatwins.com/%25… |
|
2026-10-21 14:26:38 |
| 19 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 14:26:38 |
| 20 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 14:26:38 |