Több WooCommerce webáruház IPN (Számlázz.hu) összekapcsolása egy fiókkal

Több WooCommerce webáruház IPN (Számlázz.hu) összekapcsolása egy fiókkal

Előfordulhat olyan helyzet, amikor két külön WooCommerce webáruház ugyanahhoz a Számlázz.hu fiókhoz van kapcsolva, és mindkét webshopnak ugyanazt az IPN értesítést kell kezelnie.
Mivel a Számlázz.hu csak egy IPN URL-t enged megadni, egy köztes megoldásra van szükség.

Ez a cikk bemutatja, hogyan tudsz több webáruház felé IPN hívást továbbítani, úgy hogy mindkét WooCommerce megkapja ugyanazt az értesítést.

A módszer lényege:

  1. A Számlázz.hu egy darab IPN URL-t hív meg (egy “gateway” scriptet).
  2. Ez a script ugyanazt az IPN kérést továbbküldi mindkét (vagy több) WooCommerce webáruház IPN végpontjára.
  3. Mivel a rendelést csak az egyik webshop fogja megtalálni:
    • az egyik rendszer feldolgozza,
    • a másik hibát fog dobni, de ez teljesen normális és nem okoz gondot.

1. Lépés: Hozd létre a multiple_ipn.php fájlt

Fontos: az alábbi kód csak mintának van, adj hozzá megfelelő biztonsági funkciókat!

Hozz létre az egyik szervereden (pl. valamelyik webshop tárhelyén) egy multiple_ipn.php fájlt, és másold bele az alábbi kódot:

<?php

//Ide írd be a két IPN url-t, amit a WooCommerce-ben találsz
$ipns = array(
    'bolt1' => 'http://valami.hu/?wc_szamlazz_ipn_url=7b92996fdc98b6203e7cff612ac',
    'bolt2' => 'http://valami2.hu/?wc_szamlazz_ipn_url=7b92996fdc98b6203e7cff612ac'
);

//Loop through each ipn url and repeat the request
foreach ($ipns as $ipn) broadcast($ipn);

header('HTTP/1.1 200 OK', true, 200);
exit();

//Replicate the request using curl
function broadcast($url) {
    $data = array();
    foreach ($_POST as $key => $value) {
        $data []= urlencode($key).'='.urlencode($value);
    }
    $data = implode('&', $data);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, count($data));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_exec($ch);
    curl_close($ch);
}
?>

A két „bolt1” és „bolt2” sorban található IPN URL-t írd át a saját WooCommerce áruházad által generált IPN URL-re(azt találod a WooCommerce → Számlázz.hu plugin beállításai között).

2. Lépés: Ezt az URL-t add meg a Számlázz.hu-ban

A Számlázz.hu fiókodban az IPN beállításnál nem a webshop IPN linkjét, hanem ezt add meg:

https://sajatdomain.hu/multiple_ipn.php

Ezt fogja meghívni a Számlázz.hu, és innen lesz tovább broadcastolva minden értesítés.

Fontos: rendelésazonosítók ütközése

Mivel két külön WooCommerce webáruházról van szó, előfordulhat azonos rendelés ID (pl. mindkét weboldalon 123-as rendelés).

Javasolt felrakni egy bővítményt, amely egyedi, nem ütköző rendelésszámot generál: https://wordpress.org/plugins/sequential-order-numbers-for-woocommerce/

Ezzel beállíthatod például, hogy:

  • az egyik webshop rendelésszám előtagja legyen A-xxxx
  • a másiké pedig B-xxxx

Így a Számlázz.hu mindig egyértelműen a megfelelő webshophoz tudja kapcsolni az IPN értesítést.

Ebben a cikkben

    Bővítmény információk

    Verziószám: 6.1.11
    Legutóbb frissítve: 2025. 10. 30.
    Változási napló: Megtekint

    WooCommerce Számlázz.hu