Envías una solicitud de presupuesto
Nos cuentas qué proceso quieres cubrir, qué usas ahora y dónde se atasca. Basta un briefing breve.
Usamos Google Analytics 4 para medir las visitas, y solo si lo aceptas. Hasta entonces no se envía nada a Google. Puedes cambiar tu elección en cualquier momento desde el pie de página. Política de cookies
Desarrollo web a medida · Bespoke
Cuando una web de presentación no basta, construimos la pieza que falta: una integración, un plugin, una aplicación. Cada elemento parte de lo que necesita el cliente, como un traje hecho a medida, no sacado de la percha.
Escribimos código para tu necesidad: plugins de WordPress y WooCommerce, integraciones con ERP, empresas de mensajería y otros servicios, API, importaciones de productos y aplicaciones web. Los paquetes de IMCode se hacen en serie, el mismo tipo de sitio en tres tamaños. Las soluciones a medida parten de un proceso concreto de tu negocio, que un plugin ya hecho cubre a medias o no cubre.
Abajo hay trabajos reales: proyectos para clientes y algunas herramientas que usamos nosotros. Cada tarjeta dice qué había que resolver y qué construimos. Los nombres de los clientes no aparecen.
Integraciones con ERP y servicios externos
La tienda tenía que seguir el stock y el precio del ERP del cliente, sin actualizaciones a mano.
Un script PHP se ejecuta cada 5 minutos. Lee el stock y el precio del servicio web del ERP y los escribe en WooCommerce, también en cada variante de los productos variables. Si la exportación llega vacía, el script no pone el stock a cero. La caché se vacía solo para los productos que han cambiado, y cuando el ERP no responde en varias comprobaciones seguidas, llega un correo.
PHP · SOAP · WooCommerce · cron
Integraciones con ERP y servicios externos
El envío de pedidos a una API externa estaba en el tema y podía romperse con un cambio de diseño.
Movimos el envío a un plugin. El formulario envía el pedido y, si la API no responde, el plugin lo reintenta solo cada 5 minutos, como máximo tres veces. Los puntos de recogida se guardan en caché por condados, y las credenciales salieron del código y están en constantes de configuración.
WordPress · Contact Form 7 · API REST
Integraciones con ERP y servicios externos
Una web de hotel tenía que enviar al visitante al motor de reservas alojado fuera, con la búsqueda ya rellenada.
Un plugin toma el formulario de búsqueda y los botones de reserva del plugin del hotel. Convierte las fechas y el número de huéspedes al formato del motor y abre la reserva en una pestaña nueva, en el idioma de la página.
WordPress · WPML
Integraciones con ERP y servicios externos
Un checkout rumano necesita localidades y códigos postales que las empresas de mensajería reconozcan.
Una API con localidades y códigos postales. Junto a cada localidad están los ID que usan FanCourier, Cargus y Sameday y los valores de kilómetros adicionales.
API · datos
Catálogo, importaciones y feeds
Un distribuidor quería un catálogo online, no una tienda, y el precio no debía aparecer en ninguna salida pública.
Un plugin quita el precio del HTML, del JSON-LD, de la API REST y de la Store API. Un importador lanzado desde la línea de comandos lee el Excel del distribuidor. Puede hacer primero una ejecución de prueba y se puede reanudar sin duplicar productos.
WordPress · WooCommerce · WP-CLI
Catálogo, importaciones y feeds
El feed XML o CSV de un proveedor cambia a menudo, y el cliente quería ver qué había cambiado.
Dos aplicaciones PHP comparan el feed producto a producto, a intervalos fijos. Guardan el historial de cambios de precio y stock, tienen panel de control y envían un correo cuando un cambio supera un umbral.
PHP · cron
Tienda: checkout, productos, configuradores
Las tiendas de Rumanía necesitan que el comprador elija entre particular y empresa y dé datos fiscales válidos.
Un plugin de WooCommerce valida el CNP, el CUI y el IBAN. Las localidades están en una lista por condados, con un campo libre para direcciones en el extranjero.
WooCommerce
Tienda: checkout, productos, configuradores
La tienda vende el mismo modelo nuevo y reacondicionado, con grados de desgaste, y quería que estuvieran enlazados, no duplicados.
Un módulo de WooCommerce enlaza el producto nuevo con el reacondicionado mediante un modelo común. El grado de desgaste se convierte en variante. La página muestra el ahorro respecto al producto nuevo y, cuando este se agota, cambia el canonical.
WooCommerce · REST · Rank Math
Tienda: checkout, productos, configuradores
Una tienda vendía unidades reacondicionadas únicas junto al producto original, ocultas del catálogo, con los defectos de cada unidad por escrito.
Un asistente en la administración crea la unidad a partir de un producto o de una variante existente: copia su título, su descripción y sus imágenes y la enlaza con el producto padre. La unidad no aparece en la tienda, en la búsqueda ni en los productos relacionados. Sus defectos están escritos en la página del padre.
WooCommerce · WoodMart
Tienda: checkout, productos, configuradores
Los clientes personalizan cajas en la página de producto y luego las añaden al carrito o piden presupuesto.
El modelo 3D muestra el color, el texto y la imagen de cada cara de la caja. El precio se recalcula en el servidor. El equipo recibe un panel de producción, con hoja A4 y archivo ZIP.
WooCommerce · React Three Fiber
Plataformas y sitios con lógica propia
Un sitio profesional tenía 12 tipos de contenido, cada uno con sus propios campos, filtros, importación y administración.
Un plugin con ORM, router, esquema versionado y motor de filtros escritos desde cero. Los datos están en tablas propias, no en entradas, y el plugin expone 52 endpoints REST.
PHP · WordPress
Plataformas y sitios con lógica propia
Un servicio de eventos quería un sitio rápido, con paquetes que se distinguen por el menú, no solo por el precio.
Las páginas se generan con scripts de Node, sin framework. El selector de paquetes se renderiza en el servidor y cada página tiene también una versión Markdown y otra JSON. Google Analytics arranca solo después del consentimiento. El proyecto tiene cinco conjuntos de pruebas.
Node · HTML · JSON-LD
Plataformas y sitios con lógica propia
Una escuela de cursos quería más que una lista: cursos en directo y en vídeo vendidos con WooCommerce, con ediciones por ciudad.
Cada edición tiene sus fechas. Las sesiones de Zoom tienen un enlace personal para cada comprador, y los cursos en vídeo se ven desde una página «Mis cursos». El pago puede hacerse a plazos, con calendario y recordatorios, y el descuento por reserva anticipada (early bird) se crea automáticamente como cupón.
WordPress · WooCommerce · Zoom · Bunny CDN
Plataformas y sitios con lógica propia
Un sitio publica ofertas nuevas cada mes, y las antiguas tenían que desaparecer.
Cada oferta tiene fecha de caducidad y procedimientos enlazados. Un cron pasa a borrador las ofertas caducadas y borra los productos creados automáticamente para ellas.
WordPress · WooCommerce · cron
Herramientas con IA
Una tienda de productos reacondicionados recibía lotes en CSV y quería páginas de producto en rumano, sin escribir cada producto a mano.
Una aplicación importa los lotes y trae los datos del producto. En una sola llamada, un modelo de IA traduce al rumano y propone el estado y un precio. Un operador aprueba cada producto antes de que llegue a la tienda.
Next.js · Supabase · OpenRouter · WooCommerce
Herramientas con IA
Un sitio de pódcast importa episodios, transcripciones e imágenes de portada desde un feed RSS y los muestra por temas.
Un plugin toma los episodios del RSS según un programa y dibuja un mapa de temas a partir de etiquetas y transcripciones. Un asistente de IA propone unificar los temas duplicados, y una persona los aprueba desde la administración.
WordPress · D3 · Gemini
Administración y mantenimiento
La base de datos de una tienda WooCommerce crecía sin que nadie lo notara.
Un plugin comprueba cada día el tamaño de la base y envía por correo las cinco tablas más grandes. Un segundo plugin impide que se guarden en caché los contadores de filtros cuando la petición llega con parámetros de filtrado.
WordPress · mu-plugin
Interfaz y efectos en la página
Una web de empresa quería un vídeo en bucle en la primera sección, sin ralentizar la carga.
Al cargar solo aparece el póster, y el vídeo arranca cuando la página está libre. Se detiene fuera de la pantalla y respeta los ajustes de reducción de movimiento y de ahorro de datos.
Elementor · Bunny Stream
Administración y mantenimiento
En una migración, las direcciones antiguas que ya no existen tenían que enviarse a las nuevas.
Una herramienta local lee el sitemap antiguo y un CSV de Search Console, comprueba los códigos de respuesta y empareja las direcciones muertas con el sitemap nuevo. Genera un CSV para Rank Math, Yoast o Redirection.
Node · TypeScript
Catálogo, importaciones y feeds
Una tienda de recambios de coche recibía productos de varios proveedores, en feeds distintos, y necesitaba fichas de producto en rumano.
Cada feed lo lee un script distinto: un CSV en Windows-1250 y dos XML, uno de los cuales a veces tenía caracteres de control ilegales. Los scripts convierten el texto a UTF-8 y quitan los caracteres que rompen el parser. Un traductor llama a OpenAI con un glosario de términos técnicos del automóvil, para que «coilover» o «front lip» no se queden en inglés. Si falla la traducción de un producto, el producto se exporta con el texto original y se reintenta en la siguiente ejecución.
PHP · OpenAI · feeds XML y CSV
Catálogo, importaciones y feeds
La tabla de alimentación de cada producto se guardaba como JSON y tenía que aparecer en la página del producto.
Un plugin pequeño añade una pestaña «Tabla de alimentación» y lee el campo JSON del producto. En ordenador es una tabla entera, en tableta se desplaza en horizontal y en móvil cada fila se convierte en una tarjeta. Funciona sin JavaScript, solo con CSS, y usa las variables de color del tema WoodMart.
WordPress · WoodMart · CSS
Tienda: checkout, productos, configuradores
Una tienda tenía productos que se venden bajo presupuesto o desde el stock del proveedor, y WooCommerce solo conoce tres estados de stock.
Un módulo del tema hijo añade los dos estados y los trata como «en stock», porque si no el producto desaparecería de la tienda. «Pedir presupuesto» bloquea la compra y muestra un botón que abre el formulario de presupuesto. WoodMart tiene los estados estándar escritos directamente en el código, así que reescribimos la cuadrícula de productos, el filtro de stock, la columna de la administración y las condiciones de entrega estimada para que los reconozcan.
WooCommerce · WoodMart · PHP
Tienda: checkout, productos, configuradores
El ERP de una tienda envía el precio con IVA incluido, pero no el tipo, y los alimentos y el resto de productos tienen tipos distintos.
Un script puso la clase de tipo reducido en las categorías de alimentos y la clase estándar en el resto de productos, también en las variantes. Definió además el tipo de la clase nueva, que hasta entonces no tenía ninguno. Los pedidos antiguos quedaron intactos, porque la factura se emite desde el ERP, y el script se puede repetir para los productos nuevos.
WooCommerce · PHP
Tienda: checkout, productos, configuradores
Una tienda quería «modelos» que agrupan varios productos, y el pedido tenía que parecerse a uno con productos comprados por separado, para la facturación, la mensajería y los feeds.
Un «modelo» es un tipo de contenido de presentación, no un producto de venta. Al añadirlo al carrito, el plugin crea una línea real para cada componente, enlazadas por un identificador común, y el stock sigue siendo el de WooCommerce. El descuento de paquete y el coste de personalización son cargos del carrito calculados en el servidor, no cupones.
WooCommerce · WoodMart · PHP
Tienda: checkout, productos, configuradores
Una tienda da regalos al superar ciertos importes del carrito, y el comprador no podía ver cuánto le faltaba para el siguiente.
Una barra en el carrito, en el minicarrito y en el checkout muestra los escalones: bloqueado, siguiente, conseguido. El umbral se mide sobre el subtotal tras los cupones, sin envío, es decir, sobre el mismo valor que usa el plugin de regalos, de modo que la barra y la entrega del regalo muestran lo mismo. Los textos están en rumano e inglés.
WooCommerce · Free Gifts for WooCommerce · WPML
Tienda: checkout, productos, configuradores
Los archivos AWB de los pedidos estaban en un directorio de subidas que se podía explorar y no tenía ninguna comprobación de acceso.
En el primer uso, el plugin coloca en el directorio un .htaccess y un index.php que bloquean el acceso directo y la ejecución de scripts. Los archivos se descargan mediante un enlace con nonce, tras comprobar que quien lo pide es administrador o el propietario del pedido. La lista de pedidos tiene una columna «Archivos AWB», y en la pantalla del pedido hay un botón que copia el enlace.
WooCommerce · PHP
Integraciones con ERP y servicios externos
Una tienda con WPML Multicurrency vendía en dólares y en soles peruanos, y los dos precios tenían que seguir el tipo de cambio.
Un plugin se ejecuta a diario a las 08:00, toma el tipo de cambio de una API pública y actualiza los precios de los productos simples y variables. La administración guarda las últimas cinco ejecuciones. En los productos variables, el precio en la segunda moneda aparece como intervalo, y cuando cambia el tipo de cambio o un precio se envía un correo.
WooCommerce · WPML Multicurrency · cron
Plataformas y sitios con lógica propia
Una pensión con eventos necesitaba páginas de evento con detalles, programa, galería y menú en PDF, además de habitaciones agrupadas por tipo.
Un plugin añade el tipo «evento» y shortcodes para detalles, programa, galería, extras y vídeo. El menú en PDF, que puede pesar decenas de MB, se carga solo al hacer clic. Las habitaciones tienen dos taxonomías, el tipo de edificio y la clase de habitación. Los eventos del sitio antiguo se trasladaron, y las redirecciones permanentes conservan las direcciones antiguas.
WordPress · Elementor · Rank Math
Plataformas y sitios con lógica propia
Una academia quería cursos en vídeo vendidos con WooCommerce, a los que pudiera entrar también quien no ha iniciado sesión.
Cada lección tiene su vídeo en Bunny CDN. Tras el pago, el comprador recibe un correo con el enlace a la página «Mis cursos». Quien no ha iniciado sesión escribe su dirección de correo, recibe un código de 6 cifras válido durante 10 minutos y ve, durante 24 horas, los cursos de los pedidos de esa dirección. El administrador también puede dar acceso a una lista de direcciones sin pedido, de forma permanente o por un número de días.
WordPress · WooCommerce · Bunny CDN
Plataformas y sitios con lógica propia
Los cursos en directo tenían sesiones de Zoom en varios días, y los enlaces a las grabaciones de Zoom caducan.
Las sesiones se crean mediante la API de Zoom, con autenticación de servidor a servidor, y los recordatorios salen de un cron. Cada comprador ve solo las sesiones del paquete que ha adquirido. La administración tiene una tabla de participantes con botón de reenvío. Las grabaciones se copian en Bunny CDN y se ven en un reproductor propio.
WordPress · WooCommerce · Zoom API · Bunny CDN
Plataformas y sitios con lógica propia
Un tipo de contenido nuevo, construido en Elementor, se mostraba como una entrada de blog, con título, autor e imagen destacada encima, no como una página.
El tema WoodMart tiene las comprobaciones de tipo «página» escritas directamente en el código, sin filtros. Copiamos la plantilla de la página para el tipo nuevo y añadimos el tipo al metabox del tema mediante Reflection, porque su lista es una propiedad privada. Todo el código está en el tema hijo, sin modificar los archivos del tema.
WordPress · Elementor · WoodMart
Herramientas con IA
Cada curso nuevo tiene muchos campos de texto que rellenar: descripción, beneficios, preguntas frecuentes y otros.
Un asistente en la administración recibe el título, el tipo de curso, la ciudad y el formador, y pide a un modelo de OpenAI que escriba la descripción, los beneficios, lo que aprende el alumno, las preguntas frecuentes y el público objetivo. El resultado llega a los campos del curso.
WordPress · OpenAI
Herramientas con IA
Cada episodio de pódcast tenía que tener una portada cuadrada, con el mismo estilo, a partir de la foto del ponente.
Un script de Python envía cada foto a Gemini, con un prompt que fija el formato 1:1, pide conservar los rasgos y prohíbe texto, logotipo u objetos añadidos. El resultado es un PNG de 1024 × 1024, y las portadas se ponen después como imagen destacada de los episodios. El filtro de seguridad rechaza algunas fotos, sobre todo las muy pequeñas, y esas se repiten con otra foto de la misma persona.
Python · Gemini API · WordPress
Administración y mantenimiento
Cuando se cancela un curso, hay que avisar a todos los que lo compraron.
En la pantalla del curso, un metabox tiene un campo para el motivo y un botón «Enviar correo de cancelación». El plugin busca los pedidos completados o en proceso del curso, elimina las direcciones duplicadas y envía el mensaje con la plantilla de correo de WooCommerce, con el motivo si se ha rellenado.
WordPress · WooCommerce
Administración y mantenimiento
Las imágenes de la biblioteca de medios de un sitio WordPress había que hacerlas más pequeñas en masa, sin dependencias externas.
Un único archivo PHP, protegido con clave, escanea el directorio de subidas y se salta las miniaturas de WordPress. Recomprime los JPEG y crea un WebP junto a cada PNG, sin borrar el original. Tiene ejecución de prueba y trabaja por lotes, para no pasar el tiempo máximo de PHP. Un registro muestra cuánto se ha ahorrado en cada imagen.
PHP · GD · AJAX
Administración y mantenimiento
En una tienda WPML con 15 idiomas, algunos atributos de producto habían acabado en el grupo de traducciones equivocado.
Escaneamos todo el catálogo, enlazamos los términos alemanes erróneos con su grupo de traducciones y borramos los términos huérfanos. El escaneo final dio cero huérfanos y cero diferencias respecto a la copia de seguridad. Un término que parecía huérfano pero tenía el idioma correcto se dejó como estaba.
WPML · WooCommerce
Interfaz y efectos en la página
Un menú mega con categorías, hecho como shortcode, no se veía en el móvil porque WoodMart oculta el contenido del desplegable en el panel móvil.
En el móvil, el shortcode muestra una lista que desciende por niveles, con animación de deslizamiento. Toma los datos de los paneles de escritorio, que ya están en la página, para no repetir las consultas de categorías. Las subcategorías se abren como acordeón, para que haya menos toques.
WoodMart · JavaScript · WooCommerce
Interfaz y efectos en la página
Un sitio de consultoría quería fondos animados en la sección hero, que un editor pudiera poner sin escribir código.
Tres animaciones en canvas, «Capital Flow», «Network Connections» y «Layered Depth». Cada una viene en dos archivos: una página de vista previa y un archivo para pegar en un widget HTML de Elementor. Usan la paleta de la marca y tienen cuatro paletas alternativas. Una página de demostración las muestra todas, para la aprobación del cliente.
Elementor · Canvas · JavaScript
Interfaz y efectos en la página
Un sitio de empresa quería efectos de fondo en las secciones, aplicados directamente desde Elementor.
Un archivo CSS y otro JS en el tema hijo ofrecen los efectos como clases CSS que el editor escribe en Elementor: una aurora con rejilla de puntos, un foco de luz que sigue el cursor, una línea de degradado animada y una banda de texto que se desplaza.
Elementor · CSS · JavaScript
Interfaz y efectos en la página
En la página de un producto, la ventana «Compra a plazos» se cerraba sola tras unos 2 segundos.
El tema llama al cierre de cualquier popup en cada cambio de diapositiva, y en la página se ejecutan dos carruseles con autoplay. Envolvimos la función del tema que hace la llamada, con efecto solo mientras dura la llamada y solo si hay un popup abierto. Así, el cierre con la X, con ESC y con clic en el fondo sigue funcionando.
JavaScript · WoodMart
Herramientas con IA
Una marca de cosmética dermatológica quería un cuestionario guiado sobre afecciones de la piel, que terminara con productos recomendados.
Un plugin de WordPress con módulos que se activan o se desactivan desde los ajustes. Tiene un cuestionario principal y uno para cada afección, y las respuestas pasan de un cuestionario a otro, con un plazo de caducidad corto. El análisis de selfi se ejecuta mediante un endpoint REST: pide el consentimiento del visitante, comprueba la edad y el archivo, limita las peticiones y llama a un modelo de IA. Una matriz de compatibilidad con los productos se muestra mediante un shortcode.
WordPress · WooCommerce · REST · API de IA
Integraciones con ERP y servicios externos
Los resultados del cuestionario tenían que llegar al CRM de la marca, pero solo los de quienes aceptan marketing.
El contacto se crea en TheMarketer solo después de que el visitante marque el consentimiento de marketing, con confirmación en dos pasos. Cada resultado del cuestionario recibe una etiqueta, y los envíos que fallan se reintentan desde un cron.
WordPress · TheMarketer API · cron
Plataformas y sitios con lógica propia
Una clínica quería galerías con casos antes/después, que el equipo pudiera subir por lotes, ordenar y corregir sin entrar en WordPress.
Un plugin de WordPress muestra la galería, con carga progresiva y swipe. Un panel PHP independiente recibe ZIP o carpetas, optimiza las fotos y las empareja con el procedimiento. El equipo mueve los casos entre procedimientos, los borra o los ordena arrastrando. Un caso subido de nuevo sustituye al conjunto antiguo solo después de que el nuevo se haya guardado entero, y la caché de la página se vacía y se vuelve a calentar sola.
WordPress · Elementor · PHP
Catálogo, importaciones y feeds
Los registros de PubMed había que transformarlos en un XML que WordPress pueda importar, con los autores asociados correctamente a sus afiliaciones.
El parser lee siete campos más, entre ellos el estado, las fechas y el ISSN. Una rutina nueva agrupa las líneas de autores con las líneas de afiliación y separa los nombres. El generador de XML y las páginas de correspondencia y vista previa usan los campos nuevos.
PHP · XML · PubMed
Trabajamos sobre todo con WordPress y WooCommerce, con plugins e integraciones escritos desde cero. Para aplicaciones independientes usamos PHP, Node y TypeScript, React y Next.js. Las funciones de IA llaman a las API de distintos proveedores; no entrenamos modelos propios.
Como en las webs de IMCode, la IA ayuda en el desarrollo y una persona revisa el resultado antes de la entrega.
Nos cuentas qué proceso quieres cubrir, qué usas ahora y dónde se atasca. Basta un briefing breve.
Los desarrollos a medida no tienen precio de lista. El precio y el plazo aparecen en el presupuesto, después de leer el briefing.
Construimos la pieza y la conectamos a tus sistemas. Una persona revisa el resultado antes de entregártelo.
| Tu situación | Qué encaja |
|---|---|
| Necesitas una web de presentación o una página para una oferta | Los paquetes de IMCode |
| Tu sitio necesita además una integración, un plugin o una lógica que no encuentras ya hecha | Solución a medida |
| Quieres un proceso automático entre la web, el ERP, la mensajería u otro servicio | Solución a medida |
| Tienes un problema, pero no una especificación | Cuéntanos el problema y te respondemos qué opción encaja |
Escribimos código para tu necesidad, en lugar de partir de una plantilla: plugins de WordPress y WooCommerce, integraciones, API, importaciones y aplicaciones web.
No tiene precio de lista. Envías una solicitud de presupuesto, y el precio y el plazo aparecen en el presupuesto, después de leer el briefing.
Un plugin ya hecho trae funciones pensadas para muchos usuarios. Una solución a medida contiene solo lo que pide tu proceso y se conecta con los sistemas que usas.
Sí, como herramienta de desarrollo, y una persona revisa el resultado. Cuando la solución incluye funciones de IA, llamamos a las API de distintos proveedores; no usamos modelos propios.
No publicamos los nombres de los clientes. Lo que podemos mostrar en público está en la biblioteca, sin nombres.
Envía una solicitud de presupuesto o mira los paquetes y precios.
Describe el sitio que necesitas y te respondemos con un presupuesto.
Se actualizan automáticamente desde nuestro perfil de Google.
Todas en Google (se abre en una pestaña nueva)Escribe una reseña (se abre en una pestaña nueva)