Problem
Beim Erstellen von Sendungen mit Transportversicherung oder Nachnahme tritt diese Meldung auf:
Hard validation error occured. Bitte geben Sie einen gültigen Betrag an
Ursache
Wenn der Betrag der Bestellung 1000 EUR oder höher ist, fügt Magento ein zusätzliches Komma als Tausender-Trennzeichen in den Betrag ein. Das Komma kann vom DHL Webservice (API) aber nicht korrekt verarbeitet werden.
Lösung
Dieses Problem betrifft das DHL Versenden-Modul für Magento 1 bis einschl. Version 1.3.0. In späteren Versionen ist es behoben.
Als Quickfix können folgende Änderungen vorgenommen werden:
Bearbeiten Sie die Datei:
- lib/Dhl/Versenden/Bcs/Api/Webservice/Adapter/Soap/ServiceType.php
Suchen Sie darin nach dieser Codestelle:
$insuranceAmount = $requestData->getInsurance();
Ersetzen Sie die Zeile durch folgenden Code:
$insuranceAmount = str_replace(',', '', $requestData->getInsurance());
Suchen Sie dann in der gleichen Datei nach dieser Zeile:
$codAmount = $requestData->getCod();
und tragen Sie stattdessen folgendes ein:
$codAmount = str_replace(',', '', $requestData->getCod());
Durch diese Änderungen wird das Problem sowohl für Transportversicherung als auch für Nachnahme behoben.
Speichern Sie die Datei, löschen Sie alle Magento-Caches, und stoßen Sie die Übertragung an DHL erneut an.