Newsletter Empfänger erhalten?

Hallo zusammen,

Ich würde gerne ein Plugin programmieren, welches das Senden von Newslettern ermöglicht. In Shopware 6 gibts es zwar die Newsletterfunktion, aber irgendwie hat die ja keine Funktion? 
Oder liege ich da falsch, aber ich wüsste nicht was ich damit machen kann?

Dementsprechend würde ich gerne die An und Abmeldungen an MailGun “übergeben”, sodass ich über eine Mailing-Liste Newsletter versenden kann. Über die HTTP Api gibt es laut Dokumentation ja nur einen Endpoint, der dafür zuständig ist Empfänger hinzuzufügen oder zu bearbeiten, aber nicht alle Empfänger zu bekommen.

Gibt es eine Art Event, welches ich mit einem Shopware Plugin abgreifen kann, sobald sich jemand für den Newsletter registriert hat?

 

Vielen Dank schonmal für eure Antworten

Oder andere Frage, gibt es eine Möglichkeit über die SalesChannel-API alle Kunden zu bekommen? 

Also genau das gleiche Problem wie bei den Newslettern - ich kann nur einzelne Kunden ansehen oder bearbeiten und nicht alle Kunden irgendwie bekommen.

 

https://docs.shopware.com/en/shopware-platform-dev-en/sales-channel-api/sales-channel-customer-api?category=shopware-platform-dev-en/sales-channel-api

Heyo Felix,

könntest du diese Problematik lösen? Ich befinde mich genau an einer ähnliche Stelle momentan.

Bei meinem Fall muss ich ein Plugin entwickeln, indem bei dem event „newsletter.register“ die Daten der angemeldeten Kunden an Emarsys-Newsletter System durch API weiterleiten soll. Also ich muss beim Subscriber auf einige events hören und abrufen… leider bin ich clueless, da ich nicht so viel Erfahrung im Bereich habe.

Hast du irgendein Tip für mich? Vllt haste ja gute Info irgendwo online gefunden :slight_smile:

LG

Heyo,

falls jemand hier landet. Ich habe ein Plugin entwickelt, welche auf die Events „newsletter.confirm“ und „newsletter.unsubscribe“ hört.

public static function getSubscribedEvents(): array
    {
        // TODO: Implement getSubscribedEvents() method.
        return [
            NewsletterUnsubscribeEvent::class => 'onNewsletterUnsubrscribeEvent',
            NewsletterConfirmEvent::class => 'onNewsletterConfirmEvent',
        ];

    }

Das Event „newsletter.confirm“ wird getriggered,

  • wenn der Nutzer sich fürs Newsletter unter Konto Übersicht anmeldet (normales Opt-In)
  • oder durch das Layout „Standar Shopseiten-Layout mit Newsletterformular“ anmeldet (Double Opt-In).

Beim „newsletter.unsubscribe“ wird auch bei beiden Fallen getriggered.

Aufs Subscriber.php File, sende ich ein POST und PUT requests mithilfe von GuzzleHTTP - Dependency (composer.json) so:

$client = new Client();
$request = new Request($method, $baseUrl, $authHeader, $json_encoded_body);
$response = $client->send($request);

Shopware speichert die angemeldete Nutzerdaten unter „Marketing > Newsletter recipients“ auf die Admin Seite. Beim Double Opt-In, Shopware sendet die E-Mail zur Bestätigung der Anmeldung. Nach Bestätigung der E-Mail, werden die Daten mit dem Guzzle-Request extern geschickt.

Downside bei der Sache:
Falls ein Fehler durch Requests, Servers, Internet, etc. auftritt, habe leider keine Ahnung, wie man die Newsletter-Anmeldung komplett abbricht, damit die Daten nicht im Shopware gespeichert werden.

Ich hoffe es hilft jemand weiter mit der Thematik.