Quantcast
Channel: OXID Community Forum
Viewing all articles
Browse latest Browse all 6951

Bundles lassen sich nicht konfigurieren

$
0
0
Hallo :D

Ich habe einen Konfigurator welcher (in Kurzfassung) im Backend den Kategorien oder Artikeln Auswahllisten hinzufügen kann. Im Frontend steht dann in der Artikelseite, als auch im Warenkorb unter dem Artikel, eine Auswahlliste als DropDownMenu. Dies funktioniert auch gut, außer bei Bundles im Warenkorb.

Damit die Änderungen, welche man in dem Warenkorb durchführen kann, auch übernommen werden, habe ich ein kleines Script welches bei click die Seite neu ladet. Die Änderungen bei den Artikeln werden übernommen, jedoch nicht die Änderungen bei Bundles (es wird einfach auf die Standardmäßige Auswahl zurückgesetzt).

Mich wundert das, da in der DB die Bundles zwar in einer eigenen Zeile aufgelistet werden, jedoch nur Verbindungen zu den Artikeln sind.

Falls wer Zeit / Lust oder eine Herausforderung sucht kann mir gerne helfen :D

PHP Code:

<?php

class hi_bundles_basket extends hi_bundles_basket_parent{

    
    protected function 
_addBundles()
    {
        
// iterating through articles and binding bundles
        
foreach ( $this->_aBasketContents as $key => $oBasketItem ) {
            try {
                
// adding discount type bundles
                
if ( !$oBasketItem->isDiscountArticle() && !$oBasketItem->isBundle() ) {
                    
$aBundles $this->_getItemBundles$oBasketItem );
                } else {
                    continue;
                }
    
                
$this->_addBundlesToBasket$aBundles );
    
                
// adding item type bundles
                
$aBundles $this->_getArticleBundles$oBasketItem );

                
// adding bundles to basket
                
$this->_addBundlesToBasket$aBundles );
                
                
                
//hook :)
                
$db oxDB::getDb();
                
$db_res $db->getAll("SELECT article, SUM(amount) FROM hi_article_in_bundle WHERE bundle IN (SELECT bundle FROM hi_bundle2article WHERE article = ".$db->quote($oBasketItem->getProductId()).") GROUP BY article" );
                
                
                
//$aBundles = array();
                
foreach($db_res as $row){
                    
//echo $row[0]." - ".$row[1]."<br>";
                    
$addToBasket $db->getOne("SELECT 1 FROM oxarticles WHERE oxid = ".$db->quote($row[0])." AND ( oxactive = 1 OR ( CURRENT_TIMESTAMP >= oxactivefrom AND CURRENT_TIMESTAMP <= oxactiveto ))");
                    
                    if(
$addToBasket){
                        
$bi parent::addToBasket($row[0],  $row[1]*$oBasketItem->getAmount(), falsenullnulltrue);
                    
//    $bi->setAsDiscountArticle( false );
                        
                    
} else {
                        die(
$row[0]." Produkt existiert nicht");
                        
//DO NOT ADD WHEN INACTIVE.. error instead..
                    
}
                }
                
// end hook :)
            

            catch ( 
oxNoArticleException $oEx ) {
            
//    $this->removeItem( $key );
                
oxUtilsView::getInstance()->addErrorToDisplay$oEx );
            } 
            catch( 
oxArticleInputException $oEx ) {
            
//    $this->removeItem( $key );
                
oxUtilsView::getInstance()->addErrorToDisplay$oEx );
            }
        }
    
        
// adding global basket bundles
        
if ( $aBundles $this->_getBasketBundles() ) {
            
$this->_addBundlesToBasket$aBundles );
        }

    }    
}

EDIT: Dass ist das model für die Bundles.

Viewing all articles
Browse latest Browse all 6951

Trending Articles