{"id":96,"date":"2026-10-10T17:04:06","date_gmt":"2026-10-10T23:04:06","guid":{"rendered":"https:\/\/rafaelsolis.dev\/proyectos\/ruta-distribucion-cerveceria\/"},"modified":"2026-10-10T17:04:06","modified_gmt":"2026-10-10T23:04:06","slug":"ruta-distribucion-cerveceria","status":"publish","type":"page","link":"https:\/\/rafaelsolis.dev\/es\/proyectos\/ruta-distribucion-cerveceria\/","title":{"rendered":"Plataforma de seguimiento de rutas de distribuci\u00f3n para una cervecer\u00eda internacional"},"content":{"rendered":"\n<div class=\"wp-block-group alignfull rs-b-cabeza rs-b-cabeza--proyecto is-layout-flow wp-block-group-is-layout-flow\">\n<nav class=\"rs-migas\" aria-label=\"Ruta\"><ol><li><a href=\"https:\/\/rafaelsolis.dev\/\">Inicio<\/a><\/li><li><a href=\"https:\/\/rafaelsolis.dev\/proyectos\/\">Proyectos<\/a><\/li><li aria-current=\"page\">Plataforma de seguimiento de rutas de distribuci\u00f3n para una cervecer\u00eda internacional<\/li><\/ol><\/nav>\n\n\n\n<p class=\"rs-b-ceja wp-block-paragraph\">Distribuci\u00f3n y log\u00edstica \u00b7 Cliente confidencial<\/p>\n\n\n\n<h1 class=\"wp-block-heading rs-b-h1\">Plataforma de seguimiento de rutas de distribuci\u00f3n para una cervecer\u00eda internacional<\/h1>\n\n\n\n<p class=\"rs-b-entrada wp-block-paragraph\">Seguimiento de las rutas de despacho de un proveedor de una marca de cervecer\u00eda internacional, con b\u00fasqueda din\u00e1mica sobre miles de registros.<\/p>\n\n\n\n<dl class=\"rs-ficha\"><div><dt>Cliente<\/dt><dd>Cliente confidencial (v\u00eda CodyExpert)<\/dd><\/div><div><dt>Rol<\/dt><dd>Desarrollador full stack<\/dd><\/div><div><dt>Industria<\/dt><dd>Distribuci\u00f3n y log\u00edstica<\/dd><\/div><div><dt>Periodo<\/dt><dd>2024 \u2013 2025<\/dd><\/div><div><dt>Soluciones<\/dt><dd><ul class=\"rs-chips\"><li>Datos y reportes<\/li><li>Automatizaci\u00f3n de procesos<\/li><\/ul><\/dd><\/div><div><dt>Tecnolog\u00edas<\/dt><dd>Yii2 \u00b7 PHP \u00b7 MySQL \u00b7 PostgreSQL<\/dd><\/div><\/dl>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull rs-b-seccion rs-b-caso is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"rs-b-rotulo wp-block-paragraph\">Caso de estudio<\/p>\n\n\n\n<h2 class=\"wp-block-heading rs-b-h2\">El caso<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El proyecto daba seguimiento a las rutas de lo que despachaba un proveedor de la marca hacia sus puntos de venta. El requisito central era que cualquier combinaci\u00f3n de filtros \u2014fecha, ruta, unidad, punto de entrega, estado del despacho\u2014 pudiera consultarse sobre miles de registros sin que cada combinaci\u00f3n necesitara su propia consulta escrita a mano.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rafael resolvi\u00f3 eso construyendo un motor que concatena din\u00e1micamente el SQL contra la base de datos seg\u00fan los filtros activos: las consultas resultantes eran enormes pero completamente din\u00e1micas, generadas en tiempo real en vez de mantenidas como un cat\u00e1logo fijo de reportes. Tambi\u00e9n apoy\u00f3 la infraestructura del sistema \u2014permisos y rutas\u2014 para que distintos roles pudieran consultar el estado de los despachos seg\u00fan su nivel de acceso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El reto de dise\u00f1o no era solo armar SQL din\u00e1mico, sino mantenerlo mantenible: que agregar un filtro nuevo significara extender el motor, no reescribirlo.<\/p>\n\n\n\n<p class=\"rs-b-nota-conf wp-block-paragraph\">Cliente confidencial: por acuerdo, no se publica su nombre. Es discreci\u00f3n profesional, no falta de contenido.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull rs-b-seccion is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"rs-b-rotulo wp-block-paragraph\">Relacionados<\/p>\n\n\n\n<h2 class=\"wp-block-heading rs-b-h2\">Otros proyectos <em>parecidos<\/em>.<\/h2>\n\n\n\n<div class=\"rs-obras\"><article class=\"rs-obra\" data-industria=\"energia\" data-soluciones=\"cfdi automatizacion datos apis\"><p class=\"rs-obra-meta\"><span>Energ\u00eda y combustibles<\/span><\/p><span class=\"rs-logos\"><img src=\"https:\/\/rafaelsolis.dev\/wp-content\/uploads\/2026\/10\/logo-bonobo.png\" alt=\"\" width=\"56\" height=\"56\" loading=\"lazy\" decoding=\"async\"><\/span><h3 class=\"rs-obra-nombre\"><a href=\"https:\/\/rafaelsolis.dev\/proyectos\/bonobo\/\">Bonobo<\/a><\/h3><p class=\"rs-obra-cliente\">Brentec Soluciones Tecnol\u00f3gicas<\/p><p class=\"rs-obra-resumen\">Programa de control volum\u00e9trico para estaciones de servicio: genera facturaci\u00f3n y el JSON que el SAT exige para fiscalizar compras y ventas de combustible.<\/p><ul class=\"rs-chips\"><li>Facturaci\u00f3n CFDI y SAT<\/li><li>Automatizaci\u00f3n de procesos<\/li><li>Datos y reportes<\/li><li>APIs e integraciones<\/li><\/ul><\/article><article class=\"rs-obra\" data-industria=\"gobierno\" data-soluciones=\"reservas pagos datos apps\"><p class=\"rs-obra-meta\"><span>Gobierno y parques<\/span><\/p><span class=\"rs-logos\"><img src=\"https:\/\/rafaelsolis.dev\/wp-content\/uploads\/2026\/10\/logo-cozumel-parks.png\" alt=\"\" width=\"56\" height=\"56\" loading=\"lazy\" decoding=\"async\"><img src=\"https:\/\/rafaelsolis.dev\/wp-content\/uploads\/2026\/10\/logo-fpmc.png\" alt=\"\" width=\"56\" height=\"56\" loading=\"lazy\" decoding=\"async\" class=\"is-claro\"><\/span><h3 class=\"rs-obra-nombre\"><a href=\"https:\/\/rafaelsolis.dev\/proyectos\/entradas-parques-naturales\/\">CozumelParks \/ MERCAWEB<\/a><\/h3><p class=\"rs-obra-cliente\">Fundaci\u00f3n de Parques y Museos de Cozumel<\/p><p class=\"rs-obra-resumen\">Plataforma de venta de los cuatro parques y museos de la Fundaci\u00f3n de Parques y Museos de Cozumel: venta en l\u00ednea, taquilla, reportes para ingresos e identidad \u00abCuatro sendas, una isla\u00bb.<\/p><ul class=\"rs-chips\"><li>Reservas y venta en l\u00ednea<\/li><li>Pagos en l\u00ednea<\/li><li>Datos y reportes<\/li><li>Apps web y m\u00f3viles<\/li><\/ul><\/article><article class=\"rs-obra\" data-industria=\"turismo\" data-soluciones=\"saas nube automatizacion\"><p class=\"rs-obra-meta\"><span>Turismo<\/span><\/p><span class=\"rs-logos\"><img src=\"https:\/\/rafaelsolis.dev\/wp-content\/uploads\/2026\/10\/logo-site-engine.png\" alt=\"\" width=\"56\" height=\"56\" loading=\"lazy\" decoding=\"async\"><\/span><h3 class=\"rs-obra-nombre\"><a href=\"https:\/\/rafaelsolis.dev\/proyectos\/site-engine\/\">Site Engine<\/a><\/h3><p class=\"rs-obra-cliente\">Adventure Planet Group<\/p><p class=\"rs-obra-resumen\">Motor que dinamiza la compra y administraci\u00f3n de dominios para que cada sitio del ecosistema de tours quede controlado desde un solo panel.<\/p><ul class=\"rs-chips\"><li>Plataformas SaaS<\/li><li>Nube e infraestructura<\/li><li>Automatizaci\u00f3n de procesos<\/li><\/ul><\/article><\/div>\n<\/div>\n\n\n\n<div id=\"contacto\" class=\"wp-block-group alignfull rs-b-cierre is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"rs-b-rotulo wp-block-paragraph\">Contacto<\/p>\n\n\n\n<h2 class=\"wp-block-heading rs-b-h2\">\u00bfTu empresa tiene un problema <em>parecido<\/em>?<\/h2>\n\n\n\n<p class=\"rs-b-entrada wp-block-paragraph\">Cu\u00e9ntame c\u00f3mo opera hoy y qu\u00e9 quieres resolver.<\/p>\n\n\n\n<p class=\"rs-b-telefono wp-block-paragraph\"><a href=\"https:\/\/wa.me\/529999583010\">+52 999 958 3010<\/a><\/p>\n\n\n\n<p class=\"rs-b-correo wp-block-paragraph\"><a href=\"mailto:rafael.solis@adventureplanet.mx\">rafael.solis@adventureplanet.mx<\/a><\/p>\n\n\n\n<div class=\"wp-block-buttons rs-b-botones rs-centro is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button rs-b-boton-linea\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/rafaelsolis.dev\/contacto\/\">Escribir por el formulario<\/a><\/div>\n<\/div>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Inicio Proyectos Plataforma de seguimiento de rutas de distribuci\u00f3n para una cervecer\u00eda internacional Distribuci\u00f3n y log\u00edstica \u00b7 Cliente confidencial Plataforma de seguimiento de rutas de distribuci\u00f3n para una cervecer\u00eda internacional Seguimiento de las rutas de despacho de un proveedor de una marca de cervecer\u00eda internacional, con b\u00fasqueda din\u00e1mica sobre miles de registros. Cliente Cliente confidencial\u2026<\/p>\n","protected":false},"author":0,"featured_media":0,"parent":79,"menu_order":12,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-96","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/rafaelsolis.dev\/es\/wp-json\/wp\/v2\/pages\/96","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rafaelsolis.dev\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rafaelsolis.dev\/es\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/rafaelsolis.dev\/es\/wp-json\/wp\/v2\/comments?post=96"}],"version-history":[{"count":0,"href":"https:\/\/rafaelsolis.dev\/es\/wp-json\/wp\/v2\/pages\/96\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/rafaelsolis.dev\/es\/wp-json\/wp\/v2\/pages\/79"}],"wp:attachment":[{"href":"https:\/\/rafaelsolis.dev\/es\/wp-json\/wp\/v2\/media?parent=96"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}