Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: Google Enhanced E-Commerce Analytics 1.2.0

  1. #1
    Padawan Stufe I Avatar von mh254
    Registriert seit
    09.06.2015
    Beiträge
    42
    Themen
    12
    DANKE
    17
    Erhaltene Danke: 3

    Standard Google Enhanced E-Commerce Analytics 1.2.0

    In der Zeile 32 in der Datei includes/classes/observers/class.ec_analytics.php ist am Ende ein Punkt. Müsste das nicht ein Komma sein?

    'NOTIFY_HEADER_START_LOGIN_TIMEOUT'.
    Mein Shop verwendet: --== Zencart 1.5.5 ==--

  2. #2
    Jedi-Ritter Avatar von webchills
    Registriert seit
    30.10.2004
    Ort
    Österreich
    Beiträge
    6.838
    Themen
    94
    DANKE
    3
    Erhaltene Danke: 1.186

    Standard

    Ja, ist ein Tippfehler, im aktuellen Download ab sofort behoben.
    !!! kostenloser Support ausschließlich im Forum - Nicht per Email, nicht per Telefon und nicht per PM !!!

  3. #3
    Padawan Stufe I Avatar von mh254
    Registriert seit
    09.06.2015
    Beiträge
    42
    Themen
    12
    DANKE
    17
    Erhaltene Danke: 3
    Erstellt von

    Standard



    Jetzt muss ich das nur noch zum Laufen bringen. Startseite und Kategorie funktioniert noch nach dem Installieren und seh auch den Kategorie-Zugriff im Analytics-Frontend. Login ins Kundenkonto geht auch, seh ich auch im Frontend. Aber sobald ich mir einen Artikel anzeigen lassen will, kommt ein 500'er Serverfehler :(

    Leider schreibt mein Webserver keine Logfiles mehr seit dem letzten Ubuntu-Upgrade auf die 16.04 LTS, daher weiß ich im Moment überhaupt nicht, wo ich suchen soll.
    Mein Shop verwendet: --== Zencart 1.5.5 ==--

  4. #4
    Padawan Stufe VI Avatar von bumerang24
    Registriert seit
    25.11.2011
    Ort
    München
    Beiträge
    716
    Themen
    105
    DANKE
    41
    Erhaltene Danke: 55

    Standard

    Hallo Zusammen,

    ich häng mich mal drann, ich dachte der Fehler sei evtl. durch das fehlende Komma.
    Ist leider nicht so.
    Mein Log Eintrag:

    Code:
    [15-Aug-2017 19:32:28 Europe/Berlin] PHP Fatal error:  Uncaught Error:  Call to undefined function split() in  /XXX/XXX/ZC_SHOP/includes/classes/observers/class.ec_analytics.php:62
    Stack trace:
    #0 /XXX/XXX/ZC_SHOP/includes/classes/observers/class.ec_analytics.php(112): ec_analytics->getCatString(146)
    #1 /XXX/XXX/ZC_SHOP/includes/classes/class.base.php(103):  ec_analytics->update(Object(notifier), 'NOTIFY_HEADER_S...', Array,  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
    #2 /XXX/XXX/ZC_SHOP/includes/modules/pages/product_info/header_php.php(13): base->notify('NOTIFY_HEADER_S...')
    #3 /XXX/XXX/ZC_SHOP/index.php(36): require('/home/www/ZC_SH...')
    #4 {main}
      thrown in /XXX/XXX/ZC_SHOP/includes/classes/observers/class.ec_analytics.php on line 62
    Ist ein ganz neuer ZC 155e Shop mit diversen Erweiterungen als Testshop
    Wenn ich das Tool im normalen upgedateten Shop instaliere kommt der gleiche Log übrigens.
    DB 5.7.16 und PHP 7.0.21

    Grüße

    Guido

  5. #5
    Padawan Stufe I Avatar von mh254
    Registriert seit
    09.06.2015
    Beiträge
    42
    Themen
    12
    DANKE
    17
    Erhaltene Danke: 3
    Erstellt von

    Standard

    Danke, das war der fehlende Hinweis, den ich dank fehlender Logs nicht bekommen habe

    Ersetz in der Zeile 62 von includes/classes/observers/class.ec_analytics.php das split durch preg_split, die Zeile sollte dann so aussehen:
    Code:
    $p = preg_split("_",$cPath) ;
    Damit funktioniert es bei mir. Die Funktion split wurde in PHP 7 entfernt.

    Allerdings habe ich beim checkout den nächsten Fehler, den ich dank fehlender Logs nicht beheben kann :(
    Mein Shop verwendet: --== Zencart 1.5.5 ==--

  6. Folgender User sagt Danke zu mh254 für den nützlichen Beitrag:

    bumerang24 (15.08.2017)

  7. #6
    Padawan Stufe I Avatar von mh254
    Registriert seit
    09.06.2015
    Beiträge
    42
    Themen
    12
    DANKE
    17
    Erhaltene Danke: 3
    Erstellt von

    Standard

    Insgesamt muss man in der Datei includes/classes/observers/class.ec_analytics.php vier mal split mit preg_split ersetzen, dann funktioniert es auch unter PHP 7
    Mein Shop verwendet: --== Zencart 1.5.5 ==--

  8. #7
    Jedi-Ritter Avatar von webchills
    Registriert seit
    30.10.2004
    Ort
    Österreich
    Beiträge
    6.838
    Themen
    94
    DANKE
    3
    Erhaltene Danke: 1.186

    Standard

    Statt mit preg_split würde es besser mit explode ersetzt
    !!! kostenloser Support ausschließlich im Forum - Nicht per Email, nicht per Telefon und nicht per PM !!!

  9. #8
    Padawan Stufe VI Avatar von bumerang24
    Registriert seit
    25.11.2011
    Ort
    München
    Beiträge
    716
    Themen
    105
    DANKE
    41
    Erhaltene Danke: 55

    Standard

    Und der Code für nichtprogramierer?
    Das Tool ist doch mit PHP 7.X getestet dachte ich.
    Ich kenne leider PHP nicht wirklich, und bin deshalb fragend unwissend.

  10. #9
    Jedi-Ritter Avatar von webchills
    Registriert seit
    30.10.2004
    Ort
    Österreich
    Beiträge
    6.838
    Themen
    94
    DANKE
    3
    Erhaltene Danke: 1.186

    Standard

    Es war nicht wirklich für PHP 7 geeignet, hier die korrekte includes/classes/observers/class.ec_analytics.php, mit der das auch unter PHP 7.0.x problemlos läuft (getestet mit PHP 7.0.20)
    Wird im Download noch ausgetauscht
    Code:
    <?php 
    /**
     * @package Google Enhanced E-Commerce Analytics
     * @copyright (c) 2015 RodG
     * @copyright Copyright 2003-2017 Zen Cart Development Team
     * @copyright Portions Copyright 2003 osCommerce
     * @license http://www.zen-cart-pro.at/license/2_0.txt GNU Public License V2.0
     * @version $Id: class.ec_analytics.php 2017-08-15 20:49:36Z webchills $
     */
    class ec_analytics extends base {
    
        function ec_analytics() {
            global $zco_notifier;
            $zco_notifier->attach($this, array('NOTIFY_HEADER_TIMEOUT'));
    
            $this->attach($this, array(
                // actionable events //
                'NOTIFY_HEADER_START_PRODUCT_INFO',
                'NOTIFIER_CART_ADD_CART_END', 
                'NOTIFIER_CART_REMOVE_END',
                'NOTIFY_HEADER_START_LOGIN',
                'NOTIFY_LOGIN_SUCCESS',
                'NOTIFY_LOGIN_SUCCESS_VIA_CREATE_ACCOUNT',
                'NOTIFY_LOGIN_SUCCESS_VIA_NO_ACCOUNT',
                'NOTIFY_CHECKOUT_PROCESS_BEGIN',
                'NOTIFY_HEADER_START_CHECKOUT_SHIPPING',
                'NOTIFY_HEADER_START_CHECKOUT_PAYMENT',
                'NOTIFY_HEADER_START_CHECKOUT_CONFIRMATION',
                'NOTIFY_HEADER_START_CHECKOUT_SUCCESS',
                //  Generic events // 
                'NOTIFY_LOGIN_FAILURE',  
                'NOTIFY_HEADER_START_LOGIN_TIMEOUT',     
                'NOTIFY_FAILURE_DURING_CREATE_ACCOUNT',
                'NOTIFY_FAILURE_DURING_NO_ACCOUNT',
                'NOTIFY_PAYMENT_PAYPAL_RETURN_TO_STORE',
                'NOTIFY_PAYMENT_PAYPAL_CANCELLED_DURING_CHECKOUT'
            ));
        }
    
        function getID() {
            $id = '';
            if (isset($_REQUEST['products_id'])) {
                if (is_array($_REQUEST['products_id'])) {  $id = explode(":", $_REQUEST['products_id'][0]);
                } else {  $id = explode(":", $_REQUEST['products_id']);  }
            } else {
                if (isset($_REQUEST['product_id'])) {
                    if (is_array($_REQUEST['product_id'])) { $id = explode(":", $_REQUEST['product_id'][0]);
                    } else {  $id = explode(":", $_REQUEST['product_id']);  }
                }
            }
            $id = intval($id[0]);
            if ($id == 0)  $id = "";
       return $id;
        }
    
        
     function getCatString($id) {
      global $db, $cPath ;
      $masterCat = zen_get_categories_name_from_product($id) ;
         $i = 0 ; $flag = 0 ;
            if(isset($cPath)) {
                $p = explode("_",$cPath) ; 
                while ($i < sizeof($p)) {
                    $the_categories_name= $db->Execute("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id= '" . $p[$i] . "' and language_id= '" . $_SESSION['languages_id'] . "'");
                    if ($masterCat ==  $the_categories_name->fields['categories_name'])  {$flag = 1 ;}
                         
                $i++ ;        
                } 
            $catTxt = substr($catTxt, 1);
            }     
      return ($flag != 1 ) ? $masterCat:$catTxt;      
    // return $catTxt ;    
     }   
        
     function addProductItemsStr() { 
        $itemsStr = "" ;  $i=0 ; 
           $products = $_SESSION['cart']->get_products(); 
             if(is_array($products)) { 
                       foreach ($products as $item) { 
                         if(is_array($item['attributes']))  $varTxt = zen_values_name($item['attributes'][1]);                     
                         if(!$varTxt) $varTxt = "n/a"; 
                         
                         $itemID = explode(":", $item['id'] ) ; 
    
                         $brand = zen_get_products_manufacturers_name($itemID[0]) ; 
                             $brandTxt = ($brand != "") ? $brand:"n/a";
                            $itemsStr .= "ga('ec:addProduct',"
                                                . " {'id': '{$itemID[0]}',"
                                                . " 'name': '".addslashes($item['name'])."',"
                                                . " 'brand': '{$brandTxt}',"
                                                . " 'category': '". zen_get_categories_name_from_product($itemID[0])."' ,"
                                                . " 'variant': '{$varTxt}',"
                                                .  " 'price': '".number_format((float)($item['price'] + ($item['price'] *  $item['tax_class_id'] / 100 )) ,2,'.','')."',"
                                                . " 'quantity': '{$item['quantity']}',"
                                                . " 'position': '{$i}' } );\n";
                    $i++ ;  
                  }
                }    
      return $itemsStr ;           
    }
      /////////////////////////////          
        function update(&$callingClass, $notifier, $paramsArray) {
          global $db, $analytics;
    
            switch ($notifier) {
                case 'NOTIFY_HEADER_START_PRODUCT_INFO' :
                    $id = $this->getID();
                    if ($id) {
                        $brand = zen_get_products_manufacturers_name($id) ;  
                         $brandTxt = ($brand != "") ? $brand:"n/a";
                        $res = $db->Execute("SELECT products_name FROM " . TABLE_PRODUCTS_DESCRIPTION . " WHERE products_id = $id");
                        $analytics['item'] = array('productID' => $id, 'productName' => addslashes($res->fields['products_name']), 'category' => $this->getCatString($id), 'brand' => $brandTxt);
                        $analytics['action'] = "View Product";
                    }
                    break;
    
                    
                case 'NOTIFIER_CART_ADD_CART_END' :
                case 'NOTIFIER_CART_REMOVE_END' :
                     $analytics['action'] = "Delete from Cart";
                     $varTxt = "n/a";  $qty = '';
                    if ($notifier == 'NOTIFIER_CART_ADD_CART_END') {
                        $analytics['action'] = "Add to Cart";
                        if (isset($_REQUEST['cart_quantity'])) $qty = intval($_REQUEST['cart_quantity']);
                             if (!$qty)  $qty = 1;                     
                            $products = $_SESSION['cart']->get_products(); 
                                if(is_array($products)) { 
                                    foreach ($products as $item) { 
                                        if(is_array($item['attributes'])) {
                                            $itemID = explode(":", $item['id'] ) ; 
                                            $requestID = explode(":", (string)$_REQUEST['products_id'] ) ; 
                                            if ($requestID[0] === $itemID[0]) {
                                                $varTxt = zen_values_name($item['attributes'][1]);
                                            }      
                                        }
                                    }
                                }  
                    } 
                    $id = $this->getID();
                    if ($id) {
                    $brand = zen_get_products_manufacturers_name($id) ;  
                    $brandTxt = ($brand != "") ? $brand:"n/a"; 
    
                    $res = $db->Execute("SELECT products_name FROM " . TABLE_PRODUCTS_DESCRIPTION . " WHERE products_id = $id");
                    $analytics['item'] = array('productID' => $id, 'productName' => $res->fields['products_name'], 'category' => $this->getCatString($id), 'brand' => $brandTxt, 'productQTY' => $qty, 'variant' => $varTxt);
                    }
                    break;
    
      /////////////   Chckout steps ////////////////////////////              
                case 'NOTIFY_HEADER_START_LOGIN':         //  Checkout Step 1
                    $analytics['action'] = "Start Login";
                    $analytics['addProductItemsStr'] = $this->addProductItemsStr() ;
                    break;
           
                case 'NOTIFY_LOGIN_SUCCESS'://  Checkout Step 2
                    $analytics['action'] = "Login Success";
                     $analytics['addProductItemsStr'] = $this->addProductItemsStr() ;
                     break;
                 
                case 'NOTIFY_LOGIN_SUCCESS_VIA_CREATE_ACCOUNT'://  Could also be Checkout step 2
                    $analytics['action'] = "Login Success via Create Account";
                     $analytics['addProductItemsStr'] = $this->addProductItemsStr() ;
                     break;
                 
                case 'NOTIFY_LOGIN_SUCCESS_VIA_NO_ACCOUNT'://   Could also be Checkout Step 2
                    $analytics['action'] = "Login Success via No account";
                     $analytics['addProductItemsStr'] = $this->addProductItemsStr() ;
                    break;
              
                case 'NOTIFY_CHECKOUT_PROCESS_BEGIN': //  Checkout Step 3
                    $analytics['action'] = "Checkout Process begin";
                      $analytics['addProductItemsStr'] = $this->addProductItemsStr() ;
                    break;       
    
                case 'NOTIFY_HEADER_START_CHECKOUT_SHIPPING'://  Checkout Step 4
                    $analytics['action'] = "Checkout Shipping";
                     $analytics['addProductItemsStr'] = $this->addProductItemsStr() ;
                     break;
                
                case 'NOTIFY_HEADER_START_CHECKOUT_PAYMENT'://   Checkout Step 5
                    $analytics['action'] = "Checkout Payment";
                      $analytics['addProductItemsStr'] = $this->addProductItemsStr() ;
                    break;
                
                case 'NOTIFY_HEADER_START_CHECKOUT_CONFIRMATION'://   Checkout Step 6
                    $analytics['action'] = "Checkout Confirmation";
                     $analytics['addProductItemsStr'] = $this->addProductItemsStr() ;
                     break;
    /////////////////////////////////////////////////////////
                 
                case 'NOTIFY_HEADER_START_CHECKOUT_SUCCESS'://  All Checkout complete/successful 
                    $order_summary = $_SESSION['order_summary'];
                        if ($order_summary['order_number']) {
                   
                      // add other cases as you wish for your other payment modules       
                         switch ((string) $order_summary['payment_module_code']) {
                                    case "paypalwpp":   $affiliation = "PayPal Express" ; break ;
                                   
                                    default : $affiliation = (string) $order_summary['payment_module_code'] ;
                         }
        
                    
                    
                    $coupon = (isset($order_summary['coupon_code'])) ? $order_summary['coupon_code'] : "n/a";
                    $analytics['transaction'] = array('id' => (string) $order_summary['order_number'], 'affiliation' => $affiliation,
                    'revenue'  => number_format($order_summary['order_total'],2,'.',''), 'shipping'  => number_format($order_summary['shipping'],2,'.',''), 'tax' =>  number_format($order_summary['tax'],2,'.',''), 'coupon' =>  $coupon);
    
                    $items_query = "SELECT DISTINCT orders_products_id, products_id, products_name, products_model, final_price, products_tax, products_quantity
                         FROM " . TABLE_ORDERS_PRODUCTS . " WHERE orders_id = :ordersID ORDER BY products_name";
    
                    $items_query = $db->bindVars($items_query, ':ordersID', $order_summary['order_number'], 'integer');
                    $items_in_cart = $db->Execute($items_query);
                    $i = 0 ; $analytics['addProductItemsStr']= "" ;
                    while (!$items_in_cart->EOF) {
                        $variant = $db->Execute("SELECT products_options_values FROM " . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . " WHERE orders_products_id = " . (string)$items_in_cart->fields['orders_products_id']);
                            $varTxt = ($variant->fields['products_options_values'] != "") ? $variant->fields['products_options_values']:"n/a";
                        $brand = zen_get_products_manufacturers_name($items_in_cart->fields['orders_products_id']); 
                             $brandTxt = ($brand != "") ? $brand:"n/a";
                        
                        $analytics['addProductItemsStr'] .= "ga('ec:addProduct',"
                                                . " {   'id': '{$items_in_cart->fields['products_id']}',"
                                                    . " 'name': '".addslashes($items_in_cart->fields['products_name'])."',"
                                                    . " 'brand': '{$brandTxt}',"
                                                    . " 'category': '".zen_get_categories_name_from_product($items_in_cart->fields['products_id'])."',"
                                                    . " 'variant': '{$varTxt}',"
                                                    . " 'price':  '".number_format($items_in_cart->fields['final_price'] +  ($items_in_cart->fields['final_price'] *  $items_in_cart->fields['products_tax'] / 100 ),2,'.','')."',"
                                                    . " 'quantity': '{$items_in_cart->fields['products_quantity']}',"
                                                    . " 'coupon': '{$coupon}',"
                                                    . " 'position': '{$i}' } );\n";
                    $i++ ;  
                     $items_in_cart->MoveNext();
                    }
                    $analytics['action'] = "Checkout Success";
                }
                    break;
    
    
                default:   
                    $notifyArr = explode("_", $notifier, 2);
                    $analytics['action'] = ucwords(strtolower(str_replace("_", " ", $notifyArr[1])));
    }
    $_SESSION['analytics'] = $analytics;
        }
    }
    !!! kostenloser Support ausschließlich im Forum - Nicht per Email, nicht per Telefon und nicht per PM !!!

  11. Folgender User sagt Danke zu webchills für den nützlichen Beitrag:

    bumerang24 (15.08.2017)

  12. #10
    Padawan Stufe VI Avatar von bumerang24
    Registriert seit
    25.11.2011
    Ort
    München
    Beiträge
    716
    Themen
    105
    DANKE
    41
    Erhaltene Danke: 55

    Standard

    So, ich noch mal.
    Im Admin klappt jetzt alles, aber beim Aufruf des Shops kommt folgende Fehlemeldung:

    The Google Analytics trackingID is not yet defined in
    /includes/extra_datafiles/ec_analytics.php

    Erst nach klicken von OK kommt mann im Shop.

    Mein Eintrag in der Datei:
    define('GOOGLE_UA', 'UA-12345678-1');

    Steht drinn mit der richigen ID...
    Wo hackt es jetzt wieder?

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Problem mit SQL und Google Analytics
    Von woerny im Forum Archivierte Beiträge Zen-Cart Support
    Antworten: 2
    Letzter Beitrag: 17.09.2011, 15:12
  2. Google Analytics
    Von amatoris im Forum Archivierte Beiträge Zen-Cart Support
    Antworten: 4
    Letzter Beitrag: 06.07.2010, 00:58
  3. Google Analytics Fehlermeldung
    Von fleischmann im Forum Archivierte Beiträge Zen-Cart Support
    Antworten: 3
    Letzter Beitrag: 28.08.2009, 08:54
  4. Google Analytics
    Von odin1 im Forum Archivierte Beiträge Zen-Cart Support
    Antworten: 28
    Letzter Beitrag: 29.07.2008, 11:26
  5. Hosteurope und Google Analytics
    Von kermie im Forum Archivierte Beiträge Zen-Cart Support
    Antworten: 3
    Letzter Beitrag: 28.02.2008, 12:22

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
zen-cart-pro.at
Zen Cart ist eine kostenlose unter der GPL-Lizenz veröffentlichte Open-Source Shopsoftware. Das System wird in den USA entwickelt, die amerikanische Website dazu ist www.zen-cart.com

Die deutsche Zen-Cart Version, um die es hier auf zen-cart-pro.at geht, ist eine Anpassung der amerikanischen Version an die Bedürfnisse von Onlineshopbetreibern im deutschsprachigen Raum.
Die amerikanische Zen-Cart Version berücksichtigt viele rechtliche Erfordernisse nicht, denen ein Onlineshop im deutschsprachigen Raum unterworfen ist. Daher wurde die deutsche Zen-Cart Version nicht nur bloß ins Deutsche übersetzt, sondern auch funktional auf die Anforderungen, die an Onlineshops in Deutschland, Österreich und der Schweiz gestellt werden, angepasst.

Die amerikanische Version ist extrem abgespeckt und stellt weiterführende Funktionalitäten durch zusätzliche Module bereit, die erst mühsam manuell installiert werden müssen. Zahlreiche häufig genutzte Erweiterungen und eigene Entwicklungen sind in der deutschen Zen Cart Version bereits vorinstalliert.
Die deutsche Zen-Cart Version bietet außerdem einen völlig multilingualen Adminbereich. Weitere für die deutsche Zen Cart Version angepasste Erweiterungen stehen in unserem Downloadbereich zur Verfügung.

Die deutsche Zen Cart Version wird seit 15 Jahren von einem Team von Entwicklern in Österreich und Deutschland betreut, weiterentwickelt und supportet und steht kostenlos in unserem Downloadbereich zur Verfügung.

[mehr]
Follow Us
  • zen-cart-pro-at auf Twitter
  • zen-cart-pro-at auf Github
  • zen-cart-pro-at auf SourceForge
Aktuelle Version
Zen Cart 1.5.6c deutsch
vom 01.09.2019
[Download]

unterstützen
Unterstütze die Weiterentwicklung der deutschen Zen Cart Version mit einer Spende!

Spende für die Weiterentwicklung der deutschen Zen Cart Version