← ClaudeAtlas

ps-invoice-previewlisted

Generates a local invoice PDF viewer for PrestaShop projects, deployed as invoice-preview/index.php (subfolder, ROOT = dirname(__DIR__)). Lists the last 50 orders (searchable by reference/customer/id), renders the real PDF invoice for any order straight from classes/pdf/HTMLTemplateInvoice.php + pdf/*.tpl (respecting any themes/{child}/pdf/*.tpl override PS itself resolves) inline in the browser via an iframe, with a "Generar factura" button for orders that don't have one yet. Zero placeholders to fill in — admin dir, Lando URL, DB credentials and shop name are all auto-detected at runtime from config/parameters.php and the PS_SHOP_NAME configuration value. Gated behind backoffice employee auth (Cookie class, always denies on failure). Geist-font UI matching the ps-email-preview visual style. Use this skill whenever the user wants to preview, inspect, or debug PrestaShop invoice/receipt PDF templates without going through the backoffice order page each time, asks "cómo se ve la factura", "quiero ver el PDF de
educlopez/mallard · ★ 3 · Code & Development · score 72
Install: claude install-skill educlopez/mallard
# PS Invoice Preview Genera un visor de facturas PDF para PrestaShop en un solo archivo PHP. Renderiza el PDF real (mismo motor que usa el backoffice: `HTMLTemplateInvoice` + `pdf/*.tpl`) para cualquier pedido, directo en el navegador, sin pasar por el backoffice. Pensado para iterar rápido sobre cambios de maquetación de factura (`pdf/invoice*.tpl`, `pdf/footer.tpl`, overrides de tema). A diferencia de `ps-email-preview`, esta skill **no necesita placeholders**: todo se detecta en runtime dentro del propio PHP (carpeta de admin, URL, credenciales DB, nombre de tienda). El paso de generación es una copia directa del asset. ## Características del visor - **Sidebar con últimos 50 pedidos** — buscador en tiempo real por referencia, nombre/apellido de cliente o ID de pedido - **Estado del pedido** — badge con el nombre del estado actual (`order_state_lang`) - **Pedido con factura generada** → botón "Ver factura #N" que carga el PDF real en un iframe - **Pedido sin factura** → botón "Generar factura" que llama a `$order->setInvoice(true)` y recarga - **PDF real, no una aproximación HTML** — usa `PDF::TEMPLATE_INVOICE` + `Order::getInvoicesCollection()`, el mismo pipeline que el backoffice (`AdminOrders` → generar factura PDF), así que respeta cualquier override en `themes/{child}/pdf/*.tpl` o clases `override/classes/pdf/HTMLTemplateInvoice.php` tal cual estarían en producción - **Auto-detección de carpeta admin** — busca la primera carpeta de primer nivel con `init.php` + `bo