Von Prestashop admin Ich habe neue Währung (Währung, die Werte mit Komma wie 26,51 anzeigen) hinzugefügt und eine Bestellung aufgeben. Es zeigt die Preise in der neuen Währung an (siehe Bild 1), aber wenn ich die Bestellung über den Web-Service erhalte, wird der Preis nicht in der neuen Währung mit Komma angezeigt, sondern in Punkten anstelle von Komma. (Siehe Bild 2)Prestashop Währung Problem, wenn versuchen, es mit Webservice
Antwort
In PrestaShop Datenbank werden die Preiswerte gespeichert als Ist-Werte (Float-Zahlen). Um sie an jeder Schnittstelle anzuzeigen, übergibt PrestaShop die Werte an eine vordefinierte Funktion und zeigt dann nur die Ausgabe dieser Funktion an.
Die Funktion, die Prestashop verwendet, ist
Tools::displayPrice()
Sie auch verwenden, können die tatsächlichen float Wert auf die richtige Formatierung Währungswert zu konvertieren.
Sie würden den Wert, den Sie aus dem Web-Service erhalten vorverarbeitet benötigen Sie die entsprechende Landessprache anwenden:
$locale = (isset($_COOKIE['locale'])) ?
$_COOKIE['locale'] :
$_SERVER['HTTP_ACCEPT_LANGUAGE'];
function number_format_locale($number,$decimals=2) {
$locale = localeconv();
return number_format($number,$decimals,
$locale['decimal_point'],
$locale['thousands_sep']);
}
die Funktion number_format_locale() Verwenden Sie den Gesamtpreis auf Französisch zu konvertieren.
Französisch: bonne chance!
Sie können eine benutzerdefinierte Methode machen, die den Wert zurückgibt, wie Sie wollen, stellen Sie eine Überschreibung von Order
Klasse (erstellen Sie eine neue PHP-Datei in prestashop/override/classes/order
Order.php
genannt):
class Order extends OrderCore{
public function __construct($id = null, $id_lang = null){
$this->webserviceParameters['fields']['total_paid'] = array(
'getter' => 'getWsTotalPaid'
);
parent::__construct($id, $id_lang);
}
public function getWsTotalPaid(){
return str_replace('.', ',', $this->total_paid);
}
}
Offensichtlich können Sie ‚Neuformatierung‘ alle Felder, die Sie möchten, aber achten Sie auf Elterneinstellungen.
- 1. Prestashop Filter date_add im Webservice
- 2. PrestaShop Webservice mit Laravel integrieren 5
- 3. Prestashop Webservice api url Umleitung
- 4. Prestashop - Kundenadresse über Webservice abrufen
- 5. Prestashop Webservice - Outuput spezifische Details
- 6. Prestashop 1.7 webservice Login Kunde
- 7. Prestashop Webservice API hat nicht funktioniert
- 8. Neue Ressource zu Prestashop Webservice hinzufügen
- 9. Image Slider Problem mit Prestashop
- 10. Ressource kann nicht gespeichert werden prestashop webservice
- 11. Prestashop 1.7.1.1 mehrsprachige Redirect Problem
- 12. Probleme versuchen Währung zu formatieren mit Python (Django)
- 13. WCF Webservice Connection Problem
- 14. PrestaShop Blocklayered Problem mit benutzerdefinierten Eingang
- 15. Prestashop Bestellstatus Problem und Einkaufswagen
- 16. Ist es Webservice oder Webservice?
- 17. Anfrage-Code == 400, versuchen, in Webservice anmelden
- 18. Problem, das bereitgestellten ASP.NET-Webservice zu IIS6
- 19. ServiceStack - generieren ASP.NET Webservice - Referenz Problem
- 20. Wird es versuchen, nachzuholen, wenn es zurückgefallen ist?
- 21. suds.TypeNotFound wenn acessing webservice
- 22. Problem, wenn ein Operator in Prolog zu definieren versuchen
- 23. Problem versuchen Projekt Euler # 3
- 24. Leere Seite nach dem Login des Benutzers erstellt von Prestashop Webservice
- 25. Format Währung mit Javascript
- 26. Javascript versuchen fangen Umfang Problem
- 27. ASP.net Webservice Datum Parameter Zeitzone Offset Problem
- 28. Cygwin Problem, wenn phpunit innerhalb Yii2 zu laufen versuchen
- 29. webpack Problem, wenn in reactjs zu machen versuchen
- 30. Prestashop: versuchen, Produkt von Admin hinzufügen leere Seite bekommen
Und das Problem ist? – sarcom
Ich möchte den gleichen Wert in API, die in Admin angezeigt wird. Wie in Admin seine Anzeige als 26,51 (mit Komma), aber in API seine 26,51 (ohne Komma) – Indian
Sie müssen 'konvertieren' mit einem einfachen String ersetzen. Alle Preise sind mit Punkt in der Datenbank gespeichert :) – sarcom