name = 'ganalytics'; $this->tab = 'Stats'; $this->version = '1.2'; $this->displayName = 'Google Analytics'; parent::__construct(); if (!Configuration::get('GANALYTICS_ID')) $this->warning = $this->l('You have not yet set your Google Analytics ID'); $this->description = $this->l('Integrate the Google Analytics script into your shop'); $this->confirmUninstall = $this->l('Are you sure you want to delete your details ?'); } function install() { if (!parent::install() OR !$this->registerHook('footer') OR !$this->registerHook('orderConfirmation')) return false; return true; } function uninstall() { if (!Configuration::deleteByName('GANALYTICS_ID') OR !parent::uninstall()) return false; return true; } public function getContent() { $output = '

Google Analytics

'; if (Tools::isSubmit('submitGAnalytics') AND ($gai = Tools::getValue('ganalytics_id'))) { Configuration::updateValue('GANALYTICS_ID', $gai); $output .= '
'.$this->l('Settings updated').'
'; } return $output.$this->displayForm(); } public function displayForm() { $output = '
'.$this->l('Settings').'

'.$this->l('Example:').' UA-1234567-1

'; $output .= '
'.$this->l('Help').'

'.$this->l('The first step of tracking e-commerce transactions is to enable e-commerce reporting for your website\'s profile.').'

'.$this->l('To enable e-Commerce reporting, please follow these steps:').'
  1. '.$this->l('Log in to your account').'
  2. '.$this->l('Click Edit next to the profile you\'d like to enable').'
  3. '.$this->l('On the Profile Settings page, click edit next to Main Website Profile Information').'
  4. '.$this->l('Change the e-Commerce Website radio button from No to Yes').'

'.$this->l('To set up your goals, enter Goal Information:').'

  1. '.$this->l('Return to Your Account main page').'
  2. '.$this->l('Find the profile for which you will be creating goals, then click Edit').'
  3. '.$this->l('Select one of the 4 goal slots available for that profile, then click Edit').'
  4. '.$this->l('Enter the Goal URL. Reaching this page marks a successful conversion').'
  5. '.$this->l('Enter the Goal name as it should appear in your Google Analytics account').'
  6. '.$this->l('Turn the Goal on').'

'.$this->l('Then, define a funnel by following these steps:').'

  1. '.$this->l('Enter the URL of the first page of your conversion funnel. This page should be a page that is common to all users working their way towards your Goal.').'
  2. '.$this->l('Enter a Name for this step.').'
  3. '.$this->l('If this step is a Required step in the conversion process, mark the checkbox to the right of the step.').'
  4. '.$this->l('Continue entering goal steps until your funnel has been completely defined. You may enter up to 10 steps, or as few as a single step.').'
'.$this->l('Finally, configure Additional settings by following the steps below:').'
  1. '.$this->l('If the URLs entered above are Case sensitive, mark the checkbox.').'
  2. '.$this->l('Select the appropriate goal Match Type. (').''.$this->l('Learn more').' '.$this->l('about Match Types and how to choose the appropriate goal Match Type for your goal.)').'
  3. '.$this->l('Enter a Goal value. This is the value used in Google Analytics\' ROI calculations.').'
  4. '.$this->l('Click Save Changes to create this Goal and funnel, or Cancel to exit without saving.').'

'.$this->l('Demonstration: The order process').'

  1. '.$this->l('After having enabled your e-commerce reports and selected the respective profile enter \'order-confirmation.php\' as the targeted page URL').'
  2. '.$this->l('Name this goal (for example \'Order process\')').'
  3. '.$this->l('Activate the goal').'
  4. '.$this->l('Add \'product.php\' as the first page of your conversion funnel').'
  5. '.$this->l('Give it a name (for example, \'Product page\')').'
  6. '.$this->l('Do not mark \'required\' checkbox because the customer could be visiting directly from an \'adding to cart\' button such as in the homefeatured block on the homepage').'
  7. '.$this->l('Continue by entering the following URLs as goal steps:').'
    • order/step0.html '.$this->l('(required)').'
    • authentication.php '.$this->l('(required)').'
    • order/step1.html '.$this->l('(required)').'
    • order/step2.html '.$this->l('(required)').'
    • order/step3.html '.$this->l('(required)').'
  8. '.$this->l('Check the \'Case sensitive\' option').'
  9. '.$this->l('Save this new goal').'
'; return $output; } function hookFooter($params) { global $step, $protocol_content; $gaJsHost = ($protocol_content == 'https://' ? 'ssl' : 'www'); $output = ' '; return $output; } function hookOrderConfirmation($params) { global $protocol_content; $gaJsHost = ($protocol_content == 'https://' ? 'ssl' : 'www'); $order = $params['objOrder']; if (Validate::isLoadedObject($order)) { $deliveryAddress = new Address(intval($order->id_address_delivery)); $conversion_rate = 1; if ($order->id_currency != Configuration::get('PS_CURRENCY_DEFAULT')) { $currency = new Currency(intval($order->id_currency)); $conversion_rate = floatval($currency->conversion_rate); } /* Order general informations */ $output = ' '; return $output; } } }