Még nincs semmi a kosárban
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:
- A Számlázz.hu egy darab IPN URL-t hív meg (egy “gateway” scriptet).
- 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.
- 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 |
