oxArticleInputException

Hi zusammen,

folgender Sachverhalt liefert nachfolgenden Exception im Errorlog. Ich habe mir einen Artikel in den Warenkorb gelegt und surfe fröhlich weiter. In der Zwischenzeit legt ein Kunde genau diesen, letzten verfügbaren Artikel in den Warenkorb und kauft diesen, also schließt den Checkoutprozess ab, so dass der Artikel weg ist.

Dann gehe ich wieder auf den Shop, möchte mir den Warenkorb ansehen, bzw. gibts schon eine Exception, da ja der Miniwarenkorb auch ein Warenkorb ist, die wie folgt lautet:


---------------------------------------------
oxArticleInputException-oxArticleException-oxException (time: 2012-12-28 12:33:10): [0]: EXCEPTION_ARTICLE_ARTICELNOTBUYABLE 
 Stack Trace: #0 /html/oxid/core/oxutilsobject.php(125): oxUtilsObject->_getObject('oxarticleinpute...', 0, Array)
#1 /html/oxid/core/oxfunctions.php(314): oxUtilsObject->oxNew('oxArticleInputE...')
#2 /html/oxid/core/oxbasketitem.php(481): oxNew()
#3 /html/oxid/modules/wn_basketnovarlink/bnv_oxbasketitem.php(23): oxBasketItem->getArticle(Array, Array)
#4 /html/oxid/core/oxbasketitem.php(418): bnv_oxbasketitem->getArticle('oxArticleInputE...')
#5 /html/oxid/tmp/8f60ce0ea9e53d3f4abdff37cb3b850b^%%F0^F0A^F0A819D2%%topmini_basket.tpl.php(32): oxBasketItem->getIconUrl(true, NULL, false)
#6 /html/oxid/core/smarty/Smarty.class.php(1263): include('/html/oxid/tmp/...')
#7 /html/oxid/core/smarty/plugins/function.oxid_include_dynamic.php(68): Smarty->fetch()
#8 /html/oxid/tmp/8f60ce0ea9e53d3f4abdff37cb3b850b^%%94^94B^94B8B1F0%%_header.tpl.php(319): smarty_function_oxid_include_dynamic()
#9 /html/oxid/core/smarty/Smarty.class.php(1869): include('/html/oxid/tmp/...')
#10 /html/oxid/tmp/8f60ce0ea9e53d3f4abdff37cb3b850b^%%52^524^524E7B19%%basket.tpl.php(7): Smarty->_smarty_include('dyn/topmini_bas...')
#11 /html/oxid/core/smarty/Smarty.class.php(1263): include('/html/oxid/tmp/...')
#12 /html/oxid/views/oxshopcontrol.php(446): Smarty->fetch(Array, Object(Smarty))
#13 /html/oxid/views/oxshopcontrol.php(317): oxShopControl->_render(Array)
#14 /html/oxid/views/oxshopcontrol.php(114): oxShopControl->_process('page/checkout/b...', 'ox|0|0|0|0')
#15 /html/oxid/modules/d3log/views/d3_oxshopcontrol_errorhandler.php(14): oxShopControl->start(Object(efi_paypal_basket))
#16 /html/oxid/modules/d3clrtmp/views/d3_oxshopcontrol_clrtmp.php(19): d3_oxshopcontrol_errorhandler->start('basket', NULL)
#17 /html/oxid/modules/su/su_shopcontrol.php(31): d3_oxshopcontrol_clrtmp->start()
#18 /html/oxid/index.php(103): su_shopcontrol->start()
#19 /html/oxid/oxseo.php(46): require('/html/oxid/inde...')
#20 {main}

 Faulty Article --> mticafae0b6c325188deeb6cf2f1bef8

Jemand eine Idee, wie man die Exception vermeiden kann?

So, wenn ich die Funktion oxBasketItem->getIconUrl() aus dem Minibasket-Template nehme und ich klicke nochmal auf den Warenkorb, so kommt zumindest keine Fehlermeldung mehr und der Warenkorb wird geladen, der Artikel wird entfernt und alle Positionen zeigen komplett 0 an.

Bei einem weiteren Reload / Klick auf Warenkorb kommt dann die Fehlermeldung: Artikel nicht kaufbar

Was meiner Meinung dann sofort kommen sollte… Aber getIconUrl muss doch eigentlich so funktionieren. Bin also immer noch auf der Suche…

Sodalle, hier mal der komplette Code von topmini_basket.tpl, der Aufruf [{$basketitem->getIconUrl()} schlägt fehl und verhindert das komplette Laden des Shops nach obigem Sachverhalt.

Code:


<div id="topminibasket">
	[{oxhasrights ident="TOBASKET"}]
	[{if $oxcmp_basket->getContents()}]
	[{assign var="currency" value=$oView->getActCurrency() }]
	<a href="[{ oxgetseourl ident=$oViewConf->getSslSelfLink()|cat:"cl=basket" }]" rel="nofollow" title="[{ oxmultilang ident="TO_BASKET_TITLE" }]" onfocus="this.blur();">
	<span id="minibasket">
	    <span class="quantity">[{ $oxcmp_basket->getItemsCount()}] [{ oxmultilang ident="BASKET_ARTICLES" }]</span> - <span class="order">[{ $oxcmp_basket->getFProductsPrice()}] [{ $currency->sign}]</span>
	</span>
	</a>
	
	<div id="topbasketlist">
		<div class="wrapper">

			[{foreach from=$oxcmp_basket->getContents() name=miniBasketList item=basketitem}]
				<div class="listitem">
				[{ assign var="sRightListArtTitle" value=$basketitem->getTitle() }]
					<a href="[{$basketitem->getLink()}]" class="picture">
						<img src="[{$basketitem->getIconUrl()}]" alt="[{ $sRightListArtTitle|strip_tags }]">
					</a>
				<a href="[{$basketitem->getLink()}]">[{ $sRightListArtTitle|strip_tags }]</a><br>
	      ([{$basketitem->getAmount()}] [{ oxmultilang ident="INC_CMP_BASKET_QTY" }] / [{ $basketitem->getFUnitPrice()}] [{ $currency->sign}])
				</div>
			[{/foreach}]
			<div class="divider dark"></div>
			<span class="btn"><a href="[{ oxgetseourl ident=$oViewConf->getSslSelfLink()|cat:"cl=basket" }]" rel="nofollow" title="[{ oxmultilang ident="TO_BASKET_TITLE" }]" onfocus="this.blur();">[{ oxmultilang ident="TO_BASKET_TITLE" }]</a></span>
		</div>
	</div>
	
	[{else}]
	<a href="[{ oxgetseourl ident=$oViewConf->getSslSelfLink()|cat:"cl=basket" }]" rel="nofollow" title="[{ oxmultilang ident="TO_BASKET_TITLE" }]" onfocus="this.blur();">
		<span id="minibasket">
		    <span class="quantity">[{ oxmultilang ident="BASKET_EMPTYSHIPPINGCART_SMALL" }]</span>
		</span>
	</a>
	[{/if}]
	[{/oxhasrights}]
</div>

Irgendwie strange, dass man das Icon nicht geladen bekommt…

So, hat sich hiermit erledigt:


			[{assign var="basketitemlist" value=$oxcmp_basket->getBasketArticles() }]
			[{foreach key=basketindex from=$oxcmp_basket->getContents() name=miniBasketList item=basketitem}]
			[{assign var="basketproduct" value=$basketitemlist.$basketindex }]
				<div class="listitem">
				[{ assign var="sRightListArtTitle" value=$basketitem->getTitle() }]
					<a href="[{$basketitem->getLink()}]" class="picture">
						<img src="[{$basketproduct->getIconUrl()}]" alt="[{ $sRightListArtTitle|strip_tags }]">
					</a>
				<a href="[{$basketitem->getLink()}]">[{ $sRightListArtTitle|strip_tags }]</a><br>
	      ([{$basketitem->getAmount()}] [{ oxmultilang ident="INC_CMP_BASKET_QTY" }] / [{ $basketitem->getFUnitPrice()}] [{ $currency->sign}])
				</div>
			[{/foreach}]