Opened 15 months ago

Last modified 12 months ago

#1899 new Neues Feature

Zonen in shipping_estimate.php zur Verfügung stellen

Reported by: noRiddle Owned by: somebody
Priority: normal Milestone: modified-shop-2.0.7.0
Component: Shop Version: 2.0.5.1

Description

In /includes/shipping_estimate.php sollte man die Zonen zur Verfügung stellen.
Wenn Bundesländer/Regionen? aktiviert sind (ACCOUNT_STATE == 'true') ist das sinnvoll, insbesondere wenn man ein Versandmodul benötigt welches die Versandkosten nach Bundesländern/Regionen? berechnet (benötigt z.B. für Frankreich, USA, Mexiko).
Ohne die Erweiterung bekommt man als nicht eingeloggter Kunde keine Anzeige von Versandkosten im Warenkorb, bzw. sieht der Kunde "Es ist kein Versand in dieses Land möglich!" oder "Die Versandkosten können im Moment nicht berechnet werden." o.Ä..

Vorschlag:

//BOC default added zone_id for federalstates modules, 09-2020, noRiddle
  //$order->delivery['zone_id'] = 0;
  if(ACCOUNT_STATE == 'true') {
    if(!isset($order->delivery['zone_id']) || (isset($order->delivery['zone_id']) && $order->delivery['zone_id'] == 0)) {
        $order->delivery['zone_id'] = STORE_ZONE != '' ? (int)STORE_ZONE : 0;
    }
  } else {
    $order->delivery['zone_id'] = 0;
  }
  //EOC default added zone_id for federalstates modules, 09-2020, noRiddle

und unten für die Nutzung des Zonen-Namens im Template

//BOC assign zone, see above, 09-2020, noRiddle
if(ACCOUNT_STATE == 'true' && $order->delivery['zone_id'] != 0) {
    $zone_name_qu_atr = "SELECT zone_name FROM ".TABLE_ZONES." WHERE zone_id = ".(int)$order->delivery['zone_id'];
    $zone_name_qu = xtc_db_query($zone_name_qu_atr);
    $zone_name_arr = xtc_db_fetch_array($zone_name_qu);
    
    $module_smarty->assign('ZONE_NAME', $zone_name_arr['zone_name']);
}
//EOC assign zone, see above, 09-2020, noRiddle

Gruß,
noRiddle

Attachments (0)

Change History (12)

comment:1 Changed 14 months ago by Tomcraft

  • Milestone set to modified-shop-2.0.6.0
  • Version set to 2.0.5.1

comment:2 Changed 14 months ago by noRiddle

"Meilenstein auf modified-shop-2.0.6.0 gesetzt"
Eigtl. Schade (es sei denn Ihr seit kurz vor 2.0.5.2-Release) denn es ist doch schnell und einfach umzusetzen.

Gruß,
noRiddle

comment:3 Changed 14 months ago by Tomcraft

  • Milestone changed from modified-shop-2.0.6.0 to modified-shop-2.0.5.2

Können wir auch noch mit in 2.0.5.2 aufnehmen.

comment:4 Changed 13 months ago by GTB

wir haben kein Versandmodul dafür, dadurch auch nicht nachvollziehbar.

comment:5 Changed 13 months ago by anonymous

Was spricht dagegen die Zone trotzdem aufzunehmen ?
Die Anzeige sollte man nicht-eingeloggt dann noch abhängig davon machen ob das ausgewählte Land dem STORE_COUNTRY entspricht, damit nicht z.B. so etwas entsteht:
France metropolitain / Niedersachsen

Gruß,
noRiddle

comment:6 Changed 13 months ago by Tomcraft

Die Abhängigkeit von STORE_COUNTRY verstehe ich nicht.
Reicht nicht die Abhängigkeit der Bundesländer zu den Ländern bereits aus!?

comment:7 Changed 12 months ago by anonymous

Wenn man nicht eingeloggt ist und somit keine Zone, kein Bundesland des Besuchers / Kunden feststeht und dieser Kunde im Warenkorb ein Land abweichend von STORE_COUNTRY, welche ja Default und vorausgewählt ist, auswählt, entsteht so etwas wie in meinem Beispiel: France metropolitain / Niedersachsen
Deshalb darf nicht-eingeloggt die Zone nur dann angezeigt werden wenn STORE_COUNTRY ausgewählt ist.

Ich habe mir das nochmal genauer angeschaut.
Wenn man das implementieren möchte stellt sich die Frage ob es dann nicht auch ein Zone-Dropdown zur Auswahl geben müsste.
Ohne dieses Dropdown geht's aber auch aber man müsste nicht nur o.g. verhindern sondern auch bei eingeloggtem Zustand verhindern, daß die Zone angezeigt wird wenn der Kunde ein Land abweichend von seinem eigtl. Konto-Land ($order->delivery[country][id] oder $order->delivery[country_id]) auswählt.

Ich würde dazu den von mir vorgeschlagenen Code so ändern:

  $delivery_zone = xtc_db_fetch_array($delivery_zone_query);

  //BOC default added zone_id for federalstates modules, 09-2020, noRiddle
  //$order->delivery['zone_id'] = 0;
  if(ACCOUNT_STATE == 'true') {
    $cust_contry_id = $order->delivery['country']['id'];
    if(!isset($order->delivery['zone_id']) || (isset($order->delivery['zone_id']) && empty($order->delivery['zone_id']))) {
        $order->delivery['zone_id'] = (STORE_ZONE != '' && $selected == STORE_COUNTRY) ? (int)STORE_ZONE : 0;
    }
  } else {
    $order->delivery['zone_id'] = 0;
  }
  //EOC default added zone_id for federalstates modules, 09-2020, noRiddle
  $order->delivery['country']['iso_code_2'] = $delivery_zone['countries_iso_code_2'];
  $order->delivery['country']['title'] = $delivery_zone['countries_name'];
  $order->delivery['country']['id'] = $delivery_zone['countries_id'];
  $order->delivery['country_id'] = $delivery_zone['countries_id'];
  //$order->delivery['zone_id'] = 0;

und

$module_smarty->assign('COUNTRY', $order->delivery['country']['title']);
//BOC assign zone, see above, 09-2020, noRiddle
if(ACCOUNT_STATE == 'true') {
    if(isset($order->delivery['state']) && !empty($order->delivery['state']) && !empty($order->delivery['zone_id'])) {
        if($order->delivery['country']['id'] == $cust_contry_id) {
            $module_smarty->assign('ZONE_NAME', $order->delivery['state']);
        }
    }
}
//EOC assign zone, see above, 09-2020, noRiddle

Gruß,
noRiddle

comment:8 Changed 12 months ago by Tomcraft

Ich verstehe es immer noch nicht. Wieso nicht einfach so wie in der create_account.php das Bundesland-Dropdown abhängig vom ausgewählten Land machen und wenn keine Bundesländer dem Land zugeordnet sind, dann das Bundesland-Dropdown einfach nicht anzeigen!?

comment:9 Changed 12 months ago by GTB

Das Problem habe ich verstanden, aber ich sehe immer noch den Punkt, dass wir kein Modul im Shop haben, das das benötigt.

comment:10 Changed 12 months ago by anonymous

@Tomcraft
Jau, Bundesland-Dropdown ginge auch bzw. zusätzlich, hatte ich ja auch bereits erwähnt, wäre jedoch Aufwand. Außerdem wäre es nicht, wenn nicht im Core implementiert, nicht update-sicher zu machen, soweit ich das sehe.
Jedenfalls denke ich, daß mein Ticket Sinn macht, weil es, will man das so, eine Anpassung geben müsste.

@GTB
Verstehe ich das richtig, daß, wenn Ihr kein Modul für etwas im Shop habt, ein (imho sinnvoller) Vorschlag, als unnötig angesehen wird ?
Wenn das so gemeint ist frage ich mich wie Ihr dann weiter kommen wollt.
Der Shop hat ja nun mal die Option mit den Bundesländern / Regionen und ein Versandmodul dafür ist ja nur eine Frage der Zeit (ich habe eins).

Wenn ich im Verdacht stehen sollte Vorschläge zu machen weil ich sie selbst gerade benötige: Dazu habe ich 1. bereits schonmal etwas gesagt und 2. dürfte das kein Argument sein, vorausgesetzt der Vorschlag ist sinnvoll.

Aber ich glaube das ist schon wieder zu viel Diskussion.
Vergesst es.

Gruß,
noRiddle

comment:11 Changed 12 months ago by GTB

  • Milestone changed from modified-shop-2.0.6.0 to modified-shop-2.0.7.0

comment:12 Changed 12 months ago by noRiddle

Hier gibt es übrigens ein Versand-Modul nach PLZ und dort wird ein ähnliches wie das von mir geschilderte Problem behandelt
MODUL: Lieferung / Versand nach Postleitzahlen (PLZ)
und von meiner Wenigkeit drei Posts weiter auch analytisch dargestellt.

"...dass wir kein Modul im Shop haben, das das benötigt" ist für mich zwar ohnehin kein Argument mit Alleinstellungsmerkmal, aber mit dem Vorhandensein des zitierten Moduls ist es gänzlich unpassend.

Gruß,
noRiddle

Add Comment

Modify Ticket

Action
as new
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.