add weekday and feastday handling

This commit is contained in:
Daniel Seifert 2014-10-16 09:29:53 +00:00
parent ea39bbfad1
commit fdcea4d82b
4 changed files with 200 additions and 59 deletions

View File

@ -46,11 +46,11 @@
<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')}]</span>
<span id="gts-o-shipping-total">[{$oOrder->getFieldData('oxdelcost')}]</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()}]</span>
<span id="gts-o-est-ship-date">[{$oView->d3GAgetEstimatedShippingDate()}]</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-est-has-preorder">[{$oView->d3GAhasBackorderPreorder()}]</span>
<span id="gts-o-est-has-digital">[{$oView->d3GAhasDigitalGoods()}]</span>
<!-- end order and merchant information -->

View File

@ -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
*/
@ -67,7 +86,7 @@ class d3_thankyou_googleanalytics extends d3_thankyou_googleanalytics_parent
*/
public function d3GAgetEstimatedShippingDate()
{
return $this->d3GAgetEstimatedDate('iEstShippingTimeValue');
return $this->_d3GAgetEstimatedDate('iEstShippingTimeValue', time());
}
/**
@ -75,22 +94,60 @@ class d3_thankyou_googleanalytics extends d3_thankyou_googleanalytics_parent
*/
public function d3GAgetEstimatedDeliveryDate()
{
return $this->d3GAgetEstimatedDate('iEstDeliveryTimeValue');
$iShippingDate = $this->d3GAgetEstimatedShippingDate();
return $this->_d3GAgetEstimatedDate('iEstDeliveryTimeValue', $iShippingDate);
}
/**
* @param $sModCfgVarName
* @param string $sModCfgVarName
* @param int $iTimestamp
*
* @return string
* @return int
*/
public function d3GAgetEstimatedDate($sModCfgVarName)
protected function _d3GAgetEstimatedDate($sModCfgVarName, $iTimestamp)
{
$iTimeValue = d3_cfg_mod::get($this->_sModCfgId)->getValue($sModCfgVarName);
$iTimestamp = strtotime('+ ' . $iTimeValue . ' day', $iTimestamp);
return date(
'Y-m-d',
strtotime('+ '.$iTimeValue.' day')
);
do {
$this->_blD3GADateChanged = false;
$iTimestamp = $this->_d3GAavoidIdlePeriod($iTimestamp);
} while ($this->_blD3GADateChanged === true);
return $iTimestamp;
}
/**
* @param $iTimestamp
*
* @return int
*/
protected function _d3GAavoidIdlePeriod($iTimestamp)
{
$iWeekday = date('N', $iTimestamp);
if (in_array($iWeekday, $this->aD3GAWeekendDays)) {
$iOffset = 8 - $iWeekday;
$iTimestamp = strtotime('+ '.$iOffset.' day', $iTimestamp);
$this->_blD3GADateChanged = true;
}
return $this->_d3GAavoidFeastDays($iTimestamp);
}
/**
* @param $iTimestamp
*
* @return int
*/
protected function _d3GAavoidFeastDays($iTimestamp)
{
while (in_array(date('d-m', $iTimestamp), $this->aD3GAfixFeastDays)) {
$iTimestamp = strtotime('+ 1 day', $iTimestamp);
$this->_blD3GADateChanged = true;
}
return $iTimestamp;
}
/**
@ -101,12 +158,7 @@ class d3_thankyou_googleanalytics extends d3_thankyou_googleanalytics_parent
if (oxRegistry::getConfig()->getConfigParam('blUseStock')) {
/** @var oxorderarticle $oOrderArticle */
foreach ($this->getOrder()->getOrderArticles() as $oOrderArticle) {
/** @var oxarticle $oArticle */
$oArticle = $oOrderArticle->getArticle();
if ($oArticle->getFieldData('oxstockflag') != 4 // Fremdlager
&& $oOrderArticle->getFieldData('oxamount') > $oOrderArticle->getFieldData('oxstock')
) {
if ($this->_d3GAhasArticleBackorderPreorder($oOrderArticle)) {
return 'Y';
}
};
@ -115,6 +167,25 @@ class d3_thankyou_googleanalytics extends d3_thankyou_googleanalytics_parent
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
*/
@ -123,19 +194,8 @@ class d3_thankyou_googleanalytics extends d3_thankyou_googleanalytics_parent
if (oxRegistry::getConfig()->getConfigParam('blUseStock')) {
/** @var oxorderarticle $oOrderArticle */
foreach ($this->getOrder()->getOrderArticles() as $oOrderArticle) {
/** @var oxarticle $oArticle */
$oArticle = $oOrderArticle->getArticle();
$aArticleFiles = $oArticle->getArticleFiles();
if ($oArticle->getFieldData('oxisdownloadable')
&& count($aArticleFiles)
) {
/** @var oxfile $oArticleFile */
foreach ($aArticleFiles as $oArticleFile) {
if ($oArticleFile->getFieldData('oxpurchasedonly')) {
return 'Y';
}
}
if ($this->_d3GAhasArticleDigitalGoods($oOrderArticle)) {
return 'Y';
}
};
}
@ -143,6 +203,45 @@ class d3_thankyou_googleanalytics extends d3_thankyou_googleanalytics_parent
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
*

View File

@ -278,25 +278,46 @@ $aLang = array(
'D3_GOOGLEANALYTICS_TS_ACTIVE' => 'Trusted Store aktivieren',
'D3_GOOGLEANALYTICS_TS_ID' => 'Trusted Store-ID',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER' => 'durchschnittliches Versanddatum ab Lager nach Bestelleingang',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DAYS' => 'Tag(e)',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DESC' => 'Google erwartet die Aussage, nach welchem Zeitraum ausgehend vom Bestelleingang die bestellten Artikel versendet werden. Geben Sie hier größten Zeitraum in Tagen an (z.B. 3 bei "1 bis 3 Tage"). Der genannte Termin wird dem Kunden per Mail mitgeteilt. Nach dem voraussichtlichen Versanddatum erhält der Kunde eine Umfrage zum abgeschlossenen Kauf.',
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER' => 'durchschnittliches Lieferdatum beim Kunden nach Bestelleingang',
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER_DAYS' => 'Tag(e)',
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER_DESC' => 'Google erwartet die Aussage, nach welchem Zeitraum ausgehend vom Bestelleingang die bestellten Artikel in der Regel beim Kunden eintreffen. Geben Sie hier größten Zeitraum in Tagen an (z.B. 7 bei "5 bis 7 Tage"). Der genannte Termin wird dem Kunden per Mail mitgeteilt.',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER' => 'Zeitraum vom Bestelleingang bis zum Versand',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DAYS' => 'Kalendertag(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' => 'Kalendertag(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_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_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_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_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_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 '.

View File

@ -275,27 +275,48 @@ $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&uuml;gt und nicht geparst.',
'D3_GOOGLEANALYTICS_TS_ACTIVE' => 'activate Trusted Store',
'D3_GOOGLEANALYTICS_TS_ACTIVE' => 'Trusted Store aktivieren',
'D3_GOOGLEANALYTICS_TS_ID' => 'Trusted Store-ID',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER' => 'durchschnittliches Versanddatum ab Lager nach Bestelleingang',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DAYS' => 'Tag(e)',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DESC' => 'Google erwartet die Aussage, nach welchem Zeitraum ausgehend vom Bestelleingang die bestellten Artikel versendet werden. Geben Sie hier größten Zeitraum in Tagen an (z.B. 3 bei "1 bis 3 Tage"). Der genannte Termin wird dem Kunden per Mail mitgeteilt. Nach dem voraussichtlichen Versanddatum erhält der Kunde eine Umfrage zum abgeschlossenen Kauf.',
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER' => 'durchschnittliches Lieferdatum beim Kunden nach Bestelleingang',
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER_DAYS' => 'Tag(e)',
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER_DESC' => 'Google erwartet die Aussage, nach welchem Zeitraum ausgehend vom Bestelleingang die bestellten Artikel in der Regel beim Kunden eintreffen. Geben Sie hier größten Zeitraum in Tagen an (z.B. 7 bei "5 bis 7 Tage"). Der genannte Termin wird dem Kunden per Mail mitgeteilt.',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER' => 'Zeitraum vom Bestelleingang bis zum Versand',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DAYS' => 'Kalendertag(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' => 'Kalendertag(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_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_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_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_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_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 '.