Liebe Forengemeinde, ich biete in meinem Shop verschiedene Zahl- und versandarten an. Unter anderem auch den Versand bzw. die bezahlung per Nachnahme. Leider kommt es immer wieder vor, das Kunden den kostenlosen versand innerhalb D (bei mir nicht für Nachnahme) mit der Nachnahme kombinieren und so falsche Portokosten generieren. Gibt es eine Möglichkeit bei einer Auswahl der Versandart Nachnahme alle Zahlungsmodule auszublenden, so dass nur die zahlung per Nachnahme mit der Pauschale erscheint und im umgekehrten Fall (keine nachnahme als versand gewählt) die zahlung per Nachnahme ausgeblendet wird...? LG Sebastian
Hallo Dennis, im Grunde ist es schon sowas...aber bei mir soll es nicht abhängig vom artikel sein, sondern von der versandauswahl.....es können bei mir alle artikel mit allen versandarten versendet werden...nur bei nachnahme kommen die kunden über 99 eur (versandkostenfrei) leider zu einem gratisversand....das soll bei der nachnahme verhindert werden, da hier trotzdem die nachnahme fällig wird.... LG Sebastian
Du hast unter "Zusammenfassung" eine Nachnahmegebühr eingetragen und diese fällt wegen "freeamount" weg?! Das würde ich für einen Bug halten.
Du must in den Zahlungsarten Modulen bei den "Update Funktionen" die sachen eintragen die nicht möglich sein sollen. z.B. bei Nachnahme soll man keine Selbstabholung und Versandkostenfrei auswählen können. PHP: class cod_ORIGIN { var $code, $title, $description, $enabled; function cod_ORIGIN() { global $order, $xtPrice; $this->code = 'cod'; $this->title = MODULE_PAYMENT_COD_TEXT_TITLE; $this->description = MODULE_PAYMENT_COD_TEXT_DESCRIPTION; $this->sort_order = MODULE_PAYMENT_COD_SORT_ORDER; $this->enabled = ((MODULE_PAYMENT_COD_STATUS == 'True') ? true : false); $this->info = MODULE_PAYMENT_COD_TEXT_INFO; $this->cost; if ((int) MODULE_PAYMENT_COD_ORDER_STATUS_ID > 0) { $this->order_status = MODULE_PAYMENT_COD_ORDER_STATUS_ID; } if (is_object($order)) $this->update_status(); } function update_status() { global $order; // Was nicht möglich sein soll bei Nachnahme if ($_SESSION['shipping']['id'] == 'selfpickup_selfpickup') { $this->enabled = false; } if ($_SESSION['shipping']['id'] == 'freeamount_freeamount') { $this->enabled = false; } // end if (($this->enabled == true) && ((int) MODULE_PAYMENT_COD_ZONE > 0)) { $check_flag = false; $check_query = xtc_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_COD_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id"); while ($check = xtc_db_fetch_array($check_query)) { if ($check['zone_id'] < 1) { $check_flag = true; break; } elseif ($check['zone_id'] == $order->delivery['zone_id']) { $check_flag = true; break; } } if ($check_flag == false) { $this->enabled = false; } } // BOF GM_MOD elseif (trim(MODULE_PAYMENT_COD_ALLOWED) != '') { $t_gm_allowed_countries = explode(',', MODULE_PAYMENT_COD_ALLOWED); if (!in_array($order->delivery['country']['iso_code_2'], $t_gm_allowed_countries)) { $this->enabled = false; } } // EOF GM_MOD }