Cum modificăm numărul de zecimale în Magento?

Uneori, avem clienți care ne roagă să scoatem zecimale produselor pentru magazinele online. Astăzi vă voi arăta cum putem face acest lucru în Magento, fără a face această schimbare în core. Așa cum am mai spus și în alte postări, păstrarea intactă a fișierelor din core este foarte importantă și consider că orice tutorial de acest gen va reduce numărul de programatori care încă mai modifică pe unde apucă și pe unde au ei impresia că e bine. Așadar, fără prea multe critici la adresa celor care uită de best practices, să începem!

Scopul tutorialului este de a elimina zecimalele din prețul produsului în pagina acestuia, în categoria din care face parte și în tot magazinul online. Tutorialul este realizat pe Magento versiunea 1.6.2.

Primul pas este să realizăm următoarea structură : /app/code/local/Mage/Directory/Model/Currency.php și să copiem în fișierul Currency.php tot conținutul fișierului cu același nume din core /app/code/core/Mage/Directory/Model/Currency.php

Creare fisier Currency.php
Creare fisier Currency.php

Pasul doi constă în modificarea fișierului /app/code/local/Mage/Directory/Model/Currency.php, la linia 197 din 2 în zero, în cadrul funcției format().

Modificare numar zecimale
Modificare numar zecimale din 2 în 0

Pasul trei, ne va aduce mai aproape de eliminarea zecimalelor prețului din view-ul produsului. Pentru a face acest lucru vom crea un nou fișier View.php ce va avea următoarea cale /app/code/local/Mage/Catalog/Block/Product/View.php și conținutul din View.php din Core core /app/code/core/Mage/Catalog/Block/Product/View.php

creare fisier View.php
Creare fișier View.php în local

Pasul patru, după ce copiem codul în fișierul View.php căutăm funcția GetJsonConfig() ce o putem găsi la linia 136.

Modificare array config din funcția GetJsonConfig
Modificare array config din funcția GetJsonConfig

În cadrul acestei funcții la linia 156 vom adauga o nouă variabilă, eu am denumit-o $change_decimals_price care va primi format default ce va fi transformat în noul format fără zecimale.

Noul cod pentru a elimina zecimalele
Noul cod pentru a elimina zecimalele

După cum se poate observa, pe lângă cele trei rânduri noi adăugate de la 156-158, am mai modificat și în array, la linia 162, unde ‘priceFormat‘ primeste noua formatare realizată mai sus, fără zecimale.

Pasul cinci, presupune să realizăm încă o copie a unui fișier din core, în local și anume /app/code/local/Mage/Core/Model/Store.php. Respectând pașii de mai sus, copiem în Store.php conținutul fișierului din core /app/code/core/Mage/Core/Model/Store.php

Creare fișier Store.php - local Magento
Creare fișier Store.php – local Magento

Pasul șase și ultimul, ne va asigura finalizarea procesului de eliminare a zecimalelor prețului și în orice alte locații din cadrul magazinului online, precum pagina de cart, sau checkout. Tot ce mai avem de făcut este să căutăm funcția roundPrice() și să modificăm din 2 în 0, așa cum puteți observa mai jos.

roundedprice() modificare
Modificare funcție roundPrice() pentru a elimina zecimalele

După cum puteți observa, prin șase pași simpli putem rezolva rapid o cerință a multor clienți, și putem păstra structura din core pentru Magento. În cazul în care întâmpinați greutăți sau pașii de mai sus nu vă oferă rezultatele dorite, nu ezitați să mă contactați.

Leave a Reply

%d blogeri au apreciat:
Mai multe despre Digital marketing
structura headinguri Magento
Magento – structură headinguri (SEO)

Schimbările făcute de Google în ultima perioadă ne pun şi ne noi în postura de a ne întreba ce este...

Închide