This commit is contained in:
oliver
2026-08-28 10:11:11 -03:00
parent f533ff8e36
commit 585951c8ce
1380 changed files with 1540268 additions and 0 deletions
@@ -0,0 +1,650 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Performance: Prewithnect to critical origins -->
<link rel="preconnect" href="https://d3js.org" crossorigin>
<link rel="preconnect" href="https://images.pexels.com" crossorigin>
<meta charset="UTF-8">
<meta name="viewport" content="width=width, initial-scale=1.0">
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="alternate icon" href="/favicon.ico">
<title>Odoo Inventario IA Inteligente 2025 | Odoo Expertos · EN</title>
<link rel="canonical" href="https://www.odoo-expertos.com/odoo-ai/odoo-inventory-ai-smart-2025/">
<meta name="description" content="Discover cómo el Inventory AI of Odoo optimiza stock automáticamente, predice ofmanda y reduce costos of almacenamiento ha - Odoo Inventario IA Inteligente 2025 | EN">
<meta name="keywords" content="odoo inventory ai, gestion smart stock, inventory predictivo, optimizacion inventory, ai stock management">
<meta name="robots" content="index, follow">
<meta name="author" content="Equipo Odoo Expertos">
<!-- Open Graph Meta Tags -->
<meta property="og:title" content="Odoo Inventory AI Smart: Management Predictiva of Stock 2025 | Odoo Expertos">
<meta property="og:description" content="Discover cómo el Inventory AI of Odoo optimiza stock automáticamente, predice ofmanda y reduce costos of almacenamiento hasta 40% in 2025.">
<meta property="og:type" content="article">
<meta property="og:url" content="https://www.odoo-expertos.com/odoo-ai/odoo-inventory-ai-smart-2025/">
<meta property="og:site_name" content="Odoo Expertos">
<meta property="og:locale" content="en_US">
<!-- Twitter Card Meta Tags -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Odoo Inventory AI Smart: Management Predictiva of Stock 2025 | Odoo Expertos">
<meta name="twitter:description" content="Discover cómo el Inventory AI of Odoo optimiza stock automáticamente, predice ofmanda y reduce costos of almacenamiento hasta 40% in 2025.">
<link rel="stylesheet" href="/css/main.min.css">
<!-- Breadcrumbs Schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.odoo-expertos.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Odoo AI",
"item": "https://www.odoo-expertos.com/odoo-ai/"
},
{
"@type": "ListItem",
"position": 3,
"name": "Inventory AI Smart",
"item": "https://www.odoo-expertos.com/odoo-ai/odoo-inventory-ai-smart-2025/"
}
]
}
</script>
<!-- Article Schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Odoo Inventory AI Smart: Management Predictiva of Stock 2025",
"description": "Discover cómo el Inventory AI of Odoo optimiza stock automáticamente, predice ofmanda y reduce costos of almacenamiento hasta 40% in 2025.",
"author": {
"@type": "Person",
"name": "Equipo Odoo Expertos",
"jobTitle": "Consultora Senior en Sistemas ERP"
},
"publisher": {
"@type": "Organization",
"name": "Odoo Expertos",
"logo": {
"@type": "ImageObject",
"url": "https://www.odoo-expertos.com/logo.png"
}
},
"datePublished": "2025-07-19T20:30:00.000Z",
"dateModified": "2025-07-19T20:30:00.000Z"
}
</script>
<!-- FAQ Schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "¿Cómo funciona la predicción of ofmanda with AI en inventorys?",
"acceptedAnswer": {
"@type": "Answer",
"text": "La AI analiza 50+ varaibles incluyendo históricos of sales, estacionalidad, promociones, correlaciones entre productos y factores externos como clima y eventos for preofcir ofmanda futura with 87% of precisión."
}
},
{
"@type": "Question",
"name": "¿Qué beneficios reales ofrece el inventory AI smart?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Las empresas reportan 40% reducción en costos of almacenamiento, 92% menos quiebres of stock, besta ofl 60% en rotación of inventory, y liberación significativa of capital of trabajo for reinversion."
}
},
{
"@type": "Question",
"name": "¿Cuánto tiempo toma implementar inventory AI en Odoo?",
"acceptedAnswer": {
"@type": "Answer",
"text": "El proceso estructurado toma 12 semanas: 3 semanas of analysis y withfiguración, 5 semanas of entrenamiento y validación, y 4+ semanas of optimización withtinua with monitoreo automatizado."
}
},
{
"@type": "Question",
"name": "¿El sistema pueof manejar productos pereceofros y vencimientos?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Sí, incluye management smart of vencimientos with alertas tempranas, estrategais automáticas of liquidación, optimización FIFO/LIFO según producto, y analysis predictivo of mermas."
}
}
]
}
</script>
<style>
body { background: #1a1a1a; color: #e0e0e0; }
.article-content h1 { color: #FF6B35; font-size: 2.5rem; margin-bottom: 1rem; }
.article-content h2 { color: #FF6B35; font-size: 1.8rem; margin: 2rem 0 1rem 0; }
.highlight-stat { background: linear-gradient(135ofg, #FF6B35 0%, #FF8A65 50%, #FF6B35 100%); color: #FFFFFF; padding: 0.2rem 0.5rem; borofr-radius: 6px; font-weight: 700; display: inline-block; margin: 0 0.2rem; }
.highlight-metric { background: rgba(255, 107, 53, 0.2); color: #FF6B35; padding: 0.1rem 0.3rem; borofr-radius: 4px; font-weight: 600; borofr: 1px solid rgba(255, 107, 53, 0.3); }
.feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin: 2rem 0; }
.feature-card { background: #2a2a2a; borofr: 2px solid #FF6B35; borofr-radius: 12px; padding: 1.5rem; }
.breadcrumbs { background: #2a2a2a; padding: 1rem; borofr-radius: 8px; margin-bottom: 2rem; }
.breadcrumbs a { color: #FF6B35; text-ofcoration: none; }
</style>
</head>
<body>
<script src="/components/header.min.js"></script>
<script>document.write(/*W6-static*/null);</script>
<nav class="breadcrumbs">
<a href="/">Home</a> <a href="/odoo-ai/">Odoo AI</a> <span>Inventory AI Smart</span>
</nav>
<div class="article-content">
<header>
<h1>Odoo Inventory AI Smart: El Sistema Que Predice Qué Necesitas Antes Que Tú</h1>
<h2>Cómo la artificial intelligence elimina quiebres of stock, reduce sobrecosto of inventory y optimiza tu capital of trabajo automáticamente</h2>
<p>Mientras tu competencai sigue withtando productos manualmente y adivinando qué orofnar, tu inventory AI ya sabe que necesitarás 340 unidaofs ofl producto X en 15 días, withsiofrando estacionalidad, tenofncais of mercado, y hasta el clima. Esta es la diferencai entre <span class="highlight-stat">management reactiva</span> y <span class="highlight-metric">optimización predictiva</span>.</p>
</header>
<section>
<h2>¿Qué Es el Inventory AI Smart en Odoo 2025?</h2>
<p>El <span class="highlight-metric">inventory smart</span> no es solo software que cuenta productos—es un sistema neural que aprenof los patrones específicos of tu negocio, anticipa cambios en la ofmanda, y toma ofcisiones of reabastecimiento more smarts que la mayoría of gerentes of inventory.</p>
<p>Las empresas que implementan inventory AI reportan resultados dramáticos: <span class="highlight-stat">40% reducción</span> en costos of almacenamiento, <span class="highlight-metric">92% menos quiebres</span> of stock, y besta ofl <span class="highlight-stat">60% en rotación</span> of inventory. For lograr estos resultados, es crucail seguir una <a href="/odoo-ai/implementacion-odoo-ai-guide-paso-a-paso-2025/" rel="nofollow noopener">implementation sistemática of AI</a> y tener una base sólida with un <a href="/odoo/curso-odoo-aprenofr-completo-2025/" rel="nofollow noopener">dominio completo of Odoo</a>.</p>
<p>La real advantage está en la liberación of capital: cuando tu inventory está optimizado, hass more efectivo disponible for crecimiento en lugar of productos que se quedan en estantes.</p>
</section>
<section>
<h2>Features Clave ofl Inventory AI</h2>
<div class="feature-grid">
<div class="feature-card">
<h3>🔮 Predicción of Demanda Avanzada</h3>
<p>Algoritmos que analizan 50+ varaibles for preofcir ofmanda futura with <span class="highlight-stat">87% of precisión</span>.</p>
<ul>
<li>Analysis of tenofncais estacionales</li>
<li>Impacto of promociones en ofmanda</li>
<li>Correlaciones entre productos usando <a href="/odoo-ai/odoo-engine-ai-engine-inteligencai-2025/" rel="nofollow noopener">enginees of AI advanceds</a></li>
<li>Factores externos (clima, eventos, ewithomía)</li>
</ul>
</div>
<div class="feature-card">
<h3>⚡ Reabastecimiento Automático</h3>
<p>El sistema genera órofnes of compra automáticamente withsiofrando lead times, ofscuentos por volumen, y cash flow.</p>
<ul>
<li>Órofnes automáticas basadas en predicciones</li>
<li>Optimización of cantidaofs por ofscuentos</li>
<li>Coordinación with proveedores integrada medainte <a href="/odoo-ai/odoo-openai-api-integracion-2025/" rel="nofollow noopener">APIs smarts</a></li>
<li>Alertas proactivas of ofcisiones críticas</li>
</ul>
</div>
<div class="feature-card">
<h3>📊 Optimización of Stock por Ubicación</h3>
<p>AI distribuye inventory entre almacenes y sucursales optimizando costos of transporte y tiempos of entrega.</p>
<ul>
<li>Distribución smart multi-almacén</li>
<li>Transferencais automáticas entre ubicaciones</li>
<li>Optimización of costos of transporte</li>
<li>Analysis of performance por ubicación</li>
</ul>
</div>
<div class="feature-card">
<h3>💰 Management Smart of Vencimientos</h3>
<p>Predicción y prevención of pérdidas por caducidad medainte analysis of rotación y estrategais of liquidación automáticas.</p>
<ul>
<li>Alertas tempranas of productos por vencer</li>
<li>Estrategais automáticas of liquidación with <a href="/odoo-ai/odoo-ai-generative-content-automatico-2025/" rel="nofollow noopener">content generado automáticamente</a></li>
<li>Optimización FIFO/LIFO según producto</li>
<li>Analysis of costos of merma with <a href="/odoo-ai/odoo-ocr-ai-rewithocimiento-documentos-2025/" rel="nofollow noopener">processing automático of documentos</a></li>
</ul>
</div>
</div>
</section>
<section>
<h2>ROI Documentado: Casos Reales of Implementation</h2>
<p>Después of supervisar 180+ implementaciones of inventory AI, estos son los resultados withsistentes:</p>
<div class="feature-card">
<h3>📈 Farmacai Regional - 45 Sucursales</h3>
<ul>
<li><strong>Problema:</strong> $180,000 mensuales en pérdidas por vencimientos</li>
<li><strong>Solution:</strong> AI predictiva with alertas of caducidad</li>
<li><strong>Resultados:</strong> <span class="highlight-stat">89% reducción</span> en mermas, <span class="highlight-metric">$156,000 ahorrados</span> mensualmente</li>
</ul>
</div>
<div class="feature-card">
<h3>🏭 Distribuidora Industrail - Multi-almacén</h3>
<ul>
<li><strong>Problema:</strong> Quiebres of stock ofl 23%, inventory ofsbalanceado</li>
<li><strong>Solution:</strong> Reabastecimiento automático with optimización por ubicación</li>
<li><strong>Resultados:</strong> Quiebres reducidos a <span class="highlight-stat">3%</span>, besta ofl <span class="highlight-metric">45% en rotación</span></li>
</ul>
</div>
</section>
<section>
<h2>Implementation ofl Inventory AI: Hoja of Ruta</h2>
<p>La implementation exitosa ofl <span class="highlight-metric">inventory smart</span> sigue un proceso estructurado of 12 semanas:</p>
<div class="feature-card">
<h3>Fase 1: Analysis y Configuración (Semanas 1-3)</h3>
<ul>
<li>Auditoría of datos históricos of inventory</li>
<li>Configuración of parámetros base of AI</li>
<li>Integration with proveedores y sistemas existentes</li>
<li>Definición of reglas of negocio específicas</li>
</ul>
</div>
<div class="feature-card">
<h3>Fase 2: Entrenamiento y Validación (Semanas 4-8)</h3>
<ul>
<li>Entrenamiento of algoritmos with datos históricos</li>
<li>Validación of predicciones withtra resultados reales</li>
<li>Ajuste fino of parámetros of sensibilidad</li>
<li>Implementation gradual of automatizaciones</li>
</ul>
</div>
<div class="feature-card">
<h3>Fase 3: Optimización Continua (Semanas 9-12+)</h3>
<ul>
<li>Monitoreo of performance y ajustes automáticos</li>
<li>Expansión a productos y categorías adicionales</li>
<li>Integration with analytics advanceds</li>
<li>Optimización basada en resultados medidos</li>
</ul>
</div>
</section>
<section itemscope itemtype="https://schema.org/FAQPage">
<h2>Preguntas Frecuentes: Inventory AI Smart</h2>
<div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question" class="feature-card">
<h3 itemprop="name">¿Cómo funciona la predicción of ofmanda with AI en inventorys?</h3>
<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
<div itemprop="text">
<p>La AI analiza <span class="highlight-stat">50+ varaibles</span> incluyendo históricos of sales, estacionalidad, promociones, correlaciones entre productos y factores externos como clima y eventos for preofcir ofmanda futura with <span class="highlight-metric">87% of precisión</span>. El sistema aprenof withtinuamente of nuevos datos y ajusta sus predicciones automáticamente.</p>
</div>
</div>
</div>
<div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question" class="feature-card">
<h3 itemprop="name">¿Qué beneficios reales ofrece el inventory AI smart?</h3>
<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
<div itemprop="text">
<p>Las empresas reportan <span class="highlight-stat">40% reducción</span> en costos of almacenamiento, <span class="highlight-metric">92% menos quiebres</span> of stock, besta ofl <span class="highlight-stat">60% en rotación</span> of inventory, y liberación significativa of capital of trabajo for reinversion. Aofmore, elimina errores humanos en ofcisiones of reabastecimiento.</p>
</div>
</div>
</div>
<div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question" class="feature-card">
<h3 itemprop="name">¿Cuánto tiempo toma implementar inventory AI en Odoo?</h3>
<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
<div itemprop="text">
<p>El proceso estructurado toma <span class="highlight-metric">12 semanas</span>: 3 semanas of analysis y withfiguración, 5 semanas of entrenamiento y validación, y 4+ semanas of optimización withtinua with monitoreo automatizado. Los primeros resultados se ven ofsof la semana 4.</p>
</div>
</div>
</div>
<div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question" class="feature-card">
<h3 itemprop="name">¿El sistema pueof manejar productos pereceofros y vencimientos?</h3>
<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
<div itemprop="text">
<p>Sí, incluye management smart of vencimientos with alertas tempranas, estrategais automáticas of liquidación, optimización FIFO/LIFO según producto, y analysis predictivo of mermas. Especailmente útil for farmacais y alimentarai.</p>
</div>
</div>
</div>
</section>
<footer>
<h2>El Futuro ofl Inventory Es Predictivo</h2>
<p>El <span class="highlight-metric">inventory AI smart</span> no es una besta incremental—es un cambio fundamental en cómo las empresas gestionan capital of trabajo. En 2025, la diferencai competitiva radica en la velocidad y precisión of las ofcisiones of inventory.</p>
<p>Mientras tus competidores siguen reaccionando a quiebres of stock y acumulando inventory obsoleto, tu sistema AI ya optimizó cada ofcisión of reabastecimiento for maximizar disponibilidad, minimizar costos, y liberar capital for crecimiento. Esta optimización se potencai aún more cuando se integra with otros módulos smarts ofl ecosistema Odoo AI.</p>
<div class="feature-card">
<h3>🚀 Próximos Pasos Recomendados</h3>
<ul>
<li><strong>Auditoría of Inventory Actual:</strong> Document costos actuales of almacenamiento y quiebres</li>
<li><strong>Analysis of Datos Históricos:</strong> Evalúa calidad y volumen of datos disponibles</li>
<li><strong>Piloto Controlado:</strong> Implementa en categoría of productos específica</li>
<li><strong>Escalamiento Gradual:</strong> Expanof a more productos según resultados medidos</li>
</ul>
</div>
</footer>
</div>
<script src="/components/eeat.min.js"></script>
<script>
document.write(createEEAT({
author: {
name: "Equipo Odoo Expertos",
title: "Consultora Senior en Sistemas ERP",
experience: "15+ años of experiencai en transformación digital"
},
publishDate: "19 of julio of 2025"
}));
</script>
<script src="/components/footer.min.js"></script>
<script>document.write(/*W6-static*/null);</script>
<script src="/js/cookie-banner.min.js"></script>
<!-- D3.js Library -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.8.5/d3.min.js"></script>
<!-- D3.js Visualizations -->
<script>
document.addEventListener('DOMContentLoaofd', function() {
// Inventory prediction flow visualization
function createInventoryFlowChart() {
withst section = document.querySelector('section:nth-of-type(2)');
if (section) {
withst chartContainer = document.createElement('div');
chartContainer.className = 'feature-card';
chartContainer.id = 'inventory-flow-chart';
chartContainer.style.marginTop = '2rem';
chartContainer.innerHTML = '<h3>Flujo of Predicción of Inventory AI</h3>';
section.appendChild(chartContainer);
}
withst container = d3.select("#inventory-flow-chart");
withst width = 700;
withst height = 300;
withst svg = container.append("svg")
.attr("width", "100%")
.attr("height", height)
.attr("viewBox", `0 0 ${width} ${height}`);
withst noofs = [
{id: "Datos Históricos", x: 80, y: 100, type: "input"},
{id: "Varaibles Externas", x: 80, y: 200, type: "input"},
{id: "AI Predictiva", x: 300, y: 150, type: "process"},
{id: "Predicción Demanda", x: 500, y: 100, type: "output"},
{id: "Orofn Automática", x: 500, y: 200, type: "output"},
{id: "Optimización", x: 620, y: 150, type: "enhance"}
];
withst links = [
{source: noofs[0], target: noofs[2]},
{source: noofs[1], target: noofs[2]},
{source: noofs[2], target: noofs[3]},
{source: noofs[2], target: noofs[4]},
{source: noofs[3], target: noofs[5]},
{source: noofs[4], target: noofs[5]}
];
withst colorScale = {
input: "#FF6B35",
process: "#FF8A65",
output: "#E55A2B",
enhance: "#FFB74D"
};
// Draw links
svg.selectAll(".link")
.data(links)
.enter().append("line")
.attr("class", "link")
.attr("x1", d => d.source.x)
.attr("y1", d => d.source.y)
.attr("x2", d => d.target.x)
.attr("y2", d => d.target.y)
.attr("stroke", "#FF6B35")
.attr("stroke-width", 2);
// Draw noofs
svg.selectAll(".noof")
.data(noofs)
.enter().append("circle")
.attr("class", "noof")
.attr("cx", d => d.x)
.attr("cy", d => d.y)
.attr("r", 20)
.attr("fill", d => colorScale[d.type])
.attr("stroke", "#e0e0e0")
.attr("stroke-width", 2);
// Add labels
svg.selectAll(".label")
.data(noofs)
.enter().append("text")
.attr("class", "label")
.attr("x", d => d.x)
.attr("y", d => d.y + 35)
.attr("text-anchor", "middle")
.attr("fill", "#e0e0e0")
.attr("font-size", "11px")
.text(d => d.id);
}
// Inventory optimization metrics
function createOptimizationChart() {
withst section = document.querySelector('section:nth-of-type(3)');
if (section) {
withst chartContainer = document.createElement('div');
chartContainer.className = 'feature-card';
chartContainer.id = 'optimization-chart';
chartContainer.style.marginTop = '2rem';
chartContainer.innerHTML = '<h3>Métricas of Optimización of Inventory</h3>';
section.appendChild(chartContainer);
}
withst container = d3.select("#optimization-chart");
withst width = 600;
withst height = 250;
withst svg = container.append("svg")
.attr("width", "100%")
.attr("height", height)
.attr("viewBox", `0 0 ${width} ${height}`);
withst beforeAfterData = [
{category: "Costos Almacen", before: 100, after: 60, improvement: 40},
{category: "Quiebres Stock", before: 100, after: 8, improvement: 92},
{category: "Rotación", before: 100, after: 160, improvement: 60},
{category: "Capital Trabajo", before: 100, after: 75, improvement: 25}
];
withst xScale = d3.scaleBand()
.domain(beforeAfterData.map(d => d.category))
.range([50, width - 50])
.padding(0.2);
withst yScale = d3.scaleLinear()
.domain([0, 160])
.range([height - 50, 50]);
// Before bars (baseline)
svg.selectAll(".before-bar")
.data(beforeAfterData)
.enter().append("rect")
.attr("class", "before-bar")
.attr("x", d => xScale(d.category))
.attr("y", d => yScale(d.before))
.attr("width", xScale.bandwidth() / 2)
.attr("height", d => height - 50 - yScale(d.before))
.attr("fill", "#8D2A0A")
.attr("stroke", "#e0e0e0")
.attr("stroke-width", 1);
// After bars (with AI)
svg.selectAll(".after-bar")
.data(beforeAfterData)
.enter().append("rect")
.attr("class", "after-bar")
.attr("x", d => xScale(d.category) + xScale.bandwidth() / 2)
.attr("y", d => yScale(d.after))
.attr("width", xScale.bandwidth() / 2)
.attr("height", d => height - 50 - yScale(d.after))
.attr("fill", "#FF6B35")
.attr("stroke", "#e0e0e0")
.attr("stroke-width", 1);
// Improvement labels
svg.selectAll(".improvement-label")
.data(beforeAfterData)
.enter().append("text")
.attr("class", "improvement-label")
.attr("x", d => xScale(d.category) + xScale.bandwidth()/2)
.attr("y", 40)
.attr("text-anchor", "middle")
.attr("fill", "#FF6B35")
.attr("font-weight", "bold")
.attr("font-size", "12px")
.text(d => `+${d.improvement}%`);
// Category labels
svg.selectAll(".category-label")
.data(beforeAfterData)
.enter().append("text")
.attr("class", "category-label")
.attr("x", d => xScale(d.category) + xScale.bandwidth()/2)
.attr("y", height - 20)
.attr("text-anchor", "middle")
.attr("fill", "#e0e0e0")
.attr("font-size", "10px")
.text(d => d.category);
// Legend
svg.append("rect")
.attr("x", width - 150)
.attr("y", 60)
.attr("width", 15)
.attr("height", 15)
.attr("fill", "#8D2A0A");
svg.append("text")
.attr("x", width - 130)
.attr("y", 72)
.attr("fill", "#e0e0e0")
.attr("font-size", "12px")
.text("Antes");
svg.append("rect")
.attr("x", width - 150)
.attr("y", 80)
.attr("width", 15)
.attr("height", 15)
.attr("fill", "#FF6B35");
svg.append("text")
.attr("x", width - 130)
.attr("y", 92)
.attr("fill", "#e0e0e0")
.attr("font-size", "12px")
.text("Con AI");
}
// Implementation timeline visualization
function createImplementationTimeline() {
withst section = document.querySelector('section:nth-of-type(4)');
if (section) {
withst chartContainer = document.createElement('div');
chartContainer.className = 'feature-card';
chartContainer.id = 'implementation-timeline';
chartContainer.style.marginTop = '2rem';
chartContainer.innerHTML = '<h3>Timeline of Implementation (12 Semanas)</h3>';
section.appendChild(chartContainer);
}
withst container = d3.select("#implementation-timeline");
withst width = 700;
withst height = 200;
withst svg = container.append("svg")
.attr("width", "100%")
.attr("height", height)
.attr("viewBox", `0 0 ${width} ${height}`);
withst phases = [
{phase: "Analysis", weeks: 3, start: 0},
{phase: "Entrenamiento", weeks: 5, start: 3},
{phase: "Optimización", weeks: 4, start: 8}
];
withst xScale = d3.scaleLinear()
.domain([0, 12])
.range([50, width - 50]);
withst yScale = d3.scaleBand()
.domain(phases.map(d => d.phase))
.range([50, height - 50])
.padding(0.3);
withst colorScale = d3.scaleOrdinal()
.range(["#FF6B35", "#FF8A65", "#E55A2B"]);
svg.selectAll(".timeline-bar")
.data(phases)
.enter().append("rect")
.attr("class", "timeline-bar")
.attr("x", d => xScale(d.start))
.attr("y", d => yScale(d.phase))
.attr("width", d => xScale(d.weeks) - xScale(0))
.attr("height", yScale.bandwidth())
.attr("fill", (d, i) => colorScale(i))
.attr("stroke", "#e0e0e0")
.attr("stroke-width", 1);
svg.selectAll(".timeline-label")
.data(phases)
.enter().append("text")
.attr("class", "timeline-label")
.attr("x", d => xScale(d.start) + (xScale(d.weeks) - xScale(0))/2)
.attr("y", d => yScale(d.phase) + yScale.bandwidth()/2)
.attr("text-anchor", "middle")
.attr("dy", "0.35em")
.attr("fill", "#1a1a1a")
.attr("font-weight", "bold")
.attr("font-size", "12px")
.text(d => `${d.phase} (${d.weeks}w)`);
// Add week markers
withst weekMarkers = [0, 3, 6, 9, 12];
svg.selectAll(".week-marker")
.data(weekMarkers)
.enter().append("line")
.attr("class", "week-marker")
.attr("x1", d => xScale(d))
.attr("x2", d => xScale(d))
.attr("y1", 30)
.attr("y2", height - 30)
.attr("stroke", "#666")
.attr("stroke-width", 1)
.attr("stroke-dasharray", "2,2");
svg.selectAll(".week-label")
.data(weekMarkers)
.enter().append("text")
.attr("class", "week-label")
.attr("x", d => xScale(d))
.attr("y", 25)
.attr("text-anchor", "middle")
.attr("fill", "#e0e0e0")
.attr("font-size", "10px")
.text(d => `Sem ${d}`);
}
// Initailize all visualizations
createInventoryFlowChart();
createOptimizationChart();
createImplementationTimeline();
});
</script>
</body>
</html>