PrestaShop

Integra InvoCash con PrestaShop

Genera facturas VeriFactu automáticamente al validar pedidos en PrestaShop 1.7+. Módulo listo para instalar.

PrestaShop

Facturación VeriFactu automática en PrestaShop

PrestaShop ofrece un potente sistema de módulos y hooks que permite conectar cualquier proceso del ciclo de vida de un pedido con servicios externos. La integración con InvoCash aprovecha el hook actionValidateOrder para generar la factura en el momento exacto en que el pedido se valida y cobra.

El resultado: cada pedido pagado tiene su factura VeriFactu generada, validada con la AEAT y disponible para el cliente en segundos, sin ningún trabajo manual.

COMPATIBILIDAD
PrestaShop
1.7+8.0+8.1+
PHP
7.48.08.18.28.3
Métodos
PayPalStripeBankOtros
  • Hook actionValidateOrder nativo
  • Compatible con Stripe, PayPal y otros gateways
  • Soporte para multi-tienda y multi-moneda
  • Integración sin dependencias externas
Cómo funciona

Integración en 3 pasos automáticos

1. Pedido pagado en PrestaShop

El cliente realiza el pago. PrestaShop valida el pedido cuando se confirma el pago.

2. Tu módulo enganchado al hook

Tu módulo PHP personalizado (enumerado al hook actionValidateOrder) recoge los datos del pedido y llama a la API de InvoCash para crear la factura.

3. Factura VeriFactu generada

InvoCash genera la factura, la valida con la AEAT y la envía por email al cliente con el PDF adjunto.

Antes de empezar

Requisitos previos

Código

Código de integración

1

Estructura del módulo y registro del hook

// modules/invocash/invocash.php
class InvoCash extends Module
{
    public function __construct()
    {
        $this->name         = 'invocash';
        $this->displayName  = 'InvoCash – Facturación VeriFactu';
        $this->description  = 'Genera facturas VeriFactu automáticamente';
        parent::__construct();
    }

    public function install(): bool
    {
        return parent::install()
            && $this->registerHook('actionValidateOrder');
    }

    public function hookActionValidateOrder(array $params): void
    {
        $order    = $params['order'];
        $customer = new Customer($order->id_customer);
        $this->crearFacturaInvoCash($order, $customer);
    }
}
2

Llamada a la API de InvoCash

private function crearFacturaInvoCash(Order $order, Customer $customer): void
{
    $lines = [];
    foreach ($order->getProducts() as $product) {
        $taxBase   = (float) $product['total_price_tax_excl'];
        $taxAmount = (float) $product['total_price'] - $taxBase;
        $taxPctge  = $taxBase > 0 ? round($taxAmount / $taxBase * 100) : 21;

        $lines[] = [
            'description'             => $product['product_name'],
            'quantity'                => (int) $product['product_quantity'],
            'unit_price'              => $taxBase / $product['product_quantity'],
            'tax_base'                => $taxBase,
            'tax_pctge'               => $taxPctge,
            'tax_amount'              => $taxAmount,
            'tax_withholding_pctge'   => 0,
            'tax_withholding_amount'  => 0,
            'tax_type'                => 'IVA',
            'clave_regimen'           => '01',
            'qualification_operation' => 'S1',
            'exempt_operation'        => null,
            'total'                   => $taxBase,
        ];
    }

    $ch = curl_init('https://{su-tenant}.invo.cash/api/invoices');
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST           => true,
        CURLOPT_HTTPHEADER     => [
            'Content-Type: application/json',
            'X-API-Key: ' . Configuration::get('INVOCASH_API_KEY'),
        ],
        CURLOPT_POSTFIELDS => json_encode([
            'verifactu_issuer_territory' => 'MAINLAND',
            'simplified'                 => false,
            'lines'                      => $lines,
            'total'                      => (float) $order->total_paid,
        ]),
    ]);
    curl_exec($ch);
    curl_close($ch);
}

VeriFactu incluido automáticamente: todas las facturas creadas mediante la API de InvoCash se procesan con el sistema VeriFactu de la AEAT. Cumplimiento de la Ley Antifraude y el RD 1007/2023 sin ningún desarrollo adicional por tu parte.

Caso de uso

Tienda PrestaShop con facturación legal automática

Pago validado
Hook actionValidateOrder
Factura en Invocash
Email al responsable

Una tienda industrial en PrestaShop con clientes B2B necesita emitir facturas con datos fiscales correctos en cada pedido. La integración con InvoCash genera automáticamente cada factura VeriFactu, la vincula al pedido de PrestaShop, y la envía al responsable de compras, eliminando el proceso manual y los errores asociados.

Contacto

¿Necesitas ayuda con la integración?

Nuestro equipo técnico te acompaña en todo el proceso. Sin compromiso.