So, da mich das Ganze etwas genervt hat, hab ich mal bissl gespielt und eine funktionierende Lösung gefunden! Was mir sofort aufgefallen ist als ich die create_account.php und die account_edit.php verglichen habe ist dieser Block: in create_account.php PHP: // New VAT Check require_once(DIR_WS_CLASSES.'vat_validation.php'); $vatID = new vat_validation($vat, '', '', $country); $customers_status = $vatID->vat_info['status']; $customers_vat_id_status = $vatID->vat_info['vat_id_status']; if($vatID->vat_info['error'] == true) { $error = true; $messageStack->add('create_account', ENTRY_VAT_ERROR); $smarty->assign('error_vat', ENTRY_VAT_ERROR); }// New VAT CHECK END in account_edit.php PHP: // New VAT Check require_once(DIR_WS_CLASSES.'vat_validation.php'); $vatID = new vat_validation($vat, '', '', $country); $customers_status = $vatID->vat_info['status']; $customers_vat_id_status = $vatID->vat_info['vat_id_status']; $error = $vatID->vat_info['error']; if($error==1){ $messageStack->add('create_account', ENTRY_VAT_ERROR); $error = true; $smarty->assign('error_vat', ENTRY_VAT_ERROR); }// New VAT CHECK END also hab ich mal den funktionierenden Block der create_account.php in der account_edit.php ersetzt. Und siehe da, er macht jetzt die Prüfungen absolut sauber..... Vieleicht ist das ja die Lösung des Problems?!?!? Gm wird sich das morgen dennoch genauer ansehen aber es kann ja sein das dies hier ein Ansatz ist.
Nicht vergessen: in admin/customers.php steckt das auch nochmal drinn. Allerdings werden da andere Variablen verwendet. Im Moment scheint aber die Datenbank wieder mal nicht erreichbar zu sein.
Ja ich weis! Allerdings ist der Bereich für den Kunden nicht zugänglich und somit sollte da nix anbrennen. Allerdings hast du recht, man sollte auch das ändern!
Steffens Lösung ist genau die richtige Korrektur. Ich habe die Lösung übernommen, so dass sie mit dem SP 2.0.14.0 erscheinen sollte.
Habe ich versucht. Leider bekomme ich immer ein:"Bitte geben Sie eine gültige USt-IdNr. ein oder lassen Sie das Feld leer." Die UStID ist definitiv korrekt.
Ganz wichtig: Wenn die Abfrage auch die Kundengruppe automatisch ändert, muss da DRINGEND vorher abgefangen werden, ob das Konto zu Kundengruppe ADMIN gehört!!! Sonst schiesst man sich da beim ausprobieren selbst raus...
für die /admin/customers.php muss das: PHP: // New VAT Check if (xtc_get_geo_zone_code($entry_country_id) != '6') { require_once(DIR_FS_CATALOG.DIR_WS_CLASSES.'vat_validation.php'); $vatID = new vat_validation($customers_vat_id, $customers_id, '', $entry_country_id); $customers_vat_id_status = $vatID->vat_info['vat_id_status']; $error = $vatID->vat_info['error']; if($error==1){ $entry_vat_error = true; $error = true; } } // New VAT CHECK END gegen das getauscht werden! PHP: // New VAT Check if (xtc_get_geo_zone_code($entry_country_id) != '6') { require_once(DIR_FS_CATALOG.DIR_WS_CLASSES.'vat_validation.php'); $vatID = new vat_validation($customers_vat_id, $customers_id, '', $entry_country_id); $customers_status = $vatID->vat_info['status']; $customers_vat_id_status = $vatID->vat_info['vat_id_status']; if($vatID->vat_info['error']==1){ $messageStack->add('account_edit', ENTRY_VAT_ERROR); $error = true; } } // New VAT CHECK END auch hier wird jetzt ordentlich geprüft! (denke ich mal so.... )
Klasse Steffen, das sieht soweit gut aus was den Check betrifft. Allerdings wird die Kundengruppe nicht geändert wie in der create_account.php Wenn die VAT-ID gültig ist, dann soll die Kundengruppe wie in http://meinshop/admin/configuration.php?gID=18 definiert geändert werden. Das tut es leider nicht. Schlägt der UStID-Check beim Registrierungsversuch fehl, hat der Kunde keine Chance selbst einen Wiederholungscheck zu machen um mehrwertsteuerfrei beliefert zu werden. Der Shopbetreiber erhält da auch keine Mitteilung drüber, es sei denn der Kunde beschwert sich. Im Endeffekt wandert der Kunde frustriert ab und bestellt nicht. Die Datenbank ist regelmässig, gerade am Wochenende nicht ererichbar bzw. die jeweiligen ausländischen Behörden haben die Server abgestellt. Ich nehme mal an dass der Fehler in der includes/classes/vat_validation.php liegt. Die Kundengruppe wird wohl nur geändert, wenn der Kunde vorher Gast-Status hat, wenn ich das richtig begreife. Wäre schön wenn das grundsätzlich ginge, ausser der Kunde ist ADMIN.
Weil es viele Kunden gibt, die sich anmelden und erstmal nicht ihre UStID zur Hand haben oder weil der EU-Prüfserver nicht erreichbar ist. Die loggen sich dann nochmal ein und tragen die nach. Dann sind die aber in der Kundengruppe "Kunde". Da wird dann nicht mehr geprüft ob das ein Inländer oder ausländer ist, mit oder ohne UStID. Dann wird die KG nicht geändert und die bekommen eine falsche AB und bezahlen dann auch noch Vorauskasse oder per PayPal. inkl. MwSt. Das müssen wir dann wieder gutschreiben und zurücküberweisen. Ich habe mehr als die Hälfte Auslandskunden und habe den Stress wirklich täglich. Das führt zu mehr als Hundert Gutschriften im Jahr , die ich mir ersparen würde, wenn das vernünftig liefe.
Hat übrigens auch nix mit "wollen" zu tun, sondern mit "müssen". Die Art der Besteuerung ist Gesetz und hat mit dem persönlichen Willen nicht viel zu tun... ;-)
Das Problem bestand doch schon immer und hat eigentlich nichts mit der Pflichtfeldprüfung zu tun. Das es wichtig ist das dies funzt ist schon klar aber mach hierfür nen Fred auf der sich nur um dieses Thema kümmert. Die Pflichtfeldprüfung funzt zumindestens....