Jump to content

Externes Newslettersystem einbinden


Recommended Posts

Hallo,

Ich benutze ein externes Newsletter-Programm und wollte, dass wenn sich Kunden für das Newsletter registrieren, direkt in dieses System aufgenommen werden. Ich dachte mir nun, dass ich entweder das externe Newsletter-Anmeldeformular in den Kunden-Registrierungsprozess mit integriere (sodass der vorgefertigte Text "Fürs  Newsletter anmelden" inklusive dem ankreuzbaren Kästchen entferne), oder aber ich lasse das vorgefertigte "Zum Newsletter anmelden" mit Kästchen, dann sollten Sie aber automatisch die Bestätigungs- und Willkommensmail über das externe System zugesendet bekommen.

Nur weiß ich nicht in welche Datei ich muss, um dies umzusetzen? Das externe Newsletter-Programm spuckt mir zur Integration ein Java-Script aus.
Ich verwende Prestashop Version 1.6.1.16

LG, MicaKenai

Link to comment
Share on other sites

Die meisten Module sind gratis zum Download, die allerdings einen Key oder API benötigen, den ich dann gegen ein kostenpflichtiges Abo bekomme. SendInBlue wäre eine gute Alternative und ist tatsächlich komplett kostenlos, allerdings kann man mit diesem Modul keine Anmeldeformulare erstellen. Diese benötige ich aber, damit ich ein Opt-In verfahren habe. Für mich war das externe Programm daher die beste Alternative. Eventuell hab ich natürlich was übersehen, dann lass ich mich gerne eines besseren belehren.

Edited by MicaKenai (see edit history)
Link to comment
Share on other sites

Also ich habe von 1.6 keine Ahnung aber ich denke ich würde versuchen das externe Anmeldeformular in den Shop ein zu bauen. Dann hat der Shop da gar nichts mehr mit zu tun. Denn je mehr Zwischenschritte, desto mehr Fehler.

Es gib sogenannte Contentboxen mit denen du eigenen Code in den Shop einfügen und diesen dann per Hooks an die richtige Stelle bringen kannst. Ob ein Hook für die Anmeldeseite existiert, müsstest halt mal ausprobieren. Sollte das ganze laufen würde ich mich darum kümmern per CSS den Presta Newsletter aus zu blenden. (so kannst du den eines Tages wieder einblenden wenn du das Newsletter System wechselst)

Sollte es garnicht klappen würde ICH den Newsletter aus dem Anmeldformular raus lassen und ihn auffällig genug auf der startseite positionieren.

Hier noch die Contentbox: https://contentbox.org/

Link to comment
Share on other sites

  • 2 weeks later...

@shad: das ist ein guter Tipp, danke! Leider weiß ich aber nicht wie ich den Code bei der Kundenanmeldung einbinden kann? Wenn ich im Modul bin, ist da nur eine Box in die ich den Quellcode eingeben kann, der erscheint dann aber einfach unterhalb des Footers.

Außerdem ist bei der Kundenanmeldung immernoch die Auswahlmöglichkeit "Abonniere unseren Newsletter" mit dazugehörigem Kästchen aktiv, obwohl ich diese Funktion unter Voreinstellungen -> Kunden -> Newsletter aktiv -> Nein gestellt habe? Wenn ich das Anmeldeformular des externen Programms in den Kundenprozess einbinde, dann sollte das natürlich verschwinden.

Link to comment
Share on other sites

Hallo MicaKenai,

schau dir die Datei

/themes/deintheme/authentication.tpl

an. dort kannst du sowohl die Newsletteranmeldung herausnehmen (ca Zeile 175 ff) als auch dein JavaScript einbinden.

Javascripts müssen immer in geschweiften Klammern mit literal eingebunden werden, also z.B. so:

<script language="JavaScript" type="text/javascript">
{literal}
......
hier Inhalt des Scripts
.......
}
{/literal}
</script>
.... hier ja nach gewünschter Funtion noch html ....
   

Grüsse und gutes Gelingen
Whiley

Link to comment
Share on other sites

vor 20 Stunden schrieb MicaKenai:

Leider weiß ich aber nicht wie ich den Code bei der Kundenanmeldung einbinden kann? Wenn ich im Modul bin, ist da nur eine Box in die ich den Quellcode eingeben kann, der erscheint dann aber einfach unterhalb des Footers.

Du musst das Modul dann noch in den passenden Hook anhaken. Wenn der Inhalt schonmal angezeigt wird ist das die halbe Miete. Dann gehst du unter Design / Positionen im Backend und fügst oben rechts ein Modul hinzu. Da musst du dann nur gucken welche Hook mit display... für dich in Frage kommt damit du es schonmal grob da positioniert bekommst wo du es hakben willst. Die Feinheiten mustt du dann mit CSS machen. Achso und dein Modul dan nauch aus dem Hook "displayfooter" entfernen damit es nichtmehr unten zu sehen ist wenn es das nicht soll.

 

vor 20 Stunden schrieb MicaKenai:

obwohl ich diese Funktion unter Voreinstellungen -> Kunden -> Newsletter aktiv -> Nein gestellt habe?

Das ist nur die Einstellung ob von Grund auf der Newsletter aktiviert oder deaktiviert sein soll. Im Notfall kannst du einen Rechtsklick auf den Satz machen und je nach Browser müsste da was von "Element untersuchen" stehen. In dem Bereich der dann auf geht zeigt er dir sämtliche CSS Befehle die auf dieses Element zugreifen. Dort kannst du ausprobieren ob du den Satz mit einem display:none; weg bekommst. Aber das ist nur eine Voransicht. Wenn du es so hast das es klappt, musst du noch die Datei runterladen die er dir anzeigt und in der angegebenen Zeile deinen Code ergänzen. Sonst ist alles wieder wegg wenn du die Seite aktualisiert.

Link to comment
Share on other sites

vor 6 Stunden schrieb MicaKenai:

@Whiley: Vielen Dank! Leider ändert sich da rein gar nichts - ich kriege auch nicht den Zusatz "Abonniere unseren Newsletter" weg.

Cache geleert?

/cache/class_index.php gelöscht?

Smarty Kompilierung auf erzwingen gestellt?

Geprüft ob du die richtige authentication.tpl erwischt hast? (Einfach umbenennen und prüfen ob ein Fehler auftritt bei der Neukundenanmeldung)

Ansonsten mal den geänderten Teil der authentication.tpl hier posten

Grüsse
Whiley

 

Link to comment
Share on other sites

Ich hab das jetzt alles so gemacht - wenn ich etwas an Zeile 175ff änderekommt gar keine Authentifizierungsseite mehr, bzw. die Seite bleibt weiß.

Mein Code den ich eingegeben habe lautet von Zeile 162-200 wie folgt:

 

{/foreach}
								</select>
							</div>
							<div class="col-xs-4">
								<select id="years" name="years" class="form-control">
									<option value="">-</option>
									{foreach from=$years item=year}
										<option value="{$year}" {if ($sl_year == $year)} selected="selected"{/if}>{$year}&nbsp;&nbsp;</option>
									{/foreach}
								</select>
							</div>
						</div>
					</div>
					<script language="JavaScript" type="text/javascript">
{literal}{if isset($newsletter) && $newsletter}
					<script id="n2g_script">
!function(e,t,n,c,r,a,i){e.Newsletter2GoTrackingObject=r,e[r]=e[r]||function(){(e[r].q=e[r].q||[]).push(arguments)},e[r].l=1*new Date,a=t.createElement(n),i=t.getElementsByTagName(n)[0],a.async=1,a.src=c,i.parentNode.insertBefore(a,i)}(window,document,"script","https://static.newsletter2go.com/utils.js","n2g");
n2g('create', '3sae001z-7ajs5e2b-193c');
n2g('subscribe:createForm');
{/literal}
</script>
						<div class="checkbox">
							<label for="newsletter">
							<input type="checkbox" name="newsletter" id="newsletter" value="1" {if isset($smarty.post.newsletter) && $smarty.post.newsletter == '1'}checked="checked"{/if} />
							{l s='Sign up for our newsletter!'}</label>
						</div>
					{/if}
					{if isset($optin) && $optin}
						<div class="checkbox">
							<label for="optin">
							<input type="checkbox" name="optin" id="optin" value="1" {if isset($smarty.post.optin) && $smarty.post.optin == '1'}checked="checked"{/if} />
							{l s='Receive special offers from our partners!'}</label>
						</div>
					{/if}
					<h3 class="page-heading bottom-indent top-indent">{l s='Delivery address'}</h3>
					{foreach from=$dlv_all_fields item=field_name}
						{if $field_name eq "company"}
							<div class="form-group">
								<label for="company">{l s='Company'}{if in_array($field_name, $required_fields)} <sup>*</sup>{/if}</label>

 

Link to comment
Share on other sites

Hmm,

ich kenne jetzt dein Modul nicht so ganz genau ....  aber werden  bei der Installation des Moduls nicht die notwendigen Änderungen über hooks automatisch durchgeführt?

https://www.newsletter2go.com/help/integration-api/set-up-prestashop-connection/

Anyway

Betrachten wir mal zunächst das Entfernen der Newslettercheckboxen direkt im Code.

Da gibt es in der Tat 2 gleichlautende Stellen (je nach eingestelltem Anmeldungsmodus)  in der authentication.tpl die beide entfernt oder auskommentiert werden müssen, einmal im Bereich ca 175ff und ca 506ff

			{if isset($newsletter) && $newsletter}
				<div class="checkbox">
					<input type="checkbox" name="newsletter" id="newsletter" value="1" {if isset($smarty.post.newsletter) AND $smarty.post.newsletter == 1} checked="checked"{/if} />
					<label for="newsletter">{l s='Sign up for our newsletter!'}</label>
					{if array_key_exists('newsletter', $field_required)}
						<sup> *</sup>
					{/if}
				</div>
			{/if}
			{if isset($optin) && $optin}
				<div class="checkbox">
					<input type="checkbox" name="optin" id="optin" value="1" {if isset($smarty.post.optin) AND $smarty.post.optin == 1} checked="checked"{/if} />
					<label for="optin">{l s='Receive special offers from our partners!'}</label>
					{if array_key_exists('optin', $field_required)}
						<sup> *</sup>
					{/if}
				</div>
			{/if}

Dieser Code muß an beiden Stellen entfernt werden.

Speichern, Cache löschen, Smarty auf kompilieren stellen ... dann müßte die Newslettercheckbox entfernt sein!

Um die neuen Funktionen einbauen zu können müßte man die genaue Anleitung kennen, aber soweit ich die Installation über Module verstehe (s.o.) sind Manipulationen am Code garnicht erforderlich, ich vermute, das Modul verwendet overrides.

Grüsse
Whiley

 

 

Link to comment
Share on other sites

On 18.12.2017 at 11:00 AM, MicaKenai said:

Ich benutze ein externes Newsletter-Programm

Ich komme jetzt nicht mit, du schreibst einerseits, du nutzest ein (offenbar geheimes) "externes Newsletter-Programm" (was ist da so geheim, daß man nicht verraten kann welches?!), jetzt hast du einen Code gepostet, in dem "newsletter2go" vorkommt. Zu Newsletter2go gibt es aber eine Anbindung an Prestashop per Modul ...

Davon abgesehen ist die manuelle Einbindung an ein Fremdsystem schon eine komplexere Aufgabe, während ich den Eindruck habe, daß du schon mit sehr einfachen Änderungen an Prestashop (was halt über die normalen Einstellmöglichkeiten hinausgeht) überfordert bist.

Link to comment
Share on other sites

vor 21 Stunden schrieb Whiley:

Da gibt es in der Tat 2 gleichlautende Stellen (je nach eingestelltem Anmeldungsmodus)  in der authentication.tpl die beide entfernt oder auskommentiert werden müssen, einmal im Bereich ca 175ff und ca 506ff

 

Ok, die Box rauszunehmen hat nun geklappt! Danke dir! :)

vor 21 Stunden schrieb Whiley:

Um die neuen Funktionen einbauen zu können müßte man die genaue Anleitung kennen, aber soweit ich die Installation über Module verstehe (s.o.) sind Manipulationen am Code garnicht erforderlich, ich vermute, das Modul verwendet overrides

 

Das Modul ist in der Tat mit Prestashop verknüpft - allerdings bekommen meine Kunden bei Anmeldung zum Newsletter (via Newsletter2Go)  eine automatisierte Willkommensemail. Wenn die Kunden sich über die Newsletterbox anmelden bekommen sie diese Willkommensmail aber nicht. Das Modul dient nur dazu, die Kontakte im Adressbuch von Prestashop zu Newsletter2Go zu transportieren (Und selbst das muss ich immer manuell synchronisieren.)

Dementsprechend wollte ich das Anmeldeformular in den Anmeldeprozess mit einbinden, dass sie die Willkommenmail gleich direkt bekommen und auch gleich direkt im Adressbuch bei Newsletter2Go sind. Die Anleitung zur Einbindung des Newsletters in den Shop fällt eher ernüchternd aus. Nachdem ich das Anmeldeformular erstellt habe kommt folgendes Bild (Siehe Screenshot im Anhang). Bisher hat es allerdingsn och nicht geklappt diesen Code ins Anmeldeformular einzubinden.

screen1.png

Edited by MicaKenai (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...