add delivery time calculation for out of stock articles

This commit is contained in:
Daniel Seifert 2015-07-08 14:26:28 +00:00
parent 3742b80fb3
commit 97a9fc3284
5 changed files with 81 additions and 30 deletions

View File

@ -114,6 +114,11 @@ class d3_thankyou_googleanalytics extends d3_thankyou_googleanalytics_parent
*/
protected function _d3GAgetEstimatedDate($sModCfgVarName, $iTimestamp)
{
// change shipping time for not on stock articles
if ($sModCfgVarName == 'iEstShippingTimeValue' && $this->hasOutOfStockArticles()) {
$sModCfgVarName = 'iEstShippingTimeValueOutOfStock';
}
$iTimeValue = d3_cfg_mod::get($this->_sModCfgId)->getValue($sModCfgVarName);
for ($i = 0; $i < $iTimeValue; $i++) {
@ -174,16 +179,7 @@ class d3_thankyou_googleanalytics extends d3_thankyou_googleanalytics_parent
*/
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';
return $this->hasOutOfStockArticles() ? 'Y' : 'N';
}
/**
@ -210,14 +206,12 @@ class d3_thankyou_googleanalytics extends d3_thankyou_googleanalytics_parent
*/
public function d3GAhasDigitalGoods()
{
if (oxRegistry::getConfig()->getConfigParam('blUseStock')) {
/** @var oxorderarticle $oOrderArticle */
foreach ($this->getOrder()->getOrderArticles() as $oOrderArticle) {
if ($this->_d3GAhasArticleDigitalGoods($oOrderArticle)) {
return 'Y';
}
};
}
/** @var oxorderarticle $oOrderArticle */
foreach ($this->getOrder()->getOrderArticles() as $oOrderArticle) {
if ($this->_d3GAhasArticleDigitalGoods($oOrderArticle)) {
return 'Y';
}
};
return 'N';
}
@ -277,4 +271,20 @@ class d3_thankyou_googleanalytics extends d3_thankyou_googleanalytics_parent
return $oOrderArticle->getFieldData(d3_cfg_mod::get($this->_sModCfgId)->getValue('sD3GATSShoppingArtId'));
}
/**
* @return bool
*/
public function hasOutOfStockArticles()
{
if (oxRegistry::getConfig()->getConfigParam('blUseStock')) {
foreach ($this->getOrder()->getOrderArticles() as $oOrderArticle) {
if ($this->_d3GAhasArticleBackorderPreorder($oOrderArticle)) {
return true;
}
}
}
return false;
}
}

View File

@ -334,15 +334,27 @@ $aLang = array(
'in den Quelltext Ihres Shops ein. Ob Sie das Gütesiegel im Shop sehen, entscheidet jedoch nur Google intern. '.
'Sind Sie der Meinung, das Siegel sollte angezeigt werden, wenden Sie sich bitte an Ihren Betreuer bei Google.',
'D3_GOOGLEANALYTICS_TS_ID' => 'Konto-ID',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER' => 'Zeitraum vom Bestelleingang bis zum Versand',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER' => 'Zeitraum vom Bestelleingang bis zum Versand '.
'bei lagernden Artikeln',
'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>',
'den für am Lager befindlicher Artikel im Normalfall 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><p>Die '.
'Unterscheidung zwischen lagernden und nicht lagernden Artikeln wird nur bei aktivierter '.
'Lagerstandsverwaltung getroffen. Sonst werden alle Artikel als "lagernd" angesehen.</p>',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_OUTOFSTOCK' => 'Zeitraum vom Bestelleingang bis zum Versand '.
'bei <b>nicht</b> lagernden Artikeln',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTEROUTOFSTOCK_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 <b>nicht</b> am Lager befindlicher Artikel im Normalfall 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)',

View File

@ -334,15 +334,27 @@ $aLang = array(
'in den Quelltext Ihres Shops ein. Ob Sie das Gütesiegel im Shop sehen, entscheidet jedoch nur Google intern. '.
'Sind Sie der Meinung, das Siegel sollte angezeigt werden, wenden Sie sich bitte an Ihren Betreuer bei Google.',
'D3_GOOGLEANALYTICS_TS_ID' => 'account id',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER' => 'Zeitraum vom Bestelleingang bis zum Versand',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER' => 'Zeitraum vom Bestelleingang bis zum Versand '.
'bei lagernden Artikeln',
'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>',
'den für am Lager befindlicher Artikel im Normalfall 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><p>Die '.
'Unterscheidung zwischen lagernden und nicht lagernden Artikeln wird nur bei aktivierter '.
'Lagerstandsverwaltung getroffen. Sonst werden alle Artikel als "lagernd" angesehen.</p>',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_OUTOFSTOCK' => 'Zeitraum vom Bestelleingang bis zum Versand '.
'bei <b>nicht</b> lagernden Artikeln',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTEROUTOFSTOCK_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 <b>nicht</b> am Lager befindlicher Artikel im Normalfall 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)',

View File

@ -137,6 +137,16 @@
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="iEstShippingTimeValueOutOfStock">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_OUTOFSTOCK"}]</label>
</dt>
<dd>
<input id="iEstShippingTimeValueOutOfStock" type="text" name="value[iEstShippingTimeValueOutOfStock]" class="edittext ext_edittext" size="3" maxlength="5" value="[{if $edit->getValue('iEstShippingTimeValueOutOfStock')}][{$edit->getValue('iEstShippingTimeValueOutOfStock')}][{else}]1[{/if}]" [{$readonly}]>
[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DAYS"}]
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTEROUTOFSTOCK_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="iEstDeliveryTimeValue">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER"}]</label>

View File

@ -1,3 +1,10 @@
=> 3.3.1.0
- Lieferzeitangabe kann nun für lagernde und nicht lagernde Artikel getrennt angegeben werden
- Domainliste bei Verwendung mehrerer Shop-Domains korrigiert
- Schalter für Absprungratenermittlung integriert
- "Zertifizierte Händler"-Variablen werden nur gezeigt, wenn "Zertifizierter Händler" aktiv ist
- JS-Fehler bei unkonfigurierter Absprung-Zeit korrigiert
=> 3.3.0.1
- Kompatibilität zu Egate Media PayPal verbessert