Naar de inhoud
Open Nexym

Ingelogde klant

Eén bron voor wie er op je site is ingelogd: Nexym leest het zelf bij Shopify, en met een klein fragment bij Magento, Hyvä, Shopware en WooCommerce. De A/B-test en de klantherkenning gebruiken allebei dat ene antwoord.

Bijgewerkt 29 okt 2026·Leestijd 5 mingevorderddataprivacy

Welke klant er is ingelogd, leest het embed-script op elke pagina op één manier. Twee onderdelen gebruiken dat ene antwoord:

Wie Wat het ermee doet Wanneer
A/B-test met Ingelogde klanten aan Houdt de groep bij de klant, zodat telefoon en laptop hetzelfde tonen Alleen met toestemming voor statistieken
Klant herkennen Koppelt de bezoeker aan de klant in de hub — op elke pagina, niet alleen bij het inloggen Volgens je instelling bij Klant herkennen

Via de herkenning weten ook de chat, segmenten en de klantcontext wie het is. Het klantnummer zelf wordt nergens bewaard: de server zoekt er de klant in de hub mee op, via het id dat je koppeling voor die klant kent.

In deze volgorde; het eerste antwoord telt.

Bron Hoe Zelf iets doen?
Nexym.customer.set(id) Je eigen script zegt het, bijvoorbeeld na inloggen zonder dat de pagina herlaadt. Nexym.customer.set(null) bij uitloggen Ja
window.nexymCustomer = { id: … } Het fragment hieronder, in je paginatemplate Ja
GA4 user_id in je dataLayer Ook customer_id, customerId, en user_data.email. Nooit uit een purchase: dat is de koper van een bestelling, vaak een gast Nee, als je dataLayer het al pusht
Shopify Shopify zet het klantnummer zelf op elke pagina Nee
Magento Uit de klantgegevens die Magento in de browser bewaart, als de plugin hieronder het klantnummer daarin zet De plugin

Een gast geeft null of 0: dan is er niemand ingelogd. Een e-mailadres mag mee ({ id: …, email: … }); dan herkent Klant herkennen ook een klant die nog niet uit je shop in de hub staat. De oude naam Nexym.experiment.customer(id) werkt nog en doet hetzelfde als Nexym.customer.set(id).

Logt iemand in of uit, of logt er een ander account in, dan merkt het script dat op de volgende pagina (of meteen, met Nexym.customer.set).

Onder Beheer → Bezoekers & toestemming → Wat we meten, kaart Ingelogde klant, staan deze fragmenten met een kopieerknop.

app/code/Nexym/Customer/Plugin/CustomerSection.php
// 1. Een plugin zet het klantnummer in Magento's klantgegevens (customer section data).
// Die worden nooit mee-gecachet in de paginacache.
namespace Nexym\Customer\Plugin;
use Magento\Customer\CustomerData\Customer;
use Magento\Customer\Helper\Session\CurrentCustomer;
class CustomerSection
{
public function __construct(private CurrentCustomer $current) {}
public function afterGetSectionData(Customer $subject, array $result): array
{
$id = $this->current->getCustomerId();
if ($id) {
$result['nexym_id'] = (string) $id;
}
return $result;
}
}
// 2. etc/frontend/di.xml:
// <type name="Magento\Customer\CustomerData\Customer">
// <plugin name="nexym_customer_id" type="Nexym\Customer\Plugin\CustomerSection"/>
// </type>
// 3. view/frontend/layout/default.xml: een Template-blok in before.body.end met
// Nexym_Customer::customer.phtml:
// <script>
// require(['Magento_Customer/js/customer-data'], function (customerData) {
// var customer = customerData.get('customer');
// function tell(c) {
// var id = c && c.nexym_id;
// window.nexymCustomer = id ? { id: String(id) } : null;
// if (window.Nexym && window.Nexym.customer) window.Nexym.customer.set(id || null);
// }
// tell(customer());
// customer.subscribe(tell);
// });
// </script>
<!-- Dezelfde plugin, di.xml en layout als bij Luma, met dit template.
Hyvä meldt de klantgegevens met het event private-content-loaded. -->
<script>
window.addEventListener('private-content-loaded', function (event) {
var c = (event.detail && event.detail.data && event.detail.data.customer) || {};
var id = c.nexym_id;
window.nexymCustomer = id ? { id: String(id) } : null;
if (window.Nexym && window.Nexym.customer) window.Nexym.customer.set(id || null);
});
</script>
{% comment %} Niet nodig: Nexym leest Shopify's klantnummer vanzelf.
Alleen als je thema dat heeft uitgeschakeld — layout/theme.liquid, voor </head>. {% endcomment %}
<script>
window.nexymCustomer = {% if customer %}{ id: {{ customer.id | json }} }{% else %}null{% endif %};
</script>
{# Resources/views/storefront/base.html.twig in je thema #}
{% sw_extends '@Storefront/storefront/base.html.twig' %}
{% block base_body_script %}
<script>
window.nexymCustomer = {% if context.customer and not context.customer.guest %}{ id: {{ context.customer.id|json_encode|raw }} }{% else %}null{% endif %};
</script>
{{ parent() }}
{% endblock %}
// functions.php van je (child)thema, of een kleine plugin
add_action('wp_head', function () {
$id = get_current_user_id(); // 0 voor een gast
echo '<script>window.nexymCustomer = '.($id ? wp_json_encode(['id' => (string) $id]) : 'null').';</script>';
}, 1);
<script>
// In je paginatemplate, waar je weet wie er is ingelogd (null voor een gast):
window.nexymCustomer = { id: 'KLANTNUMMER' };
</script>
<script>
// Of later, zodra je het weet — een shop zonder herladen:
Nexym.customer.set('KLANTNUMMER'); // en Nexym.customer.set(null) bij uitloggen
</script>

Op dezelfde kaart staat Gezien op je site: via welke bron het laatst een ingelogde klant langskwam, en wanneer. Het script meldt alleen de naam van de bron, nooit het nummer, en alleen van bezoekers bij wie het blijvende bezoekersnummer bewaard mag worden (toestemming voor statistieken). Nog niet gezien kan dus ook betekenen dat er deze week niemand met toestemming inlogde. In de A/B-test zie je bij Ingelogde klanten dezelfde bron.

  • Het script leest alleen wat je pagina al laat zien. Het bewaart in de browser alleen een controlegetal (nooit het nummer) in dit tabblad, en alleen waar het bezoekersnummer bewaard mag worden: zo merkt het dat iemand in- of uitlogde.
  • De A/B-test stuurt het klantnummer alleen met toestemming voor statistieken naar Nexym. De server zoekt er de klant in de hub mee op en bewaart de groep bij die klant. Het nummer zelf wordt niet bewaard.
  • Klant herkennen volgt zijn eigen instelling (statistieken of marketing).
  • Vraagt een klant om zijn gegevens te wissen, dan gaan zijn A/B-groepen mee met Klant verwijderen.