Opened 5 years ago
Last modified 3 years 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.1.0.0 |
| Component: | Shop | Version: | 2.0.5.1 |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: |
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 (14)
comment:1 by , 5 years ago
| Milestone: | → modified-shop-2.0.6.0 |
|---|---|
| Version: | → 2.0.5.1 |
comment:2 by , 5 years ago
comment:3 by , 5 years ago
| Milestone: | modified-shop-2.0.6.0 → modified-shop-2.0.5.2 |
|---|
Können wir auch noch mit in 2.0.5.2 aufnehmen.
comment:5 by , 5 years ago
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 by , 5 years ago
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 by , 5 years ago
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 by , 5 years ago
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 by , 5 years ago
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 by , 5 years ago
@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 by , 5 years ago
| Milestone: | modified-shop-2.0.6.0 → modified-shop-2.0.7.0 |
|---|
comment:12 by , 5 years ago
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
comment:13 by , 3 years ago
comment:14 by , 3 years ago
| Milestone: | modified-shop-2.0.8.0 → modified-shop-2.1.0.0 |
|---|

"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