Modul Direktbestellung: Artikel mit Artikelnummer direkt in den Warenkorb

[QUOTE=avenger;23635]Keine gute Idee, wenn es Varianten/Auswahllisten gibt.
[/QUOTE]
Hm, bisher hat das aber auch mit Varianten super geklappt, es gibt sehr viele Varianten in dem Shop (alle mit eigener Artikelnummer natürlich). Sehe da irgendwie grad das Problem nicht so recht?

[QUOTE=avenger;23635]
Da musst Du die andere Fehlermeldung definieren, weil jetzt ja nur eine Situation ausgewertet wird…

Statt “EXCEPTION_ARTICLE_ARTICELDOESNOTEXIST” muss in diesem Fall “EXCEPTION_ARTICLE_ARTICELNOTBUYABLE” ausgegeben werden.

Evtl. müsste auch noch auf “EXCEPTION_OUTOFSTOCK_OUTOFSTOCK” geprüft werden.
[/QUOTE]

Ah ok, hab jetzt mal das gemacht:


if($oArticle->isParentNotBuyable())
{
     $oEx = oxNew( 'oxNoArticleException' );
     $oLang = oxLang::getInstance();	          
     $oEx->setMessage( sprintf($oLang->translateString( 'EXCEPTION_ARTICLE_ARTICELNOTBUYABLE', $oLang->getBaseLanguage() ), $artnum) );
     oxUtilsView::getInstance()->addErrorToDisplay( $oEx );	           
}

Funktioniert mal wieder nur “fast” :). Jetzt bekomme ich in meinem inkludierten Template die Fehlermeldungungen richtig ausgegen, aber auf meiner extra Seite gibts noch das Problem, dass wenn der Artikel nicht kaufbar ist, dann wird jetzt 2mal “Artikel ist nicht kaufbar” ausgegeben. Wieso weiß ich nicht?

Ich hab die Lösung selbst gefunden :D.


if($oArticle->isParentNotBuyable())
{
      $oEx = oxNew( 'oxArticleInputException' );              
      $oLang = oxLang::getInstance();	          
      $oEx->setMessage( sprintf($oLang->translateString( 'EXCEPTION_ARTICLE_ARTICELNOTBUYABLE', $oLang->getBaseLanguage() ), $artnum) );
      $NoArticle=true;          
}

Nun wird die Ausgabe der Fehlermeldung nur in der “NoArtikel” Bedingung ausgegeben.

Wenn du vielleicht noch mal kurz erläutern könntest, wieso es u.U. zu einem Problem mit den Varianten oder Auswahllisten kommen kann, wenn ich die Zeile

$oxUtils->redirect( $oxdetaillink, false, 302 );

auskommentiere, bin ich wunschlos glücklich :). Danke schon mal!!!

Ich möchte diesen Thread nochmal aufnehmen.

Ich habe die Erweiterungen von avenger installiert und die Schnellbestellung funktioniert für einen Artikel.
Ich brauche aber eine Erweiterung, die eine Liste von Bestellung/Anzahl z.B. aus einer Datei,
abarbeitet. Wie muss ich das Modul pt_oxcmp_basket.php erweitern,
das es eine Liste von Bestellungen abarbeitet.
Es geht wahrscheinlich nur um das “richtige” Redirect nach der einzelnen Bestellausführung per parent::tobasket($sOXID,$am);
Ich sehe aber nicht, wo ich da was setzen kann.

Kann mir da jemand einen Ansatzpunkt geben?

Gruß
Michael

Hallo zusammen,

ich würde gerne das Modul zur Direktbestellung bei mir einfügen. Ich habe dazu auch den Post von avenger gelesen, allerdings ist das schon gute 2 Jahre alt und ich bekomme es leider nicht hin.

ich hänge speziell hier:

[QUOTE=avenger;23401]Folgend ist der Code für das Modul zum Subclassen der “[B]tobasket[/B]”-Funktion von “[B]views/oxcmp_basket.php[/B]”

Ich habe direkt die “[B]tobasket[/B]”-Funktion überladen, und teile der über den zusätzlichen Parameter “fast=true” mit, dass eine Schnellbestellung abgewickelt werden soll.

Als Modul eingebunden wird das folgende Modul über:

oxcmp_basket => powertemplate/pt_oxcmp_basket/pt_oxcmp_basket[/CODE
[/QUOTE]

An welcher Stelle in der oxcmp_basket.php füge ich denn das ein?

oxcmp_basket => powertemplate/pt_oxcmp_basket/pt_oxcmp_basket



Danke für jeden Tipp!
Viele Grüße,
jschma

[B]EDIT[/B]
Für alle die auch so auf dem Schlauch standen wie ich: Der Part muss selbstverständlich im Backend unter Module eingetragen werden!

Eine kleine Rückfrage noch: Wenn ein Artikel bestellt werden möchte der überhaupt nicht existiert bekomme ich ein “Artikel nicht mehr verfügbar” ausgespielt. Die Fehlermeldung passt nicht so 100%. An welcher Stelle kann ich die Ausgabe den anpassen? :confused:

Danke & Grüße,
jschma

[B]genau sowas suche ich[/B], funktioniert das auch mit der aktuellen Version? Die Beiträge sind ja schon etwas älter…

Wäre super wenn mir jemand helfen könnte das zusammenzufassen, so das ich das vielleicht auch verstehe.

Nachdem ich letztes Jahr nur stille Nutznießerin des Moduls war, möchte ich mich dieses Jahr damit bedanken, die Änderungen bekannt zu geben, die bei mir für die aktuelle Oxid-Version 4.8.6 erforderlich waren:
Anstelle von $sOXID=$rs->fields[‘oxid’]; ging es bei mir nur mit $sOXID=$rs->fields[0];
Anstelle von $aVariantList=$oArticle->getVariantList(); muss es jetzt $aVariantList=$oArticle->getVariants(); heißen
Die letzte Abfrage if (is_array($aSelList) && sizeof($aSelList)>0) musste ich komplett ausblenden.

Der Shop, in dem ich getestet habe, enthält zwar Varianten, aber jede davon hat eine andere Artikelnummer. Daher garantiere ich nicht dafür, dass es jetzt auch noch für andere Variantenformen läuft.