Pfand/Depot Modul

Modul ist alkualisiert, auch für die CE ab 4.9.0. Jedoch musste für die Gruppenpreise wie folgt geändert werden:


'oxarticles__oxpricea' => $price,

ect, ect.

Das Modul auf Github: https://github.com/vendingtechnik/VTEC_Pfand

Danke an R. Nitzer für den Hinweis! :slight_smile:

LG Pasquale

Das kommt davon wenn man zu schnell ist…habe die Tipfehler in meinen Beitrag auch mal geändert. :smiley:

Da Pfandartikel als Artikel behandelt werden, werden sie auch bei Rabattaktionen, Discounts etc. berücksichtig. Wer das nicht möchte in der Funktion “PfandArtikelID”(vtec_oxbasket.php ab Zeile 75) um folgende makierte Zeile (zwischen den Rauten) ergänzen:


$oArticle->assign( array( 'oxarticles__active' => 1,
                          'oxarticles__oxprice' => $price,
                          // Pfandpreise für Gruppen
                          'oxarticles__oxprice'  => $price,
                          'oxarticles__oxpricea' => $price,
                          'oxarticles__oxpriceb' => $price,
                          'oxarticels__oxpricec' => $price,
                          'oxarticles__oxissearch' => 0,           
                          'oxarticles__oxpic1' => 'pfand.jpg',
                          'oxarticles__oxvat' => $vtec_mwst,
                          // ##### Berechne keine Rabatte, Gutscheine etc.
                          'oxarticles__oxskipdiscounts' => 1,
                          // #####
));

Hab das Modul auf Github aktualisiert.

Zu finden auf: https://github.com/vendingtechnik/VTEC_Pfand

Besten Dank für den Hinweis R. Nitzer.

LG Pasquale

Hey,

das Modul ist wirklich interessant.

Ich habe das Modul soweit installiert (Community Edition 4.10.6).

Im Backend funktioniert auch alles. Aber sobald ich Pfand im Backend eingebe und speicher, zeigt der mir den beim Artikel im Frontend an. Aber wenn ich diesen in den Warenkorb lege, zeigt der Shop nur noch eine weiße Seite an.

In der exception.log zeigt der nichts an. :frowning:

Jemand eine Idee?

Schöne Grüße

Hi,
versuch das mal:

$oxLang = oxRegistry::getLang();
.....
$vtec_mwst = oxRegistry::getConfig()->getConfigParam('vtec_pfand_mwst');

Super Danke hat funktionert :slight_smile:

@nickname, willst Du vielleicht einen Pull Request an dieses Repo schicken? https://github.com/OXIDprojects/VTEC_Pfand Wenn Du magst, kannst Du auch das Repo komplett übernehmen (ich geb Dir Schreibrechte). @vendingtechnik hat sich nach Südamerika abgesetzt :slight_smile:

Hi Marco,

ich kenne das Modul gar nicht.
JuMert hatte einen Codeschnipsel gepostet, den er jetzt komischerweise gelöscht hat.

Der betreffende Part ist im von Dir verlinkten Repo aber eh schon korrekt, es ist keine Änderung nötig. JuMert hatte scheinbar eine alte Version.

Hab mich auch gewundert. Bei uns läuft das Modul klaglos unter 4.10.

Ich hatte ein Post doppelt. Warum der den mit gelöscht hat keine Ahnung.

Datei vtec_oxbasket.php

Fehler Line 64

Ich hatte das Modul von GitHub.

@andoreen
Woher hast du denn die neuste Version?

Okay, cool.
Nachdem @vendingtechnik nicht mehr hier zu erwischen ist: Hat vielleicht trotzdem jemand Bock, das Modul zu übernehmen?

Das steht bei uns in der Funktion:

Das Forum nervt. Warum kann man keinen Code einfügen? Dann eben ohne.

Wobei die Zeile 64 eine Leerzeile ist.

Die Fett markierten habe ich eingefügt und die Zeilen darüber waren die alten.

/modules/vtec_pfand/vtec_oxbasket.php

protected function PfandArtikelID($price)
{
//$oxLang = oxLang::getInstance();
$oxLang = oxRegistry::getLang();
$title = $oxLang->translateString( ‘VTEC_PFAND’, 0);
//$vtec_mwst = oxConfig::getInstance()->getConfigParam(‘vtec_pfand_mwst’);
$vtec_mwst = oxRegistry::getConfig()->getConfigParam(‘vtec_pfand_mwst’);
$sSelect = “SELECT oxid FROM oxarticles WHERE oxtitle = '” . $title . “’ AND oxprice = '” . $price . “’ LIMIT 1”;

    $qResult = oxDb::getDb(ADODB_FETCH_ASSOC)->getOne($sSelect);
    if($qResult==false || $qResult==null) {
        $oArticle = oxNew("oxarticle");
        $aLangs= $oxLang->getLanguageIds();
        $oArticle->assign( array( 'oxarticles__active' => 1,
                                  'oxpicsgenerated'  => 0,
                                  'oxarticles__oxprice' => $price,
                                  'oxarticles__oxissearch' => 0,
                                  'oxarticles__oxpic1' => 'pfand.jpg',
                                  'oxarticles__oxvat' => $vtec_mwst,
                          ));
        $oArticle->save();

Hi,

das kann man schon, im Forum funktioniert die Markdown Syntax, zB.:

~~~
dein code
~~~

oder:

`dein code`

oder einfach 4 Leerzeichen am Zeilenanfang:

    dein code  

Markdown gibt´s übrigens auch (kostenlos) als alternativen Texteditor für OXID6 :sunglasses:

composer require ecs/markdown2oxid

Probieren wir es mal:

protected function PfandArtikelID($price)
    {
        
        $oxLang = oxRegistry::getLang(); // ab CE 4.9.0
        $title = $oxLang->translateString( 'VTEC_PFAND', 0);
        
        $vtec_mwst = oxRegistry::getConfig()->getConfigParam('vtec_pfand_mwst');    // ab CE 4.9.0
        $sSelect = "SELECT oxid FROM oxarticles WHERE oxtitle = '" . $title . "' AND oxprice = '" . $price . "' LIMIT 1";

        $qResult = oxDb::getDb(ADODB_FETCH_ASSOC)->getOne($sSelect);
        if($qResult==false || $qResult==null) {
            $oArticle = oxNew("oxarticle");
            $aLangs= $oxLang->getLanguageIds();
            $oArticle->assign( array( 'oxarticles__active' => 1,
                                      'oxarticles__oxprice' => $price,
                                      // Pfandpreise für Gruppen
                                      'oxarticles__oxprice'          => $price,
                                      'oxarticles__oxpricea'         => $price,
                                      'oxarticles__oxpriceb'         => $price,
                                      'oxarticels__oxpricec'         => $price,
                                      'oxarticles__oxissearch'       => 0,           
                                      'oxarticles__oxpic1'           => 'pfand.jpg',
                                      'oxarticles__oxvat'            => $vtec_mwst,
                                      // Pfandartikel von Rabatten ausschliessen
                                      'oxarticles__oxskipdiscounts'  => 1,
                              ));
            $oArticle->save();

            //foreach ($aLangs as $iLang){
            for($i=0; $i<count($aLangs); $i++) {
                $oArticle->setLanguage( $i );
                $oArticle->assign(array(
                    "oxarticles__oxtitle" => $oxLang->translateString( 'VTEC_PFAND', $i),
                ));
                $oArticle->save();
            }  
            $qResult = $oArticle->oxarticles__oxid->value;
        }

        return $qResult;
    }

Es kommt immer wieder "403 Forbidden"

Ich lass es.

Editieren ist auch nicht mehr möglich? 403 Forbidden

Ich lass es. In Zeile 64 ist ne Leerzeile. Bei Dir stimmt da wohl einiges nicht. Vergleich mal.

Edit: Test Geht. Ick werd daraus nicht schlau.