CartaQR Connected

Una carta. La misma experiencia en cualquier web.

Conecta la carta y el menú del día de un restaurante mediante una API key de solo lectura. Los complementos oficiales utilizan la misma presentación Luxe de CartaQR Pro.

Ejemplo de uso real

Una web propia; una carta siempre sincronizada.

La demostración utiliza dos páginas reales: la web principal del restaurante y su URL independiente de Carta. Ambas conservan el mismo header y footer del restaurante; la página Carta incorpora en el contenido central el visor Luxe exacto de CartaQR Pro.

Web independiente del restaurante
ATLÁNTICO

Nuestra carta, conectada.

API real · vista Luxe · actualización automática

1Generar

El restaurante genera su clave desde el panel.

2Conectar

La clave se pega en WordPress, Laravel o la web correspondiente.

3Sincronizar

La carta, fotografías y menú del día permanecen actualizados.

Inicio rápido

Renderer Luxe universal

Para obtener la misma vista en cualquier sistema, coloca el contenedor donde deba aparecer la carta y carga el renderer oficial. La API key se genera en Panel → Conectar mi web.

Arquitectura recomendadaCrea una URL propia, por ejemplo /carta, mantén allí el header y footer del restaurante e inserta el renderer entre ambos. El menú de la web necesita un único enlace llamado «Carta».
Qué renderizaLa misma navegación y desplazamiento de CartaQR Pro: menú del día, categorías, platos, galerías, precios, alérgenos, cantidades, nota personal, modales y horarios.
Qué no duplicaHero, navegación general, acceso al panel y footer de CartaQR Pro. Esos elementos pertenecen a la web del restaurante.
HTML universal
<div
  data-cartaqr-connected="cqp_live_TU_CLAVE"
  data-height="900">
</div>

<script async
  src="https://cartaqrpro.es/connected/cartaqr-connected.js">
</script>

El renderer comprueba la revisión cada 30 segundos y recarga únicamente cuando CartaQR Pro publica un cambio.

Integraciones oficiales

Una base común para todas las plataformas

No recreamos el diseño en cada sistema. Todos utilizan el renderer oficial para conservar la misma interfaz.

Laravel / PHP

Consumo desde servidor

Obtén JSON estructurado o incorpora directamente el renderer Luxe.

Authorization: Bearer cqp_live_...
WordPress

Plugin listo para instalar

Campo para pegar la clave, página Carta automática y shortcode reutilizable.

[cartaqr_connected]
Cualquier web

Renderer universal

Un contenedor y una etiqueta cargan la vista real sin interferencias del tema existente.

data-cartaqr-connected="TU_API_KEY"
Laravel

Blade y consumo de servidor

<div data-cartaqr-connected="{{ config('services.cartaqr.key') }}"></div>
<script async src="https://cartaqrpro.es/connected/cartaqr-connected.js"></script>
$response = Http::withToken(config('services.cartaqr.key'))
    ->acceptJson()
    ->get('https://cartaqrpro.es/api/v1/connected/menu')
    ->throw()
    ->json();
PHP

Petición mediante cURL

$request = curl_init('https://cartaqrpro.es/api/v1/connected/menu');
curl_setopt_array($request, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    'Accept: application/json',
    'Authorization: Bearer cqp_live_TU_CLAVE'
  ]
]);
$menu = json_decode(curl_exec($request), true);
WordPress

Complemento oficial

  1. Descargar e instalar el ZIP.
  2. Pegar la API key en Ajustes → CartaQR Connected.
  3. Elegir la página y el texto del enlace de navegación.
  4. Añadirla al menú principal automáticamente o gestionarla desde Apariencia.
  5. Usar la página Carta o el shortcode en cualquier contenido.
[cartaqr_connected height="900"]
Descargar WordPress
API v1

Lectura de la carta vigente

La integración consulta exclusivamente contenido público. La respuesta contiene restaurante, horarios, categorías, platos, imágenes, precios, alérgenos, variantes y menú del día activo.

El modo integrado no duplica el hero ni el footer de CartaQR Pro: muestra directamente las categorías, el menú del día y todas las funciones Luxe dentro del diseño propio del restaurante.

Abrir especificación OpenAPI →
Petición desde servidor
GET https://cartaqrpro.es/api/v1/connected/menu
Accept: application/json
Authorization: Bearer cqp_live_TU_CLAVE
Actualización eficiente

Utiliza la cabecera ETag o meta.revision. Si nada ha cambiado, CartaQR Pro responde con 304 Not Modified.

Contrato de respuesta

Información incluida en la API

restaurant

Identidad pública, contacto, ubicación, horarios, disponibilidad, imágenes y color.

daily_menu

Menú vigente, secciones, platos, precio, texto fijo y hora de finalización. Es null cuando está desactivado o caducado.

categories[].items[]

Categorías y platos activos con orden, precios, imágenes, alérgenos, etiquetas, variantes y extras.

meta

Versión, revisión estable, fecha de generación y frecuencia recomendada de actualización.

Respuesta abreviada
{
  "api_version": "1.0",
  "restaurant": {
    "name": "Restaurante Ejemplo",
    "public_url": "https://cartaqrpro.es/restaurante-ejemplo"
  },
  "daily_menu": null,
  "categories": [
    {"name": "Entrantes", "items": [...]}
  ],
  "meta": {
    "revision": "sha256...",
    "refresh_after_seconds": 30
  }
}
Códigos de respuesta

Comportamiento previsible

200Carta disponibleRespuesta JSON completa.
304Sin cambiosLa revisión coincide con If-None-Match.
401Clave incorrectaFalta, fue regenerada o está desactivada.
403Carta no disponibleEl restaurante no está activo.
429Demasiadas consultasRespeta el intervalo de actualización indicado.
Seguridad

Una conexión limitada y revocable

La API Connected no permite editar, crear ni eliminar información. Las operaciones del panel continúan protegidas y separadas.

  • Clave vinculada a un único restaurante.
  • Almacenamiento mediante hash en CartaQR Pro.
  • Acceso exclusivo a información pública.
  • Límite de solicitudes y revocación inmediata.
  • Sin acceso a pagos, usuarios, SMTP, OpenAI o administración.
  • La conexión se detiene si el restaurante está suspendido.
Lista de verificación

Antes de publicar la integración

  1. La API key pertenece al restaurante correcto.
  2. El renderer aparece dentro del apartado Carta, no dentro del hero principal.
  3. El contenedor tiene altura suficiente en escritorio.
  4. La vista móvil ocupa el ancho disponible sin scroll lateral.
  5. Un plato ocultado desaparece después de actualizar la revisión.
  6. El menú del día desaparece al desactivarlo o caducar.
  7. La web conserva su propio canonical y sus datos corporativos.