Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Wer kann SHIPPING_BOX_PADDING erklären?

    fishnet

    • Fördermitglied
    • Beiträge: 4.821
    • Geschlecht:
    Wer kann SHIPPING_BOX_PADDING erklären?
    am: 22. September 2016, 18:06:25
    Besser bekannt als "Bei grösseren Leerpaketen - Gewichtszuwachs in %."

    Was genau macht diese Funktion?
    Was ist ein größeres Leerpaket und wo lege ich das fest ?   :-?

    Linkback: https://www.modified-shop.org/forum/index.php?topic=35762.0

    p3e

    • Experte
    • Beiträge: 2.424
    Re: Wer kann SHIPPING_BOX_PADDING erklären?
    Antwort #1 am: 22. September 2016, 18:12:54
    Wenn dein kleiner Karton 500g wiegt benötigst du für größere Kartons eine Formel, um das ungefähre Verpackungsgewicht zu berechnen. Der Shop kann ja nicht immer davon ausgehen, dass alles in deinen kleinsten Karton passt.
    Genau das macht diese Funktion: Sie versucht durch eine Formel einzuschätzen, um wieviel schwerer die Verpackung bei höheren Bestellmengen wird.

    fishnet

    • Fördermitglied
    • Beiträge: 4.821
    • Geschlecht:
    Re: Wer kann SHIPPING_BOX_PADDING erklären?
    Antwort #2 am: 22. September 2016, 19:24:20
    Was ist ein größerer Karton?
    Was sind höhere Bestellmengen?
    Wo wird das eingestellt?

    p3e

    • Experte
    • Beiträge: 2.424
    Re: Wer kann SHIPPING_BOX_PADDING erklären?
    Antwort #3 am: 22. September 2016, 19:47:21
    Das sind Erfahrungswerte, die bei jedem anders sind. Als ich damals meinem ersten Shop eingerichtet habe, habe ich der Versandtabteilung eine Tabelle zum ausfüllen gegeben, wo die Bestellnummer, Verpackungsgewicht und das Gewicht des Paketes mit der Ware notieren mussten.
    Dann habe ich ein wenig mit den Zahlen gespielt und hatte relativ schnell eine annähernd gute Berechnung des Versandgewichtes im Shop. Dann habe ich noch 200g zur Sicherheit draufgepackt und musste seitdem nichts mehr ändern.
    Innerhalb Deutschlands verschicke ich zwar zum Pauschalpreis aber im Ausland nach Gewicht und gerade da ist es ärgerlich, wenn das nicht halbwegs gut funktioniert. Kleine Ausreißer nach oben oder unten kann man jedoch nicht vermeiden.

    fishnet

    • Fördermitglied
    • Beiträge: 4.821
    • Geschlecht:
    Re: Wer kann SHIPPING_BOX_PADDING erklären?
    Antwort #4 am: 22. September 2016, 19:49:22
    Ich glaube ich muss anders fragen.
    Woher weiß der Shop was ein "größerer Karton" und "höhere Bestellmengen" sind ?

    p3e

    • Experte
    • Beiträge: 2.424
    Re: Wer kann SHIPPING_BOX_PADDING erklären?
    Antwort #5 am: 22. September 2016, 19:56:53
    An der Summe der Artikelgewichte der Bestellung.

    Bei mir funktioniert die im Shop hinterlegte Formel erstaunlich gut und es reichte ein wenig mit dem Leergewicht und den %en zu spielen um eine praktikable Lösung zu finden.

    Eventuell muss man die Funktion sonst noch erweitern.

    fishnet

    • Fördermitglied
    • Beiträge: 4.821
    • Geschlecht:
    Re: Wer kann SHIPPING_BOX_PADDING erklären?
    Antwort #6 am: 22. September 2016, 20:03:30
    Jetzt kommen wir der Sache langsam näher.

    Die Summe der Artikelgewichte ist ab welchem Gewicht genau ein "größeres Paket"?

    Gibt es dafür ein Eingabefeld das ich noch nicht kenne oder steht das hardcoded irgendwo im PHP Code ?

    Evtl. ist das auch ein Mißverständnis: mir geht es nicht darum wie man es benutzt ("rumprobieren") sondern wie es programmiert ist.

    p3e

    • Experte
    • Beiträge: 2.424
    Re: Wer kann SHIPPING_BOX_PADDING erklären?
    Antwort #7 am: 22. September 2016, 20:09:38
    Es gibt nur die zwei Felder. Bei mir hat das gereicht.
    Der Rest ist PHP. Mehr kann ich dazu nicht sagen.

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Wer kann SHIPPING_BOX_PADDING erklären?
    Antwort #8 am: 22. September 2016, 23:38:10
    [...]
    Evtl. ist das auch ein Mißverständnis: mir geht es nicht darum wie man es benutzt ("rumprobieren") sondern wie es programmiert ist.

    So ist es programmiert

    Code: PHP  [Auswählen]
            $shipping_weight = $total_weight;

            if (SHIPPING_BOX_WEIGHT >= $shipping_weight*SHIPPING_BOX_PADDING/100) {
              $shipping_weight = $shipping_weight+SHIPPING_BOX_WEIGHT;
            } else {
              $shipping_weight = $shipping_weight + ($shipping_weight*SHIPPING_BOX_PADDING/100);
            }

    und hier die komplette Funktion in der 'includes/classes/shipping.php' aus der obiges Fragment stammt

    Code: PHP  [Auswählen]
        function quote($method = '', $module = '') {
          global $total_weight, $shipping_weight, $shipping_quoted, $shipping_num_boxes;

          $quotes_array = array();

          if (is_array($this->modules)) {
            $shipping_quoted = '';
            $shipping_num_boxes = 1;
            $shipping_weight = $total_weight;

            if (SHIPPING_BOX_WEIGHT >= $shipping_weight*SHIPPING_BOX_PADDING/100) {
              $shipping_weight = $shipping_weight+SHIPPING_BOX_WEIGHT;
            } else {
              $shipping_weight = $shipping_weight + ($shipping_weight*SHIPPING_BOX_PADDING/100);
            }

            if ($shipping_weight > SHIPPING_MAX_WEIGHT) { // Split into many boxes
              $shipping_num_boxes = ceil($shipping_weight/SHIPPING_MAX_WEIGHT);
              $shipping_weight = $shipping_weight/$shipping_num_boxes;
            }

            $include_quotes = array();

            reset($this->modules);
            while (list(, $value) = each($this->modules)) {
              $class = substr($value, 0, strrpos($value, '.'));
              if (xtc_not_null($module) && isset($GLOBALS[$class])) {
                if ($module == $class && $GLOBALS[$class]->enabled) {
                  $include_quotes[] = $class;
                }
              } elseif ($GLOBALS[$class]->enabled) {
                $include_quotes[] = $class;
              }
            }

             for ($i=0, $size = sizeof($include_quotes); $i<$size; $i++) {
              $quotes = $GLOBALS[$include_quotes[$i]]->quote($method);
              if (is_array($quotes)) $quotes_array[] = $quotes;
            }
          }

          return $quotes_array;
        }

    Angenommen man macht im Admin unter Konfiguration -> Versand Optionen folgende Einträge

    Maximalgewicht, das als ein Paket versendet werden kann = 50 (Maximalgewicht für ein Paket 50kg)
    Paketleergewicht = 3 (Paketleergewicht 3kg)
    Bei grösseren Leerpaketen - Gewichtszuwachs in % = 10 (10% Gewichtszuwachs)

    dann würden daraus folgende Beispiele resultieren.

    Beispiel1:
    Wenn das Gewicht aller Produkte 13kg beträgt, ergibt sich ein  Versandgewicht von 16kg, weil 10% von 13kg kleiner als das Paketleergewicht von 3kg ist wird zum Gewicht aller Produkte (13kg) das Paketleergewicht (3kg) dazu gerechnet.

    Beispiel2:
    Wenn das Gewicht aller Produkte 32kg beträgt, ergibt sich ein  Versandgewicht von 35,2kg, weil 10% von 32kg grösser als das Paketleergewicht von 3kg ist wird zum Gewicht aller Produkte (32kg) 10%  dazu gerechnet.

    Gruss
    Hanspeter

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Wer kann SHIPPING_BOX_PADDING erklären?
    Antwort #9 am: 23. September 2016, 09:48:17
    Nachtrag:

    Würde in den Versand Optionen anstatt das

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    zum Beispiel das stehen

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    hätte fishnet die Frage wahrscheinlich gar nicht gestellt.

    Gruss
    Hanspeter

    fishnet

    • Fördermitglied
    • Beiträge: 4.821
    • Geschlecht:
    Re: Wer kann SHIPPING_BOX_PADDING erklären?
    Antwort #10 am: 23. September 2016, 12:35:36
    Richtig, danke !  :thumbs:
    3 Antworten
    2401 Aufrufe
    04. Februar 2015, 16:22:56 von voodoopupp
    3 Antworten
    2653 Aufrufe
    28. Mai 2015, 22:32:13 von webald
    3 Antworten
    2472 Aufrufe
    23. März 2012, 23:06:10 von jannemann
    7 Antworten
    2494 Aufrufe
    05. Juli 2016, 07:34:37 von NG1GO