Jump to content
bandyvp

1.7.5.X -> 1.7.6.1 frissítés után Uncaught PHP Exception

Recommended Posts

Sziasztok,

Megakadtam teljesen.

Az 1.7.6 -os verziónál kivártam míg kiforr és csak most nemrég frissítettem, amikor kijött az 1.7.6.1 -es már nagy részben javított változat.

A frissítés után szinte minden működik, kivéve egy rész ami critical error hibát dob, e nélkül sajnos vissza kell ugarom az előző menett verzióra.

Log -ban hiba a következő:

[2019-09-05 16:24:51] request.CRITICAL: Uncaught PHP Exception PrestaShop\PrestaShop\Core\Localization\Exception\LocalizationException: "Price specification not found for currency: """ at /volume1/web/blackdream.hu/catalog/src/Core/Localization/Locale.php line 171 {"exception":"[object] (PrestaShop\\PrestaShop\\Core\\Localization\\Exception\\LocalizationException(code: 0): Price specification not found for currency: \"\" at /volume1/web/blackdream.hu/catalog/src/Core/Localization/Locale.php:171)"} []

A 171 -es sorban ezt találtam: 'Price specification not found for currency: "' . $currencyCode . '"'

Teljes funkció itt:

    public function getPriceSpecification($currencyCode)
    { 
        $currencyCode = (string) $currencyCode;
        $priceSpec = $this->priceSpecifications->get($currencyCode);
        if (null === $priceSpec) {
            throw new LocalizationException(      

          'Price specification not found for currency: "' . $currencyCode . '"'
            );
        }

        return $priceSpec;

Amit próbáltam és nem működik:

1.Kitöröltem az összes pénznemet, majd újra telepítettem, az alap pénznemet úgy hogy ideiglenesen átettem egy másik pénznemre.

2. Frissítettem a magyar nyelvi csomagot

A currency adat tábla két új oszloppal bővült az előző verzióhoz képest. (numeric_iso_code, precision)

Engem zavar, hogy currency: """ Azaz mintha egy olyan pénznemet keresne ami nincs.

Lehet hogy valamelyik terméknéknél van a hiba?

Mit gondoltok?

Előre is köszömöm.

András

 

  • Like 1

Share this post


Link to post
Share on other sites

Nagyon szép problémaleírás, gratulálok hozzá. Szívemből szóltál. Öröm az ilyet olvasni :)

A probléma meglehetősen friss, ezeket nézted már?

https://github.com/PrestaShop/PrestaShop/issues/14595

https://github.com/PrestaShop/PrestaShop/issues/14908

Elméletileg van gyorskötözős fix a fenti linkeken, talán az elsőnél a vége felé.

Share this post


Link to post
Share on other sites

Jajj, köszönöm Attila :)

Igen, mindkettőt olvastam, de a gyorskötözőt nem talltam. Melyik is lenne az?

 

Share this post


Link to post
Share on other sites

Ami fontosos lehet másoknak is!

Important changes (1.7.6.1)
Following #15173 we had to modify CurrencyDataProviderInterface::findAll and add an optional parameter to be able to fetch all currencies regardless of the current shop context. This doesn’t break any previous use of the method since the parameter is optional, but it requires to update any class that implemented that interface.

Sajnos nálam egy egyedi modulnál van ez a hiba!

És most a valóság:

Eredeti modul programozó már nem vállal 1.7 -re programot. Aki Mo. -on vállalna Ő egy kicsit túláraz ( bocs Viktor, még Mo. -on vagyunk). Indiában freelancer -en keresztül sikerült találnom, aki negyed áron 1.7 -re áttette a modult. Most csak ezért nem szertnék ismét modul javítást kérni.

Ha jól lett volna a modul megírva elég pontosan, akkor természetesen most sem lenne hiba ahogy fentebb is írták. De sajnos....

Tehát akinek van egyedi modul fejlesztve az gondolja meg nagyon hogy 1.7.6.X  -re frissíteni fog,

Share this post


Link to post
Share on other sites

Igen, ebben az esetben.

De én úgy látom, hogy a megoldás magában a prestashop kódban van, a hiba a logban is pont ezért onnan jön és nem az egyedi kódból.

Share this post


Link to post
Share on other sites

Úgy látom, hogy a GitHub-on a hibaüzenet ellen az alábbiakat tették:

- ki- majd bekapcsolták a pénznemet ahol gond volt

- ahol ezt nem lehetett megtenni, mert csak 1 currency volt ott felvettek egy másikat, majd így oldották meg a ki- és bekapcsolást

- illetve írják még a ps_currency táblában az általad is újként megnevezett "precision" oszlop értékének átírását 2-re a hibádzó currency esetében.

Share this post


Link to post
Share on other sites

Ezeket mind már próbáltam.

Viszont a megoldást is megtaláltam, hosszú volt az este (nem vagyok symphony programozó, más nyelveken fejlesztek)

Ahogy fentebb írtam megváltozott a currency adatbázis tábla, valamint bővült annak lekérdezése (ezért is a hiba csak akkor jön elő, ha nem pontosan lett a lekérdezés megírva).

Ami rossz:

new Currency($product_infos['id_currency'])

Ami jó:

Nem tudom, nem értek hozzá. Én simán kivettem ezt a részt nagyon nem hiányzik és tada, a hiba eltűnt  :)

Konklúzió:

Programozók, akik korábban használta bárhol is a  Currency lekérdezést át kell nézni a kódjukat, hogy az megfelel -e az új lekérdezésnek is.

Köszönöm Attila a segítségedet, valamint hogy ilyen sok mindent teszel a magyar prestashop közösség építésében!

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More