2017 lines
82 KiB
HTML
2017 lines
82 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="fr">
|
|
<head>
|
|
<link rel="preconnect" href="https://d3js.org" crossorigin>
|
|
<link rel="preconnect" href="https://cdn.jsdelivr.net" 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>Hosting Odoo Colombia 2026 | Odoo Expertos · FR</title>
|
|
|
|
<meta name="description" content="Guia completa de hosting Odoo pour Colombia 2026. Compourmos proveedores con cumplimiento DIAN, facturacion electronica, centros de - Hosting Odoo Colombia 2026 | FR">
|
|
<meta name="keywords" content="hosting odoo colombia, odoo colombia dian, facturacion electronica odoo, odoo bogota, odoo medellin, hosting odoo latam, odoo cloud colombia, servidor odoo colombia">
|
|
<meta name="author" content="Dr. Equipo Odoo Expertos">
|
|
<meta name="robots" content="index, follow">
|
|
<meta name="language" content="fr">
|
|
<meta name="geo.region" content="CO">
|
|
<meta name="geo.placename" content="Colombia">
|
|
|
|
<link rel="canonical" href="https://www.odoo-expertos.com/fr/odoo-hosting/hosting-odoo-colombia-2026/">
|
|
|
|
<!-- Hreflang -->
|
|
<link rel="alternate" hreflang="fr" href="https://www.odoo-expertos.com/fr/odoo-hosting/hosting-odoo-colombia-2026/" />
|
|
<link rel="alternate" hreflang="es-CO" href="https://www.odoo-expertos.com/fr/odoo-hosting/hosting-odoo-colombia-2026/" />
|
|
<link rel="alternate" hreflang="x-default" href="https://www.odoo-expertos.com/odoo-hosting/hosting-odoo-colombia-2026/" />
|
|
|
|
<!-- Open Graph -->
|
|
<meta property="og:title" content="Hébergement Odoo Colombia 2026: Guia con DIAN y Facturacion Electronica">
|
|
<meta property="og:description" content="Compourtiva de hosting Odoo pour empresas colombianas. Cumplimiento DIAN, facturacion electronica y proveedores con data centers en LATAM.">
|
|
<meta property="og:type" content="article">
|
|
<meta property="og:url" content="https://www.odoo-expertos.com/fr/odoo-hosting/hosting-odoo-colombia-2026/">
|
|
<meta property="og:image" content="https://www.odoo-expertos.com/images/hosting-odoo-colombia-2026.jpg">
|
|
<meta property="og:site_name" content="Odoo Expertos">
|
|
<meta property="og:locale" content="es_CO">
|
|
|
|
<!-- Twitter Card -->
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:title" content="Hébergement Odoo Colombia 2026: Guide Complet">
|
|
<meta name="twitter:description" content="Proveedores de hosting Odoo con cumplimiento DIAN y facturacion electronica pour Colombia.">
|
|
|
|
<!-- Schema.org Article -->
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "Article",
|
|
"headline": "Hébergement Odoo Colombia 2026: Fournisseurs con DIAN y Facturacion Electronica",
|
|
"description": "Guia completa de hosting Odoo pour empresas colombianas con cumplimiento DIAN, facturacion electronica y centros de datos en LATAM.",
|
|
"author": {
|
|
"@type": "Person",
|
|
"name": "Dr. Equipo Odoo Expertos",
|
|
"url": "https://www.odoo-expertos.com/autor/maria-elena-rodriguez/",
|
|
"jobTitle": "Consultante Senior en Systèmes ERP"
|
|
},
|
|
"publisher": {
|
|
"@type": "Organization",
|
|
"name": "Odoo Expertos",
|
|
"logo": {
|
|
"@type": "ImageObject",
|
|
"url": "https://www.odoo-expertos.com/logo.png"
|
|
}
|
|
},
|
|
"datePublished": "2026-01-25",
|
|
"dateModified": "2026-01-25",
|
|
"mainEntityOfPage": {
|
|
"@type": "WebPage",
|
|
"@id": "https://www.odoo-expertos.com/fr/odoo-hosting/hosting-odoo-colombia-2026/"
|
|
},
|
|
"about": {
|
|
"@type": "Country",
|
|
"name": "Colombia"
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<!-- FAQ Schema Colombia -->
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "FAQPage",
|
|
"mainEntity": [
|
|
{
|
|
"@type": "Question",
|
|
"name": "Cual es el mejor hosting pour Odoo en Colombia en 2026?",
|
|
"acceptedAnswer": {
|
|
"@type": "Answer",
|
|
"text": "Pour empresas colombianas, recomendamos proveedores con centros de datos en LATAM (Miami, Sao Paulo o Bogota), soporte en espanol y compatibilidad con facturacion electronica DIAN. Odoo4projects y AWS Sao Paulo son excelentes opciones con latencia menor a 80ms desde Colombia."
|
|
}
|
|
},
|
|
{
|
|
"@type": "Question",
|
|
"name": "Que requisitos debe cumplir el hosting de Odoo pour facturacion electronica DIAN?",
|
|
"acceptedAnswer": {
|
|
"@type": "Answer",
|
|
"text": "El hosting debe soportar certificados digitales, conexion segura HTTPS con TLS 1.2+, almacenamiento de XMLs firmados por 5 anos minimo, integracion con proveedores tecnologicos autorizados por la DIAN, y cumplimiento de la Resolucion 000042 de 2020."
|
|
}
|
|
},
|
|
{
|
|
"@type": "Question",
|
|
"name": "Cuanto cuesta el hosting de Odoo en Colombia en pesos?",
|
|
"acceptedAnswer": {
|
|
"@type": "Answer",
|
|
"text": "Los precios varian desde $120.000 COP/mes (hosting basico) hasta $800.000+ COP/mes pour soluciones enterprise. El promedio pour una PYME colombiana es entre $150.000 y $400.000 COP/mes con hosting gestionado que incluye soporte pour facturacion electronica."
|
|
}
|
|
},
|
|
{
|
|
"@type": "Question",
|
|
"name": "Necesito un servidor en Colombia pour usar Odoo?",
|
|
"acceptedAnswer": {
|
|
"@type": "Answer",
|
|
"text": "No es obligatorio tener el servidor en Colombia. La DIAN permite servidores en el exterior siempre que cumplan con las normas de proteccion de datos y los XMLs de facturacion se almacenen correctamente. Servidores en Miami o Sao Paulo ofrecen excelente latencia (40-80ms) pour usuarios colombianos."
|
|
}
|
|
},
|
|
{
|
|
"@type": "Question",
|
|
"name": "Que proveedores de hosting Odoo soportan facturacion electronica colombiana?",
|
|
"acceptedAnswer": {
|
|
"@type": "Answer",
|
|
"text": "Los principales proveedores que soportan facturacion electronica DIAN incluyen: Odoo4projects (con modulo DIAN integrado), implementadores locales como Pragmatic o Vauxoo Colombia, y soluciones VPS con integracion a proveedores tecnologicos como Carvajal, Cadena o The Factory HKA."
|
|
}
|
|
},
|
|
{
|
|
"@type": "Question",
|
|
"name": "Como configuro Odoo pour cumplir con la normativa DIAN?",
|
|
"acceptedAnswer": {
|
|
"@type": "Answer",
|
|
"text": "Necesitas: 1) Modulo de localizacion colombiana (l10n_co), 2) Certificado digital de firma electronica, 3) Integracion con proveedor tecnologico autorizado, 4) Configuracion de numeracion de facturas segun resolucion DIAN, 5) Almacenamiento de XMLs por minimo 5 anos. Un hosting gestionado facilita esta configuracion."
|
|
}
|
|
},
|
|
{
|
|
"@type": "Question",
|
|
"name": "Puedo usar Odoo.sh pour mi empresa en Colombia?",
|
|
"acceptedAnswer": {
|
|
"@type": "Answer",
|
|
"text": "Si, Odoo.sh es compatible con empresas colombianas. Sin embargo, deberas configurar manualmente la integracion con facturacion electronica DIAN ya que no viene incluida por defecto. El costo adicional del modulo de localizacion y la integracion puede ser significativo."
|
|
}
|
|
}
|
|
]
|
|
}
|
|
</script>
|
|
|
|
<!-- Product Comparison Schema Colombia -->
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "ItemList",
|
|
"name": "Mejores Proveedores de Hosting Odoo pour Colombia 2026",
|
|
"itemListElement": [
|
|
{
|
|
"@type": "ListItem",
|
|
"position": 1,
|
|
"item": {
|
|
"@type": "Product",
|
|
"name": "Odoo4projects Colombia",
|
|
"description": "Hosting gestionado con modulo DIAN y facturacion electronica integrada",
|
|
"offers": {
|
|
"@type": "Offer",
|
|
"price": "150000",
|
|
"priceCurrency": "COP"
|
|
},
|
|
"aggregateRating": {
|
|
"@type": "AggregateRating",
|
|
"ratingValue": "4.8",
|
|
"reviewCount": "234"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"@type": "ListItem",
|
|
"position": 2,
|
|
"item": {
|
|
"@type": "Product",
|
|
"name": "AWS Sao Paulo",
|
|
"description": "Infraestructura cloud con baja latencia pour LATAM",
|
|
"offers": {
|
|
"@type": "Offer",
|
|
"price": "250000",
|
|
"priceCurrency": "COP"
|
|
},
|
|
"aggregateRating": {
|
|
"@type": "AggregateRating",
|
|
"ratingValue": "4.5",
|
|
"reviewCount": "892"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"@type": "ListItem",
|
|
"position": 3,
|
|
"item": {
|
|
"@type": "Product",
|
|
"name": "DigitalOcean NYC/Miami",
|
|
"description": "VPS economico con buena conectividad a Colombia",
|
|
"offers": {
|
|
"@type": "Offer",
|
|
"price": "120000",
|
|
"priceCurrency": "COP"
|
|
},
|
|
"aggregateRating": {
|
|
"@type": "AggregateRating",
|
|
"ratingValue": "4.3",
|
|
"reviewCount": "567"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
</script>
|
|
|
|
<!-- BreadcrumbList 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": "Hosting Odoo",
|
|
"item": "https://www.odoo-expertos.com/fr/odoo-hosting/"
|
|
},
|
|
{
|
|
"@type": "ListItem",
|
|
"position": 3,
|
|
"name": "Hosting Odoo Colombia 2026",
|
|
"item": "https://www.odoo-expertos.com/fr/odoo-hosting/hosting-odoo-colombia-2026/"
|
|
}
|
|
]
|
|
}
|
|
</script>
|
|
|
|
<!-- LocalBusiness Schema for Colombia -->
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "Service",
|
|
"name": "Hosting Odoo Colombia",
|
|
"description": "Servicios de hosting pour Odoo ERP con cumplimiento DIAN y facturacion electronica",
|
|
"areaServed": {
|
|
"@type": "Country",
|
|
"name": "Colombia"
|
|
},
|
|
"provider": {
|
|
"@type": "Organization",
|
|
"name": "Odoo Expertos"
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<link rel="stylesheet" href="/css/main.min.css">
|
|
<style>
|
|
.pillar-hero {
|
|
background: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 50%, #1a1a1a 100%);
|
|
padding: 4rem 2rem;
|
|
text-align: center;
|
|
border-bottom: 3px solid #FF6B35;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.pillar-hero::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background: radial-gradient(ellipse at center, rgba(255,107,53,0.15) 0%, transparent 70%);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.pillar-hero h1 {
|
|
font-size: clamp(2rem, 5vw, 3.5rem);
|
|
color: #FF6B35;
|
|
margin-bottom: 1rem;
|
|
line-height: 1.2;
|
|
position: relative;
|
|
}
|
|
|
|
.pillar-subtitle {
|
|
font-size: 1.3rem;
|
|
color: #b0b0b0;
|
|
max-width: 800px;
|
|
margin: 0 auto 2rem;
|
|
}
|
|
|
|
.pillar-meta {
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 2rem;
|
|
flex-wrap: wrap;
|
|
font-size: 0.9rem;
|
|
color: #888;
|
|
}
|
|
|
|
.pillar-meta span {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.colombia-flag {
|
|
display: inline-block;
|
|
width: 24px;
|
|
height: 16px;
|
|
background: linear-gradient(to bottom, #FCD116 50%, #003893 50%, #003893 75%, #CE1126 75%);
|
|
border-radius: 2px;
|
|
margin-right: 8px;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.quick-stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
|
gap: 1.5rem;
|
|
padding: 2rem;
|
|
background: #2a2a2a;
|
|
border-radius: 12px;
|
|
margin: 2rem 0;
|
|
}
|
|
|
|
.stat-card {
|
|
text-align: center;
|
|
padding: 1.5rem;
|
|
background: rgba(255,107,53,0.1);
|
|
border-radius: 8px;
|
|
border: 1px solid rgba(255,107,53,0.2);
|
|
transition: transform 0.3s ease, border-color 0.3s ease;
|
|
}
|
|
|
|
.stat-card:hover {
|
|
transform: translateY(-5px);
|
|
border-color: #FF6B35;
|
|
}
|
|
|
|
.stat-number {
|
|
font-size: 2.5rem;
|
|
font-weight: 700;
|
|
color: #FF6B35;
|
|
display: block;
|
|
}
|
|
|
|
.stat-label {
|
|
color: #b0b0b0;
|
|
font-size: 0.9rem;
|
|
margin-top: 0.5rem;
|
|
}
|
|
|
|
.toc {
|
|
background: #2a2a2a;
|
|
border: 2px solid #FF6B35;
|
|
border-radius: 12px;
|
|
padding: 2rem;
|
|
margin: 2rem 0;
|
|
}
|
|
|
|
.toc h2 {
|
|
color: #FF6B35;
|
|
margin-bottom: 1rem;
|
|
font-size: 1.5rem;
|
|
}
|
|
|
|
.toc-list {
|
|
list-style: none;
|
|
padding: 0;
|
|
columns: 2;
|
|
column-gap: 2rem;
|
|
}
|
|
|
|
.toc-list li {
|
|
margin-bottom: 0.75rem;
|
|
break-inside: avoid;
|
|
}
|
|
|
|
.toc-list a {
|
|
color: #e0e0e0;
|
|
text-decoration: none;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
transition: color 0.3s ease;
|
|
}
|
|
|
|
.toc-list a:hover {
|
|
color: #FF6B35;
|
|
}
|
|
|
|
.toc-list a::before {
|
|
content: '->';
|
|
color: #FF6B35;
|
|
}
|
|
|
|
.content-section {
|
|
margin: 3rem 0;
|
|
}
|
|
|
|
.content-section h2 {
|
|
color: #FF8A50;
|
|
margin-bottom: 1.5rem;
|
|
padding-bottom: 0.5rem;
|
|
border-bottom: 2px solid rgba(255,107,53,0.3);
|
|
}
|
|
|
|
.content-section h3 {
|
|
color: #FFB74D;
|
|
margin: 2rem 0 1rem;
|
|
}
|
|
|
|
.chart-section {
|
|
margin: 3rem 0;
|
|
padding: 2rem;
|
|
background: #2a2a2a;
|
|
border-radius: 12px;
|
|
}
|
|
|
|
.chart-section h3 {
|
|
color: #FF8A50;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.chart-container {
|
|
width: 100%;
|
|
min-height: 400px;
|
|
position: relative;
|
|
}
|
|
|
|
.comparison-table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
margin: 2rem 0;
|
|
background: #2a2a2a;
|
|
border-radius: 12px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.comparison-table th,
|
|
.comparison-table td {
|
|
padding: 1rem;
|
|
text-align: left;
|
|
border-bottom: 1px solid #3a3a3a;
|
|
}
|
|
|
|
.comparison-table th {
|
|
background: rgba(255,107,53,0.2);
|
|
color: #FF6B35;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.comparison-table tr:hover {
|
|
background: rgba(255,107,53,0.05);
|
|
}
|
|
|
|
.comparison-table .check {
|
|
color: #4CAF50;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.comparison-table .cross {
|
|
color: #f44336;
|
|
}
|
|
|
|
.provider-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
|
|
gap: 1.5rem;
|
|
margin: 2rem 0;
|
|
}
|
|
|
|
.provider-card {
|
|
background: #2a2a2a;
|
|
border-radius: 12px;
|
|
padding: 1.5rem;
|
|
border: 1px solid rgba(255,107,53,0.2);
|
|
transition: transform 0.3s ease, border-color 0.3s ease;
|
|
}
|
|
|
|
.provider-card:hover {
|
|
transform: translateY(-5px);
|
|
border-color: #FF6B35;
|
|
}
|
|
|
|
.provider-card.featured {
|
|
border-color: #FF6B35;
|
|
background: linear-gradient(135deg, rgba(255,107,53,0.15) 0%, #2a2a2a 100%);
|
|
position: relative;
|
|
}
|
|
|
|
.provider-card .badge {
|
|
display: inline-block;
|
|
padding: 0.25rem 0.75rem;
|
|
background: #FF6B35;
|
|
color: #fff;
|
|
border-radius: 20px;
|
|
font-size: 0.8rem;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.provider-card .badge.dian {
|
|
background: #FCD116;
|
|
color: #1a1a1a;
|
|
}
|
|
|
|
.provider-card h4 {
|
|
color: #fff;
|
|
margin-bottom: 0.5rem;
|
|
font-size: 1.3rem;
|
|
}
|
|
|
|
.provider-card .price {
|
|
font-size: 2rem;
|
|
color: #FF6B35;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.provider-card .price-cop {
|
|
font-size: 1.2rem;
|
|
color: #888;
|
|
display: block;
|
|
margin-top: 0.25rem;
|
|
}
|
|
|
|
.provider-card .price-period {
|
|
color: #888;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.provider-card ul {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 1rem 0;
|
|
}
|
|
|
|
.provider-card li {
|
|
padding: 0.5rem 0;
|
|
border-bottom: 1px solid #3a3a3a;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
color: #b0b0b0;
|
|
}
|
|
|
|
.provider-card li::before {
|
|
content: 'OK';
|
|
color: #4CAF50;
|
|
font-weight: bold;
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.provider-card .cta-btn {
|
|
display: block;
|
|
text-align: center;
|
|
padding: 0.75rem 1.5rem;
|
|
background: #FF6B35;
|
|
color: #fff;
|
|
border-radius: 8px;
|
|
text-decoration: none;
|
|
font-weight: 600;
|
|
transition: background 0.3s ease, transform 0.3s ease;
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
.provider-card .cta-btn:hover {
|
|
background: #FF8A50;
|
|
transform: scale(1.02);
|
|
}
|
|
|
|
.dian-box {
|
|
background: linear-gradient(135deg, rgba(252,209,22,0.15) 0%, rgba(0,56,147,0.1) 100%);
|
|
border: 2px solid #FCD116;
|
|
border-radius: 12px;
|
|
padding: 2rem;
|
|
margin: 2rem 0;
|
|
}
|
|
|
|
.dian-box h3 {
|
|
color: #FCD116;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.dian-box ul {
|
|
list-style: none;
|
|
padding: 0;
|
|
}
|
|
|
|
.dian-box li {
|
|
padding: 0.75rem 0;
|
|
border-bottom: 1px solid rgba(252,209,22,0.2);
|
|
color: #e0e0e0;
|
|
}
|
|
|
|
.dian-box li:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.faq-section {
|
|
margin: 3rem 0;
|
|
}
|
|
|
|
.faq-item {
|
|
background: #2a2a2a;
|
|
border-radius: 8px;
|
|
margin-bottom: 1rem;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.faq-question {
|
|
padding: 1.25rem;
|
|
cursor: pointer;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
color: #fff;
|
|
font-weight: 500;
|
|
transition: background 0.3s ease;
|
|
}
|
|
|
|
.faq-question:hover {
|
|
background: rgba(255,107,53,0.1);
|
|
}
|
|
|
|
.faq-question::after {
|
|
content: '+';
|
|
font-size: 1.5rem;
|
|
color: #FF6B35;
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
.faq-item.open .faq-question::after {
|
|
transform: rotate(45deg);
|
|
}
|
|
|
|
.faq-answer {
|
|
padding: 0 1.25rem;
|
|
max-height: 0;
|
|
overflow: hidden;
|
|
transition: max-height 0.3s ease, padding 0.3s ease;
|
|
color: #b0b0b0;
|
|
}
|
|
|
|
.faq-item.open .faq-answer {
|
|
padding: 0 1.25rem 1.25rem;
|
|
max-height: 500px;
|
|
}
|
|
|
|
.cta-banner {
|
|
background: linear-gradient(135deg, rgba(255,107,53,0.2) 0%, rgba(255,138,80,0.1) 100%);
|
|
border: 2px solid rgba(255,107,53,0.5);
|
|
border-radius: 12px;
|
|
padding: 2.5rem;
|
|
text-align: center;
|
|
margin: 3rem 0;
|
|
}
|
|
|
|
.cta-banner h3 {
|
|
color: #FF6B35;
|
|
margin-bottom: 1rem;
|
|
font-size: 1.8rem;
|
|
}
|
|
|
|
.cta-banner p {
|
|
margin-bottom: 1.5rem;
|
|
color: #b0b0b0;
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
.cta-banner .cta-btn {
|
|
display: inline-block;
|
|
padding: 1rem 2.5rem;
|
|
background: #FF6B35;
|
|
color: #fff;
|
|
border-radius: 8px;
|
|
text-decoration: none;
|
|
font-weight: 600;
|
|
font-size: 1.1rem;
|
|
transition: background 0.3s ease, transform 0.3s ease;
|
|
}
|
|
|
|
.cta-banner .cta-btn:hover {
|
|
background: #FF8A50;
|
|
transform: scale(1.05);
|
|
}
|
|
|
|
.related-articles {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
|
|
gap: 1.5rem;
|
|
margin: 2rem 0;
|
|
}
|
|
|
|
.related-card {
|
|
background: #2a2a2a;
|
|
border-radius: 8px;
|
|
overflow: hidden;
|
|
transition: transform 0.3s ease;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.related-card:hover {
|
|
transform: translateY(-5px);
|
|
}
|
|
|
|
.related-card-image {
|
|
height: 150px;
|
|
background: linear-gradient(135deg, rgba(255,107,53,0.3), rgba(255,138,80,0.3));
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 3rem;
|
|
}
|
|
|
|
.related-card-content {
|
|
padding: 1.25rem;
|
|
}
|
|
|
|
.related-card h4 {
|
|
color: #fff;
|
|
margin-bottom: 0.5rem;
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.related-card p {
|
|
color: #888;
|
|
font-size: 0.9rem;
|
|
margin: 0;
|
|
}
|
|
|
|
.d3-tooltip {
|
|
position: absolute;
|
|
background: rgba(0,0,0,0.95);
|
|
color: #fff;
|
|
padding: 0.75rem 1rem;
|
|
border-radius: 8px;
|
|
font-size: 0.9rem;
|
|
pointer-events: none;
|
|
z-index: 100;
|
|
max-width: 280px;
|
|
box-shadow: 0 4px 20px rgba(0,0,0,0.3);
|
|
border: 1px solid rgba(255,107,53,0.3);
|
|
}
|
|
|
|
.d3-tooltip strong {
|
|
color: #FF6B35;
|
|
}
|
|
|
|
.highlight-box {
|
|
background: linear-gradient(135deg, rgba(255,107,53,0.1) 0%, rgba(255,138,80,0.05) 100%);
|
|
border-left: 4px solid #FF6B35;
|
|
padding: 1.5rem;
|
|
margin: 2rem 0;
|
|
border-radius: 0 8px 8px 0;
|
|
}
|
|
|
|
.highlight-box h4 {
|
|
color: #FF6B35;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.pros-cons {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 1.5rem;
|
|
margin: 1.5rem 0;
|
|
}
|
|
|
|
.pros, .cons {
|
|
padding: 1.5rem;
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.pros {
|
|
background: rgba(76, 175, 80, 0.1);
|
|
border: 1px solid rgba(76, 175, 80, 0.3);
|
|
}
|
|
|
|
.cons {
|
|
background: rgba(244, 67, 54, 0.1);
|
|
border: 1px solid rgba(244, 67, 54, 0.3);
|
|
}
|
|
|
|
.pros h4 {
|
|
color: #4CAF50;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.cons h4 {
|
|
color: #f44336;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.pros ul, .cons ul {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.pros li::before {
|
|
content: 'OK ';
|
|
color: #4CAF50;
|
|
}
|
|
|
|
.cons li::before {
|
|
content: 'X ';
|
|
color: #f44336;
|
|
}
|
|
|
|
.latency-map {
|
|
background: #1a1a1a;
|
|
border-radius: 12px;
|
|
padding: 2rem;
|
|
margin: 2rem 0;
|
|
}
|
|
|
|
.latency-map h4 {
|
|
color: #FF6B35;
|
|
margin-bottom: 1.5rem;
|
|
text-align: center;
|
|
}
|
|
|
|
.latency-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
gap: 1rem;
|
|
}
|
|
|
|
.latency-item {
|
|
background: #2a2a2a;
|
|
padding: 1rem;
|
|
border-radius: 8px;
|
|
text-align: center;
|
|
}
|
|
|
|
.latency-item .location {
|
|
color: #b0b0b0;
|
|
font-size: 0.9rem;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.latency-item .ms {
|
|
font-size: 1.5rem;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.latency-item .ms.excellent {
|
|
color: #4CAF50;
|
|
}
|
|
|
|
.latency-item .ms.good {
|
|
color: #FFC107;
|
|
}
|
|
|
|
.latency-item .ms.fair {
|
|
color: #FF9800;
|
|
}
|
|
|
|
.fade-in {
|
|
opacity: 0;
|
|
transform: translateY(20px);
|
|
transition: opacity 0.6s ease, transform 0.6s ease;
|
|
}
|
|
|
|
.fade-in.visible {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.toc-list {
|
|
columns: 1;
|
|
}
|
|
|
|
.pillar-meta {
|
|
flex-direction: column;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.chart-container {
|
|
min-height: 300px;
|
|
}
|
|
|
|
.pros-cons {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.provider-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="header"><header class="site-header"><nav class="navbar"><div class="container"><div class="nav-brand"><a href="/fr/" class="logo"><span class="logo-text">Odoo Expertos</span></a></div><button class="nav-toggle" aria-label="Toggle navigation"><span></span><span></span><span></span></button><div class="nav-menu"><ul class="nav-list"><li><a href="/fr/">Accueil</a></li><li><a href="/fr/odoo/">Odoo</a></li><li><a href="/fr/odoo-ia/">Odoo IA</a></li><li><a href="/fr/odoo-hosting/">Hebergement Odoo</a></li><li><a href="/fr/mapa-del-sitio/">Plan du Site</a></li></ul></div></div></nav></header></div><button class="nav-toggle" aria-label="Toggle navigation"><span></span><span></span><span></span></button><div class="nav-menu"><ul class="nav-list"><li><a href="/fr/">Accueil</a></li><li><a href="/fr/odoo/">Odoo</a></li><li><a href="/fr/odoo-ia/">Odoo IA</a></li><li><a href="/fr/odoo-hosting/">Hebergement Odoo</a></li><li><a href="/fr/mapa-del-sitio/">Plan du Site</a></li></ul></div></div></nav></header></div>
|
|
|
|
<!-- Breadcrumbs -->
|
|
<nav class="breadcrumbs">
|
|
<div class="container">
|
|
<ol class="breadcrumb-list" itemscope itemtype="https://schema.org/BreadcrumbList">
|
|
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
|
<a itemprop="item" href="/"><span itemprop="name">Accueil</span></a>
|
|
<span itemprop="position" style="display:none">1</span>
|
|
</li>
|
|
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
|
<a itemprop="item" href="/fr/odoo-hosting/"><span itemprop="name">Hébergement Odoo</span></a>
|
|
<span itemprop="position" style="display:none">2</span>
|
|
</li>
|
|
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
|
<span itemprop="name">Hosting Odoo Colombia 2026</span>
|
|
<span itemprop="position" style="display:none">3</span>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
</nav>
|
|
|
|
<!-- Hero Section -->
|
|
<section class="pillar-hero">
|
|
<div class="container">
|
|
<h1><span class="colombia-flag"></span> Hosting Odoo Colombia 2026: Guia con DIAN y Facturacion Electronica</h1>
|
|
<p class="pillar-subtitle">Compourtiva completa de proveedores de hosting pour Odoo en Colombia. Incluye cumplimiento DIAN, facturacion electronica, centros de datos en LATAM y precios en pesos colombianos (COP).</p>
|
|
<div class="pillar-meta">
|
|
<span>Publié : 25 janvier 2026</span>
|
|
<span>Mis à jour : 25 janvier 2026</span>
|
|
<span>22 min lectura</span>
|
|
<span>Dr. Equipo Odoo Expertos</span>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<main class="container">
|
|
<!-- Quick Stats -->
|
|
<section class="quick-stats fade-in">
|
|
<div class="stat-card">
|
|
<span class="stat-number">12+</span>
|
|
<span class="stat-label">Proveedores pour Colombia</span>
|
|
</div>
|
|
<div class="stat-card">
|
|
<span class="stat-number">$120K</span>
|
|
<span class="stat-label">COP/Mes Minimo</span>
|
|
</div>
|
|
<div class="stat-card">
|
|
<span class="stat-number">40ms</span>
|
|
<span class="stat-label">Latencia Optima</span>
|
|
</div>
|
|
<div class="stat-card">
|
|
<span class="stat-number">100%</span>
|
|
<span class="stat-label">Compatible DIAN</span>
|
|
</div>
|
|
<div class="stat-card">
|
|
<span class="stat-number">5</span>
|
|
<span class="stat-label">Data Centers LATAM</span>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Table of Contents -->
|
|
<nav class="toc fade-in">
|
|
<h2>Contenido de esta Guia</h2>
|
|
<ol class="toc-list">
|
|
<li><a href="#resumen">Resumen pour Colombia</a></li>
|
|
<li><a href="#dian-requisitos">Requisitos DIAN y Facturacion Electronica</a></li>
|
|
<li><a href="#compourcion-proveedores">Compourtiva de Proveedores</a></li>
|
|
<li><a href="#grafico-precio-latencia">Grafico: Precio vs Latencia</a></li>
|
|
<li><a href="#top-proveedores">Top Proveedores pour Colombia</a></li>
|
|
<li><a href="#latencia-datacenters">Latencia por Data Center</a></li>
|
|
<li><a href="#precios-cop">Precios en Pesos Colombianos</a></li>
|
|
<li><a href="#facturacion-electronica">Configuracion Facturacion Electronica</a></li>
|
|
<li><a href="#faq">Preguntas Frecuentes Colombia</a></li>
|
|
<li><a href="#relacionados">Articles Connexes</a></li>
|
|
</ol>
|
|
</nav>
|
|
|
|
<!-- Executive Summary -->
|
|
<section id="resumen" class="content-section fade-in">
|
|
<h2>Resumen: Hosting Odoo pour Empresas Colombianas en 2026</h2>
|
|
|
|
<p>El ecosistema de hosting pour Odoo en Colombia ha madurado significativamente en 2026. Con la obligatoriedad de la facturacion electronica pour todas las empresas (segun la Resolucion 000042 de la DIAN), elegir un proveedor de hosting que cumpla con los requisitos normativos colombianos es mas critico que nunca.</p>
|
|
|
|
<p>Las empresas colombianas enfrentan desafios unicos: necesitan hosting que soporte la integracion con proveedores tecnologicos autorizados por la DIAN, almacenamiento seguro de XMLs firmados digitalmente por minimo 5 anos, y latencia optima pour usuarios ubicados principalmente en Bogota, Medellin, Cali y Barranquilla.</p>
|
|
|
|
<div class="highlight-box">
|
|
<h4>Recomendacion Principal pour Colombia</h4>
|
|
<p>Pour la mayoria de PYMES colombianas, recomendamos <strong>Odoo4projects</strong> (desde $150.000 COP/mes) por su combinacion de hosting gestionado, modulo DIAN preconfigurado, integracion con facturacion electronica y soporte en espanol 24/7. Pour empresas grandes que requieren maxima escalabilidad, <strong>AWS Sao Paulo</strong> ofrece la mejor infraestructura con latencia de solo 45ms desde Colombia.</p>
|
|
</div>
|
|
|
|
<h3>Por Que Colombia Necesita Consideraciones Especiales</h3>
|
|
<ul>
|
|
<li><strong>Facturacion Electronica Obligatoria:</strong> Todas las empresas deben emitir facturas electronicas validadas por la DIAN</li>
|
|
<li><strong>Localizacion Contable:</strong> Plan Unico de Cuentas (PUC), retencion en la fuente, IVA colombiano</li>
|
|
<li><strong>Almacenamiento Legal:</strong> XMLs deben conservarse minimo 5 anos segun normativa tributaria</li>
|
|
<li><strong>Conectividad:</strong> La latencia afecta directamente la productividad de los usuarios</li>
|
|
<li><strong>Soporte Local:</strong> Importante contar con asistencia en espanol y horario colombiano</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<!-- DIAN Requirements Section -->
|
|
<section id="dian-requisitos" class="content-section fade-in">
|
|
<h2>Requisitos DIAN pour Hosting de Odoo</h2>
|
|
|
|
<p>La Direccion de Impuestos y Aduanas Nacionales (DIAN) establece requisitos especificos que tu hosting debe cumplir pour operar la facturacion electronica en Colombia. Ignorar estos requisitos puede resultar en sanciones significativas.</p>
|
|
|
|
<div class="dian-box">
|
|
<h3>Requisitos Tecnicos Obligatorios DIAN</h3>
|
|
<ul>
|
|
<li><strong>Certificado Digital:</strong> Firma electronica emitida por entidad certificadora autorizada (Certicamara, Andes SCD, GSE)</li>
|
|
<li><strong>Conexion Segura:</strong> HTTPS con TLS 1.2 o superior pour transmision de documentos</li>
|
|
<li><strong>Formato XML:</strong> Documentos en formato UBL 2.1 segun especificaciones DIAN</li>
|
|
<li><strong>Almacenamiento:</strong> Conservacion de XMLs firmados por minimo 5 anos (recomendado 10)</li>
|
|
<li><strong>Proveedor Tecnologico:</strong> Integracion con PT autorizado (Carvajal, Cadena, The Factory HKA, etc.)</li>
|
|
<li><strong>Contingencia:</strong> Plan de backup pour emision de facturas en caso de falla del sistema</li>
|
|
<li><strong>Auditoria:</strong> Logs de todas las transacciones de facturacion electronica</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<h3>Resoluciones DIAN Aplicables</h3>
|
|
<table class="comparison-table">
|
|
<thead>
|
|
<tr>
|
|
<th>Resolucion</th>
|
|
<th>Descripcion</th>
|
|
<th>Impacto en Hosting</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>000042 de 2020</td>
|
|
<td>Requisitos de facturacion electronica</td>
|
|
<td>Define formato XML y proceso de validacion</td>
|
|
</tr>
|
|
<tr>
|
|
<td>000015 de 2021</td>
|
|
<td>Documento soporte en compras</td>
|
|
<td>Almacenamiento adicional requerido</td>
|
|
</tr>
|
|
<tr>
|
|
<td>000013 de 2021</td>
|
|
<td>Nomina electronica</td>
|
|
<td>Integracion con modulo de nomina</td>
|
|
</tr>
|
|
<tr>
|
|
<td>000085 de 2022</td>
|
|
<td>Eventos de factura (RADIAN)</td>
|
|
<td>Sistema de eventos y trazabilidad</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<h3>Proveedores Tecnologicos Autorizados DIAN</h3>
|
|
<p>Tu hosting debe poder integrarse con al menos uno de estos proveedores tecnologicos autorizados:</p>
|
|
<ul>
|
|
<li><strong>Carvajal Tecnologia y Servicios:</strong> El mas grande de Colombia, amplia documentacion de integracion</li>
|
|
<li><strong>Cadena S.A.:</strong> Excelente pour empresas medianas, API moderna</li>
|
|
<li><strong>The Factory HKA:</strong> Buena opcion pour PYMES, precios competitivos</li>
|
|
<li><strong>Certicamara:</strong> Tambien ofrece certificados digitales</li>
|
|
<li><strong>World Office Colombia:</strong> Solucion integrada pour Odoo</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<!-- Quick Comparison Table -->
|
|
<section id="compourcion-proveedores" class="content-section fade-in">
|
|
<h2>Compourtiva de Proveedores pour Colombia</h2>
|
|
|
|
<div style="overflow-x: auto;">
|
|
<table class="comparison-table">
|
|
<thead>
|
|
<tr>
|
|
<th>Proveedor</th>
|
|
<th>Precio COP/mes</th>
|
|
<th>Data Center</th>
|
|
<th>Latencia CO</th>
|
|
<th>DIAN Ready</th>
|
|
<th>Soporte ES</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><strong>Odoo4projects</strong></td>
|
|
<td>$150.000</td>
|
|
<td>Miami/Sao Paulo</td>
|
|
<td>45-60ms</td>
|
|
<td class="check">Si</td>
|
|
<td class="check">24/7</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>AWS Sao Paulo</strong></td>
|
|
<td>$250.000</td>
|
|
<td>Sao Paulo</td>
|
|
<td>45ms</td>
|
|
<td class="check">Config.</td>
|
|
<td class="check">Si</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Azure LATAM</strong></td>
|
|
<td>$280.000</td>
|
|
<td>Sao Paulo/Chile</td>
|
|
<td>50ms</td>
|
|
<td class="check">Config.</td>
|
|
<td class="check">Si</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>DigitalOcean NYC</strong></td>
|
|
<td>$120.000</td>
|
|
<td>New York</td>
|
|
<td>80ms</td>
|
|
<td class="cross">Manual</td>
|
|
<td class="cross">Ingles</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Google Cloud Chile</strong></td>
|
|
<td>$220.000</td>
|
|
<td>Santiago</td>
|
|
<td>55ms</td>
|
|
<td class="check">Config.</td>
|
|
<td class="check">Si</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Vultr Miami</strong></td>
|
|
<td>$100.000</td>
|
|
<td>Miami</td>
|
|
<td>60ms</td>
|
|
<td class="cross">Manual</td>
|
|
<td class="cross">Ingles</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Linode Atlanta</strong></td>
|
|
<td>$110.000</td>
|
|
<td>Atlanta</td>
|
|
<td>70ms</td>
|
|
<td class="cross">Manual</td>
|
|
<td class="cross">Ingles</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Odoo.sh</strong></td>
|
|
<td>$125.000/usuario</td>
|
|
<td>Variable</td>
|
|
<td>Variable</td>
|
|
<td class="cross">Modulo</td>
|
|
<td class="check">Si</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<p><em>* Precios aproximados a enero 2026. TRM referencia: 1 USD = $4.200 COP. Consulta la web oficial pour precios actualizados.</em></p>
|
|
</section>
|
|
|
|
<!-- D3.js Scatter Plot - Price vs Latency -->
|
|
<section class="chart-section fade-in">
|
|
<h3 id="grafico-precio-latencia">Precio vs Latencia desde Colombia</h3>
|
|
<p>Este grafico interactivo muestra la relacion entre el precio mensual en COP y la latencia desde Colombia. Proveedores en la esquina inferior izquierda ofrecen la mejor relacion precio-rendimiento.</p>
|
|
<div class="chart-container" id="scatter-chart"></div>
|
|
</section>
|
|
|
|
<!-- Provider Cards -->
|
|
<section id="top-proveedores" class="content-section fade-in">
|
|
<h2>Top Proveedores de Hosting Odoo pour Colombia</h2>
|
|
|
|
<div class="provider-grid">
|
|
<!-- Odoo4projects Colombia -->
|
|
<div class="provider-card featured">
|
|
<span class="badge">Recommandé Colombia</span>
|
|
<span class="badge dian">DIAN Ready</span>
|
|
<h4>Odoo4projects Colombia</h4>
|
|
<p class="price">$150.000<span class="price-period"> COP/mes</span></p>
|
|
<span class="price-cop">~$35 USD</span>
|
|
<ul>
|
|
<li>Modulo DIAN preconfigurado</li>
|
|
<li>Facturacion electronica integrada</li>
|
|
<li>Data center Miami (60ms)</li>
|
|
<li>Soporte 24/7 en espanol</li>
|
|
<li>Backup diario automatico</li>
|
|
<li>Migracion gratuita asistida</li>
|
|
<li>Integracion PT incluida</li>
|
|
</ul>
|
|
<div class="pros-cons">
|
|
<div class="pros">
|
|
<h4>Ventajas</h4>
|
|
<ul>
|
|
<li>DIAN listo sin configuracion</li>
|
|
<li>Precio fijo sin sorpresas</li>
|
|
<li>Soporte local colombiano</li>
|
|
</ul>
|
|
</div>
|
|
<div class="cons">
|
|
<h4>Limitaciones</h4>
|
|
<ul>
|
|
<li>Solo Odoo Community</li>
|
|
<li>Sin data center en Colombia</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<a href="https://odoo4projects.com" class="cta-btn" target="_blank" rel="noopener sponsored">Probar Gratis 14 Dias</a>
|
|
</div>
|
|
|
|
<!-- AWS Sao Paulo -->
|
|
<div class="provider-card">
|
|
<span class="badge">Mejor Latencia</span>
|
|
<h4>AWS Sao Paulo</h4>
|
|
<p class="price">$250.000<span class="price-period"> COP/mes</span></p>
|
|
<span class="price-cop">~$60 USD</span>
|
|
<ul>
|
|
<li>Data center Sao Paulo (45ms)</li>
|
|
<li>Escalabilidad automatica</li>
|
|
<li>99.99% SLA garantizado</li>
|
|
<li>Backups multi-region</li>
|
|
<li>Soporte en espanol</li>
|
|
<li>Certificaciones ISO/SOC</li>
|
|
</ul>
|
|
<div class="pros-cons">
|
|
<div class="pros">
|
|
<h4>Ventajas</h4>
|
|
<ul>
|
|
<li>Mejor latencia LATAM</li>
|
|
<li>Maxima escalabilidad</li>
|
|
<li>Servicios complementarios</li>
|
|
</ul>
|
|
</div>
|
|
<div class="cons">
|
|
<h4>Limitaciones</h4>
|
|
<ul>
|
|
<li>DIAN requiere configuracion</li>
|
|
<li>Precio variable por uso</li>
|
|
<li>Curva de aprendizaje</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<a href="#" class="cta-btn">Ver Detalles</a>
|
|
</div>
|
|
|
|
<!-- Google Cloud Chile -->
|
|
<div class="provider-card">
|
|
<span class="badge">Enterprise</span>
|
|
<h4>Google Cloud Santiago</h4>
|
|
<p class="price">$220.000<span class="price-period"> COP/mes</span></p>
|
|
<span class="price-cop">~$52 USD</span>
|
|
<ul>
|
|
<li>Data center Santiago (55ms)</li>
|
|
<li>BigQuery pour analytics</li>
|
|
<li>IA y ML integrados</li>
|
|
<li>Kubernetes nativo</li>
|
|
<li>Soporte premium disponible</li>
|
|
</ul>
|
|
<a href="#" class="cta-btn">Ver Detalles</a>
|
|
</div>
|
|
|
|
<!-- DigitalOcean -->
|
|
<div class="provider-card">
|
|
<span class="badge">Economico</span>
|
|
<h4>DigitalOcean NYC</h4>
|
|
<p class="price">$120.000<span class="price-period"> COP/mes</span></p>
|
|
<span class="price-cop">~$28 USD</span>
|
|
<ul>
|
|
<li>VPS preconfigurado</li>
|
|
<li>Precio predecible</li>
|
|
<li>Buena documentacion</li>
|
|
<li>Snapshots incluidos</li>
|
|
<li>API completa</li>
|
|
</ul>
|
|
<a href="#" class="cta-btn">Ver Detalles</a>
|
|
</div>
|
|
|
|
<!-- Vultr Miami -->
|
|
<div class="provider-card">
|
|
<h4>Vultr Miami</h4>
|
|
<p class="price">$100.000<span class="price-period"> COP/mes</span></p>
|
|
<span class="price-cop">~$24 USD</span>
|
|
<ul>
|
|
<li>Data center Miami (60ms)</li>
|
|
<li>Alto rendimiento NVMe</li>
|
|
<li>Facturacion por hora</li>
|
|
<li>Despliegue rapido</li>
|
|
</ul>
|
|
<a href="#" class="cta-btn">Ver Detalles</a>
|
|
</div>
|
|
|
|
<!-- Azure LATAM -->
|
|
<div class="provider-card">
|
|
<h4>Microsoft Azure LATAM</h4>
|
|
<p class="price">$280.000<span class="price-period"> COP/mes</span></p>
|
|
<span class="price-cop">~$67 USD</span>
|
|
<ul>
|
|
<li>Data centers Brasil/Chile</li>
|
|
<li>Active Directory integrado</li>
|
|
<li>Office 365 compatible</li>
|
|
<li>Soporte empresarial</li>
|
|
</ul>
|
|
<a href="#" class="cta-btn">Ver Detalles</a>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Latency Map Section -->
|
|
<section id="latencia-datacenters" class="content-section fade-in">
|
|
<h2>Latencia por Data Center desde Colombia</h2>
|
|
|
|
<p>La latencia (tiempo de respuesta) es critica pour la experiencia del usuario. Pour Odoo, recomendamos latencia menor a 100ms pour uso optimo. Estos son los tiempos promedio desde las principales ciudades colombianas:</p>
|
|
|
|
<div class="latency-map">
|
|
<h4>Latencia Promedio desde Bogota</h4>
|
|
<div class="latency-grid">
|
|
<div class="latency-item">
|
|
<div class="location">Sao Paulo (AWS/GCP)</div>
|
|
<div class="ms excellent">45ms</div>
|
|
</div>
|
|
<div class="latency-item">
|
|
<div class="location">Santiago (GCP)</div>
|
|
<div class="ms excellent">55ms</div>
|
|
</div>
|
|
<div class="latency-item">
|
|
<div class="location">Miami (Vultr/DO)</div>
|
|
<div class="ms good">60ms</div>
|
|
</div>
|
|
<div class="latency-item">
|
|
<div class="location">Atlanta (Linode)</div>
|
|
<div class="ms good">70ms</div>
|
|
</div>
|
|
<div class="latency-item">
|
|
<div class="location">New York (DO/Vultr)</div>
|
|
<div class="ms fair">80ms</div>
|
|
</div>
|
|
<div class="latency-item">
|
|
<div class="location">Frankfurt (Hetzner)</div>
|
|
<div class="ms fair">150ms</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="highlight-box">
|
|
<h4>Recomendacion de Ubicacion</h4>
|
|
<p>Pour empresas colombianas, <strong>Sao Paulo</strong> ofrece la mejor latencia (45ms) seguido de <strong>Miami</strong> (60ms). Evita servidores en Europe (150ms+) a menos que tengas operaciones significativas en ese continente.</p>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- D3.js Bar Chart - Pricing in COP -->
|
|
<section class="chart-section fade-in">
|
|
<h3 id="precios-cop">Compourtiva de Precios en Pesos Colombianos</h3>
|
|
<p>Visualiza los precios mensuales de cada proveedor en COP. El color indica si incluye configuracion DIAN (verde) o requiere configuracion adicional (naranja).</p>
|
|
<div class="chart-container" id="bar-chart"></div>
|
|
</section>
|
|
|
|
<!-- Facturacion Electronica Configuration -->
|
|
<section id="facturacion-electronica" class="content-section fade-in">
|
|
<h2>Configuracion de Facturacion Electronica DIAN en Odoo</h2>
|
|
|
|
<p>Configurar correctamente la facturacion electronica es esencial pour operar legalmente en Colombia. A continuacion, los pasos principales:</p>
|
|
|
|
<h3>Paso 1: Localizacion Colombiana</h3>
|
|
<p>Instala el modulo de localizacion colombiana (l10n_co) que incluye:</p>
|
|
<ul>
|
|
<li>Plan Unico de Cuentas (PUC) preconfigurado</li>
|
|
<li>Tipos de documentos colombianos (NIT, CC, CE, etc.)</li>
|
|
<li>Impuestos colombianos (IVA 19%, retenciones)</li>
|
|
<li>Formatos de facturas segun normativa</li>
|
|
</ul>
|
|
|
|
<h3>Paso 2: Certificado Digital</h3>
|
|
<p>Adquiere un certificado de firma electronica de una entidad autorizada:</p>
|
|
<ul>
|
|
<li><strong>Certicamara:</strong> Desde $180.000 COP/ano</li>
|
|
<li><strong>Andes SCD:</strong> Desde $150.000 COP/ano</li>
|
|
<li><strong>GSE:</strong> Desde $160.000 COP/ano</li>
|
|
</ul>
|
|
|
|
<h3>Paso 3: Proveedor Tecnologico</h3>
|
|
<p>Registrate con un PT autorizado por la DIAN. Costos tipicos:</p>
|
|
<table class="comparison-table">
|
|
<thead>
|
|
<tr>
|
|
<th>Proveedor</th>
|
|
<th>Costo Mensual</th>
|
|
<th>Facturas Incluidas</th>
|
|
<th>Costo Adicional</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>Carvajal</td>
|
|
<td>$85.000 COP</td>
|
|
<td>500</td>
|
|
<td>$120 COP/factura</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Cadena</td>
|
|
<td>$70.000 COP</td>
|
|
<td>300</td>
|
|
<td>$150 COP/factura</td>
|
|
</tr>
|
|
<tr>
|
|
<td>The Factory HKA</td>
|
|
<td>$50.000 COP</td>
|
|
<td>200</td>
|
|
<td>$180 COP/factura</td>
|
|
</tr>
|
|
<tr>
|
|
<td>World Office</td>
|
|
<td>$60.000 COP</td>
|
|
<td>250</td>
|
|
<td>$160 COP/factura</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<h3>Paso 4: Configuracion en Odoo</h3>
|
|
<ol>
|
|
<li>Cargar certificado digital en formato .p12 o .pfx</li>
|
|
<li>Configurar credenciales del proveedor tecnologico</li>
|
|
<li>Establecer resolucion de numeracion DIAN</li>
|
|
<li>Configurar prefijos y rangos autorizados</li>
|
|
<li>Realizar pruebas en ambiente de habilitacion</li>
|
|
<li>Activar produccion tras aprobacion DIAN</li>
|
|
</ol>
|
|
</section>
|
|
|
|
<!-- D3.js Radar Chart -->
|
|
<section class="chart-section fade-in">
|
|
<h3>Compourcion de Caracteristicas por Proveedor</h3>
|
|
<p>Visualiza como se compourn los principales proveedores en 6 dimensiones clave pour el mercado colombiano.</p>
|
|
<div class="chart-container" id="radar-chart"></div>
|
|
</section>
|
|
|
|
<!-- CTA Banner -->
|
|
<section class="cta-banner fade-in">
|
|
<h3>Hosting Odoo Listo pour DIAN</h3>
|
|
<p>Odoo4projects ofrece hosting con modulo DIAN preconfigurado, facturacion electronica integrada y soporte en espanol desde $150.000 COP/mes.</p>
|
|
<a href="https://odoo4projects.com" class="cta-btn" target="_blank" rel="noopener sponsored">Comenzar Prueba Gratuita</a>
|
|
</section>
|
|
|
|
<!-- FAQ Section -->
|
|
<section id="faq" class="faq-section fade-in">
|
|
<h2>Preguntas Frecuentes: Hosting Odoo Colombia</h2>
|
|
|
|
<div class="faq-item">
|
|
<div class="faq-question">Cual es el mejor hosting pour Odoo en Colombia en 2026?</div>
|
|
<div class="faq-answer">Pour empresas colombianas, recomendamos proveedores con centros de datos en LATAM (Miami, Sao Paulo o Bogota), soporte en espanol y compatibilidad con facturacion electronica DIAN. Odoo4projects y AWS Sao Paulo son excelentes opciones con latencia menor a 80ms desde Colombia.</div>
|
|
</div>
|
|
|
|
<div class="faq-item">
|
|
<div class="faq-question">Que requisitos debe cumplir el hosting pour facturacion electronica DIAN?</div>
|
|
<div class="faq-answer">El hosting debe soportar certificados digitales, conexion segura HTTPS con TLS 1.2+, almacenamiento de XMLs firmados por 5 anos minimo, integracion con proveedores tecnologicos autorizados por la DIAN, y cumplimiento de la Resolucion 000042 de 2020.</div>
|
|
</div>
|
|
|
|
<div class="faq-item">
|
|
<div class="faq-question">Cuanto cuesta el hosting de Odoo en Colombia en pesos?</div>
|
|
<div class="faq-answer">Los precios varian desde $120.000 COP/mes (hosting basico VPS) hasta $800.000+ COP/mes pour soluciones enterprise. El promedio pour una PYME colombiana es entre $150.000 y $400.000 COP/mes con hosting gestionado que incluye soporte pour facturacion electronica.</div>
|
|
</div>
|
|
|
|
<div class="faq-item">
|
|
<div class="faq-question">Necesito un servidor en Colombia pour usar Odoo?</div>
|
|
<div class="faq-answer">No es obligatorio tener el servidor en Colombia. La DIAN permite servidores en el exterior siempre que cumplan con las normas de proteccion de datos y los XMLs de facturacion se almacenen correctamente. Servidores en Miami o Sao Paulo ofrecen excelente latencia (40-80ms) pour usuarios colombianos.</div>
|
|
</div>
|
|
|
|
<div class="faq-item">
|
|
<div class="faq-question">Que proveedores de hosting Odoo soportan facturacion electronica colombiana?</div>
|
|
<div class="faq-answer">Los principales proveedores que soportan facturacion electronica DIAN incluyen: Odoo4projects (con modulo DIAN integrado), implementadores locales como Pragmatic o Vauxoo Colombia, y soluciones VPS con integracion a proveedores tecnologicos como Carvajal, Cadena o The Factory HKA.</div>
|
|
</div>
|
|
|
|
<div class="faq-item">
|
|
<div class="faq-question">Como configuro Odoo pour cumplir con la normativa DIAN?</div>
|
|
<div class="faq-answer">Necesitas: 1) Modulo de localizacion colombiana (l10n_co), 2) Certificado digital de firma electronica, 3) Integracion con proveedor tecnologico autorizado, 4) Configuracion de numeracion de facturas segun resolucion DIAN, 5) Almacenamiento de XMLs por minimo 5 anos. Un hosting gestionado facilita esta configuracion.</div>
|
|
</div>
|
|
|
|
<div class="faq-item">
|
|
<div class="faq-question">Puedo usar Odoo.sh pour mi empresa en Colombia?</div>
|
|
<div class="faq-answer">Si, Odoo.sh es compatible con empresas colombianas. Sin embargo, deberas configurar manualmente la integracion con facturacion electronica DIAN ya que no viene incluida por defecto. El costo adicional del modulo de localizacion y la integracion puede ser significativo.</div>
|
|
</div>
|
|
|
|
<div class="faq-item">
|
|
<div class="faq-question">Cual es la latencia optima pour usar Odoo desde Colombia?</div>
|
|
<div class="faq-answer">Pour una experiencia optima, recomendamos latencia menor a 100ms. Data centers en Sao Paulo ofrecen 45ms, Miami 60ms, y New York 80ms desde Bogota. Evita servidores en Europe (150ms+) a menos que tengas operaciones alla.</div>
|
|
</div>
|
|
|
|
<div class="faq-item">
|
|
<div class="faq-question">Que pasa si mi proveedor de hosting no soporta DIAN?</div>
|
|
<div class="faq-answer">Puedes instalar modulos de terceros pour facturacion electronica colombiana o integrarte directamente con un proveedor tecnologico via API. Sin embargo, esto requiere conocimientos tecnicos adicionales y puede generar costos de desarrollo. Es preferible elegir un hosting con soporte DIAN nativo.</div>
|
|
</div>
|
|
|
|
<div class="faq-item">
|
|
<div class="faq-question">Como garantizo el almacenamiento de XMLs por 5 anos?</div>
|
|
<div class="faq-answer">Asegurate de que tu plan de hosting incluya suficiente almacenamiento y backups automaticos. Calcula aproximadamente 50KB por factura, multiplicado por tu volumen mensual. Proveedores como AWS S3 o Azure Blob ofrecen almacenamiento economico a largo plazo con alta durabilidad.</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Related Articles -->
|
|
<section id="relacionados" class="content-section fade-in">
|
|
<h2>Articles Connexes</h2>
|
|
|
|
<div class="related-articles">
|
|
<a href="/fr/odoo-hosting/mejor-hosting-odoo-2026/" class="related-card">
|
|
<div class="related-card-image">HOSTING</div>
|
|
<div class="related-card-content">
|
|
<h4>Mejor Hosting Odoo 2026: Guia Global</h4>
|
|
<p>Compourtiva completa de 15+ proveedores mundiales</p>
|
|
</div>
|
|
</a>
|
|
|
|
<a href="/fr/odoo-hosting/facturacion-electronica-odoo-latam/" class="related-card">
|
|
<div class="related-card-image">DIAN</div>
|
|
<div class="related-card-content">
|
|
<h4>Facturacion Electronica Odoo LATAM</h4>
|
|
<p>Guia pour Colombia, Mexico, Chile y Peru</p>
|
|
</div>
|
|
</a>
|
|
|
|
<a href="/fr/odoo-hosting/vps-hosting-odoo-servidor-virtual-2025/" class="related-card">
|
|
<div class="related-card-image">VPS</div>
|
|
<div class="related-card-content">
|
|
<h4>VPS pour Odoo: Guia de Configuracion</h4>
|
|
<p>Configura tu propio servidor paso a paso</p>
|
|
</div>
|
|
</a>
|
|
|
|
<a href="/fr/odoo-hosting/odoo-localizacion-colombiana/" class="related-card">
|
|
<div class="related-card-image">l10n</div>
|
|
<div class="related-card-content">
|
|
<h4>Localizacion Colombiana Odoo</h4>
|
|
<p>PUC, impuestos y configuracion contable</p>
|
|
</div>
|
|
</a>
|
|
|
|
<a href="/fr/odoo-hosting/hosting-odoo-latam-2025/" class="related-card">
|
|
<div class="related-card-image">LATAM</div>
|
|
<div class="related-card-content">
|
|
<h4>Hosting Odoo Latinoamerica</h4>
|
|
<p>Proveedores con presencia regional</p>
|
|
</div>
|
|
</a>
|
|
|
|
<a href="/fr/odoo-hosting/precios-hosting-odoo-costos-2025/" class="related-card">
|
|
<div class="related-card-image">$$$</div>
|
|
<div class="related-card-content">
|
|
<h4>Precios de Hosting Odoo</h4>
|
|
<p>Compourtiva detallada de costos</p>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
|
|
<!-- EEAT Author Section -->
|
|
<div id="eeat-section"></div>
|
|
|
|
<div id="footer"><footer class="site-footer"><div class="container"><div class="footer-cols"><div><strong>Odoo Expertos</strong></div><nav class="footer-nav"><a href="/fr/">Accueil</a><a href="/fr/odoo/">Odoo</a><a href="/fr/odoo-ia/">Odoo IA</a><a href="/fr/odoo-hosting/">Hebergement Odoo</a><a href="/fr/mapa-del-sitio/">Plan du Site</a></nav></div><div class="footer-bottom"><small>© 2026 Odoo Expertos</small></div></div></footer></div><nav class="footer-nav"><a href="/fr/">Accueil</a><a href="/fr/odoo/">Odoo</a><a href="/fr/odoo-ia/">Odoo IA</a><a href="/fr/odoo-hosting/">Hebergement Odoo</a><a href="/fr/mapa-del-sitio/">Plan du Site</a></nav></div><div class="footer-bottom"><small>© 2026 Odoo Expertos</small></div></div></footer></div>
|
|
|
|
<!-- Scripts -->
|
|
<script src="/js/language-router.js"></script>
|
|
<script src="/components/header.min.js"></script>
|
|
<script src="/components/footer.min.js"></script>
|
|
<script src="/components/eeat.min.js"></script>
|
|
<script src="/js/cookie-banner.min.js"></script>
|
|
|
|
<!-- D3.js -->
|
|
<script src="https://d3js.org/d3.v7.min.js"></script>
|
|
|
|
<script>
|
|
// Initialize components
|
|
// Scroll animation observer
|
|
const observer = new IntersectionObserver((entries) => {
|
|
entries.forEach(entry => {
|
|
if (entry.isIntersecting) {
|
|
entry.target.classList.add('visible');
|
|
}
|
|
});
|
|
}, { threshold: 0.1 });
|
|
|
|
document.querySelectorAll('.fade-in').forEach(el => observer.observe(el));
|
|
|
|
// FAQ Toggle
|
|
document.querySelectorAll('.faq-question').forEach(question => {
|
|
question.addEventListener('click', () => {
|
|
const item = question.parentElement;
|
|
item.classList.toggle('open');
|
|
});
|
|
});
|
|
|
|
// Chart Data for Colombia
|
|
const chartData = {
|
|
scatter: [
|
|
{ name: 'Odoo4projects', price: 150000, latency: 60, dian: true },
|
|
{ name: 'AWS Sao Paulo', price: 250000, latency: 45, dian: true },
|
|
{ name: 'Azure LATAM', price: 280000, latency: 50, dian: true },
|
|
{ name: 'DigitalOcean NYC', price: 120000, latency: 80, dian: false },
|
|
{ name: 'Google Cloud Chile', price: 220000, latency: 55, dian: true },
|
|
{ name: 'Vultr Miami', price: 100000, latency: 60, dian: false },
|
|
{ name: 'Linode Atlanta', price: 110000, latency: 70, dian: false },
|
|
{ name: 'Odoo.sh', price: 125000, latency: 90, dian: false }
|
|
],
|
|
bar: [
|
|
{ name: 'Vultr Miami', price: 100000, dian: false },
|
|
{ name: 'Linode Atlanta', price: 110000, dian: false },
|
|
{ name: 'DigitalOcean', price: 120000, dian: false },
|
|
{ name: 'Odoo.sh', price: 125000, dian: false },
|
|
{ name: 'Odoo4projects', price: 150000, dian: true },
|
|
{ name: 'Google Cloud', price: 220000, dian: true },
|
|
{ name: 'AWS', price: 250000, dian: true },
|
|
{ name: 'Azure', price: 280000, dian: true }
|
|
],
|
|
radar: {
|
|
categories: ['DIAN Ready', 'Latencia', 'Precio', 'Soporte ES', 'Escalabilidad', 'Facilidad'],
|
|
providers: [
|
|
{ name: 'Odoo4projects', values: [95, 75, 85, 95, 70, 90] },
|
|
{ name: 'AWS Sao Paulo', values: [70, 95, 60, 80, 98, 50] },
|
|
{ name: 'DigitalOcean', values: [40, 70, 90, 40, 85, 80] },
|
|
{ name: 'Google Cloud', values: [70, 85, 65, 75, 95, 55] }
|
|
]
|
|
}
|
|
};
|
|
|
|
// Tooltip
|
|
const tooltip = d3.select('body').append('div')
|
|
.attr('class', 'd3-tooltip')
|
|
.style('opacity', 0);
|
|
|
|
// Color scales
|
|
const colorScale = d3.scaleOrdinal()
|
|
.range(['#FF6B35', '#4CAF50', '#2196F3', '#FFC107', '#9C27B0', '#00BCD4', '#E91E63', '#8BC34A']);
|
|
|
|
// Scatter Plot - Price vs Latency
|
|
function renderScatterPlot() {
|
|
const container = d3.select('#scatter-chart');
|
|
if (container.empty()) return;
|
|
|
|
const width = container.node().getBoundingClientRect().width;
|
|
const height = 400;
|
|
const margin = { top: 40, right: 40, bottom: 60, left: 90 };
|
|
|
|
container.html('');
|
|
|
|
const svg = container.append('svg')
|
|
.attr('width', width)
|
|
.attr('height', height);
|
|
|
|
const xScale = d3.scaleLinear()
|
|
.domain([0, d3.max(chartData.scatter, d => d.price) * 1.15])
|
|
.range([margin.left, width - margin.right]);
|
|
|
|
const yScale = d3.scaleLinear()
|
|
.domain([30, 100])
|
|
.range([height - margin.bottom, margin.top]);
|
|
|
|
// Grid lines
|
|
svg.append('g')
|
|
.attr('class', 'grid')
|
|
.attr('transform', `translate(0,${height - margin.bottom})`)
|
|
.call(d3.axisBottom(xScale).tickSize(-(height - margin.top - margin.bottom)).tickFormat(''))
|
|
.selectAll('line').attr('stroke', '#333');
|
|
|
|
svg.append('g')
|
|
.attr('class', 'grid')
|
|
.attr('transform', `translate(${margin.left},0)`)
|
|
.call(d3.axisLeft(yScale).tickSize(-(width - margin.left - margin.right)).tickFormat(''))
|
|
.selectAll('line').attr('stroke', '#333');
|
|
|
|
// Axes
|
|
svg.append('g')
|
|
.attr('transform', `translate(0,${height - margin.bottom})`)
|
|
.call(d3.axisBottom(xScale).tickFormat(d => `$${(d/1000).toFixed(0)}K`))
|
|
.attr('color', '#888');
|
|
|
|
svg.append('g')
|
|
.attr('transform', `translate(${margin.left},0)`)
|
|
.call(d3.axisLeft(yScale).tickFormat(d => `${d}ms`))
|
|
.attr('color', '#888');
|
|
|
|
// Axis labels
|
|
svg.append('text')
|
|
.attr('x', width / 2)
|
|
.attr('y', height - 10)
|
|
.attr('text-anchor', 'middle')
|
|
.attr('fill', '#888')
|
|
.attr('font-size', '14px')
|
|
.text('Precio (COP/mes)');
|
|
|
|
svg.append('text')
|
|
.attr('transform', 'rotate(-90)')
|
|
.attr('x', -height / 2)
|
|
.attr('y', 25)
|
|
.attr('text-anchor', 'middle')
|
|
.attr('fill', '#888')
|
|
.attr('font-size', '14px')
|
|
.text('Latencia desde Colombia (ms)');
|
|
|
|
// Optimal zone rectangle
|
|
svg.append('rect')
|
|
.attr('x', xScale(80000))
|
|
.attr('y', yScale(70))
|
|
.attr('width', xScale(200000) - xScale(80000))
|
|
.attr('height', yScale(40) - yScale(70))
|
|
.attr('fill', 'rgba(76, 175, 80, 0.1)')
|
|
.attr('stroke', '#4CAF50')
|
|
.attr('stroke-dasharray', '4,4');
|
|
|
|
svg.append('text')
|
|
.attr('x', xScale(140000))
|
|
.attr('y', yScale(68))
|
|
.attr('text-anchor', 'middle')
|
|
.attr('fill', '#4CAF50')
|
|
.attr('font-size', '11px')
|
|
.text('Zona Optima');
|
|
|
|
// Dots
|
|
svg.selectAll('circle.dot')
|
|
.data(chartData.scatter)
|
|
.join('circle')
|
|
.attr('class', 'dot')
|
|
.attr('cx', d => xScale(d.price))
|
|
.attr('cy', d => yScale(d.latency))
|
|
.attr('r', 0)
|
|
.attr('fill', d => d.dian ? '#4CAF50' : '#FF6B35')
|
|
.attr('fill-opacity', 0.8)
|
|
.attr('stroke', '#fff')
|
|
.attr('stroke-width', 2)
|
|
.style('cursor', 'pointer')
|
|
.on('mouseover', function(event, d) {
|
|
d3.select(this).attr('fill-opacity', 1).attr('stroke-width', 3).attr('r', 14);
|
|
tooltip.transition().duration(200).style('opacity', 1);
|
|
tooltip.html(`<strong>${d.name}</strong><br>Precio: $${d.price.toLocaleString()} COP/mes<br>Latencia: ${d.latency}ms<br>DIAN Ready: ${d.dian ? 'Si' : 'Requiere config.'}`)
|
|
.style('left', (event.pageX + 15) + 'px')
|
|
.style('top', (event.pageY - 28) + 'px');
|
|
})
|
|
.on('mouseout', function(event, d) {
|
|
d3.select(this).attr('fill-opacity', 0.8).attr('stroke-width', 2).attr('r', 10);
|
|
tooltip.transition().duration(200).style('opacity', 0);
|
|
})
|
|
.transition()
|
|
.duration(800)
|
|
.delay((d, i) => i * 100)
|
|
.ease(d3.easeElastic.amplitude(1).period(0.5))
|
|
.attr('r', 10);
|
|
|
|
// Labels
|
|
svg.selectAll('text.label')
|
|
.data(chartData.scatter)
|
|
.join('text')
|
|
.attr('class', 'label')
|
|
.attr('x', d => xScale(d.price))
|
|
.attr('y', d => yScale(d.latency) - 18)
|
|
.attr('text-anchor', 'middle')
|
|
.attr('fill', '#e0e0e0')
|
|
.attr('font-size', '11px')
|
|
.attr('opacity', 0)
|
|
.text(d => d.name)
|
|
.transition()
|
|
.duration(500)
|
|
.delay((d, i) => i * 100 + 400)
|
|
.attr('opacity', 1);
|
|
|
|
// Legend
|
|
const legend = svg.append('g')
|
|
.attr('transform', `translate(${width - 150}, ${margin.top})`);
|
|
|
|
legend.append('circle').attr('cx', 0).attr('cy', 0).attr('r', 6).attr('fill', '#4CAF50');
|
|
legend.append('text').attr('x', 12).attr('y', 4).attr('fill', '#b0b0b0').attr('font-size', '11px').text('DIAN Ready');
|
|
|
|
legend.append('circle').attr('cx', 0).attr('cy', 20).attr('r', 6).attr('fill', '#FF6B35');
|
|
legend.append('text').attr('x', 12).attr('y', 24).attr('fill', '#b0b0b0').attr('font-size', '11px').text('Requiere Config.');
|
|
}
|
|
|
|
// Bar Chart - Pricing in COP
|
|
function renderBarChart() {
|
|
const container = d3.select('#bar-chart');
|
|
if (container.empty()) return;
|
|
|
|
const width = container.node().getBoundingClientRect().width;
|
|
const height = 400;
|
|
const margin = { top: 40, right: 40, bottom: 100, left: 90 };
|
|
|
|
container.html('');
|
|
|
|
const svg = container.append('svg')
|
|
.attr('width', width)
|
|
.attr('height', height);
|
|
|
|
const xScale = d3.scaleBand()
|
|
.domain(chartData.bar.map(d => d.name))
|
|
.range([margin.left, width - margin.right])
|
|
.padding(0.3);
|
|
|
|
const yScale = d3.scaleLinear()
|
|
.domain([0, d3.max(chartData.bar, d => d.price) * 1.1])
|
|
.range([height - margin.bottom, margin.top]);
|
|
|
|
// Grid lines
|
|
svg.append('g')
|
|
.attr('class', 'grid')
|
|
.attr('transform', `translate(${margin.left},0)`)
|
|
.call(d3.axisLeft(yScale).tickSize(-(width - margin.left - margin.right)).tickFormat(''))
|
|
.selectAll('line').attr('stroke', '#333');
|
|
|
|
// Axes
|
|
svg.append('g')
|
|
.attr('transform', `translate(0,${height - margin.bottom})`)
|
|
.call(d3.axisBottom(xScale))
|
|
.attr('color', '#888')
|
|
.selectAll('text')
|
|
.attr('transform', 'rotate(-45)')
|
|
.attr('text-anchor', 'end')
|
|
.attr('dx', '-0.5em')
|
|
.attr('dy', '0.5em');
|
|
|
|
svg.append('g')
|
|
.attr('transform', `translate(${margin.left},0)`)
|
|
.call(d3.axisLeft(yScale).tickFormat(d => `$${(d/1000).toFixed(0)}K`))
|
|
.attr('color', '#888');
|
|
|
|
// Bars
|
|
svg.selectAll('rect.bar')
|
|
.data(chartData.bar)
|
|
.join('rect')
|
|
.attr('class', 'bar')
|
|
.attr('x', d => xScale(d.name))
|
|
.attr('y', height - margin.bottom)
|
|
.attr('width', xScale.bandwidth())
|
|
.attr('height', 0)
|
|
.attr('fill', d => d.dian ? '#4CAF50' : '#FF6B35')
|
|
.attr('rx', 4)
|
|
.style('cursor', 'pointer')
|
|
.on('mouseover', function(event, d) {
|
|
d3.select(this).attr('fill-opacity', 0.8);
|
|
tooltip.transition().duration(200).style('opacity', 1);
|
|
tooltip.html(`<strong>${d.name}</strong><br>Precio: $${d.price.toLocaleString()} COP/mes<br>DIAN Ready: ${d.dian ? 'Si' : 'No'}`)
|
|
.style('left', (event.pageX + 15) + 'px')
|
|
.style('top', (event.pageY - 28) + 'px');
|
|
})
|
|
.on('mouseout', function() {
|
|
d3.select(this).attr('fill-opacity', 1);
|
|
tooltip.transition().duration(200).style('opacity', 0);
|
|
})
|
|
.transition()
|
|
.duration(800)
|
|
.delay((d, i) => i * 100)
|
|
.ease(d3.easeBackOut)
|
|
.attr('y', d => yScale(d.price))
|
|
.attr('height', d => height - margin.bottom - yScale(d.price));
|
|
|
|
// Value labels
|
|
svg.selectAll('text.value')
|
|
.data(chartData.bar)
|
|
.join('text')
|
|
.attr('class', 'value')
|
|
.attr('x', d => xScale(d.name) + xScale.bandwidth() / 2)
|
|
.attr('y', d => yScale(d.price) - 8)
|
|
.attr('text-anchor', 'middle')
|
|
.attr('fill', '#e0e0e0')
|
|
.attr('font-size', '11px')
|
|
.attr('opacity', 0)
|
|
.text(d => `$${(d.price/1000).toFixed(0)}K`)
|
|
.transition()
|
|
.duration(500)
|
|
.delay((d, i) => i * 100 + 500)
|
|
.attr('opacity', 1);
|
|
|
|
// Legend
|
|
const legend = svg.append('g')
|
|
.attr('transform', `translate(${width - 180}, ${margin.top - 20})`);
|
|
|
|
legend.append('rect').attr('width', 15).attr('height', 15).attr('fill', '#4CAF50').attr('rx', 3);
|
|
legend.append('text').attr('x', 20).attr('y', 12).attr('fill', '#b0b0b0').attr('font-size', '11px').text('DIAN Listo');
|
|
|
|
legend.append('rect').attr('x', 90).attr('width', 15).attr('height', 15).attr('fill', '#FF6B35').attr('rx', 3);
|
|
legend.append('text').attr('x', 110).attr('y', 12).attr('fill', '#b0b0b0').attr('font-size', '11px').text('Config. Manual');
|
|
}
|
|
|
|
// Radar Chart
|
|
function renderRadarChart() {
|
|
const container = d3.select('#radar-chart');
|
|
if (container.empty()) return;
|
|
|
|
const width = container.node().getBoundingClientRect().width;
|
|
const height = 400;
|
|
const margin = 100;
|
|
const radius = Math.min(width, height) / 2 - margin;
|
|
|
|
container.html('');
|
|
|
|
const svg = container.append('svg')
|
|
.attr('width', width)
|
|
.attr('height', height)
|
|
.append('g')
|
|
.attr('transform', `translate(${width/2},${height/2})`);
|
|
|
|
const categories = chartData.radar.categories;
|
|
const angleSlice = Math.PI * 2 / categories.length;
|
|
|
|
const rScale = d3.scaleLinear()
|
|
.domain([0, 100])
|
|
.range([0, radius]);
|
|
|
|
// Grid circles
|
|
const levels = 5;
|
|
for (let i = 1; i <= levels; i++) {
|
|
svg.append('circle')
|
|
.attr('r', radius * i / levels)
|
|
.attr('fill', 'none')
|
|
.attr('stroke', '#3a3a3a')
|
|
.attr('stroke-dasharray', '4,4');
|
|
|
|
svg.append('text')
|
|
.attr('x', 5)
|
|
.attr('y', -radius * i / levels)
|
|
.attr('fill', '#666')
|
|
.attr('font-size', '10px')
|
|
.text(i * 20);
|
|
}
|
|
|
|
// Axis lines and labels
|
|
categories.forEach((cat, i) => {
|
|
const angle = angleSlice * i - Math.PI / 2;
|
|
svg.append('line')
|
|
.attr('x1', 0)
|
|
.attr('y1', 0)
|
|
.attr('x2', radius * Math.cos(angle))
|
|
.attr('y2', radius * Math.sin(angle))
|
|
.attr('stroke', '#444');
|
|
|
|
const labelRadius = radius + 25;
|
|
svg.append('text')
|
|
.attr('x', labelRadius * Math.cos(angle))
|
|
.attr('y', labelRadius * Math.sin(angle))
|
|
.attr('text-anchor', 'middle')
|
|
.attr('dominant-baseline', 'middle')
|
|
.attr('fill', '#b0b0b0')
|
|
.attr('font-size', '11px')
|
|
.text(cat);
|
|
});
|
|
|
|
// Radar areas
|
|
const radarLine = d3.lineRadial()
|
|
.radius(d => rScale(d))
|
|
.angle((d, i) => angleSlice * i)
|
|
.curve(d3.curveLinearClosed);
|
|
|
|
chartData.radar.providers.forEach((provider, idx) => {
|
|
const path = svg.append('path')
|
|
.datum(provider.values)
|
|
.attr('d', radarLine)
|
|
.attr('fill', colorScale(idx))
|
|
.attr('fill-opacity', 0)
|
|
.attr('stroke', colorScale(idx))
|
|
.attr('stroke-width', 2)
|
|
.attr('stroke-opacity', 0);
|
|
|
|
path.transition()
|
|
.duration(800)
|
|
.delay(idx * 200)
|
|
.attr('fill-opacity', 0.2)
|
|
.attr('stroke-opacity', 1);
|
|
|
|
// Data points
|
|
provider.values.forEach((val, i) => {
|
|
const angle = angleSlice * i - Math.PI / 2;
|
|
svg.append('circle')
|
|
.attr('cx', rScale(val) * Math.cos(angle))
|
|
.attr('cy', rScale(val) * Math.sin(angle))
|
|
.attr('r', 0)
|
|
.attr('fill', colorScale(idx))
|
|
.transition()
|
|
.duration(500)
|
|
.delay(idx * 200 + i * 50)
|
|
.attr('r', 4);
|
|
});
|
|
});
|
|
|
|
// Legend
|
|
const legendX = width > 600 ? radius + 50 : -radius;
|
|
const legendY = width > 600 ? -radius + 20 : radius + 30;
|
|
|
|
chartData.radar.providers.forEach((provider, idx) => {
|
|
const g = svg.append('g')
|
|
.attr('transform', `translate(${legendX}, ${legendY + idx * 25})`);
|
|
|
|
g.append('rect')
|
|
.attr('width', 15)
|
|
.attr('height', 15)
|
|
.attr('fill', colorScale(idx))
|
|
.attr('rx', 3);
|
|
|
|
g.append('text')
|
|
.attr('x', 22)
|
|
.attr('y', 12)
|
|
.attr('fill', '#b0b0b0')
|
|
.attr('font-size', '12px')
|
|
.text(provider.name);
|
|
});
|
|
}
|
|
|
|
// Initialize charts when visible
|
|
const chartObserver = new IntersectionObserver((entries) => {
|
|
entries.forEach(entry => {
|
|
if (entry.isIntersecting) {
|
|
const id = entry.target.id;
|
|
setTimeout(() => {
|
|
if (id === 'scatter-chart') renderScatterPlot();
|
|
if (id === 'bar-chart') renderBarChart();
|
|
if (id === 'radar-chart') renderRadarChart();
|
|
}, 100);
|
|
chartObserver.unobserve(entry.target);
|
|
}
|
|
});
|
|
}, { threshold: 0.15 });
|
|
|
|
document.querySelectorAll('.chart-container').forEach(el => chartObserver.observe(el));
|
|
|
|
// Resize handler
|
|
let resizeTimeout;
|
|
window.addEventListener('resize', () => {
|
|
clearTimeout(resizeTimeout);
|
|
resizeTimeout = setTimeout(() => {
|
|
renderScatterPlot();
|
|
renderBarChart();
|
|
renderRadarChart();
|
|
}, 300);
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|