Shopware Newsletter versenden | Cronjob

Hier eine kurze Anleitung für den Newsletterversand bei Shopware.

Wenn der Newsletter angelegt ist und der Versand auf Sofort steht, muss nur eine entsprechende Url im Browser aufgerufen werden.

URL zum ausführen

In der Shopware-Doku findet man aktuell einen Button zum versenden (der in unserem Shop nicht angezeigt wird) und diese URL:

http://www.meinshop.de/backend/Newsletter/cron

Sicherheit

Sollte euch der Aufruf über die Standard URL nicht sicher genug sein oder diese URL nicht funktionieren (Fehler forbidden), kann man einen Key für Cronjobs anlegen oder die Ausführung auf bestimmte Ip Adressen beschränken.

Diese Einstellung findet man unter Grundeinstellungen > Cron-Sicherheit > Gültiger Schlüssel.

Die korrekte URL muss dann wie folgt aufgebaut sein:

http://www.meinshop.de/backend/Newsletter/cron?key=HIERkeyEINTRAGEN

Cronjob

Wer möchte dass seine Versandbereiten Newsletter immer zur selben Zeit versendet werden, kann noch einen Cronjob zum aufrufen der URL einrichten (in diesem Beispiel Jeden Montag um 19:00 Uhr).

00   19   * * 1 wget -q http://www.meinshop.de/backend/Newsletter/cron key=HIERkeyEINTRAGEN

[Eine Anleitung zum einrichten eines Cronjobs findet ihr hier.] (https://www.we-lounge.de/index.php/2016/10/11/einen-befehl-oder-skript-zu-einer-bestimmten-zeit-automatisch-ausfuehren-cronjob/)

HTML Anker | höhe anpassen und oder scrollen (parallax effekt)

HTML Anker haben für mich meistens das Problem, dass eine Stelle über dem Anker angesteuert werden soll (wo man ihn aber nicht immer setzen kann). Um das zu umgehen kann das Anker-Element via CSS verschoben werden.

1. Anker ID und Klasse (zum verschieben des Elements)

<a class="anchorPos" id="anker1"></a>

1.1 Zugehöriger CSS Code

a.anchorPos {
    display: block;
    position: relative;
    top: -250px;  //Die Verschiebung in Pixel
    visibility: hidden;
}

2. jQuery um einen Scrolleffekt (Parallax) zu bekommen. Den Code von Punkt 1 und 1.1 benötigt man nur wenn die Ankerlinks auf andere Seite als die mit dem Ankerlink verweisen sollen. Wenn man den Code von Punkt 1 nutzt, kann man target.offset auch auf 0 setzen.

(für joomla).

Für andere Systeme kann jQuery auch mit $ ersetzt werden.

//parallax effekt, anker scrolling
/*
              jQuery(function() {
                jQuery('a[href*="#"]:not([href="#"])').click(function() {
                  if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
                    var target = jQuery(this.hash);
                    target = target.length ? target : jQuery('[name=' + this.hash.slice(1) +']');
                    if (target.length) {
                      jQuery('html, body').animate({
                        scrollTop: target.offset().top -170 //pixel to scroll above the anchor
                      }, 1100); //scrolling speed
                      return false;
                    }
                  }
                });
              });

Quellen:

https://stackoverflow.com/questions/10732690/offsetting-an-html-anchor-to-adjust-for-fixed-header