Saltar al contenido
en línea
esv0.46.1 · 1d135e2
Activo

Karuselle

Un marketplace multilingüe de moda de diseño de segunda mano seleccionada: búsqueda semántica, comisiones flexibles para vendedores, informes fiscales de la UE y nuevos métodos de pago sobre una base de código Laravel en crecimiento.

Página de inicio de Karuselle: una tienda selecta de moda de diseño de reventa, con una foto a todo lo ancho de un bolso plateado, un botón Sell with us, menús por marca y categoría, búsqueda y selector de idioma

Reto

Un marketplace de moda multilingüe con muchos vendedores y varios canales de venta externos necesitaba seguir creciendo sobre una base de código envejecida: una búsqueda más inteligente, comisiones justas y flexibles, informes fiscales de la UE, más métodos de pago y una tienda que siguiera siendo rápida y segura.

Solución

Tres años como único desarrollador:

  • Actualización del framework: Laravel 5.8 → 6 → 7 → 8 → 9 → 10 → 11 con todos los paquetes y PHP 7.4 → 8.x en dos semanas, además del traslado a un servidor nuevo.
  • Búsqueda semántica en cuatro idiomas: un servicio de embeddings y una base de datos vectorial propios, sincronización incremental del índice mediante colas, vuelta a la búsqueda simple con un circuit breaker, un interruptor en la administración sin despliegue, un filtro determinista de color/categoría/material, sinónimos y comandos de diagnóstico.
  • Catálogo y tienda: filtros AJAX en tiempo real en paneles desplegables con recuento, conversión de tallas a tallas UE y a los sistemas de cada país, filtros por descuento y vendedor, URL optimizadas para SEO, rediseño completo de fichas, cabecera, pie y megamenú, y banners y sliders de la página de inicio gestionados arrastrando y soltando.
  • Hacer una oferta: el comprador propone un precio y el administrador contraoferta por correo, incluso a invitados, con límites por persona, caducidad y protección contra dobles clics.
  • Pago y métodos de pago: tarifa Buyer Protection en el carrito, el pago, los correos y las facturas con IVA; cupones, envío según el país; Stripe con 3D Secure, Apple Pay y Google Pay, PayPal REST y Paysera con verificación del importe.
  • Vendedores y dinero: canales de venta con sus propias comisiones y facturas, una factura independiente por vendedor en un mismo pedido, fechas de pago a vendedores, un informe fiscal DAC7 de la UE en XML, números de factura emitidos bajo un bloqueo de base de datos y un módulo Commission Rules con un único resolvedor, tarifas por canal, reglas según la antigüedad del anuncio, vista previa, ordenación arrastrando y registro de cambios.
  • Feeds y marketing: Google Merchant, Facebook, marketplaces asociados en CSV, sincronización de e-commerce con Mailchimp y consent mode v2.
  • SEO y GEO: datos estructurados para productos, migas de pan y FAQ, canonical y hreflang solo para las traducciones existentes, noindex para las facetas, reglas de robots para rastreadores de IA y llms.txt, un sitemap diario y un comando de comprobación de SEO.
  • Idiomas: LT, EN, PL y RU con traducción al guardar y comandos de sincronización semanales.
  • Administración y operación: paneles de colas y jobs con heartbeat de los workers, exportaciones en segundo plano, recuperación de sesión que conserva el texto escrito y limpieza de borradores de productos abandonados.
  • Seguridad: una revisión de seguridad cerró brechas de control de acceso y de acceso a archivos, añadió limitación de inicios de sesión por cuenta y por IP, cerró las sesiones al cambiar la contraseña y restringió los tipos de archivo subidos.
  • Pruebas: una batería de pruebas que pasó de cero a 239 tests, con una protección que impide ejecutarlas en producción.

Resultado

  • Cálculo de comisiones para 50 productos: de 101 consultas a la base de datos a 2.
  • Lista de ofertas: 169 → 121 consultas por página; un producto con 35 ofertas: 92 → 64.
  • Miniaturas de producto: 136 KB → 20 KB cada una (60 por página de categoría); imágenes de un producto: 2,5 MB → 0,5 MB.
  • Las ganancias de los vendedores en el historial de ventas muestran ahora lo que realmente se cobró: se detectó y corrigió un error que afectaba a la mayoría de las filas históricas.
  • La búsqueda semántica cubre unos 9000 productos en producción.

Capturas de pantalla