Einblendung abhängig von sPartnerId: Wann wird Cookie gesetzt? & Cache deaktivieren

Hallo,

ich möchte gerne für bestimmte Affiliatepartner eine Art „Powered by“ Banner einblenden.

Das ist mir auch gelungen, in dem ich die index.tpl um folgendes ergänzt habe:

{* Include affiliate partner banner (if applicable) *}
    {block name='frontend_custom_affiliate_show_partnerbanner'}
        {include file="frontend/custom/affiliate-show-partnerbanner.tpl"}
    {/block}

Diese custom .tpl beinhaltet:

    {if $smarty.cookies.partner == 'XXXXX'}
    *******HTML to display*******
    {/if}

 

Soweit so gut - das funktioniert auch - bis auf folgende Herausforderungen:

 

1. Caching

Leider macht mir das Caching einen Strich durch die Rechnung, da die Anzeige dann „willkürlich“ erfolgt. (mal wird es angezeigt, mal nicht)

Wie kann ich das Caching für diesen Teil (die custom .tpl) deaktivieren?
Ich hab jetzt erstmal HTTP Caching komplett deaktiviert - da funktioniert es (fast) einwandfrei, denn …

2. Wann wird das sPartner-Cookie gesetzt?

Beim ersten Aufruf des Shops über den Partnerlink erfolgt die Einblendung noch nicht. Erst beim Refresh bzw. wenn eine weitere Seite aufgerufen wird.

Das legt den Schluss Nahe, dass das sPartner-Cookie erst nach dem ersten Seitenaufbau gesetzt wird.

Kann mir hier jemand Auskunft geben bzw. helfen eine Lösung zu finden.

 

Ich habe jetzt schon eine Weile gegooglet, aber noch nichts passendes oder (für mich) verständliches gefunden … :slight_smile:

Danke für jegliche Hilfe!

 

Hi,

gerade wegen des Cachings wird das Partner-System nicht über den Hauptrequest geführt, sondern über die Shopware-Statistiken. Für diese wird ja ein eigener Ajax-Request abgesetzt, der am Cache vorbei geht (refreshStatistics). Das ist auch der Grund, warum das bei dir erst beim „zweiten“ Seitenaufruf greift.

Der beste Weg wäre also vermutlich, sich auf den „refreshStatistcs“-Call zu hängen und mit Javascript die „poweredBy“-Information in das Template zu setzen. 

Besten Gruß,

Daniel

 

 

1 „Gefällt mir“

Hi Daniel,

danke für deine Antwort - ich würde gerne nochmal auf deine Antwort zurückkommen, da ich nicht wirklich weiß wie ich das anzugehen habe. :slight_smile:

Sofern es nicht den Rahmen sprengt:
Wo finde ich refreshStatistics? Und wie kann ich mich an den Call hängen?

Danke!