Versandkosten Versandarten + Versandregeln (CE)

hallo liebe community,

nach erfolgreicher installation von oxid ce habe ich bereits artikel angelegt und teste nun die versandarten und versandregeln. leider ist mir einiges unklar.

ich habe die va und vr nach der anleitung in der hilfe (handbuch) angelegt und ausprobiert.

ich biete den versand für produkt a für 2,95 an (funktioniert)
produkt b mit einem aufschlag von 2,00 (funktioniert)
normale versandkosten deutschlandweit für 4,95 (funktioniert)
produkt c normale versandkosten deutschlandweit aufschlag 4,00 (funktioniert)
und ab 80,00 versandkosten frei (funktioniert nicht)
europa versand pauschal 17,95 (funktioniert)

im bestellvorgang (schritt 3 bezahlen) wenn ein kunde zb. artikel a,b,+c erwirbt werden 8,95 berechnet was ja ok ist. aber er hat die wahl die versandkosten auszuwählen (drop down box)

einmal 8,95
und versand für 4,95

was natürlich keinen sinn macht.

spielt die reienfolge der versankostenregel eine rolle?
muss man die kategorien unbedingt zuordnen oder reicht es nur die artikel den versandkostenregeln zuzuordnen?

habe viel probiert und komme leider nicht weiter. hat jemand eine lösung für dieses problem?

vielen dank im vorraus

NoSpam

Hi,

die Versandkostenregelmodi von Oxid mit ausschließlich Auf- oder Abschlag zu rechnen, sind derzeit nicht praxisgerecht.

Ich habe ein kleines Modul angepaßt, mit dem Du definieren kannst, dass eine Regel ABSOLUT angewendet wird, dh. ihr Preis wird unabhängig von allen vorher angewendeten Regeln gesetzt. ZB versandkostenfrei (Preis 0) egal wie oft vorher +2, +1, -3 oder sonstwas gerechnet wurde.

Wenn man das nicht hat, kommt man schnell zu negativen Preisen.

Das Modul greift, wenn der Name der Regel mit “fix” beginnt.

Grüße,
Achim

<?php
/*
* Adds ability to set "flat amount" (in an absolute way, not as reduction or augmentation)
* Engage by naming a rule "fix[restoftitle]"
* Filename: modules/mybasket.php
* Add this line to System/Modules: oxbasket => mybasket
*/

class mybasket extends mybasket_parent{

/**
     * Iterates through basket items and calculates its delivery costs
     *
     * @return oxPrice
     */
    protected function _calcDeliveryCost()
    {
        if ( $this->_oDeliveryPrice !== null ) {
            return $this->_oDeliveryPrice;
        }
        $myConfig  = $this->getConfig();
        $oDeliveryPrice = oxNew( 'oxprice' );
        $oDeliveryPrice->setBruttoPriceMode();

        // don't calculate if not logged in
        $oUser = $this->getBasketUser();

        if ( !$oUser && !$myConfig->getConfigParam( 'blCalculateDelCostIfNotLoggedIn' ) ) {
            return $oDeliveryPrice;
        }

        // VAT for delivery ?
        $fDelVATPercent = 0;
        if ( $myConfig->getConfigParam( 'blCalcVATForDelivery' ) ) {
            $fDelVATPercent = $this->getMostUsedVatPercent();
            $oDeliveryPrice->setVat( $fDelVATPercent );
        }

        // list of active delivery costs
        if ( $myConfig->getConfigParam('bl_perfLoadDelivery') ) {
            $aDeliveryList = oxDeliveryList::getInstance()->getDeliveryList( $this,
                                        $oUser,
                                        $this->_findDelivCountry(),
                                        $this->getShippingId()
                                    );

            if ( count( $aDeliveryList ) > 0 ) {
                foreach ( $aDeliveryList as $oDelivery ) {
                    //debug trace
                    if ( $myConfig->getConfigParam( 'iDebug' ) == 5 ) {
                        echo( "DelCost : ".$oDelivery->oxdelivery__oxtitle->value."<br>" );
                    }
					
					//added logic for resetting delprice to zero before fix-rule is engaged
					if ( substr($oDelivery->oxdelivery__oxtitle->value,0,3)==="fix" ) {
					$oDeliveryPrice->setPrice( 0 );
                    }
					// end added logic
					
					$oDeliveryPrice->addPrice( $oDelivery->getDeliveryPrice( $fDelVATPercent ) );
                }
            }
        }

        return $oDeliveryPrice;
    }

	
}	
?>

Wow, vielen Dank für deine Hilfe! Das werde ich gleich mal ausprobieren. Ich schlag mir hier schon die ein oder andere Nacht um die Ohren, damit das endlich mal klappt. Vielleicht klappt das ja mit Deinem Modul…, schön wärs!!!

Auf jeden Fall ist das mit den Versandkosten ein wirkliches Drama. Da gibt es doch einige Leute, die damit verzweifeln. Was ich da schon alles gelesen hab: Datenbank kommt durcheinander, Regeln greifen nicht wirklich, auch wenn man alles nach Handbuch eingestellt hat etc.pp. Wirklich Logisch ist das ganz nicht…oder ich seh den Wald vor lauter Bäumen nicht!

Wie sollte ich da dann Deiner Meinung nach vorgehen, um es Praxisgerecht zu gestalten???

Seh ich das richtig, das ich dann eine mybasket.php erstelle (mit deinem Code,) und diese unter modules hochlade und dann das module aktiviere mit:

oxbasket => mybasket

???

Beste Grüße und Danke

NoSpamPlease

[QUOTE=NoSpamPlease;29875]

Seh ich das richtig, das ich dann eine mybasket.php erstelle (mit deinem Code,) und diese unter modules hochlade und dann das module aktiviere mit:

oxbasket => mybasket

[/QUOTE]

Genau wie Du sagst.

Ansonsten:

Am besten alle Regeln außer den gewichtsabhängigen (die müssen ja tatsächlich hinzuaddieren) als fix-Regel definieren.

Als erste den normalen Preis, dann mit absteigenden Kosten die reduzierten, zuletzt jene, die eine Versandkostenfreiheit erzeugen.


Bevor Du verzweifelst immer daran denken:

Regeln greifen erst, wenn alles zugeordnet wurde:

Versandart / Versandregel / Länder / Benutzergruppe.

Und bei den Artikeln darauf achten, dass man nur die Ausnahmen zuordnet - solange kein Artikel zugeordnet ist, gilt die Regel für alle - ist einer zugeordnet, dann nur für diesen und für alle anderen nicht.

Die Logik ist schon da, man verheddert sich nur leicht darin.

Viel Erfolg,
Achim

Vielen Dank für Deine Hilfe…

Das Thema hat sich mittlerweile erledigt. Hab noch mal alles Rausgeschmissen und neu angelegt…und siehe da…es funzt. Trotzdem werde ich mir Dein Modul nochmal anschauen.

Auf eine Versandkostenregel musste ich allerdings dabei Verzichten…, aber passt schon.

Sehr Spooky das ganze!

Trotzdem nochmal vielen Dank für Deine Hilfe!!! :o

Hallo@all!

Ich habe das obrige gerade aus ausprobiert. Leider

Hab mir Gott sei Dank am Sonntag noch alle alten Daten auf dem Server gesichert - aber wohl vollkommen umsonst.

Folgende Fehlermeldungen hab ich jetzt:

Warning: Cannot modify header information - headers already sent by (output started at /var/kunden/webs/bla/core/oxoutput.php:199) in /var/kunden/webs/bla/core/oxutils.php on line 1042

Warning: Cannot modify header information - headers already sent by (output started at /var/kunden/webs/bla/core/oxoutput.php:199) in /var/kunden/webs/bla/core/oxutils.php on line 1043

Warning: Cannot modify header information - headers already sent by (output started at /var/kunden/webs/bla/core/oxoutput.php:199) in /var/kunden/webs/bla/core/oxutils.php on line 1044

Warning: Cannot modify header information - headers already sent by (output started at /var/kunden/webs/bla/core/oxoutput.php:199) in /var/kunden/webs/bla/core/exception/oxexceptionhandler.php on line 178

Warning: Cannot modify header information - headers already sent by (output started at /var/kunden/webs/bla/core/oxoutput.php:199) in /var/kunden/webs/bla/core/exception/oxexceptionhandler.php on line 179

Warning: Cannot modify header information - headers already sent by (output started at /var/kunden/webs/bla/core/oxoutput.php:199) in /var/kunden/webs/bla/core/exception/oxexceptionhandler.php on line 180

ich hab die mybaket.pnp rausgeschmissen und die Core-ersetzt… nix.

Kann mir zeitnahe bitte jemand helfen. DANKE!

zur Aktivierung des Moduls muss folgender Eintrag im Admin gesetzt werden:


* Add this line to System/Modules: oxbasket => mybasket

ist der noch drin?

/tmp geleert?
Views aktualisiert?

Tritt der Fehler nun nach Rücksicherung auf?
Rücksicherung binär übertragen?

[QUOTE=Hebsacker;65638]zur Aktivierung des Moduls muss folgender Eintrag im Admin gesetzt werden:


* Add this line to System/Modules: oxbasket => mybasket

ist der noch drin?

/tmp geleert?
Views aktualisiert?

Tritt der Fehler nun nach Rücksicherung auf?
Rücksicherung binär übertragen?[/QUOTE]

System Modules - kann ich nicht nachvollziehen weil ich mich nicht mehr einloggen kann.
Temp ist geleert
Views ebenfalls das Problem, komm ich nicht dran
und die Rücksicherung binär gemacht… Fehler bleibt :eek:

Ich war schon so dicht mit dem Freischalten - wenn diese Versandkostenproblematik nicht gewesen wäre… HEUL…

damit kannst Du via Frontend auf die Moduleinträge zugreifen:

ggf. die Zeile mit der Prüfung der admin-Anmeldung löschen

[B]DANKE!!![/B]

Jetzt erst mal einen Kaffee - und dann Kloppe ich mich mal weiter mit dem Versand rum… :confused::confused::confused:

Gibt es eigentlich da noch ein anderes Handbuch als das was man in der Hilfe findet - ich komme da nicht mit klar.

Gruß Petra

es gibt ein kostenfreies Modul, welches im Frontend eventuelle Fehler anzeigt:
http://www.oxid-esales.com/en/exchange/extensions/schnellcheck-versandarten

hier gibts ein paar allgemeine Hinweise:
http://www.oxid-esales.com/forum/showthread.php?t=7145

Ansonsten einfach mal kreuz und quer durchs Forum suchen nach “Versandkosten” oder “Versandkostenregel” - da gibts schon sehr viele Infos zu unterschiedlichsten Konstellationen.