WBCE Home | WBCE Hilfe | WBCE Addon Repository | Impressum | Datenschutz

WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 29.08.2018 11:36:23

florian
Projektmanagement und Support WBCE CMS

Fehler in Bakery: Verkäufe ohne Lagerbestand immer möglich

Es scheint, dass seit dem Sicherheitsupdate (Bakery Version 1.84) PHP 7.x Verkäufe ohne ausreichenden Lagerbestand auch dann möglich sind, wenn dies gar nicht erwünscht ist. Früher war das Verhalten so, dass beim Platzieren eines Produkts im Warenkorb mit Lagerbestand = 0 eine Fehlermeldung angezeigt worden ist und das Produkt nicht in den Warenkorb gelegt werden konnte. Das funktioniert jetzt nicht mehr, das Verhalten ist immer so, als sei die Option "Verkäufe ohne ausreichenden Lagerbestand zulassen" immer aktiviert.

Es wäre schön, wenn sich das mal wer anschauen könnte.

Last edited by florian (30.08.2018 07:45:27)

Offline

#2 29.08.2018 18:49:23

florian
Projektmanagement und Support WBCE CMS

Re: Fehler in Bakery: Verkäufe ohne Lagerbestand immer möglich

Gefunden. view.php

if (is_numeric($stock) && !empty($stock)) {

ändern zu

if (is_numeric($stock)) {

Es gibt aber noch weitere Unstimmigkeiten.

Last edited by florian (30.08.2018 07:45:02)

Offline

#3 11.02.2019 20:07:08

trici
Member

Re: Fehler in Bakery: Verkäufe ohne Lagerbestand immer möglich

Ich habe nun zusätzlich das Problem, wenn der Lagerbestand leergelassen wird zeigt es immer "not available" an, also als wäre er Null. Kann man das auch noch beheben?
Vielen Dank schon mal fürs anschauen.

Offline

#4 11.02.2019 20:28:38

florian
Projektmanagement und Support WBCE CMS

Re: Fehler in Bakery: Verkäufe ohne Lagerbestand immer möglich

Versuch mal, o.g. Zeile in der view.php ändern zu

if (is_numeric($stock) || empty($stock)) {

dann ist die Bedingung erfüllt, wenn der Lagerbestand "eine Zahl oder leer" ist, anstatt von nur "eine Zahl" oder, wie es vorher war, "eine Zahl und nicht leer".

Offline

#5 16.02.2019 19:33:13

trici
Member

Re: Fehler in Bakery: Verkäufe ohne Lagerbestand immer möglich

Vielen Dank fürs Nachschauen.
Der erste Vorschlag:

if (is_numeric($stock)) {

ist okay, der 2. Vorschlag produziert einen Fehler, wenn man etwas aus dem Warenkorb löscht.

Ich glaube meine Problem liegt eher bei der Textanzeige des Lagerbestands. Wenn der Lagerbestand leer ist, sollte kein Text erscheinen und wenn der Lagerbestand auf Null gesetzt ist, sollte stehen "nicht lieferbar". Nun wird jedoch überall auf den Platzhalter $MOD_BAKERY['TXT_N/A'] zugegriffen und es steht überall k.A., ausser ich gebe eine Zahl ein beim Lagerbestand, die nicht Null ist, dann steht wie gewünscht nichts.

Offline

#6 16.02.2019 21:19:35

florian
Projektmanagement und Support WBCE CMS

Re: Fehler in Bakery: Verkäufe ohne Lagerbestand immer möglich

ist okay, der 2. Vorschlag produziert einen Fehler, wenn man etwas aus dem Warenkorb löscht.

Kann ich nicht reproduzieren. Was für ein Fehler erscheint denn?
Oder meinst Du den Hinweis "Der Warenkorb ist leer"?

Die gewünschte Ausgabe des Textes ist ja noch was anderes. Dafür muss in der view_item.php und view_overview.php der Code

// Only show if item stock is not blank
	if ((empty($item_stock) && $item_stock!=0) && $setting_stock_mode != 'none') {
		$stock = $MOD_BAKERY['TXT_N/A'];
	} else {
		// Display number of items
		if ($setting_stock_mode == 'number') {
			if ($item_stock < 1) {
				$stock = 0;
			} else {
				$stock = $item_stock;
			}
		// Display stock image
		} elseif ($setting_stock_mode == 'img' && is_numeric($setting_stock_limit) && !empty($setting_stock_limit)) {
			if ($item_stock < 1) {
				$stock = '<img src="'.WB_URL.'/modules/bakery/images/out_of_stock.gif" alt="'.$MOD_BAKERY['TXT_OUT_OF_STOCK'].'" class="mod_bakery_item_stock_img_f" />';
			} elseif ($item_stock > $setting_stock_limit) {
				$stock = '<img src="'.WB_URL.'/modules/bakery/images/in_stock.gif" alt="'.$MOD_BAKERY['TXT_IN_STOCK'].'" class="mod_bakery_item_stock_img_f" />';
			} else {
				$stock = '<img src="'.WB_URL.'/modules/bakery/images/short_of_stock.gif" alt="'.$MOD_BAKERY['TXT_SHORT_OF_STOCK'].'" class="mod_bakery_item_stock_img_f" />';
		}
		// Display stock text message			
		} elseif ($setting_stock_mode == 'text' && is_numeric($setting_stock_limit) && !empty($setting_stock_limit)) {
			if ($item_stock < 1) {
				$stock = '<span class="mod_bakery_item_out_of_stock_f">'.$MOD_BAKERY['TXT_OUT_OF_STOCK'].'</span>';
			} elseif ($item_stock > $setting_stock_limit) {
				$stock = '<span class="mod_bakery_item_in_stock_f">'.$MOD_BAKERY['TXT_IN_STOCK'].'</span>';
			} else {
				$stock = '<span class="mod_bakery_item_short_of_stock_f">'.$MOD_BAKERY['TXT_SHORT_OF_STOCK'].'</span>';
			}
		// Display nothing
		} else {
			$stock = '';
		}
	}

geändert werden zu (quick & dirty, ist jetzt nur für Textausgabe und nicht Zahl oder Bild angepasst)

if ($setting_stock_mode != 'none') {
			// Display number of items
			if ($setting_stock_mode == 'number') {
				if ($item_stock < 1) {
					$stock = 0;
				} else {
					$stock = $item_stock;
				}
			// Display stock image
			} elseif ($setting_stock_mode == 'img' && is_numeric($setting_stock_limit) && !empty($setting_stock_limit)) {
				if ($item_stock < 1) {
					$stock = '<img src="'.WB_URL.'/modules/bakery/images/out_of_stock.gif" alt="'.$MOD_BAKERY['TXT_OUT_OF_STOCK'].'" class="mod_bakery_main_stock_img_f" />';
				} elseif ($item_stock > $setting_stock_limit) {
					$stock = '<img src="'.WB_URL.'/modules/bakery/images/in_stock.gif" alt="'.$MOD_BAKERY['TXT_IN_STOCK'].'" class="mod_bakery_main_stock_img_f" />';
				} else {
					$stock = '<img src="'.WB_URL.'/modules/bakery/images/short_of_stock.gif" alt="'.$MOD_BAKERY['TXT_SHORT_OF_STOCK'].'" class="mod_bakery_main_stock_img_f" />';
			}
			// Display stock text message			
			} elseif ($setting_stock_mode == 'text') {
				if ($item_stock!='') {
					if ($item_stock < 1) {
						$stock = '<span class="mod_bakery_main_out_of_stock_f">'.$MOD_BAKERY['TXT_OUT_OF_STOCK'].'</span>';
					} elseif ($item_stock > $setting_stock_limit) {
						$stock = '<span class="mod_bakery_main_in_stock_f">'.$MOD_BAKERY['TXT_IN_STOCK'].'</span>';
					} else {
						$stock = '<span class="mod_bakery_main_short_of_stock_f">'.$MOD_BAKERY['TXT_SHORT_OF_STOCK'].'</span>';
					}
				} else {
					$stock='';
				}
			} else {
				$stock = '';
			}
		}

Offline

#7 16.02.2019 22:04:00

trici
Member

Re: Fehler in Bakery: Verkäufe ohne Lagerbestand immer möglich

Vielen Dank quick & dirty ist perfekt für mich!

Sorry, das war kein Fehler sondern eine Warnmeldung:
Warning: A non-numeric value encountered in .../modules/bakery/view.php on line 371
Aber wie ich nun merkte, wird der Lagerbestand immer auf Null gesetzt statt leer gelassen, wenn ich den Code auf
if (is_numeric($stock) || empty($stock)) { 
ändere.
Die Warnmeldung kam glaube ich erst, als ich nachträglich den Code änderte und ich schon etwas im Warenkorb hatte.

Offline

Board footer

Powered by FluxBB

up