Piwik Plugin: Warenkorb wird nicht beim Produkt einlegen getrackt

Tach Zusammen,

ich habe eben aus github das Piwik Plugin installiert: GitHub - shopwareLabs/SwagPiwik

Läuft soweit ganz gut, nur der Warenkorb wird nicht ganz korrekt getrackt:

  • Wenn ich von der Produktdetailseite über den „in den Warenkorb“ Button aus ein Produkt in den Warenkorb lege, wird bei piwik nichts getracked.

  • Erst wenn man den Warenkorb explizit aufruft, wird der Warenkorb bei piwik erfasst

Hier ist der entsprechende Smarty code in dem Plugin:

{* ----- TRACKING CART AND ADDING ARTICLES TO CART ----- *}
{if $Controller == "checkout" && !$sOrderNumber}
{foreach from=$sBasket.content item=sBasketItem}{if !$sBasketItem.modus}
piwikTracker.addEcommerceItem(
	"{$sBasketItem.ordernumber}", "{$sBasketItem.articlename|escape:'javascript'}", "-", {$sBasketItem.priceNumeric|round:2}, {$sBasketItem.quantity}
	);	
{/if}{/foreach}
piwikTracker.trackEcommerceCartUpdate({$sAmount});
{/if}

 Es wird also explizit nur auf der Warenkorbseite ein Produkt übernommen. Normalerweise ruft der Kunde beim Shopstöbern den Warenkorb explizit höchstens kurz vorm Checkout auf.
Also sieht man viele Warenkörbe mit diesem Code nicht. 

Wie bekomme ich das Warenkorbtracking in den Warenkorb der von rechts direkt nach dem „in den Warenkorb“ Button erscheint?

Danke und viele Grüsse,

Jens

P.S.: Ich weiss: ein sehr spezielles Thema

 

Hi,

nach viel Herumgefrickel habe ich es geschafft. Das aktuelle piwik Plugin in github ignoriert den Ajax Cart, der von rechts
hereinfliegt.

Um den Ajax Cart mit zu berücksichtigen,muss man folgenden Code an das Ende dieser Datei anhängen:
Plugins\Local\Frontend\SwagPiwik\Views\frontend\plugins\swag_piwik\index.tpl

{* --------------- AJAX CART -------------- *}
{block name='frontend_checkout_ajax_cart_item_container' append}

            {literal}
                
            {/literal}

        {foreach from=$sBasket.content item=sBasketItem}{if !$sBasketItem.modus}

            {literal}
            piwikTracker.addEcommerceItem(
            "{/literal}{$sBasketItem.ordernumber}{literal}", "{/literal}{$sBasketItem.articlename|escape:'javascript'}{literal}", "-", {/literal}{$sBasketItem.priceNumeric|round:2}, {$sBasketItem.quantity}{literal}
            );
            {/literal}
        {/if}{/foreach}

       {literal}
        piwikTracker.trackEcommerceCartUpdate({/literal}{$sAmount}{literal});
       {/literal}
       

{/block}

Bei mir funktioniert es. 

An die Shopware Jungs: Soll ich den Code in github einchecken?

Viel Spass und viele Grüsse,

Jens

1 „Gefällt mir“

Hi Jens,

ja, gerne. Wir pflegen es nur, weil es auch OpenSource ist. Und wenn du es nicht machst, macht es es wahrscheinlich keiner. :wink:

Gruß Heiner

Warum kann ich jetzt hier im Thread im Editor nichts eingeben?(ausser direkt als Quellcode)
Gibt es eine Anleitung oder so wie das bei Git geht? Würde evtl. wenn mir was auffällt auch etwas eintragen.

Wie kann ich denn meine Datei hochladen? Gibt es eine Anleitung?

 

Danke,

 

Jens

@frimipiso schrieb:

Hi,

nach viel Herumgefrickel habe ich es geschafft. Das aktuelle piwik Plugin in github ignoriert den Ajax Cart, der von rechts
hereinfliegt.

Um den Ajax Cart mit zu berücksichtigen,muss man folgenden Code an das Ende dieser Datei anhängen:
Plugins\Local\Frontend\SwagPiwik\Views\frontend\plugins\swag_piwik\index.tpl

{* --------------- AJAX CART -------------- *}
{block name=‚frontend_checkout_ajax_cart_item_container‘ append}

{literal}

{/literal}

{foreach from=$sBasket.content item=sBasketItem}{if !$sBasketItem.modus}

{literal}
piwikTracker.addEcommerceItem(
„{/literal}{$sBasketItem.ordernumber}{literal}“, „{/literal}{$sBasketItem.articlename|escape:‚javascript‘}{literal}“, „-“, {/literal}{$sBasketItem.priceNumeric|round:2}, {$sBasketItem.quantity}{literal}
);
{/literal}
{/if}{/foreach}

{literal}
piwikTracker.trackEcommerceCartUpdate({/literal}{$sAmount}{literal});
{/literal}

{/block}

Bei mir funktioniert es. 

An die Shopware Jungs: Soll ich den Code in github einchecken?

Viel Spass und viele Grüsse,

Jens

Hallo Jens,

danke für den Code das war mir noch garnicht aufgefallen. 

Warum sind da so viele  {literal} und {/literal} in deinem Code, ist das ein Fehler der bei einfügen als Code hier im Forum erzeugt wird?

So habe ich jetzt den Code von dir drin:

{* --------------- AJAX CART -------------- *}
{block name='frontend_checkout_ajax_cart_item_container' append}


{foreach from=$sBasket.content item=sBasketItem}{if !$sBasketItem.modus}
piwikTracker.addEcommerceItem(
	"{$sBasketItem.ordernumber}", "{$sBasketItem.articlename|escape:'javascript'}", "-", {$sBasketItem.priceNumeric|round:2}, {$sBasketItem.quantity}
	);
{/if}{/foreach}
piwikTracker.trackEcommerceCartUpdate({$sAmount});


{/block}

Gruß Uwe

Ich möchte dazu auch noch kurz anmerken, das bei Verwendung der Funktion „Varianten laden per Ajax“ nicht die korrekten Bestellnummern zur jeweiligen Variante getrackt werden, sondern die des Hauptartikels, wodurch es zu verfälschten Statistiken kommt.

Ich hatte zu diesem Verhalten heute auch was in einem anderen Thread dazu geschrieben.

http://forum.shopware.com/discussion/35876/probleme-bei-varianten-laden-per-ajax

 

Gruß

@useg schrieb:

 

Warum sind da so viele  {literal} und {/literal} in deinem Code, ist das ein Fehler der bei einfügen als Code hier im Forum erzeugt wird?

Hi Uwe,

die {literals} gehören da rein. Sie leiten die javascript Elemente ein und umgehen das Smarty parsing:
Smarty Parsing umgehen | Smarty

Jedesmal wenn eine Smarty Variable im Javascript verwendet wird, wird das Parsing mit {/literal} wieder angeschaltet.
Das habe ich mir aus der alten index.tpl Datei abgeschaut. Vielleicht braucht man die Literal Elemente nicht jedes Mal, aber
sauberer ist es und man erhält später keine merkwürdigen Fehler, weil der Smarty Parsen Quatsch gemacht hat.

Aber wenn ich es mir recht überlege, müsste es auch so funktionieren, da das Javascript hier keine geschweiften Klammern verwendet.

Gruss,

Jens

 

Noch eine Anmerkung:

Wenn man im Ajax Warenkorb Produkte löscht, wird dies nicht getrackt. Nur wenn man später ein neues Produkt hinzufügt, stimmt der Warenkorb wieder.

Gruss,

Jens

@Creatixx schrieb:

Ich möchte dazu auch noch kurz anmerken, das bei Verwendung der Funktion „Varianten laden per Ajax“ nicht die korrekten Bestellnummern zur jeweiligen Variante getrackt werden, sondern die des Hauptartikels, wodurch es zu verfälschten Statistiken kommt.

Ich hatte zu diesem Verhalten heute auch was in einem anderen Thread dazu geschrieben.

http://forum.shopware.com/discussion/35876/probleme-bei-varianten-laden-per-ajax

 

Gruß

Hi Creatix,

unser Shop ist noch nicht produktiv, daher ist mir dies noch nicht aufgefallen. Aber ich glaube, dass dieser Fehler für uns nicht so „relefant“ ist.

Gruss,

Jens