Follow

Integrér Heyloyalty med Shopify

Brug dine kunders data til at skabe relevant og effektiv e-mail marketing og marketing automation

Med Heyloyaltys 2-vejs-integration din Shopify-webshop får du automatisk dine kunders/kontakters købshistorik og onsite adfærd lagret i Heyloyalty – data og adfærd som du kan bruge til segmentering og automations.

Dine kunders totale antal ordre, gennemsnitlige pris pr. ordre, første og sidste købs og meget mere automatisk over i Heyloyalty.

Vi har gjort det nemt for dig at vækste din forretning, for med integrationen kan du hurtigt komme i gang med at sende tabt kurv- og winback-mails. To effektive automations der giver stort udbytte for enhver e-commerce-forretning.

Følg guiden nedenfor og kom i gang med Heyloyalty.

Note: Integrationer tager pt. ikke højde  for "multisite" eller "gæstecheckout" - kontakt CST hvis du har spørgsmål hertil.

Guiden indeholder:

Hvis du får brug for hjælp eller vejledning, så står vores Customer Succes Team klar til at hjælpe dig i mål. Du kan kontakte dem på følgende måder:

Skriv til: cst@heyloyalty.com 

Ring til: 87 300 399

Opsummering:

  1. Installer app
  2. Opret Heyloyalty-konto eller integrer med eksisterende konto
  3. Aktiver webhooks
  4. Importer dine kunders data
  5. Implementer Heycommerce Light-scripts
    1. Dynamisk script under 'footer.liquid' i 'Themes'. Samt under 'Checkout' under 'Order processing'.
    2. Stort statisk script under dynamisk script i 'footer.liquid' i 'Themes'.
    3. Lille statisk script under dynamisk script i 'Checkout' under 'Order processing'.

Installer app

Første skridt på vejen mod en integration til Heyloyalty er at installere vores app.
App'en kan tilgås direkte fra nedenstående link. Det eneste du skal gøre er at erstatte [dinshop] med navnet på din Shopify webshop:

 

https://[dinshop].myshopify.com/admin/oauth/request_grant?client_id=cd73bc0ea792ef7999205df8c5edc745&redirect_uri=https%3A%2F%2Fintegration.heyloyalty.com%2FauthCallback&scope=read_all_orders%2Cread_orders%2Cwrite_customers%2Cread_products

 

Step 1: Opret ny Heyloyalty-konto, eller brug eksisterende

Når du har installeret app'en i din webshop, skal du i gang med selve integrationen. Du har to muligheder.

  1. Opret en ny Heyloyalty-konto: Hvis du på forhånd ikke har en konto hos os, kan du direkte fra integrationssiden oprette din konto.
  2. Integrer med en eksisterende Heyloyalty-konto: Hvis du allerede har en konto hos os, kan du via integrationssiden integrere med denne.

Ny Heyloyalty-konto

Så skal du klikke på 'Create my Heyloyalty account'. Herefter bliver du mødt af en modal, hvor du skal udfylde en række informationer.

  • Firmanavn
  • Fornavn
  • Efternavn
  • E-mail
  • Telefonnummer
  • CVR-nummer

Når du har udfyldt disse, skal du klikke på 'Create account'.

Du modtager nu en mail fra os, hvor du skal vælge kodeord til din dugfriske Heyloyalty-konto. Husk at tjekke kassen med spam. 

NY_HL-konto.gif

Har du allerede en Heyloyalty-konto?

Skal du klikke på den grå kasse, hvor du kan opdatere din information. Klik på 'Click here to setup". Herefter skal du udfylde nogle informationer i den modal, der kommer frem.

  • Listens land (default er Danmark)
  • API key
  • API Secret

Se her, hvor du finder dine API-oplysninger.

EksisterendeHL-konto.gif

Step 2: Aktivér webhooks

Vores integration til Shopify er en 2-vejs-integration. Det kræver, at du aktivere nogle webhooks. Derfor skal du klikke på 'Activate webhooks'.

Aktiver_webhooks.gif

Step 3: Importér gammel data fra Shopify til Heyloyalty

Hvis du vil have størst værdi med integrationen, skal du importere den historiske købsdata på dine modtagere. Det gør du ved at klikke på 'Import all data'.

Du skal kun gøre dette én gang. Fremadrettet kører synkroniseringen automatisk. 

Vær opmærksom på, at importen kommer i kø, når du klikker på knappen.

Import_gammel_data.gif

Step 4: Implementer Heycommerce Light-trackingscript

Når du integrerer din Shopify-shop med Heyloyalty, får du automatisk adgang til vores Heycommerce Light-løsning. Det vil sige, du kan sende tabt kurv og winback-automations - uden ekstra beregning.

Normalvis er disse kun inkluderet i vores Heycommerce- og Advanced-løsninger. Men det er gratis for dig, der integrerer din Shopify-webshop med Heyloyalty.

 

OBS! Vi har lavet et specifik trackingscript til dig, der bruger disse gratis Shopify-themes: 

Simple
Boundless
Venture
Debut
Supply
Narrative
Brooklyn
Minimal

Disse er per. 12-10-2019 dækket af nedenstående tracking-script, hvis du bruger dem uden ændringer. 

Bruger du et andet theme eller har lavet ændringer til Shopifys standard-templates, kan du implementere vores Heycommerce-script og benytte det sammen med din Shopify webshop. 

Læs her, hvordan du implementerer vores Heycommerce tracking-script - se guiden.

Eller fortsæt med resten af guiden.


Det kræver, at du implementerer tre stykker script på din webshop.

  • Ét dynamisk script - der skal placeres to steder
  • Ét stort statisk script - der skal placeret ét sted
  • Ét lille statisk script - der skal placeres ét sted

Start med at klikke på 'Get tracking script'.

Indsæt sessionstiden* på dit script under 'Insert minutes'. Vi anbefaler, at din sessionstid er mellem 45 og 180 minutter.

*sessionstid er den tid, der går fra en kundes sidste interaktion med produkterne i deres kurv, til der sendes besked til Heyloyalty om, at der er en tabt kurv.

Du kan også indsætte dit integrationsid, det er dog kun nødvendigt ved brug af Shopify multisites.

Når du har skrevet de nødvendige informationer, klikker du på 'Get tracking script'. Herefter er dit dynamiske scripts kopieret til din udklipsholder.

Get_tracking_script.gif

Placer det dynamiske script

Det dynamiske script skal placeres to steder på din webshop. 

  1. I bunden af footer.liquid i din webshops tema

Dynamisk_script_i_themes.gif

  • Klik på 'Online store'
  • Klik på 'Themes'
  • Klik på 'Action' - herefter på 'Edit code'
  • Søg efter 'footer.liquid' - klik på 'footer.liquid'
  • Indsæt det dynamiske script i bunden af koden
  • Klik på 'Save' i toppen

Nu skal du indsætte samme script i: Additional scripts under Checkout

Dynamisk_script_i_checkout.gif

  • Klik på 'Settings'
  • Klik på 'Checkout'
  • Find 'Additional scripts' under 'Order processing'
  • Indsæt det dynamiske script
  • Klik på 'Save' i bunden

Placer det store statiske script

Dette er et statisk script, som du ikke skal tilpasse. Marker og kopier scriptet nedenfor. 

OBS! Selvom du måske ikke kan se hele scriptet, så får du det hele med, når du kopierer det.

<script>
	var HlObject = window.HlObject = {
		getProductId: function() {
			var productId = '{{ product.selected_variant.id }}';
			if (productId == '') {
				{% for variant in product.variants %}
					{% if forloop.first %}
						var productId = '{{ variant.id }}';
					{% endif %}
				{% endfor %}
			}
			return productId;
		},
		getCategoryId: function() {
			{% assign categoryId = product.tags | join: ', ' %}
			return '{{ categoryId }}';
		},
		getProductsInBasket: function() {
			var productsArray = [];
			{% for product in cart.items %}
				productsArray.push('{{ product.variant_id }}');
			{% endfor %}
			return productsArray;
		},
		addEventToAddToCart: function() {
			var elements = document.getElementsByName('add');
			for (var i = 0; i < elements.length; i++) {
				elements[i].addEventListener('click', HlObject.handleAddToBasket, false);
			}
		},
		handleAddToBasket: function(e) {
			var form = e.target.closest('form'),
				productId = form.elements.namedItem('id').value,
				amount = (form.elements.namedItem('quantity') != null) ? form.elements.namedItem('quantity').value : 1,
				basketId = undefined;
			{% if product %}
				var categoryId = HlObject.getCategoryId(),
					categoryName = ('{{ product.type}}' != '') ? '{{ product.type }}' : undefined;
			{% else %}
				var categoryId = '',
					categoryName = undefined;
			{% endif %}
			hlt.addToBasket(productId, amount, categoryId, basketId, categoryName);
		},
		addEventToRemoveFromCart: function() {
			var elements = document.querySelectorAll('a[href^="/cart/change"]');
			for (var i = 0; i < elements.length; i++) {
				elements[i].addEventListener('click', HlObject.handleRemoveFromBasket, false);
			}
		},
		handleRemoveFromBasket: function(e) {
			var clickTarget = e.target,
				elements = document.querySelectorAll('a[href^="/cart/change"]'),
				linkTarget;
			for (var i = 0; i < elements.length; i++) {
				if (elements[i].contains(clickTarget) || elements[i] == clickTarget) {
					linkTarget = elements[i];
				}
			}
			if (linkTarget == undefined) {
				return;
			}
			var str = linkTarget.getAttribute('href').match(/line=./)[0],
				lineNo = str.split('=')[1] - 1,
				products = HlObject.getProductsInBasket();
			hlt.removeFromBasket(products[lineNo]);
		},
		addEventToUpdateCart: function() {
			var elements = document.getElementsByName('update');
			for (var i = 0; i < elements.length; i++) {
				if (elements[i].tagName != 'A') {
					elements[i].addEventListener('click', HlObject.handleUpdateBasket, false);	
				}
			}
		},
		handleUpdateBasket: function(e) {
			var products = HlObject.getProductsInBasket(),
				quantatieInputs = document.getElementsByName('updates[]'),
				data = [];
			for (var i = 0; i < products.length; i++) {
				data.push({
					productId : products[i],
					amount : quantatieInputs[i].value
				});
			}
			hlt.updateBasket(data);
		}
	};
	(function (d, t) {
		var g = d.createElement(t),
			s = d.getElementsByTagName(t)[0];
			h = "https:" == document.location.protocol ? "https://" : "http://";
		g.src = h + 'tracking.heycommerce.dk/hlbi.js';
		s.parentNode.insertBefore(g, s);
	} (document, 'script'));
	window.addEventListener('load', function() {
		{% if product %}
			var productId = HlObject.getProductId(),
				categoryId = HlObject.getCategoryId(),
				categoryName = ('{{ product.type}}' != '') ? '{{ product.type }}' : undefined;
			hlt.visit(productId, categoryId, categoryName);
		{% else %}
			hlt.heartbeat();
		{% endif %}
		HlObject.addEventToAddToCart();
		if (window.location.href.indexOf('/cart') != -1) {
			HlObject.addEventToRemoveFromCart();
			HlObject.addEventToUpdateCart();
		}
	});
	document.onsubmit = function(e) {
		if (e.target.id == 'contact_form') {
			// for newsletter signup section
			var form = document.getElementById('contact_form'),
				permission = document.getElementsByName('contact[tags]‌‌‌‌')[0];
			if (form.contains(permission) && permission.value == 'newsletter') {
				var email = document.getElementById('Email').value;
				if (email != '') {
					hlt.pairEmail(email);
				}
			}
		}
	}
</script>

Når du har kopieret scriptet, skal du indsætte det under det dynamiske script under 'footer.liquid' i Themes.

  • Klik på 'Online store'
  • Klik på 'Themes'
  • Klik på 'Action' - herefter på 'Edit code'
  • Søg efter 'footer.liquid' - klik på 'footer.liquid'
  • Indsæt det statiske script i bunden af koden - under det dynamiske script
  • Klik på 'Save' i toppen

Placer det lille statiske script

Dette er et statisk script (ligesom scriptet ovenfor), som du ikke skal tilpasse. Marker og kopier scriptet nedenfor. 

<script>
    (function (d, t) {
        var g = d.createElement(t),
            s = d.getElementsByTagName(t)[0];
            h = 'https:' == document.location.protocol ? 'https://' : 'http://';
              g.src = h + 'tracking.heycommerce.dk/hlbi.js';
        s.parentNode.insertBefore(g, s);
    } (document, 'script'));
        window.addEventListener('load', function() {
	hlt.purchasedBasket();
	{% if checkout.buyer_accepts_marketing %}
		hlt.pairEmail('{{checkout.email}}');
	{% endif %}
    });
</script>

Når du har kopieret scriptet, skal du sætte det ind under det dynamiske script under 'Checkout'.

  • Klik på 'Settings'
  • Klik på 'Checkout'
  • Find 'Additional scripts' under 'Order processing'
  • Indsæt det statiske script under det dynamiske script
  • Klik på 'Save' i bunden

Færdig med integrationen

Hvis du har fulgt alle punkter ovenfor, har du nu integreret din Shopify-webshop med din Heyloyalty-konto. 

Velkommen til Heyloyalty - og go' fornøjelse.

 

Was this article helpful?
1 out of 1 found this helpful
Have more questions? Submit a request

Comments

Powered by Zendesk