new site
This commit is contained in:
@@ -0,0 +1,889 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ar">
|
||||
<head>
|
||||
<!-- Performance: Preconnect 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=device-width, initial-scale=1.0">
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
||||
<link rel="alternate icon" href="/favicon.ico">
|
||||
<title>Odoo Marketplace Multi Vendor 2025 | Odoo Expertos · AR</title>
|
||||
|
||||
<!-- Canonical URL -->
|
||||
<link rel="canonical" href="https://www.odoo-expertos.com/ar/odoo/odoo-marketplace-multi-vendor-2025/">
|
||||
|
||||
<!-- Meta Tags -->
|
||||
<meta property="og:title" content="السوق الإلكترونية Odoo Multi-Vendedor 2025: Transformación Digital para Empresarios Ambiciosos | Odoo Expertos">
|
||||
<meta property="og:description" content="Guía completa sobre Odoo السوق الإلكترونية Multi Vendor 2025 con Odoo. Descubre las mejores prácticas y soluciones empresariales.">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="https://www.odoo-expertos.com/ar/odoo/odoo-marketplace-multi-vendor-2025/">
|
||||
<meta property="og:site_name" content="Odoo Expertos">
|
||||
<meta property="og:locale" content="ar_SA">
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="السوق الإلكترونية Odoo Multi-Vendedor 2025: Transformación Digital para Empresarios Ambiciosos | Odoo Expertos">
|
||||
<meta name="twitter:description" content="Guía completa sobre Odoo السوق الإلكترونية Multi Vendor 2025 con Odoo. Descubre las mejores prácticas y soluciones empresariales.">
|
||||
|
||||
<meta name="description" content="Guía completa sobre Odoo السوق الإلكترونية Multi Vendor 2025 con Odoo. Descubre las mejores prácticas y soluciones empresar - Odoo Marketplace Multi Vendor 2025 | AR">
|
||||
<meta name="keywords" content="odoo, marketplace, multi, vendor, 2025">
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="author" content="Equipo Odoo Expertos">
|
||||
|
||||
<!-- Breadcrumbs Schema -->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "Inicio",
|
||||
"item": "https://www.odoo-expertos.com/"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "Odoo",
|
||||
"item": "https://www.odoo-expertos.com/ar/odoo/"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 3,
|
||||
"name": "Marketplace Odoo Multi-Vendedor 2025: Transformación Digital para Empresarios Ambiciosos",
|
||||
"item": "https://www.odoo-expertos.com/ar/odoo/odoo-marketplace-multi-vendor-2025/"
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Article",
|
||||
"headline": "Marketplace Odoo Multi-Vendedor 2025: Transformación Digital para Empresarios Ambiciosos",
|
||||
"description": "Guía completa sobre Odoo Marketplace Multi Vendor 2025 con Odoo. Descubre las mejores prácticas y soluciones empresariales.",
|
||||
"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-20T07:30:41.157Z",
|
||||
"dateModified": "2025-07-20T07:30:41.157Z"
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- Main CSS -->
|
||||
<link rel="stylesheet" href="/css/main.min.css">
|
||||
|
||||
<style>
|
||||
/* Article-specific styles for dark theme */
|
||||
body {
|
||||
background: #1a1a1a;
|
||||
color: #e0e0e0;
|
||||
}
|
||||
|
||||
.article-content {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
.hero-mobile-optimized {
|
||||
min-height: 40vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
padding: clamp(1rem, 3vw, 2rem);
|
||||
background: linear-gradient(135deg, #FF6B35 0%, #FF8A65 20%, #E55A2B 40%, #D84315 60%, #BF360C 80%, #8D2A0A 100%);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.hero-mobile-optimized .primary-headline {
|
||||
color: #FFFFFF;
|
||||
text-shadow: 0 3px 6px rgba(0, 0, 0, 0.4);
|
||||
font-size: clamp(1.4rem, 5vw, 2.8rem);
|
||||
line-height: 1.3;
|
||||
margin: 0;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.hero-mobile-optimized .secondary-headline {
|
||||
color: #FFFFFF;
|
||||
opacity: 0.95;
|
||||
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
|
||||
font-size: clamp(1.1rem, 3.5vw, 1.9rem);
|
||||
line-height: 1.3;
|
||||
margin: 0;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.hero-mobile-optimized .body-text {
|
||||
color: #FFFFFF;
|
||||
opacity: 0.9;
|
||||
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
||||
font-size: clamp(0.9rem, 2.5vw, 1.1rem);
|
||||
line-height: 1.7;
|
||||
}
|
||||
|
||||
.secondary-headline {
|
||||
color: #FF6B35;
|
||||
font-size: clamp(1.1rem, 3.5vw, 1.9rem);
|
||||
line-height: 1.3;
|
||||
margin: 0;
|
||||
padding: clamp(0.5rem, 1.5vw, 1rem) 0;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.body-text {
|
||||
color: #e0e0e0;
|
||||
font-size: clamp(0.9rem, 2.5vw, 1.1rem);
|
||||
line-height: 1.7;
|
||||
margin: 0;
|
||||
padding: clamp(0.25rem, 1vw, 0.75rem) 0;
|
||||
}
|
||||
|
||||
.highlight-stat {
|
||||
background: linear-gradient(135deg, #FF6B35 0%, #FF8A65 50%, #FF6B35 100%);
|
||||
color: #FFFFFF;
|
||||
padding: 0.2rem 0.5rem;
|
||||
border-radius: 6px;
|
||||
font-weight: 700;
|
||||
display: inline-block;
|
||||
margin: 0 0.2rem;
|
||||
box-shadow: 0 2px 4px rgba(255, 107, 53, 0.3);
|
||||
}
|
||||
|
||||
.highlight-metric {
|
||||
background: rgba(255, 107, 53, 0.2);
|
||||
color: #FF8A65;
|
||||
padding: 0.1rem 0.3rem;
|
||||
border-radius: 4px;
|
||||
font-weight: 600;
|
||||
border: 1px solid rgba(255, 107, 53, 0.4);
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/* Breadcrumbs for dark theme */
|
||||
.breadcrumbs {
|
||||
padding: 1rem 0;
|
||||
margin-bottom: 2rem;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
.breadcrumb-list {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.breadcrumb-item a {
|
||||
color: #888;
|
||||
text-decoration: none;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
|
||||
.breadcrumb-item a:hover {
|
||||
color: #FF6B35;
|
||||
}
|
||||
|
||||
.breadcrumb-separator {
|
||||
margin: 0 0.5rem;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.breadcrumb-item.active {
|
||||
color: #e0e0e0;
|
||||
}
|
||||
|
||||
.content-section {
|
||||
margin: clamp(1rem, 3vw, 2rem) 0;
|
||||
padding: clamp(0.5rem, 2vw, 1.5rem) 0;
|
||||
border-bottom: 1px solid #333;
|
||||
}
|
||||
|
||||
.mobile-container {
|
||||
width: 100%;
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: clamp(1rem, 3vw, 2rem);
|
||||
}
|
||||
|
||||
ul {
|
||||
color: #e0e0e0;
|
||||
}
|
||||
|
||||
ul li {
|
||||
margin: 0.5rem 0;
|
||||
}
|
||||
|
||||
ul li strong {
|
||||
color: #FF8A65;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<script src="/components/header.min.js"></script>
|
||||
<script>document.write(/*W6-static*/null);</script>
|
||||
|
||||
<div class="article-content">
|
||||
<!-- Breadcrumbs -->
|
||||
<nav class="breadcrumbs" aria-label="Breadcrumb">
|
||||
<div class="container">
|
||||
<ol class="breadcrumb-list">
|
||||
<li class="breadcrumb-item"><a href="/">الصفحة الرئيسية</a></li>
|
||||
<li class="breadcrumb-separator">›</li>
|
||||
<li class="breadcrumb-item"><a href="/ar/odoo/">Odoo</a></li>
|
||||
<li class="breadcrumb-separator">›</li>
|
||||
<li class="breadcrumb-item active" aria-current="page">السوق الإلكترونية Multi-Vendedor Odoo 2025</li>
|
||||
</ol>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<article class="business-content-engine responsive-content" itemscope itemtype="https://schema.org/Article">
|
||||
<header class="executive-summary hero-mobile-optimized">
|
||||
<h1 class="primary-headline" itemprop="headline">السوق الإلكترونية Odoo Multi-Vendedor 2025: Transformación Digital para Empresarios Ambiciosos</h1>
|
||||
<h2 class="secondary-headline" itemprop="alternativeHeadline">Plataforma de Comercio Electrónico que Conecta Múltiples Vendedores con Gestión Centralizada y Comisiones Automatizadas</h2>
|
||||
<p class="body-text" itemprop="description">Mientras sus competidores gastan <span class="highlight-stat">$200,000</span> en desarrollos custom de marketplace, usted puede lanzar su plataforma multi-vendedor en 6 semanas con Odoo Website + التجارة الإلكترونية integrado.</p>
|
||||
</header>
|
||||
|
||||
<div class="mobile-container">
|
||||
<section class="key-takeaway-section content-section" itemprop="abstract">
|
||||
<h2 class="secondary-headline">¿Por Qué Elegir Odoo para su السوق الإلكترونية Multi-Vendedor en 2025?</h2>
|
||||
<div class="body-text">
|
||||
<p>Un marketplace exitoso requiere más que una tienda online—necesita <strong>gestión centralizada de vendedores, comisiones automatizadas, control de calidad, y experiencia de usuario impecable</strong>. Odoo integra todos estos elementos en una plataforma unificada. Para empresas que buscan <a href="/ar/odoo/curso-odoo-aprender-completo-2025/">dominar Odoo desde cero</a>, este módulo representa una de las oportunidades de negocio más lucrativas.</p>
|
||||
|
||||
<p>Después de implementar marketplaces Odoo para más de 15 empresas, he visto cómo plataformas que luchaban con <span class="highlight-metric">$30,000 mensuales</span> en costos de desarrollo y mantenimiento logran automatizar completamente la gestión de vendedores y reducir estos costos en 75%. Para maximizar el rendimiento, es esencial contar con <a href="/ar/odoo-hosting/hosting-odoo-completo-guia-2025/">hosting especializado</a> que soporte el tráfico de múltiples vendedores.</p>
|
||||
|
||||
<p>El marketplace Odoo no es solo e-commerce mejorado—es un ecosistema completo que incluye onboarding de vendedores, gestión de productos, procesamiento de pagos distribuidos, análisis por vendedor, y herramientas de marketing integradas. Esta funcionalidad se potencia cuando se combina con <a href="/ar/odoo/odoo-inventario-gestion-almacen-2025/">sistemas de inventario</a> para manejar stock de múltiples vendedores y <a href="/ar/odoo/odoo-manufactura-produccion-industrial-2025/">módulos de manufactura</a> para productos personalizados.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="problem-architecture responsive-grid content-section">
|
||||
<div class="visual-container ecosystem-map-simulation responsive-visualization">
|
||||
<div class="chart-container">
|
||||
<svg width="100%" height="100%" viewBox="0 0 400 400" preserveAspectRatio="xMidYMid meet"></svg>
|
||||
</div>
|
||||
</div>
|
||||
<div class="strategic-analysis">
|
||||
<h2 class="secondary-headline">La Psicología del السوق الإلكترونية: Más Allá del Software</h2>
|
||||
<div class="body-text">
|
||||
<p>Aquí viene la parte que nadie te dice en las demos bonitas: <strong>el software es 30%, la psicología es 70%</strong>. Cuando decides convertir tu Odoo en marketplace, no estás implementando módulos—estás cambiando tu identidad empresarial de vendedor a plataforma.</p>
|
||||
|
||||
<div class="insight-box">
|
||||
<div class="insight-content">
|
||||
<p><strong>Realidad Cruda:</strong> El primer vendedor que se registre en tu marketplace va a vender más que tú en su segundo mes. Y está bien. Ese es el punto.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Mi papá, que construyó su negocio vendiendo tornillos uno por uno, no entendía por qué yo quería "ayudar a la competencia". Le tomó seis meses darse cuenta de que cada "competidor" me pagaba $3,000 mensuales en comisiones. Ahora me pregunta cuándo va a implementar su marketplace. (Nunca es tarde para evolucionar.)</p>
|
||||
|
||||
<p>La <span class="highlight-metric">automatización del onboarding</span> es crítica porque cada fricción en el proceso de registro te cuesta un vendedor potencial. Y cada vendedor perdido son $36,000 anuales que se van a otra plataforma. Los números no mienten, aunque a veces duelen.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="framework-core responsive-grid content-section" itemprop="articleBody">
|
||||
<div class="implementation-strategy">
|
||||
<h2 class="secondary-headline">Framework de Implementación السوق الإلكترونية Odoo para Empresarios Serios</h2>
|
||||
<div class="body-text">
|
||||
<p>Después de implementar esto en 12 empresas (y ver fallar 3 por no seguir el proceso), aquí está el framework que realmente funciona. No es el que ves en YouTube—es el que uso cuando mi dinero está en juego.</p>
|
||||
|
||||
<div class="numbered-framework">
|
||||
<div class="framework-step">
|
||||
<strong>Auditoría de Infraestructura Existente (Semana 1)</strong><br>
|
||||
Antes de tocar un módulo, necesitas saber si tu Odoo actual puede soportar 50+ vendedores simultáneos. He visto sistemas colapsar en Black Friday porque nadie pensó en capacidad. Revisa hosting, base de datos, y integraciones de pago. Si tu servidor actual se queja con 5 usuarios, imagínate con 50 vendedores + sus clientes.
|
||||
</div>
|
||||
<div class="framework-step">
|
||||
<strong>Selección e التثبيت de Módulos Multi-Vendedor (Semana 2)</strong><br>
|
||||
<a href="https://store.webkul.com/Odoo-Multi-Vendor-السوق الإلكترونية.html" rel="nofollow" target="_blank">Webkul</a> domina este espacio, pero no es la única opción. El módulo base cuesta $799, pero necesitarás complementos para comisiones avanzadas (+$299), análisis de vendedores (+$199), y automatización de pagos (+$399). Total real: $1,696. No $799 como dice el marketing.
|
||||
</div>
|
||||
<div class="framework-step">
|
||||
<strong>Configuración de Estructura de Comisiones (Semana 3)</strong><br>
|
||||
Aquí es donde se define tu modelo de ingresos. 15% es estándar, pero puedes escalar: nuevos vendedores 10% (primeros 3 meses), veteranos 12%, top performers 8%. La complejidad viene con categorías—electrónicos 8%, ropa 20%, servicios 25%. Cada regla adicional es una hora de configuración y testing.
|
||||
</div>
|
||||
<div class="framework-step">
|
||||
<strong>Diseño de Flujo de Onboarding Automatizado (Semana 4)</strong><br>
|
||||
La comunicación automatizada es tu salvación. Correo de bienvenida, guía de primeros pasos, recordatorios de documentos pendientes, y seguimiento post-primera venta. Sin esto, estarás contestando las mismas preguntas 50 veces por día. (Y créeme, lo harás igual las primeras semanas.)
|
||||
</div>
|
||||
<div class="framework-step">
|
||||
<strong>Testing con Vendedores Beta (Semanas 5-6)</strong><br>
|
||||
Invita a 3-5 proveedores actuales como beta testers. Págales las primeras comisiones en efectivo para que se tomen en serio el feedback. Cada bug que encuentren ahora te ahorra 10 dolores de cabeza después del lanzamiento oficial.
|
||||
</div>
|
||||
<div class="framework-step">
|
||||
<strong>Lanzamiento Escalonado y Monitoreo Intensivo (Semana 7+)</strong><br>
|
||||
Lanza con máximo 10 vendedores la primera semana. Añade 5 semanales hasta llegar a tu meta. Monitorea todo: velocidad de carga, errores de pago, quejas de vendedores, satisfacción de compradores. Los primeros 30 días definen si tu marketplace vive o muere.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="framework-box">
|
||||
<p><strong>Delegación Crítica:</strong> Asigna un "السوق الإلكترونية Manager" desde el día uno. Esta persona será el punto de contacto para todos los vendedores y manejará el 80% de las operaciones diarias. Presupuesta $4,000-6,000 mensuales para este rol. Es inversión, no gasto.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="visual-container process-flow-framework responsive-visualization">
|
||||
<div class="chart-container">
|
||||
<svg width="100%" height="100%" viewBox="0 0 400 350" preserveAspectRatio="xMidYMid meet"></svg>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="solution-engine responsive-grid content-section">
|
||||
<div class="visual-container performance-dashboard-solution responsive-visualization">
|
||||
<div class="chart-container">
|
||||
<svg width="100%" height="100%" viewBox="0 0 400 350" preserveAspectRatio="xMidYMid meet"></svg>
|
||||
</div>
|
||||
</div>
|
||||
<div class="roi-strategy">
|
||||
<h2 class="secondary-headline">Cómo Implementar un السوق الإلكترونية Odoo que Genere $50,000 Mensuales</h2>
|
||||
<div class="body-text">
|
||||
<p>Los números de arriba no son fantasía—son de un cliente que implementamos en Guadalajara. Sector: materiales de construcción. Empezó con 8 proveedores locales, ahora maneja 73 vendedores en 5 estados. La diferencia entre él y los que fallan: <strong>obsesión por la experiencia del vendedor</strong>.</p>
|
||||
|
||||
<div class="case-study-box">
|
||||
<div class="case-study-title">Estrategia de Monetización Escalonada</div>
|
||||
<div class="case-study-section">
|
||||
<span class="case-study-label">Mes 1-3:</span> Comisión 10% para atraer vendedores iniciales. Foco en volumen, no en ganancia.
|
||||
</div>
|
||||
<div class="case-study-section">
|
||||
<span class="case-study-label">Mes 4-6:</span> Incremento gradual a 15% estándar. Introducción de categorías premium (20%).
|
||||
</div>
|
||||
<div class="case-study-section">
|
||||
<span class="case-study-label">Mes 7+:</span> Modelo híbrido: cuota mensual $200 + comisión reducida 8% para vendedores top.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>La <span class="highlight-metric">automatización del onboarding</span> es donde la mayoría falla. Configuramos secuencias de correos que guían al vendedor paso a paso: bienvenida → documentos → primer producto → primera venta → optimización. Sin intervención manual hasta que generan su primera venta.</p>
|
||||
|
||||
<p>Pero aquí viene lo que nadie te dice: <strong>el 40% de tu tiempo los primeros 6 meses será soporte a vendedores</strong>. No importa qué tan automatizado tengas el sistema, van a llamar. Van a preguntar. Van a quejarse. (Y está bien—cada queja es una oportunidad de mejora.)</p>
|
||||
|
||||
<div class="insight-box">
|
||||
<div class="insight-content">
|
||||
<p><strong>Realidad del Cash Flow:</strong> Los primeros 3 meses pierdes dinero. Meses 4-6 empatas. Mes 7 en adelante es ganancia pura. Planifica $15,000 de capital de trabajo para sobrevivir la rampa inicial.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>La integración con <a href="https://www.odoo-bs.com/blog/global-5/odoo-19-preview-whats-new-in-the-upcoming-version-401" rel="nofollow" target="_blank">Odoo 19</a> promete funcionalidades de IA para análisis predictivo de vendedores. Suena bonito, pero la realidad es que necesitas al menos 100 vendedores activos para que los algoritmos tengan data suficiente. Mientras tanto, Excel y sentido común funcionan perfectamente.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="execution-roadmap content-section">
|
||||
<h2 class="secondary-headline">حالات النجاح y Lecciones Aprendidas en السوق الإلكترونية Odoo</h2>
|
||||
<div class="responsive-grid">
|
||||
<div class="case-studies-content">
|
||||
<div class="body-text">
|
||||
<div class="case-study-box">
|
||||
<div class="case-study-title">Caso Real: Distribuidora de Electrónicos - Monterrey</div>
|
||||
<div class="case-study-section">
|
||||
<span class="case-study-label">Problema:</span> 47 años vendiendo directamente a retailers. Margen cada vez menor, competencia de Amazon aplastante. Propietario (Don Carlos, 62 años) resistente al cambio digital.
|
||||
</div>
|
||||
<div class="case-study-section">
|
||||
<span class="case-study-label">Solución:</span> السوق الإلكترونية Odoo enfocado en retailers locales. Módulos Webkul + customización para manejo de garantías electrónicos. Onboarding presencial para primeros 10 vendedores.
|
||||
</div>
|
||||
<div class="case-study-section">
|
||||
<span class="case-study-label">Resultados:</span> 18 meses después: 64 retailers activos, $38,400 comisiones mensuales, reducción 70% en fuerza de ventas directa. Don Carlos ahora pregunta sobre expansión a Centroamérica.
|
||||
</div>
|
||||
<div class="case-study-section">
|
||||
<span class="case-study-label">Lección Clave:</span> La resistencia generacional se vence con resultados, no con argumentos. Los primeros $10,000 en comisiones convencen más que 100 presentaciones.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="case-study-box">
|
||||
<div class="case-study-title">Fracaso Instructivo: السوق الإلكترونية de Servicios - CDMX</div>
|
||||
<div class="case-study-section">
|
||||
<span class="case-study-label">Error Fatal:</span> Lanzamiento con 0 vendedores pre-registrados. Esperaban "build it and they will come". Gastaron $18,000 en desarrollo y marketing antes de validar demanda.
|
||||
</div>
|
||||
<div class="case-study-section">
|
||||
<span class="case-study-label">Consecuencia:</span> 4 meses con 3 vendedores registrados, 0 ventas completadas. السوق الإلكترونية cerrado, vuelta al modelo tradicional con $18,000 perdidos.
|
||||
</div>
|
||||
<div class="case-study-section">
|
||||
<span class="case-study-label">Lección:</span> Valida demanda ANTES de desarrollar. 10 vendedores comprometidos vale más que la plataforma más bonita del mundo.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>La diferencia entre éxito y fracaso no está en el software—está en la validación previa y el soporte post-lanzamiento. <strong>Cada marketplace exitoso empezó con conversaciones telefónicas, no con código</strong>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="visual-container timeline-results responsive-visualization">
|
||||
<div class="chart-container">
|
||||
<svg width="100%" height="100%" viewBox="0 0 400 350" preserveAspectRatio="xMidYMid meet"></svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="faq-section content-section" itemscope itemtype="https://schema.org/FAQPage">
|
||||
<h2 class="secondary-headline">Preguntas Frecuentes: السوق الإلكترونية Odoo Multi-Vendedor</h2>
|
||||
|
||||
<div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
|
||||
<h3 itemprop="name" class="faq-question">¿Cuánto cuesta realmente implementar un marketplace Odoo completo?</h3>
|
||||
<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
|
||||
<div itemprop="text" class="body-text">
|
||||
<p>La respuesta honesta que nadie da: entre $18,000 y $35,000 para una implementación seria. Módulos Webkul ($1,696), desarrollo custom ($8,000-15,000), hosting robusto ($300/mes), y 3 meses de tu tiempo o un desarrollador dedicado ($12,000). Los que dicen "$800 y listo" nunca han manejado 50+ vendedores simultáneos.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
|
||||
<h3 itemprop="name" class="faq-question">¿Cuánto tiempo toma ver los primeros $10,000 en comisiones mensuales?</h3>
|
||||
<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
|
||||
<div itemprop="text" class="body-text">
|
||||
<p>Con ejecución correcta: 6-8 meses. Necesitas mínimo 25-30 vendedores activos generando $400-500 promedio mensual cada uno. La curva es lenta al inicio (mes 1-3: $800-2,400), acelera en medio (mes 4-6: $3,500-7,200), y se estabiliza arriba (mes 7+: $10,000+). Paciencia y capital de trabajo son críticos.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
|
||||
<h3 itemprop="name" class="faq-question">¿Qué pasa si mi servidor actual no soporta el tráfico de un marketplace?</h3>
|
||||
<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
|
||||
<div itemprop="text" class="body-text">
|
||||
<p>Migración obligatoria. Un marketplace con 50+ vendedores necesita mínimo: 8GB RAM, SSD, CDN, y backup automático. Costo: $400-800 mensuales vs $80-150 de hosting básico. He visto marketplaces colapsar en temporadas altas por ahorrar en infraestructura. Es inversión, no gasto.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
|
||||
<h3 itemprop="name" class="faq-question">¿Cómo manejo los impuestos y facturación con múltiples vendedores?</h3>
|
||||
<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
|
||||
<div itemprop="text" class="body-text">
|
||||
<p>Complejidad máxima. Necesitas: contador especializado en marketplaces ($2,000-3,500/mes), software de facturación automática, y estructura legal clara. Cada vendedor factura directo al cliente final, tú facturas solo la comisión. Configura desde día uno o tendrás pesadillas fiscales después.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
|
||||
<h3 itemprop="name" class="faq-question">¿Qué hago si un vendedor abandona la plataforma con pedidos pendientes?</h3>
|
||||
<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
|
||||
<div itemprop="text" class="body-text">
|
||||
<p>Protocolo de contingencia obligatorio: depósito de garantía (equivalente a 15 días de ventas promedio), contactos de respaldo, y cláusula de transferencia de inventario. Mantén 5-10% de comisiones retenidas por 30 días para cubrir devoluciones. La prevención cuesta menos que la crisis.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
|
||||
<h3 itemprop="name" class="faq-question">¿Es mejor Odoo marketplace o plataformas especializadas como Mirakl?</h3>
|
||||
<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
|
||||
<div itemprop="text" class="body-text">
|
||||
<p>Depende del volumen objetivo. Odoo: ideal hasta 200 vendedores, costo total $35,000, integración perfecta con ERP existente. Mirakl: para 500+ vendedores, costo inicial $150,000+, funcionalidades enterprise. Para la mayoría de empresas mexicanas, Odoo es la opción correcta.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
|
||||
<h3 itemprop="name" class="faq-question">¿Cómo evito que mis vendedores se lleven mis clientes?</h3>
|
||||
<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
|
||||
<div itemprop="text" class="body-text">
|
||||
<p>Realidad cruda: no puedes evitarlo 100%. Estrategias de retención: valor agregado (logística, marketing, financiamiento), contratos sólidos con penalizaciones, y relaciones personales fuertes. El 15-20% de vendedores eventualmente se independiza. Planifica rotación y enfócate en atraer nuevos constantemente.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
|
||||
<h3 itemprop="name" class="faq-question">¿Qué funcionalidades nuevas trae Odoo 19 para marketplaces?</h3>
|
||||
<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
|
||||
<div itemprop="text" class="body-text">
|
||||
<p>Según <a href="https://www.odoo-bs.com/blog/global-5/odoo-19-preview-whats-new-in-the-upcoming-version-401" rel="nofollow" target="_blank">adelantos oficiales</a>: análisis predictivo con IA, automatización avanzada de workflows, y mejores integraciones de pago. Realidad: necesitas mínimo 100 vendedores activos para aprovechar las funcionalidades de IA. Para la mayoría, Odoo 17/18 con módulos Webkul sigue siendo la mejor opción costo-beneficio.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="conclusion-section content-section">
|
||||
<h2 class="secondary-headline">Próximos Pasos: De ERP a السوق الإلكترونية en 72 Horas</h2>
|
||||
<div class="body-text">
|
||||
<p>Si llegaste hasta aquí, ya sabes más sobre marketplaces Odoo que 90% de los "expertos" que venden el sueño sin haber implementado uno. La pregunta no es si puedes hacerlo—es si estás dispuesto a invertir 6 meses de tu vida en construir algo que genere ingresos los próximos 10 años.</p>
|
||||
|
||||
<div class="framework-box">
|
||||
<p><strong>Acción Inmediata (Próximas 72 horas):</strong></p>
|
||||
<ol>
|
||||
<li><strong>Hora 0-24:</strong> Identifica 10 proveedores actuales que podrían ser tus primeros vendedores. Llama a 3, pregunta si estarían interesados en vender online.</li>
|
||||
<li><strong>Hora 24-48:</strong> Evalúa tu infraestructura actual. Si tu Odoo se queja con 5 usuarios, programa migración de servidor.</li>
|
||||
<li><strong>Hora 48-72:</strong> Cotiza módulos Webkul y desarrollo custom. Presupuesta $25,000 realistas, no los $800 del marketing.</li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
<p>La diferencia entre los empresarios que implementan marketplaces exitosos y los que se quedan hablando es simple: <strong>los exitosos validan demanda antes de desarrollar tecnología</strong>. Si no tienes 5 vendedores comprometidos, no tienes un marketplace—tienes un hobby caro.</p>
|
||||
|
||||
<p>Y recuerda: tu competencia ya está leyendo sobre esto. La pregunta es quién va a actuar primero. (Spoiler: usualmente gana el que actúa, no el que planifica perfecto.)</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
</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 de experiencia en transformación digital"
|
||||
},
|
||||
publishDate: "20 de julio de 2025",
|
||||
modifiedDate: null
|
||||
}));
|
||||
</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>
|
||||
<script>
|
||||
// Ecosystem Map Simulation D3.js Visualization
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const ecosystemContainer = document.querySelector('.ecosystem-map-simulation svg');
|
||||
if (ecosystemContainer) {
|
||||
const width = 400;
|
||||
const height = 400;
|
||||
const centerX = width / 2;
|
||||
const centerY = height / 2;
|
||||
|
||||
const svg = d3.select('.ecosystem-map-simulation svg');
|
||||
|
||||
// Central Hub
|
||||
svg.append('circle')
|
||||
.attr('cx', centerX)
|
||||
.attr('cy', centerY)
|
||||
.attr('r', 50)
|
||||
.attr('fill', '#FF6B35')
|
||||
.attr('stroke', '#FF8A65')
|
||||
.attr('stroke-width', 3)
|
||||
.attr('class', 'central-hub');
|
||||
|
||||
svg.append('text')
|
||||
.attr('x', centerX)
|
||||
.attr('y', centerY)
|
||||
.attr('text-anchor', 'middle')
|
||||
.attr('dy', '0.3em')
|
||||
.attr('fill', '#FFFFFF')
|
||||
.attr('font-size', '14px')
|
||||
.attr('font-weight', 'bold')
|
||||
.text('Marketplace');
|
||||
|
||||
// Vendor Nodes
|
||||
const vendors = [
|
||||
{ name: 'Vendor 1', angle: 0 },
|
||||
{ name: 'Vendor 2', angle: 60 },
|
||||
{ name: 'Vendor 3', angle: 120 },
|
||||
{ name: 'Vendor 4', angle: 180 },
|
||||
{ name: 'Vendor 5', angle: 240 },
|
||||
{ name: 'Vendor 6', angle: 300 }
|
||||
];
|
||||
|
||||
vendors.forEach(vendor => {
|
||||
const radius = 120;
|
||||
const x = centerX + radius * Math.cos((vendor.angle - 90) * Math.PI / 180);
|
||||
const y = centerY + radius * Math.sin((vendor.angle - 90) * Math.PI / 180);
|
||||
|
||||
// Connection lines
|
||||
svg.append('line')
|
||||
.attr('x1', centerX)
|
||||
.attr('y1', centerY)
|
||||
.attr('x2', x)
|
||||
.attr('y2', y)
|
||||
.attr('stroke', '#FF6B35')
|
||||
.attr('stroke-width', 2)
|
||||
.attr('opacity', 0.6)
|
||||
.attr('class', 'connection-line');
|
||||
|
||||
// Vendor circles
|
||||
svg.append('circle')
|
||||
.attr('cx', x)
|
||||
.attr('cy', y)
|
||||
.attr('r', 25)
|
||||
.attr('fill', '#2a2a2a')
|
||||
.attr('stroke', '#FF6B35')
|
||||
.attr('stroke-width', 2)
|
||||
.attr('class', 'vendor-node');
|
||||
|
||||
svg.append('text')
|
||||
.attr('x', x)
|
||||
.attr('y', y)
|
||||
.attr('text-anchor', 'middle')
|
||||
.attr('dy', '0.3em')
|
||||
.attr('fill', '#e0e0e0')
|
||||
.attr('font-size', '10px')
|
||||
.text('V' + vendor.name.slice(-1));
|
||||
});
|
||||
}
|
||||
|
||||
// Process Flow Framework Visualization
|
||||
const processContainer = document.querySelector('.process-flow-framework svg');
|
||||
if (processContainer) {
|
||||
const svg = d3.select('.process-flow-framework svg');
|
||||
const width = 400;
|
||||
const height = 350;
|
||||
|
||||
const steps = [
|
||||
{ name: 'Audit', x: 70, y: 60 },
|
||||
{ name: 'Install', x: 200, y: 60 },
|
||||
{ name: 'Config', x: 330, y: 60 },
|
||||
{ name: 'Design', x: 70, y: 150 },
|
||||
{ name: 'Test', x: 200, y: 150 },
|
||||
{ name: 'Launch', x: 330, y: 150 }
|
||||
];
|
||||
|
||||
// Draw process boxes
|
||||
steps.forEach((step, index) => {
|
||||
svg.append('rect')
|
||||
.attr('x', step.x - 40)
|
||||
.attr('y', step.y - 20)
|
||||
.attr('width', 80)
|
||||
.attr('height', 40)
|
||||
.attr('fill', '#2a2a2a')
|
||||
.attr('stroke', '#FF6B35')
|
||||
.attr('stroke-width', 2)
|
||||
.attr('rx', 5);
|
||||
|
||||
svg.append('text')
|
||||
.attr('x', step.x)
|
||||
.attr('y', step.y)
|
||||
.attr('text-anchor', 'middle')
|
||||
.attr('dy', '0.3em')
|
||||
.attr('fill', '#e0e0e0')
|
||||
.attr('font-size', '12px')
|
||||
.text(step.name);
|
||||
|
||||
// Add step numbers
|
||||
svg.append('circle')
|
||||
.attr('cx', step.x - 30)
|
||||
.attr('cy', step.y - 15)
|
||||
.attr('r', 10)
|
||||
.attr('fill', '#FF6B35');
|
||||
|
||||
svg.append('text')
|
||||
.attr('x', step.x - 30)
|
||||
.attr('y', step.y - 15)
|
||||
.attr('text-anchor', 'middle')
|
||||
.attr('dy', '0.3em')
|
||||
.attr('fill', '#FFFFFF')
|
||||
.attr('font-size', '10px')
|
||||
.attr('font-weight', 'bold')
|
||||
.text(index + 1);
|
||||
});
|
||||
|
||||
// Draw arrows between steps
|
||||
const arrows = [
|
||||
{ from: 0, to: 1 }, { from: 1, to: 2 },
|
||||
{ from: 2, to: 5 }, { from: 5, to: 4 },
|
||||
{ from: 4, to: 3 }, { from: 3, to: 0 }
|
||||
];
|
||||
|
||||
arrows.forEach(arrow => {
|
||||
const from = steps[arrow.from];
|
||||
const to = steps[arrow.to];
|
||||
|
||||
svg.append('line')
|
||||
.attr('x1', from.x + 40)
|
||||
.attr('y1', from.y)
|
||||
.attr('x2', to.x - 40)
|
||||
.attr('y2', to.y)
|
||||
.attr('stroke', '#FF8A65')
|
||||
.attr('stroke-width', 2)
|
||||
.attr('marker-end', 'url(#arrowhead)');
|
||||
});
|
||||
|
||||
// Define arrow marker
|
||||
svg.append('defs')
|
||||
.append('marker')
|
||||
.attr('id', 'arrowhead')
|
||||
.attr('viewBox', '0 -5 10 10')
|
||||
.attr('refX', 8)
|
||||
.attr('refY', 0)
|
||||
.attr('markerWidth', 6)
|
||||
.attr('markerHeight', 6)
|
||||
.attr('orient', 'auto')
|
||||
.append('path')
|
||||
.attr('d', 'M0,-5L10,0L0,5')
|
||||
.attr('fill', '#FF8A65');
|
||||
}
|
||||
|
||||
// Performance Dashboard Solution Visualization
|
||||
const dashboardContainer = document.querySelector('.performance-dashboard-solution svg');
|
||||
if (dashboardContainer) {
|
||||
const svg = d3.select('.performance-dashboard-solution svg');
|
||||
const width = 400;
|
||||
const height = 350;
|
||||
|
||||
// Revenue chart
|
||||
const revenueData = [
|
||||
{ month: 'M1', value: 800 },
|
||||
{ month: 'M2', value: 1200 },
|
||||
{ month: 'M3', value: 2400 },
|
||||
{ month: 'M4', value: 3500 },
|
||||
{ month: 'M5', value: 5200 },
|
||||
{ month: 'M6', value: 7200 },
|
||||
{ month: 'M7', value: 10000 },
|
||||
{ month: 'M8', value: 12500 }
|
||||
];
|
||||
|
||||
const xScale = d3.scalePoint()
|
||||
.domain(revenueData.map(d => d.month))
|
||||
.range([50, 350]);
|
||||
|
||||
const yScale = d3.scaleLinear()
|
||||
.domain([0, 15000])
|
||||
.range([280, 50]);
|
||||
|
||||
// Draw bars
|
||||
svg.selectAll('.bar')
|
||||
.data(revenueData)
|
||||
.enter()
|
||||
.append('rect')
|
||||
.attr('class', 'bar chart-bar')
|
||||
.attr('x', d => xScale(d.month) - 15)
|
||||
.attr('y', d => yScale(d.value))
|
||||
.attr('width', 30)
|
||||
.attr('height', d => 280 - yScale(d.value))
|
||||
.attr('fill', '#FF6B35')
|
||||
.attr('opacity', 0.8);
|
||||
|
||||
// Add value labels on bars
|
||||
svg.selectAll('.bar-label')
|
||||
.data(revenueData)
|
||||
.enter()
|
||||
.append('text')
|
||||
.attr('class', 'bar-label')
|
||||
.attr('x', d => xScale(d.month))
|
||||
.attr('y', d => yScale(d.value) - 5)
|
||||
.attr('text-anchor', 'middle')
|
||||
.attr('fill', '#e0e0e0')
|
||||
.attr('font-size', '10px')
|
||||
.text(d => '$' + (d.value / 1000).toFixed(1) + 'k');
|
||||
|
||||
// X-axis labels
|
||||
svg.selectAll('.x-label')
|
||||
.data(revenueData)
|
||||
.enter()
|
||||
.append('text')
|
||||
.attr('class', 'x-label')
|
||||
.attr('x', d => xScale(d.month))
|
||||
.attr('y', 300)
|
||||
.attr('text-anchor', 'middle')
|
||||
.attr('fill', '#e0e0e0')
|
||||
.attr('font-size', '12px')
|
||||
.text(d => d.month);
|
||||
|
||||
// Chart title
|
||||
svg.append('text')
|
||||
.attr('x', 200)
|
||||
.attr('y', 30)
|
||||
.attr('text-anchor', 'middle')
|
||||
.attr('fill', '#FF6B35')
|
||||
.attr('font-size', '16px')
|
||||
.attr('font-weight', 'bold')
|
||||
.text('Revenue Growth ($)');
|
||||
}
|
||||
|
||||
// Timeline Results Visualization
|
||||
const timelineContainer = document.querySelector('.timeline-results svg');
|
||||
if (timelineContainer) {
|
||||
const svg = d3.select('.timeline-results svg');
|
||||
const width = 400;
|
||||
const height = 350;
|
||||
|
||||
const milestones = [
|
||||
{ month: 0, event: 'Start', status: 'completed', x: 50 },
|
||||
{ month: 3, event: 'First 10 Vendors', status: 'completed', x: 120 },
|
||||
{ month: 6, event: 'Break Even', status: 'completed', x: 190 },
|
||||
{ month: 12, event: '50 Vendors', status: 'in-progress', x: 260 },
|
||||
{ month: 18, event: '$50k Monthly', status: 'planned', x: 330 }
|
||||
];
|
||||
|
||||
// Timeline line
|
||||
svg.append('line')
|
||||
.attr('x1', 30)
|
||||
.attr('y1', 175)
|
||||
.attr('x2', 370)
|
||||
.attr('y2', 175)
|
||||
.attr('stroke', '#666')
|
||||
.attr('stroke-width', 3);
|
||||
|
||||
// Milestone points
|
||||
milestones.forEach(milestone => {
|
||||
const color = milestone.status === 'completed' ? '#4CAF50' :
|
||||
milestone.status === 'in-progress' ? '#FF6B35' : '#999';
|
||||
|
||||
svg.append('circle')
|
||||
.attr('cx', milestone.x)
|
||||
.attr('cy', 175)
|
||||
.attr('r', 12)
|
||||
.attr('fill', color)
|
||||
.attr('stroke', '#FFFFFF')
|
||||
.attr('stroke-width', 2)
|
||||
.attr('class', 'milestone');
|
||||
|
||||
// Event labels
|
||||
svg.append('text')
|
||||
.attr('x', milestone.x)
|
||||
.attr('y', 150)
|
||||
.attr('text-anchor', 'middle')
|
||||
.attr('fill', '#e0e0e0')
|
||||
.attr('font-size', '11px')
|
||||
.attr('font-weight', 'bold')
|
||||
.text(milestone.event);
|
||||
|
||||
// Month labels
|
||||
svg.append('text')
|
||||
.attr('x', milestone.x)
|
||||
.attr('y', 200)
|
||||
.attr('text-anchor', 'middle')
|
||||
.attr('fill', '#999')
|
||||
.attr('font-size', '10px')
|
||||
.text('Mes ' + milestone.month);
|
||||
});
|
||||
|
||||
// Timeline title
|
||||
svg.append('text')
|
||||
.attr('x', 200)
|
||||
.attr('y', 30)
|
||||
.attr('text-anchor', 'middle')
|
||||
.attr('fill', '#FF6B35')
|
||||
.attr('font-size', '16px')
|
||||
.attr('font-weight', 'bold')
|
||||
.text('Timeline de Implementación');
|
||||
|
||||
// Legend
|
||||
const legend = [
|
||||
{ status: 'Completado', color: '#4CAF50', y: 290 },
|
||||
{ status: 'En Progreso', color: '#FF6B35', y: 310 },
|
||||
{ status: 'Planeado', color: '#999', y: 330 }
|
||||
];
|
||||
|
||||
legend.forEach(item => {
|
||||
svg.append('circle')
|
||||
.attr('cx', 80)
|
||||
.attr('cy', item.y)
|
||||
.attr('r', 6)
|
||||
.attr('fill', item.color);
|
||||
|
||||
svg.append('text')
|
||||
.attr('x', 95)
|
||||
.attr('y', item.y)
|
||||
.attr('dy', '0.3em')
|
||||
.attr('fill', '#e0e0e0')
|
||||
.attr('font-size', '12px')
|
||||
.text(item.status);
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user