merge dev_#3119 into rel_3.x branch
This commit is contained in:
commit
e6de5050f4
6
.gitattributes
vendored
6
.gitattributes
vendored
@ -153,6 +153,7 @@ Sources/doku/12_gaTrackingOverview-Dateien/local_extensions.css -text
|
||||
Sources/doku/12_gaTrackingOverview-Dateien/semantic_headers.css -text
|
||||
Sources/doku/12_gaTrackingOverview-Dateien/star_off.gif -text
|
||||
Sources/doku/12_gaTrackingOverview.html -text
|
||||
Sources/trustedShops.jpg -text
|
||||
changed_full/470-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_googleadwordscode.tpl -text
|
||||
changed_full/470-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_googleanalytics.tpl -text
|
||||
changed_full/470-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_optout.tpl -text
|
||||
@ -164,6 +165,7 @@ changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_univer
|
||||
changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_custom.tpl -text
|
||||
changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_ecommerce.tpl -text
|
||||
changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_remarketing.tpl -text
|
||||
changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_trustedstore.tpl -text
|
||||
copy_this/.noencode -text
|
||||
copy_this/modules/d3/d3_googleanalytics/IntelliSenseHelper.php -text
|
||||
copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics.php -text
|
||||
@ -172,11 +174,14 @@ copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics
|
||||
copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_licence.php -text
|
||||
copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_list.php -text
|
||||
copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_main.php -text
|
||||
copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_trustedstore.php -text
|
||||
copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalyticslog.php -text
|
||||
copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalyticslog_list.php -text
|
||||
copy_this/modules/d3/d3_googleanalytics/core/smarty/plugins/function.d3getArticleFromOrderArticle.php -text
|
||||
copy_this/modules/d3/d3_googleanalytics/menu.xml -text
|
||||
copy_this/modules/d3/d3_googleanalytics/metadata.php -text
|
||||
copy_this/modules/d3/d3_googleanalytics/models/d3_google_remarketing_articlelister.php -text
|
||||
copy_this/modules/d3/d3_googleanalytics/models/d3_google_trustedstore_articlelister.php -text
|
||||
copy_this/modules/d3/d3_googleanalytics/modules/components/d3_oxcmp_utils_googleanalytics.php -text
|
||||
copy_this/modules/d3/d3_googleanalytics/modules/controllers/d3_order_googleanalytics.php -text
|
||||
copy_this/modules/d3/d3_googleanalytics/modules/controllers/d3_thankyou_googleanalytics.php -text
|
||||
@ -194,6 +199,7 @@ copy_this/modules/d3/d3_googleanalytics/views/admin/en/d3_googleanalytics_lang.p
|
||||
copy_this/modules/d3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_adwords.tpl -text
|
||||
copy_this/modules/d3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_campaigns.tpl -text
|
||||
copy_this/modules/d3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_main.tpl -text
|
||||
copy_this/modules/d3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_trustedstore.tpl -text
|
||||
setup+doku/Google[!!-~]AdWords-Einrichtung.pdf -text svneol=unset#unset
|
||||
setup+doku/Google[!!-~]Analytics-Einrichtung.pdf -text svneol=unset#unset
|
||||
setup+doku/Google[!!-~]Analytics-Installation.pdf -text
|
||||
|
BIN
Sources/trustedShops.jpg
Normal file
BIN
Sources/trustedShops.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 629 KiB |
@ -6,6 +6,21 @@
|
||||
[{if $mod_d3_googleanalytics}]
|
||||
[{* Content shouldn't rendered in disabled module!
|
||||
Because of this reason, it can't included in d3modcfgcheck block. *}]
|
||||
|
||||
[{if $oD3GASettings->getValue('sD3GATSActive') && $oD3GASettings->getValue('sD3GATSId')}]
|
||||
[{capture name="d3GATrustedStoreCode"}]
|
||||
[{strip}]
|
||||
[{include file="d3ga_universal_trustedstore.tpl"}]
|
||||
[{/strip}]
|
||||
[{/capture}]
|
||||
|
||||
[{if $oViewConf->getActiveClassName() == 'thankyou'}]
|
||||
[{$oView->logCode($smarty.capture.d3GATrustedStoreCode)}]
|
||||
[{/if}]
|
||||
|
||||
[{$smarty.capture.d3GATrustedStoreCode}]
|
||||
[{/if}]
|
||||
|
||||
[{include file="d3ga_universal_adwordscode.tpl"}]
|
||||
|
||||
[{include file="d3ga_universal_remarketing.tpl"}]
|
||||
|
@ -0,0 +1,84 @@
|
||||
[{* https://support.google.com/trustedstoresmerchant/answer/6063080?hl=de&ref_topic=6063044 *}]
|
||||
<!-- BEGIN: Google Certified Shops -->
|
||||
<script type="text/javascript">
|
||||
var gts = gts || [];
|
||||
|
||||
gts.push(["id", "[{$oD3GASettings->getValue('sD3GATSId')}]"]);
|
||||
gts.push(["badge_position", "BOTTOM_RIGHT"]);
|
||||
gts.push(["locale", "[{$sD3CurrentGTSLang}]"]);
|
||||
[{if $oD3GASettings->getValue('sD3GATSShoppingActive')}]
|
||||
[{if $sD3GATSProdId}]
|
||||
gts.push(["google_base_offer_id", "[{$sD3GATSProdId}]"]);
|
||||
[{/if}]
|
||||
gts.push(["google_base_subaccount_id", "[{$oD3GASettings->getValue('sD3GATSShoppingAccountId')}]"]);
|
||||
gts.push(["google_base_country", "[{$oD3GASettings->getValue('sD3GATSShoppingCountry')|upper}]"]);
|
||||
gts.push(["google_base_language", "[{$oD3GASettings->getValue('sD3GATSShoppingLanguage')|lower}]"]);
|
||||
[{/if}]
|
||||
|
||||
(function() {
|
||||
var gts = document.createElement("script");
|
||||
gts.type = "text/javascript";
|
||||
gts.async = true;
|
||||
gts.src = "https://www.googlecommerce.com/trustedstores/api/js";
|
||||
var s = document.getElementsByTagName("script")[0];
|
||||
s.parentNode.insertBefore(gts, s);
|
||||
})();
|
||||
</script>
|
||||
<!-- END: Google Certified Shops -->
|
||||
|
||||
[{if $oViewConf->getActiveClassName() == 'thankyou'}]
|
||||
[{* https://support.google.com/trustedstoresmerchant/answer/6063087?hl=de&ref_topic=6063044 *}]
|
||||
|
||||
[{assign var="oOrder" value=$oView->getOrder()}]
|
||||
[{assign var="oOrderCurrency" value=$oOrder->getOrderCurrency()}]
|
||||
[{assign var="oUser" value=$oOrder->getOrderUser()}]
|
||||
[{assign var="oUserCountry" value=$oView->d3GAGetUserCountry()}]
|
||||
[{if $oD3GASettings->getValue('blD3GAUseNetto')}]
|
||||
[{assign var="sTotal" value=$oOrder->getOrderNetSum()}] [{* // total - required - has to be gross sum *}]
|
||||
[{else}]
|
||||
[{assign var="sTotal" value=$oOrder->getTotalOrderSum()}] [{* // total - required *}]
|
||||
[{/if}]
|
||||
|
||||
<!-- START Google Trusted Stores Order -->
|
||||
<div id="gts-order" style="display:none;" translate="no">
|
||||
<!-- start order and merchant information -->
|
||||
<span id="gts-o-id">[{$oOrder->getFieldData('oxordernr')}]</span>
|
||||
<span id="gts-o-domain">[{$oxcmp_shop->oxshops__oxurl->value}]</span>
|
||||
<span id="gts-o-email">[{$oUser->getFieldData('oxusername')}]</span>
|
||||
<span id="gts-o-country">[{$oUserCountry->getFieldData('oxisoalpha2')}]</span>
|
||||
<span id="gts-o-currency">[{$oOrderCurrency->name}]</span>
|
||||
<span id="gts-o-total">[{$sTotal|string_format:"%.2f"}]</span>
|
||||
<span id="gts-o-discounts">-[{$oOrder->getFieldData('oxdiscount')|string_format:"%.2f"}]</span>
|
||||
<span id="gts-o-shipping-total">[{$oOrder->getFieldData('oxdelcost')|string_format:"%.2f"}]</span>
|
||||
<span id="gts-o-tax-total">[{math equation="fi + se + th + fo" fi=$oOrder->getFieldData('oxartvatprice1') se=$oOrder->getFieldData('oxartvatprice2') th=$oOrder->getFieldData('oxpayvat') fo=$oOrder->getFieldData('oxdelvat') format="%.2f"}]</span>
|
||||
<span id="gts-o-est-delivery-date">[{$oView->d3GAgetEstimatedDeliveryDate()|date_format:"%Y-%m-%d"}]</span>
|
||||
<span id="gts-o-est-ship-date">[{$oView->d3GAgetEstimatedShippingDate()|date_format:"%Y-%m-%d"}]</span>
|
||||
<span id="gts-o-has-preorder">[{$oView->d3GAhasBackorderPreorder()}]</span>
|
||||
<span id="gts-o-has-digital">[{$oView->d3GAhasDigitalGoods()}]</span>
|
||||
<!-- end order and merchant information -->
|
||||
|
||||
<!-- start repeated item specific information -->
|
||||
[{foreach from=$order->getOrderArticles() item=oOrderArticle}]
|
||||
[{if $oD3GASettings->getValue('blD3GAUseNetto')}]
|
||||
[{assign var="oPrice" value=$oOrderArticle->getPrice()}]
|
||||
[{assign var="sPrice" value=$oPrice->getNettoPrice()}]
|
||||
[{else}]
|
||||
[{assign var="sPrice" value=$oOrderArticle->oxorderarticles__oxprice->value}]
|
||||
[{/if}]
|
||||
|
||||
<span class="gts-item">
|
||||
<span class="gts-i-name">[{$oOrderArticle->oxorderarticles__oxtitle->value|escape:"quotes"}]</span>
|
||||
<span class="gts-i-price">[{$sPrice|string_format:"%.2f"}]</span>
|
||||
<span class="gts-i-quantity">[{$oOrderArticle->getFieldData('oxamount')}]</span>
|
||||
[{if $oD3GASettings->getValue('sD3GATSShoppingActive')}]
|
||||
<span class="gts-i-prodsearch-id">[{$oView->d3GAgetProductId($oOrderArticle)}]</span>
|
||||
<span class="gts-i-prodsearch-store-id">[{$oD3GASettings->getValue('sD3GATSShoppingAccountId')}]</span>
|
||||
<span class="gts-i-prodsearch-country">[{$oD3GASettings->getValue('sD3GATSShoppingCountry')|upper}]</span>
|
||||
<span class="gts-i-prodsearch-language">[{$oD3GASettings->getValue('sD3GATSShoppingLanguage')|lower}]</span>
|
||||
[{/if}]
|
||||
</span>
|
||||
[{/foreach}]
|
||||
<!-- end repeated item specific informations -->
|
||||
</div>
|
||||
<!-- END Google Trusted Stores Order -->
|
||||
[{/if}]
|
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This module is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This module is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* For further informations, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @link http://www.oxidmodule.com
|
||||
* @link http://www.shopmodule.com
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*/
|
||||
|
||||
class d3_cfg_googleanalytics_trustedstore extends d3_cfg_mod_main
|
||||
{
|
||||
protected $_sThisTemplate = 'd3_cfg_googleanalytics_trustedstore.tpl';
|
||||
protected $_sModId = 'd3_googleanalytics';
|
||||
}
|
@ -6,6 +6,7 @@
|
||||
<TAB id="d3tbclgoogleanalytics_main" cl="d3_cfg_googleanalytics_main" />
|
||||
<TAB id="d3tbclgoogleanalytics_adwords" cl="d3_cfg_googleanalytics_adwords" />
|
||||
<TAB id="d3tbclgoogleanalytics_campaigns" cl="d3_cfg_googleanalytics_campaigns" />
|
||||
<TAB id="d3tbclgoogleanalytics_trustedstore" cl="d3_cfg_googleanalytics_trustedstore" />
|
||||
<TAB id="d3tbcl_licence" cl="d3_cfg_googleanalytics_licence" />
|
||||
</SUBMENU>
|
||||
<SUBMENU id ="d3mxlog" cl="d3_cfg_googleanalyticslog" list="d3_cfg_googleanalyticslog_list">
|
||||
|
@ -61,10 +61,16 @@ $aModule = array(
|
||||
'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_licence.php',
|
||||
'd3_cfg_googleanalytics_list' => 'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_list.php',
|
||||
'd3_cfg_googleanalytics_main' => 'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_main.php',
|
||||
'd3_cfg_googleanalytics_trustedstore' =>
|
||||
'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_trustedstore.php',
|
||||
'd3_cfg_googleanalyticslog' => 'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalyticslog.php',
|
||||
'd3_cfg_googleanalyticslog_list' =>
|
||||
'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalyticslog_list.php',
|
||||
'd3_googleanalytics_update' => 'd3/d3_googleanalytics/setup/d3_googleanalytics_update.php',
|
||||
'd3_google_remarketing_articlelister' =>
|
||||
'd3/d3_googleanalytics/models/d3_google_remarketing_articlelister.php',
|
||||
'd3_google_trustedstore_articlelister' =>
|
||||
'd3/d3_googleanalytics/models/d3_google_trustedstore_articlelister.php',
|
||||
),
|
||||
'templates' => array(
|
||||
'd3_googleanalytics.tpl' => 'd3/d3_googleanalytics/views/tpl/widget/d3_googleanalytics.tpl',
|
||||
@ -81,6 +87,8 @@ $aModule = array(
|
||||
'd3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_remarketing.tpl',
|
||||
'd3ga_universal_campaigncode.tpl' =>
|
||||
'd3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_campaigncode.tpl',
|
||||
'd3ga_universal_trustedstore.tpl' =>
|
||||
'd3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_trustedstore.tpl',
|
||||
|
||||
'd3_cfg_googleanalytics_main.tpl' =>
|
||||
'd3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_main.tpl',
|
||||
@ -88,6 +96,8 @@ $aModule = array(
|
||||
'd3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_adwords.tpl',
|
||||
'd3_cfg_googleanalytics_campaigns.tpl' =>
|
||||
'd3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_campaigns.tpl',
|
||||
'd3_cfg_googleanalytics_trustedstore.tpl' =>
|
||||
'd3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_trustedstore.tpl',
|
||||
),
|
||||
'events' => array(
|
||||
'onActivate' => 'd3install::checkUpdateStart',
|
||||
|
@ -0,0 +1,160 @@
|
||||
<?php
|
||||
/**
|
||||
* This Software is the property of Data Development and is protected
|
||||
* by copyright law - it is NOT Freeware.
|
||||
*
|
||||
* Any unauthorized use of this software without a valid license
|
||||
* is a violation of the license agreement and will be prosecuted by
|
||||
* civil and criminal law.
|
||||
*
|
||||
* http://www.shopmodule.com
|
||||
*
|
||||
* @copyright © D³ Data Development, Thomas Dartsch
|
||||
* @author D³ Data Development - Daniel Seifert <ds@shopmodule.com>
|
||||
* @link http://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
class d3_google_remarketing_articlelister
|
||||
{
|
||||
public $sD3GARemarketingSKUField = 'oxartnum';
|
||||
|
||||
public $blD3GARemarketingUseBrutto = true;
|
||||
|
||||
/**
|
||||
* @param details $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getDetailsProdList($oView)
|
||||
{
|
||||
$aArticleList = array();
|
||||
$aArticleList[] = $oView->getProduct();
|
||||
return $this->_getProductList($aArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param alist $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getAlistProdList($oView)
|
||||
{
|
||||
$oArticleList = $oView->getArticleList();
|
||||
return $this->_getProductList($oArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param search $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getSearchProdList($oView)
|
||||
{
|
||||
$oArticleList = $oView->getArticleList();
|
||||
return $this->_getProductList($oArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param vendorlist $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getVendorlistProdList($oView)
|
||||
{
|
||||
$oArticleList = $oView->getArticleList();
|
||||
return $this->_getProductList($oArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param manufacturerlist $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getManufacturerlistProdList($oView)
|
||||
{
|
||||
$oArticleList = $oView->getArticleList();
|
||||
return $this->_getProductList($oArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param basket $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getBasketProdList($oView)
|
||||
{
|
||||
$aArticleList = $oView->getBasketArticles();
|
||||
return $this->_getProductList($aArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param order $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getOrderProdList($oView)
|
||||
{
|
||||
$aArticleList = $oView->getBasketArticles();
|
||||
return $this->_getProductList($aArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param compare $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getCompareProdList($oView)
|
||||
{
|
||||
$aArticleList = $oView->getCompArtList();
|
||||
return $this->_getProductList($aArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* don't change method name, it was dynamically generated
|
||||
* @param account_noticelist $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getAccount_noticelistProdList($oView)
|
||||
{
|
||||
$aArticleList = $oView->getNoticeProductList();
|
||||
return $this->_getProductList($aArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* don't change method name, it was dynamically generated
|
||||
* @param account_wishlist $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getAccount_wishlistProdList($oView)
|
||||
{
|
||||
$aArticleList = $oView->getWishProductList();
|
||||
return $this->_getProductList($aArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $aArticleList
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _getProductList($aArticleList)
|
||||
{
|
||||
$aArticleIds = array();
|
||||
$dPrice = 0;
|
||||
|
||||
/** @var oxarticle $oArticle */
|
||||
if (isset($aArticleList)) {
|
||||
foreach ($aArticleList as $oArticle) {
|
||||
$aArticleIds[] = $oArticle->getFieldData($this->sD3GARemarketingSKUField);
|
||||
if ($this->blD3GARemarketingUseBrutto) {
|
||||
$dPrice += $oArticle->getPrice()->getBruttoPrice();
|
||||
} else {
|
||||
$dPrice += $oArticle->getPrice()->getNettoPrice();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return array('aArtIdList' => $aArticleIds, 'dPrice' => $dPrice);
|
||||
}
|
||||
}
|
@ -0,0 +1,132 @@
|
||||
<?php
|
||||
/**
|
||||
* This Software is the property of Data Development and is protected
|
||||
* by copyright law - it is NOT Freeware.
|
||||
*
|
||||
* Any unauthorized use of this software without a valid license
|
||||
* is a violation of the license agreement and will be prosecuted by
|
||||
* civil and criminal law.
|
||||
*
|
||||
* http://www.shopmodule.com
|
||||
*
|
||||
* @copyright © D³ Data Development, Thomas Dartsch
|
||||
* @author D³ Data Development - Daniel Seifert <support@shopmodule.com>
|
||||
* @link http://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
class d3_google_trustedstore_articlelister
|
||||
{
|
||||
private $_sModId = 'd3_googleanalytics';
|
||||
|
||||
/**
|
||||
* @param details $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getDetailsProdList($oView)
|
||||
{
|
||||
$aArticleList = array();
|
||||
$aArticleList[] = $oView->getProduct();
|
||||
return $this->_getProductList($aArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param alist $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getAlistProdList($oView)
|
||||
{
|
||||
$oArticleList = $oView->getArticleList();
|
||||
return $this->_getProductList($oArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param search $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getSearchProdList($oView)
|
||||
{
|
||||
$oArticleList = $oView->getArticleList();
|
||||
return $this->_getProductList($oArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param vendorlist $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getVendorlistProdList($oView)
|
||||
{
|
||||
$oArticleList = $oView->getArticleList();
|
||||
return $this->_getProductList($oArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param manufacturerlist $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getManufacturerlistProdList($oView)
|
||||
{
|
||||
$oArticleList = $oView->getArticleList();
|
||||
return $this->_getProductList($oArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param compare $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getCompareProdList($oView)
|
||||
{
|
||||
$aArticleList = $oView->getCompArtList();
|
||||
return $this->_getProductList($aArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* don't change method name, it was dynamically generated
|
||||
* @param account_noticelist $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getAccount_noticelistProdList($oView)
|
||||
{
|
||||
$aArticleList = $oView->getNoticeProductList();
|
||||
return $this->_getProductList($aArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* don't change method name, it was dynamically generated
|
||||
* @param account_wishlist $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getAccount_wishlistProdList($oView)
|
||||
{
|
||||
$aArticleList = $oView->getWishProductList();
|
||||
return $this->_getProductList($aArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $aArticleList
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _getProductList($aArticleList)
|
||||
{
|
||||
$aArticleIds = array();
|
||||
|
||||
/** @var oxarticle $oArticle */
|
||||
if (isset($aArticleList)) {
|
||||
foreach ($aArticleList as $oArticle) {
|
||||
$aArticleIds[] = $oArticle->getFieldData(
|
||||
d3_cfg_mod::get($this->_sModId)->getValue('sD3GATSShoppingArtId')
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return array('aArtIdList' => $aArticleIds);
|
||||
}
|
||||
}
|
@ -33,9 +33,6 @@ class d3_oxcmp_utils_googleanalytics extends d3_oxcmp_utils_googleanalytics_pare
|
||||
'order' => 'purchase',
|
||||
);
|
||||
|
||||
public $sD3GARemarketingSKUField = 'oxartnum';
|
||||
public $blD3GARemarketingUseBrutto = true;
|
||||
|
||||
/**
|
||||
* @return null
|
||||
*/
|
||||
@ -56,6 +53,12 @@ class d3_oxcmp_utils_googleanalytics extends d3_oxcmp_utils_googleanalytics_pare
|
||||
$oParentView->addTplParam('sD3GASendPageViewParameter', $this->d3getSendPageViewParameters());
|
||||
$oParentView->addTplParam('sD3CurrentShopUrl', $this->d3GetCreateCurrentShopUrl());
|
||||
|
||||
if ($oSet->getValue('sD3GATSActive') && $oSet->getValue('sD3GATSShoppingActive')) {
|
||||
$aInfos = $this->d3GATSGetProdInfos();
|
||||
$oParentView->addTplParam('sD3CurrentGTSLang', $this->d3GetGTSLang());
|
||||
$oParentView->addTplParam('sD3GATSProdId', $this->d3GATSGetProdIdList($aInfos['aArtIdList']));
|
||||
}
|
||||
|
||||
if ($oSet->getValue('blD3GASetRemarketing')) {
|
||||
$aInfos = $this->d3GetGAProdInfos();
|
||||
$oParentView->addTplParam('sD3GARemarketingProdId', $this->d3GetGAProdIdList($aInfos['aArtIdList']));
|
||||
@ -99,6 +102,14 @@ class d3_oxcmp_utils_googleanalytics extends d3_oxcmp_utils_googleanalytics_pare
|
||||
return 'auto';
|
||||
}
|
||||
|
||||
return $this->d3GetCurrentShopUrl();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function d3GetCurrentShopUrl()
|
||||
{
|
||||
return oxRegistry::getConfig()->getActiveShop()->getFieldData('oxurl');
|
||||
}
|
||||
|
||||
@ -275,6 +286,60 @@ class d3_oxcmp_utils_googleanalytics extends d3_oxcmp_utils_googleanalytics_pare
|
||||
return 'Siteview';
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function d3GetGTSLang()
|
||||
{
|
||||
$aHomeCountries = oxRegistry::getConfig()->getConfigParam('aHomeCountry');
|
||||
$sHomeCountryId = $aHomeCountries[array_keys($aHomeCountries)[0]];
|
||||
/** @var oxcountry $oCountry */
|
||||
$oCountry = oxNew('oxcountry');
|
||||
$oCountry->load($sHomeCountryId);
|
||||
|
||||
return strtolower(oxRegistry::getLang()->getLanguageAbbr()).'_'.
|
||||
strtoupper($oCountry->getFieldData('OXISOALPHA2'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function d3GATSGetProdInfos()
|
||||
{
|
||||
startProfile(__METHOD__);
|
||||
|
||||
$oCurrentView = oxRegistry::getConfig()->getActiveView();
|
||||
|
||||
$aArticleIds = array();
|
||||
|
||||
$sMethodName = 'get'.ucfirst($oCurrentView->getClassName())."ProdList";
|
||||
$oArticleLister = oxNew('d3_google_trustedstore_articlelister');
|
||||
|
||||
if (method_exists($oArticleLister, $sMethodName)) {
|
||||
stopProfile(__METHOD__);
|
||||
return call_user_func(array($oArticleLister, $sMethodName), $oCurrentView);
|
||||
}
|
||||
|
||||
stopProfile(__METHOD__);
|
||||
|
||||
return array('aArtIdList' => $aArticleIds);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param array $aArticleIds
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function d3GATSGetProdIdList($aArticleIds)
|
||||
{
|
||||
if (count($aArticleIds)) {
|
||||
return $aArticleIds[array_keys($aArticleIds)[0]];
|
||||
} else {
|
||||
return "not_set";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
@ -287,11 +352,12 @@ class d3_oxcmp_utils_googleanalytics extends d3_oxcmp_utils_googleanalytics_pare
|
||||
$aArticleIds = array();
|
||||
$dPrice = 0;
|
||||
|
||||
$sMethodName = '_d3GetGA'.$oCurrentView->getClassName()."ProdList";
|
||||
$sMethodName = 'get'.ucfirst($oCurrentView->getClassName())."ProdList";
|
||||
$oArticleLister = oxNew('d3_google_remarketing_articlelister');
|
||||
|
||||
if (method_exists($this, $sMethodName)) {
|
||||
if (method_exists($oArticleLister, $sMethodName)) {
|
||||
stopProfile(__METHOD__);
|
||||
return call_user_func(array($this, $sMethodName), $oCurrentView);
|
||||
return call_user_func(array($oArticleLister, $sMethodName), $oCurrentView);
|
||||
}
|
||||
|
||||
stopProfile(__METHOD__);
|
||||
@ -313,144 +379,6 @@ class d3_oxcmp_utils_googleanalytics extends d3_oxcmp_utils_googleanalytics_pare
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param details $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _d3GetGAdetailsProdList($oView)
|
||||
{
|
||||
$aArticleList = array();
|
||||
$aArticleList[] = $oView->getProduct();
|
||||
return $this->_d3GetGAProductList($aArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param alist $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _d3GetGAalistProdList($oView)
|
||||
{
|
||||
$oArticleList = $oView->getArticleList();
|
||||
return $this->_d3GetGAProductList($oArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param search $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _d3GetGAsearchProdList($oView)
|
||||
{
|
||||
$oArticleList = $oView->getArticleList();
|
||||
return $this->_d3GetGAProductList($oArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param vendorlist $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _d3GetGAvendorlistProdList($oView)
|
||||
{
|
||||
$oArticleList = $oView->getArticleList();
|
||||
return $this->_d3GetGAProductList($oArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param manufacturerlist $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _d3GetGAmanufacturerlistProdList($oView)
|
||||
{
|
||||
$oArticleList = $oView->getArticleList();
|
||||
return $this->_d3GetGAProductList($oArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param basket $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _d3GetGAbasketProdList($oView)
|
||||
{
|
||||
$aArticleList = $oView->getBasketArticles();
|
||||
return $this->_d3GetGAProductList($aArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param order $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _d3GetGAorderProdList($oView)
|
||||
{
|
||||
$aArticleList = $oView->getBasketArticles();
|
||||
return $this->_d3GetGAProductList($aArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param compare $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _d3GetGAcompareProdList($oView)
|
||||
{
|
||||
$aArticleList = $oView->getCompArtList();
|
||||
return $this->_d3GetGAProductList($aArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* don't change method name, it was dynamically generated
|
||||
* @param account_noticelist $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _d3GetGAaccount_noticelistProdList($oView)
|
||||
{
|
||||
$aArticleList = $oView->getNoticeProductList();
|
||||
return $this->_d3GetGAProductList($aArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* don't change method name, it was dynamically generated
|
||||
* @param account_wishlist $oView
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _d3GetGAaccount_wishlistProdList($oView)
|
||||
{
|
||||
$aArticleList = $oView->getWishProductList();
|
||||
return $this->_d3GetGAProductList($aArticleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $aArticleList
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _d3GetGAProductList($aArticleList)
|
||||
{
|
||||
$aArticleIds = array();
|
||||
$dPrice = 0;
|
||||
|
||||
/** @var oxarticle $oArticle */
|
||||
if (isset($aArticleList)) {
|
||||
foreach ($aArticleList as $oArticle) {
|
||||
$aArticleIds[] = $oArticle->getFieldData($this->sD3GARemarketingSKUField);
|
||||
if ($this->blD3GARemarketingUseBrutto) {
|
||||
$dPrice += $oArticle->getPrice()->getBruttoPrice();
|
||||
} else {
|
||||
$dPrice += $oArticle->getPrice()->getNettoPrice();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return array('aArtIdList' => $aArticleIds, 'dPrice' => $dPrice);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $aParameter
|
||||
*
|
||||
|
@ -23,6 +23,25 @@ class d3_thankyou_googleanalytics extends d3_thankyou_googleanalytics_parent
|
||||
{
|
||||
private $_sModCfgId = 'd3_googleanalytics';
|
||||
|
||||
public $aD3GAWeekendDays = array(
|
||||
6, // Samstag
|
||||
7, // Sonntag
|
||||
);
|
||||
|
||||
/**
|
||||
* Format Tag-Monat (jeweils mit führenden Nullen)
|
||||
* @var array
|
||||
*/
|
||||
public $aD3GAfixFeastDays = array(
|
||||
'01-01', // Neujahr
|
||||
'01-05', // Tag der Arbeit
|
||||
'03-10', // Tag der deutschen Einheit
|
||||
'25-12', // 1. Weihnachtsfeiertag
|
||||
'26-12', // 2. Weihnachtsfeiertag
|
||||
);
|
||||
|
||||
protected $_blD3GADateChanged = false;
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
@ -48,4 +67,214 @@ class d3_thankyou_googleanalytics extends d3_thankyou_googleanalytics_parent
|
||||
$sGACode
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return oxcountry
|
||||
*/
|
||||
public function d3GAGetUserCountry()
|
||||
{
|
||||
$sCountryId = $this->getOrder()->getFieldData('oxbillcountryid');
|
||||
/** @var oxcountry $oCountry */
|
||||
$oCountry = oxNew('oxcountry');
|
||||
$oCountry->load($sCountryId);
|
||||
|
||||
return $oCountry;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function d3GAgetEstimatedShippingDate()
|
||||
{
|
||||
startProfile(__METHOD__);
|
||||
$iTimeStamp = $this->_d3GAgetEstimatedDate('iEstShippingTimeValue', time());
|
||||
stopProfile(__METHOD__);
|
||||
|
||||
return $iTimeStamp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function d3GAgetEstimatedDeliveryDate()
|
||||
{
|
||||
startProfile(__METHOD__);
|
||||
$iShippingDate = $this->d3GAgetEstimatedShippingDate();
|
||||
$iTimeStamp = $this->_d3GAgetEstimatedDate('iEstDeliveryTimeValue', $iShippingDate);
|
||||
stopProfile(__METHOD__);
|
||||
|
||||
return $iTimeStamp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $sModCfgVarName
|
||||
* @param int $iTimestamp
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
protected function _d3GAgetEstimatedDate($sModCfgVarName, $iTimestamp)
|
||||
{
|
||||
$iTimeValue = d3_cfg_mod::get($this->_sModCfgId)->getValue($sModCfgVarName);
|
||||
|
||||
for ($i = 0; $i < $iTimeValue; $i++) {
|
||||
$iTimestamp += 86400;
|
||||
|
||||
// check, if transportation day is a working day, else transportation has a break
|
||||
do {
|
||||
$this->_blD3GADateChanged = false;
|
||||
$iTimestamp = $this->_d3GAskipIdlePeriod($iTimestamp);
|
||||
} while ($this->_blD3GADateChanged === true);
|
||||
}
|
||||
|
||||
return $iTimestamp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $iTimestamp
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
protected function _d3GAskipIdlePeriod($iTimestamp)
|
||||
{
|
||||
startProfile(__METHOD__);
|
||||
$iWeekday = date('N', $iTimestamp);
|
||||
|
||||
if (in_array($iWeekday, $this->aD3GAWeekendDays)) {
|
||||
$iOffset = 8 - $iWeekday;
|
||||
$iTimestamp += $iOffset * 86400;
|
||||
$this->_blD3GADateChanged = true;
|
||||
}
|
||||
|
||||
stopProfile(__METHOD__);
|
||||
|
||||
return $this->_d3GAskipFeastDays($iTimestamp);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $iTimestamp
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
protected function _d3GAskipFeastDays($iTimestamp)
|
||||
{
|
||||
startProfile(__METHOD__);
|
||||
|
||||
while (in_array(date('d-m', $iTimestamp), $this->aD3GAfixFeastDays)) {
|
||||
$iTimestamp += 86400;
|
||||
$this->_blD3GADateChanged = true;
|
||||
}
|
||||
|
||||
stopProfile(__METHOD__);
|
||||
|
||||
return $iTimestamp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function d3GAhasBackorderPreorder()
|
||||
{
|
||||
if (oxRegistry::getConfig()->getConfigParam('blUseStock')) {
|
||||
/** @var oxorderarticle $oOrderArticle */
|
||||
foreach ($this->getOrder()->getOrderArticles() as $oOrderArticle) {
|
||||
if ($this->_d3GAhasArticleBackorderPreorder($oOrderArticle)) {
|
||||
return 'Y';
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return 'N';
|
||||
}
|
||||
|
||||
/**
|
||||
* @param oxorderarticle $oOrderArticle
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function _d3GAhasArticleBackorderPreorder(oxorderarticle $oOrderArticle)
|
||||
{
|
||||
/** @var oxarticle $oArticle */
|
||||
$oArticle = $oOrderArticle->getArticle();
|
||||
|
||||
if ($oArticle->getFieldData('oxstockflag') != 4 // Fremdlager
|
||||
&& $oOrderArticle->getFieldData('oxamount') > $oOrderArticle->getFieldData('oxstock')
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function d3GAhasDigitalGoods()
|
||||
{
|
||||
if (oxRegistry::getConfig()->getConfigParam('blUseStock')) {
|
||||
/** @var oxorderarticle $oOrderArticle */
|
||||
foreach ($this->getOrder()->getOrderArticles() as $oOrderArticle) {
|
||||
if ($this->_d3GAhasArticleDigitalGoods($oOrderArticle)) {
|
||||
return 'Y';
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return 'N';
|
||||
}
|
||||
|
||||
/**
|
||||
* @param oxorderarticle $oOrderArticle
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function _d3GAhasArticleDigitalGoods(oxorderarticle $oOrderArticle)
|
||||
{
|
||||
/** @var oxarticle $oArticle */
|
||||
$oArticle = $oOrderArticle->getArticle();
|
||||
$oArticleFileList = $oArticle->getArticleFiles();
|
||||
|
||||
if ($oArticle->getFieldData('oxisdownloadable')
|
||||
&& $oArticleFileList->count()
|
||||
) {
|
||||
if ($this->_d3GAhasArticlePurchasedDownload($oArticleFileList)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param oxList $oArticleFileList
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function _d3GAhasArticlePurchasedDownload(oxList $oArticleFileList)
|
||||
{
|
||||
/** @var oxfile $oArticleFile */
|
||||
foreach ($oArticleFileList->getArray() as $oArticleFile) {
|
||||
if ($oArticleFile->getFieldData('oxpurchasedonly')) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param oxorderarticle $oOrderArticle
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function d3GAgetProductId($oOrderArticle)
|
||||
{
|
||||
switch (d3_cfg_mod::get($this->_sModCfgId)->getValue('sD3GATSShoppingArtId')) {
|
||||
case 'oxartnum':
|
||||
return $oOrderArticle->getFieldData('oxartnum');
|
||||
case 'oxid':
|
||||
return $oOrderArticle->getFieldData('oxartid');
|
||||
};
|
||||
|
||||
return $oOrderArticle->getFieldData(d3_cfg_mod::get($this->_sModCfgId)->getValue('sD3GATSShoppingArtId'));
|
||||
}
|
||||
}
|
||||
|
@ -31,6 +31,7 @@ $aLang = array(
|
||||
'd3mxgoogleanalytics_settings' => 'Einstellungen',
|
||||
'd3tbclgoogleanalytics_main' => 'Analytics',
|
||||
'd3tbclgoogleanalytics_adwords' => 'AdWords',
|
||||
'd3tbclgoogleanalytics_trustedstore' => 'Google zertifizierter Shop',
|
||||
|
||||
'D3_GOOGLEANALYTICS_CFG_TITLE' => 'Google Analytics Schnittstelle - Einstellungen',
|
||||
|
||||
@ -275,6 +276,49 @@ $aLang = array(
|
||||
'ein, den Sie vom Anbieter erhalten haben. Kopieren Sie auch ein eventuell vorhandenes "script"-Tag mit. '.
|
||||
'Dieser Code wird 1:1 in den Seitenquelltext eingefügt und nicht geparst.',
|
||||
|
||||
'D3_GOOGLEANALYTICS_TS_ACTIVE' => 'Trusted Store aktivieren',
|
||||
'D3_GOOGLEANALYTICS_TS_ID' => 'Trusted Store-ID',
|
||||
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER' => 'Zeitraum vom Bestelleingang bis zum Versand',
|
||||
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DAYS' => 'Werktag(e)',
|
||||
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DESC' => '<p>Google teilt Ihrem Kunden per Mail mit, '.
|
||||
'nach welchem Zeitraum ausgehend vom Bestelleingang die bestellten Artikel versendet werden. Geben Sie hier '.
|
||||
'den für Normalfälle größten Zeitraum bis zum Versand in Tagen an (z.B. 3 bei "1 bis 3 Tage"). Nach dem '.
|
||||
'voraussichtlichen Versanddatum erhält der Kunde eine Umfrage zum abgeschlossenen Kauf.</p><p>Fällt der '.
|
||||
'errechnete Termin auf ein Wochenende oder einen festen Feiertag, wird der nächstmögliche Termin verwendet. '.
|
||||
'Bewegliche und regionale Feiertage werden nicht berücksichtigt. Um die Liste der Ausnahmen anzupassen, '.
|
||||
'erweitern Sie die Überladung der thankyou-Klasse entsprechend.</p>',
|
||||
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER' => 'Zeitraum vom Versand bis zur Lieferung beim '.
|
||||
'Empfänger',
|
||||
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER_DAYS' => 'Werktag(e)',
|
||||
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER_DESC' => '<p>Google teilt Ihrem Kunden per Mail mit, '.
|
||||
'nach welchem Zeitraum die bestellten Artikel in der Regel beim Kunden eintreffen. Geben Sie hier den für '.
|
||||
'Normalfälle größten Zeitraum für die Lieferung in Tagen an (z.B. 4 bei "1 bis 4 Tage"). Der errechnete '.
|
||||
'Termin wird dem Kunden per Mail mitgeteilt.</p><p>Fällt der errechnete Termin auf ein Wochenende oder einen '.
|
||||
'festen Feiertag, wird der nächstmögliche Termin verwendet. Bewegliche und regionale Feiertage werden nicht '.
|
||||
'berücksichtigt. Um die Liste der Ausnahmen anzupassen, erweitern Sie die Überladung der thankyou-Klasse '.
|
||||
'entsprechend.</p>',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPING' => 'Verbindung zu Google Shopping',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGACTIVE' => 'zusätzliche Daten aus Google Shopping '.
|
||||
'übertragen',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGACTIVE_DESC' => 'Verwenden Sie Google Shopping und möchten '.
|
||||
'zusätzliche Daten zur Identifizierung übertragen, setzen Sie diesen Haken. Die folgenden Angaben sind dann '.
|
||||
'ebenfalls erforderlich.',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGACCOUNTID' => 'Google Shopping Kontonummer',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGACCOUNTID_DESC' => 'Tragen Sie hier die Kontonummer (Account ID) '.
|
||||
'aus Google Shopping ein.',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGCOUNTRY' => 'Kürzel des Landes Ihres Google Shopping-Kontos',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGCOUNTRY_DESC' => 'Geben Sie hier das Land Ihres Google Shopping '.
|
||||
'Kontos an. Erwartet wird der ISO-3166-Ländercode (z.B.: DE, CH, AT, FR).',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGLANGUAGE' => 'Kürzel der Sprache Ihres Google Shopping-Kontos',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGLANGUAGE_DESC' => 'Geben Sie hier die Sprache Ihres Google '.
|
||||
'Shopping Kontos an. Erwartet wird der ISO-639-1-Sprachcode (z.B.: de, en, fr).',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGARTID' => 'Identifikation Ihrer Artikel bei Google '.
|
||||
'Shopping',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_ARTNUM' => 'Artikelnummer (oxartnum)',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_OXID' => 'interne Ident-Nummer (oxid)',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_DESC' => 'Über welches Feld kann Google Shopping die '.
|
||||
'dort hinterlegten Artikel identfizieren?',
|
||||
|
||||
'D3_GOOGLEANALYTICS_METADATA_TITLE' => 'Google Analytics Schnittstelle',
|
||||
'D3_GOOGLEANALYTICS_METADATA_DESC' => 'Dieses Modul stellt Ihnen die schnelle und '.
|
||||
'unkomplizierte Einbindung Ihres Google-Analytics-Kontos in Ihren Shop zur Verfügung. Hierbei werden '.
|
||||
|
@ -31,6 +31,7 @@ $aLang = array(
|
||||
'd3mxgoogleanalytics_settings' => 'Settings',
|
||||
'd3tbclgoogleanalytics_main' => 'Analytics',
|
||||
'd3tbclgoogleanalytics_adwords' => 'AdWords',
|
||||
'd3tbclgoogleanalytics_trustedstore' => 'Google Trusted Shop',
|
||||
|
||||
'D3_GOOGLEANALYTICS_CFG_TITLE' => 'Google Analytics Connector - Settings',
|
||||
|
||||
@ -274,6 +275,49 @@ $aLang = array(
|
||||
'ein, den Sie vom Anbieter erhalten haben. Kopieren Sie auch ein eventuell vorhandenes "script"-Tag mit. '.
|
||||
'Dieser Code wird 1:1 in den Seitenquelltext eingefügt und nicht geparst.',
|
||||
|
||||
'D3_GOOGLEANALYTICS_TS_ACTIVE' => 'Trusted Store aktivieren',
|
||||
'D3_GOOGLEANALYTICS_TS_ID' => 'Trusted Store-ID',
|
||||
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER' => 'Zeitraum vom Bestelleingang bis zum Versand',
|
||||
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DAYS' => 'Werktag(e)',
|
||||
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DESC' => '<p>Google teilt Ihrem Kunden per Mail mit, '.
|
||||
'nach welchem Zeitraum ausgehend vom Bestelleingang die bestellten Artikel versendet werden. Geben Sie hier '.
|
||||
'den für Normalfälle größten Zeitraum bis zum Versand in Tagen an (z.B. 3 bei "1 bis 3 Tage"). Nach dem '.
|
||||
'voraussichtlichen Versanddatum erhält der Kunde eine Umfrage zum abgeschlossenen Kauf.</p><p>Fällt der '.
|
||||
'errechnete Termin auf ein Wochenende oder einen festen Feiertag, wird der nächstmögliche Termin verwendet. '.
|
||||
'Bewegliche und regionale Feiertage werden nicht berücksichtigt. Um die Liste der Ausnahmen anzupassen, '.
|
||||
'erweitern Sie die Überladung der thankyou-Klasse entsprechend.</p>',
|
||||
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER' => 'Zeitraum vom Versand bis zur Lieferung beim '.
|
||||
'Empfänger',
|
||||
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER_DAYS' => 'Werktag(e)',
|
||||
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER_DESC' => '<p>Google teilt Ihrem Kunden per Mail mit, '.
|
||||
'nach welchem Zeitraum die bestellten Artikel in der Regel beim Kunden eintreffen. Geben Sie hier den für '.
|
||||
'Normalfälle größten Zeitraum für die Lieferung in Tagen an (z.B. 4 bei "1 bis 4 Tage"). Der errechnete '.
|
||||
'Termin wird dem Kunden per Mail mitgeteilt.</p><p>Fällt der errechnete Termin auf ein Wochenende oder einen '.
|
||||
'festen Feiertag, wird der nächstmögliche Termin verwendet. Bewegliche und regionale Feiertage werden nicht '.
|
||||
'berücksichtigt. Um die Liste der Ausnahmen anzupassen, erweitern Sie die Überladung der thankyou-Klasse '.
|
||||
'entsprechend.</p>',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPING' => 'Verbindung zu Google Shopping',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGACTIVE' => 'zusätzliche Daten aus Google Shopping '.
|
||||
'übertragen',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGACTIVE_DESC' => 'Verwenden Sie Google Shopping und möchten '.
|
||||
'zusätzliche Daten zur Identifizierung übertragen, setzen Sie diesen Haken. Die folgenden Angaben sind dann '.
|
||||
'ebenfalls erforderlich.',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGACCOUNTID' => 'Google Shopping Kontonummer',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGACCOUNTID_DESC' => 'Tragen Sie hier die Kontonummer (Account ID) '.
|
||||
'aus Google Shopping ein.',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGCOUNTRY' => 'Kürzel des Landes Ihres Google Shopping-Kontos',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGCOUNTRY_DESC' => 'Geben Sie hier das Land Ihres Google Shopping '.
|
||||
'Kontos an. Erwartet wird der ISO-3166-Ländercode (z.B.: DE, CH, AT, FR).',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGLANGUAGE' => 'Kürzel der Sprache Ihres Google Shopping-Kontos',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGLANGUAGE_DESC' => 'Geben Sie hier die Sprache Ihres Google '.
|
||||
'Shopping Kontos an. Erwartet wird der ISO-639-1-Sprachcode (z.B.: de, en, fr).',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGARTID' => 'Identifikation Ihrer Artikel bei Google '.
|
||||
'Shopping',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_ARTNUM' => 'Artikelnummer (oxartnum)',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_OXID' => 'interne Ident-Nummer (oxid)',
|
||||
'D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_DESC' => 'Über welches Feld kann Google Shopping die '.
|
||||
'dort hinterlegten Artikel identfizieren?',
|
||||
|
||||
'D3_GOOGLEANALYTICS_METADATA_TITLE' => 'Google Analytics Schnittstelle',
|
||||
'D3_GOOGLEANALYTICS_METADATA_DESC' => 'Dieses Modul stellt Ihnen die schnelle und '.
|
||||
'unkomplizierte Einbindung Ihres Google-Analytics-Kontos in Ihren Shop zur Verfügung. Hierbei werden '.
|
||||
|
@ -0,0 +1,226 @@
|
||||
[{include file="headitem.tpl" title="D3_GOOGLEANALYTICS_CFG_TITLE"|oxmultilangassign}]
|
||||
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
[{if $updatelist == 1}]
|
||||
UpdateList('[{$oxid}]');
|
||||
[{/if}]
|
||||
|
||||
function UpdateList( sID)
|
||||
{
|
||||
var oSearch = parent.list.document.getElementById("search");
|
||||
oSearch.oxid.value=sID;
|
||||
oSearch.fnc.value='';
|
||||
oSearch.submit();
|
||||
}
|
||||
|
||||
function EditThis( sID)
|
||||
{
|
||||
var oTransfer = document.getElementById("transfer");
|
||||
oTransfer.oxid.value=sID;
|
||||
oTransfer.cl.value='';
|
||||
oTransfer.submit();
|
||||
|
||||
var oSearch = parent.list.document.getElementById("search");
|
||||
oSearch.actedit.value = 0;
|
||||
oSearch.oxid.value=sID;
|
||||
oSearch.submit();
|
||||
}
|
||||
|
||||
function _groupExp(el) {
|
||||
var _cur = el.parentNode;
|
||||
|
||||
if (_cur.className == "exp") _cur.className = "";
|
||||
else _cur.className = "exp";
|
||||
}
|
||||
|
||||
-->
|
||||
</script>
|
||||
|
||||
<style type="text/css">
|
||||
<!--
|
||||
fieldset {
|
||||
border: 1px inset black;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
|
||||
legend {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
dl dt {
|
||||
font-weight: normal;
|
||||
width: 55%;
|
||||
}
|
||||
|
||||
.ext_edittext {
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
td.edittext {
|
||||
white-space: normal;
|
||||
}
|
||||
-->
|
||||
</style>
|
||||
|
||||
[{if $readonly}]
|
||||
[{assign var="readonly" value="readonly disabled"}]
|
||||
[{else}]
|
||||
[{assign var="readonly" value=""}]
|
||||
[{/if}]
|
||||
|
||||
<form name="transfer" id="transfer" action="[{$oViewConf->getSelfLink()}]" method="post">
|
||||
[{$oViewConf->getHiddenSid()}]
|
||||
<input type="hidden" name="oxid" value="[{$oxid}]">
|
||||
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
|
||||
<input type="hidden" name="actshop" value="[{$shop->id}]">
|
||||
<input type="hidden" name="editlanguage" value="[{$editlanguage}]">
|
||||
</form>
|
||||
|
||||
<form name="myedit" id="myedit" action="[{$oViewConf->getSelfLink()}]" method="post">
|
||||
[{$oViewConf->getHiddenSid()}]
|
||||
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
|
||||
<input type="hidden" name="fnc" value="save">
|
||||
<input type="hidden" name="oxid" value="[{$oxid}]">
|
||||
<input type="hidden" name="editval[oxid]" value="[{$oxid}]">
|
||||
|
||||
<table border="0" width="98%">
|
||||
<tr>
|
||||
<td valign="top" class="edittext">
|
||||
|
||||
<div class="groupExp">
|
||||
<div class="">
|
||||
<a class="rc" onclick="_groupExp(this); return false;" href="#">
|
||||
<span style="font-weight: bold;">
|
||||
[{oxmultilang ident="D3_GOOGLEANALYTICS_MAIN"}]
|
||||
</span>
|
||||
</a>
|
||||
<dl>
|
||||
<dt>
|
||||
<label for="sD3GATSActive">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_ACTIVE"}]</label>
|
||||
</dt>
|
||||
<dd>
|
||||
<input type="hidden" name="" value="0">
|
||||
<input id="sD3GATSActive" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('sD3GATSActive')}]checked[{/if}] name="value[sD3GATSActive]">
|
||||
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_ACTIVE_DESC"}]
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
<label for="sD3GATSId">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_ID"}]</label>
|
||||
</dt>
|
||||
<dd>
|
||||
<input id="sD3GATSId" class="edittext ext_edittext" type="text" size="15" maxlength="20" value="[{$edit->getValue('sD3GATSId')}]" name="value[sD3GATSId]">
|
||||
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_ID_DESC"}]
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
<label for="iEstShippingTimeValue">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER"}]</label>
|
||||
</dt>
|
||||
<dd>
|
||||
<input id="iEstShippingTimeValue" type="text" name="value[iEstShippingTimeValue]" class="edittext ext_edittext" size="3" maxlength="5" value="[{if $edit->getValue('iEstShippingTimeValue')}][{$edit->getValue('iEstShippingTimeValue')}][{else}]1[{/if}]" [{$readonly}]>
|
||||
[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DAYS"}]
|
||||
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DESC"}]
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
<label for="iEstDeliveryTimeValue">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER"}]</label>
|
||||
</dt>
|
||||
<dd>
|
||||
<input id="iEstDeliveryTimeValue" type="text" name="value[iEstDeliveryTimeValue]" class="edittext ext_edittext" size="3" maxlength="5" value="[{if $edit->getValue('iEstDeliveryTimeValue')}][{$edit->getValue('iEstDeliveryTimeValue')}][{else}]1[{/if}]" [{$readonly}]>
|
||||
[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER_DAYS"}]
|
||||
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER_DESC"}]
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="groupExp">
|
||||
<div class="">
|
||||
<a class="rc" onclick="_groupExp(this); return false;" href="#">
|
||||
<span style="font-weight: bold;">
|
||||
[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_SHOPPING"}]
|
||||
</span>
|
||||
</a>
|
||||
<dl>
|
||||
<dt>
|
||||
<label for="sD3GATSShoppingActive">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_SHOPPINGACTIVE"}]</label>
|
||||
</dt>
|
||||
<dd>
|
||||
<input type="hidden" name="" value="0">
|
||||
<input id="sD3GATSShoppingActive" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('sD3GATSShoppingActive')}]checked[{/if}] name="value[sD3GATSShoppingActive]">
|
||||
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_SHOPPINGACTIVE_DESC"}]
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
<label for="sD3GATSShoppingAccountId">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_SHOPPINGACCOUNTID"}]</label>
|
||||
</dt>
|
||||
<dd>
|
||||
<input type="text" id="sD3GATSShoppingAccountId" class="edittext ext_edittext" value="[{if $edit->getValue('sD3GATSShoppingAccountId')}][{$edit->getValue('sD3GATSShoppingAccountId')}][{/if}]" size="20" maxlength="20" name="value[sD3GATSShoppingAccountId]">
|
||||
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_SHOPPINGACCOUNTID_DESC"}]
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
<label for="sD3GATSShoppingCountry">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_SHOPPINGCOUNTRY"}]</label>
|
||||
</dt>
|
||||
<dd>
|
||||
<input type="text" id="sD3GATSShoppingCountry" class="edittext ext_edittext" value="[{if $edit->getValue('sD3GATSShoppingCountry')}][{$edit->getValue('sD3GATSShoppingCountry')}][{else}]DE[{/if}]" size="5" maxlength="2" name="value[sD3GATSShoppingCountry]">
|
||||
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_SHOPPINGCOUNTRY_DESC"}]
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
<label for="sD3GATSShoppingLanguage">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_SHOPPINGLANGUAGE"}]</label>
|
||||
</dt>
|
||||
<dd>
|
||||
<input type="text" id="sD3GATSShoppingLanguage" class="edittext ext_edittext" value="[{if $edit->getValue('sD3GATSShoppingLanguage')}][{$edit->getValue('sD3GATSShoppingLanguage')}][{else}]de[{/if}]" size="5" maxlength="2" name="value[sD3GATSShoppingLanguage]">
|
||||
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_SHOPPINGLANGUAGE_DESC"}]
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
<label for="sD3GATSShoppingArtId">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_SHOPPINGARTID"}]</label>
|
||||
</dt>
|
||||
<dd>
|
||||
<select id="sD3GATSShoppingArtId" name="value[sD3GATSShoppingArtId]" size="1" class="edittext ext_edittext">
|
||||
<option value="oxartnum" [{if $edit->getValue('sD3GATSShoppingArtId') == 'oxartnum'}]selected[{/if}]>[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_ARTNUM"}]</option>
|
||||
<option value="oxid" [{if $edit->getValue('sD3GATSShoppingArtId') == 'oxid'}]selected[{/if}]>[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_OXID"}]</option>
|
||||
</select>
|
||||
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_DESC"}]
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td class="edittext ext_edittext" align="left"><br>
|
||||
<span class="d3modcfg_btn icon status_ok">
|
||||
<input type="submit" name="save" value="[{oxmultilang ident="D3_CFG_MOD_GENERAL_SAVE"}]">
|
||||
<span></span>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
[{assign var="incpath" value=$oViewConf->getModulePath('d3modcfg_lib')|cat:"views/admin/tpl/d3_cfg_mod_inc.tpl"}]
|
||||
[{include file="d3_cfg_mod_inc.tpl"}]
|
||||
|
||||
<script type="text/javascript">
|
||||
if (parent.parent) {
|
||||
parent.parent.sShopTitle = "[{$actshopobj->oxshops__oxname->getRawValue()|oxaddslashes}]";
|
||||
parent.parent.sMenuItem = "[{oxmultilang ident="d3mxgoogleanalytics"}]";
|
||||
parent.parent.sMenuSubItem = "[{oxmultilang ident="d3tbclgoogleanalytics_main"}]";
|
||||
parent.parent.sWorkArea = "[{$_act}]";
|
||||
parent.parent.setTitle();
|
||||
}
|
||||
</script>
|
@ -1,3 +1,6 @@
|
||||
=> 3.3.0.0
|
||||
- Google Zertifierte Händler eingefügt
|
||||
|
||||
=> 3.2.1.0
|
||||
- neue Option "Opt Out anzeigen lassen"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user