Verwendung von Kombination der Versandkosten

Begonnen von SimoneSt, November 18, 2014, 17:57:40

« vorheriges - nächstes »

0 Mitglieder und 2 Gäste betrachten dieses Thema.

SimoneSt

Hallo,

ich kämpfe derzeit mit der Einstellung der Versandkosten für unseren Onlineshop (den wir gerade aufsetzen).

Eckdaten zum Versand:
* wir arbeiten mit verschiedenen Lieferzonen, die unterschiedliche Versandkosten haben sollen (nur 1 Wert pro Lieferzone, keine Staffelung wg. Gewicht oder Preis)
* wir haben einzelne Artikel, die über Spedition rausgehen, und die einen festen Versandbetrag bekommen sollen (dann aber nur den und nicht noch den Wert für die Lieferzone extra) bzw. mehrfach, wenn sie eben mehrfach bestellt werden
* wir möchten einzelne Artikel versandkostenfrei anlegen (z.B. Gutscheine, die wir per Mail versenden). Werden diese zusammen mit anderen Artikeln bestellt, sollen jedoch die regulären Versandkosten greifen.

Ich habe mit den verschiedenen Optionen rumprobiert und komme auf keinen grünen Zweig.
Entweder macht mit ein "freier" Artikel (XSHIPPING 99F) den ganzen Warenkorb frei, sogar Artikel mit einem 50D oder es werden zu den Artikeln mit festen Versandkosten noch die Werte der Lieferzone dazu addiert.

Ich scheine die richtige Kombination noch nicht gefunden zu haben, denn das muss sich ja irgendwie einstellen lassen; so besonders sind unsere Vorstellungen ja nicht.

Hat jemand Tipps für  mich?

Merci vorab
Simone

dobra

Hallo SimoneST,

es gibt unzählige Möglichkeiten, die Versandkosten zu berechne und wenn man dann Kombinationen braucht wird das dann schon sehr kompliziert  ::)

Wenn ich davon ausgehe, dass es keine "gestaffelten" Speditionskosten gibt (also pro Zone nur EIN Preis wenn irgendwelche speditionsversendeten Artikel im WK liegen, ist vielleicht dies Lösung möglich:

1)  bei Händler -> Versandkosten muss bei "Versandkosten" und "Bis Betrag" 0 stehen.


2) Bei "Lieferzonen" -> Versandkosten darf ebenfalls nichts eingetragen sein

3) die Versandkosten werden ausschließlich mit ssp berechnet.
Dazu das benutzerdef. Artikelfeld "GEWICHT" anlegen (hat aber nichts mit dem Artikelgewicht zu tun ;) )

4) in stdall.ipl schreiben:
<!--spmacro:module(defs)
#Versandkosten abhängig vom
    my ($zone) = ssp::get_cart_zone();

    if ($zone == 1) {$verskosttab = [
[0,0,0],[1,999,5.50],[999,99999999999999,55]
];
}
    if ($zone == 2) {$verskosttab =[
[0,0,0],[1,999,9.90],[999,99999999999999,120]
];
}
    if ($zone >= 3) {$verskosttab =[
[0,0,0],[1,99999,12.90],[999,99999999999999,200]
];
}

-->

<!--spmacro:module(Callback)

$vsumme = 0;
$gewichtsumme =0;

sub invoice_addpos {
      my $ref_gesamt = $_[0];
      my $ref_gesamt_steuer = $_[2];

      my $anzahl = ssp::get_cart_items();

  my $ust = $_[3]/100;
      my $netto = $_[4];

      for (my $i = 0;$i <= $anzahl;++$i) {
            my $wert = ssp::get_var_cart('anzahl',$i)*ssp::get_var_cart('GEWICHT',$i);
            $gewichtsumme +=  $wert;
      }
      foreach my $i (@{$defs::verskosttab}) {
            ssp::trace("$i->[0] $i->[1] $i->[2]\n");
            if (($i->[0] <= $gewichtsumme) && ($gewichtsumme < $i->[1])) {
              $vsumme = $i->[2];
              break;
            }
      }

      if ($netto > 0) {
            $$ref_gesamt +=  $vsumme;
            $$ref_gesamt_steuer +=  $vsumme*$ust;
      } else {
            $$ref_gesamt += $vsumme;
            $$ref_gesamt_steuer +=  $vsumme*(1-1/(1-$ust));
      }
      ssp::trace("+++++ invoice_addpos $$ref_gesamt $$ref_gesamt_netto $$ref_gesamt_steuer\n");
}
-->

<!--spmacro:module(versk)

# Gesamtsumme der Versandkosten
sub versk  {
   main::mprint(main::fp($Callback::vsumme));
}


5) jetzt bei allen Artikeln im neuen Feld GEWICHT "1" eintragen (geht in einem Rutsch mit "Artikel suchen/ersetzen").
Dann bei den Gutscheinen (bzw. den Artikeln bei denen keine Versandkosten berechnet werden sollen) den Wert auf "0" ändern.
Die Speditions-Artikel bekommen "999"

6)  die Scriptanpassung:

    if ($zone == 1) {$verskosttab = [
      [0,0,0],[1,999,5.50],[999,99999999999999,55]
      ];
   }
"normale" Versandkosten für diese Zone - Speditionskosten für diese Zone
    if ($zone == 2) {$verskosttab =[
      [0,0,0],[1,999,9.90],[999,99999999999999,120]
      ];
   }
    if ($zone >= 3) {$verskosttab =[
      [0,0,0],[1,99999,12.90],[999,99999999999999,200]
      ];
   }

(möglicherweise müssen auch die "if" Bedingungen angepasst werden - also welche Zonen in welche Versandkostenklasse fallen)

7) und zuletzt:
im WK, Bestellablauf und Mailvorlagen alle __versand__ mit __versk::versk__ ersetzen.

Funktioniert dann so, wie Sie es wollten:
liegen ausschließlich Gutscheine im WK -> Versandkosten 0
sobald ein oder mehrere anderer Artikel dazu bestellt werden, werden der "normalen" Versandkosten berechnet.
Liegt mindestens ein Speditionsartikel in WK, werden EINMAL die Speditionskosten berechnet, egal wieviele andere Artikel mit bestellt werden.
Alles natürlich jeweils abhängig von der Lieferzone.

Voraussetzung: es dürfen maximal 998 Artikel mit normalen VK bestellt werden, denn der Gewichtswert wird ja addiert = ab 999 Artikeln gilt es als "mit Spedition".
mfG
dobra

SimoneSt

Hallo dobra,

vielen Dank für die ausführliche Erläuterung!

Leider funktioniert das so bei uns nicht, weil wir 2 unterschiedliche Speditionssätze haben, die auch ggf. mehrfach berechnet werden müssen.
(wir haben Boote und Paddel als Speditionsartikel, Paddel=30EUR, Boot = 50EUR, Boot+Paddel=80EUR, 2 Boote = 100EUR, etc.)

Der Ansatz mit der Direktberechnung eines Frachtanteils (z.B. 50D) finde ich an sich ja ganz praktisch. Leider kommen die vorhandenen Bordmittel halt bei einigen Konstellationen an die Grenzen. 


Viele Grüsse
Simone