Jump to content
OrderHosting

Cannot use object of type ProductCore as array

Recommended Posts

Buonasera, ho girato in lungo e in largo tra internet e forum vari senza trovare risposta. Se cerco di Duplicare o Cancellare un prodotto ricevo Errore 500 Internal Server quindi attivando il Debug l'errore è il seguente: Cannot use object of type ProductCore as array

$product['id_product'] = $product['id'];
        }

        $id_product = $product['id_product'];

Credo che il problema sia proprio tra object e array ma non sono riuscito a risolvere in alcun modo.

Il file in questio è: in modules/ps_categoryproducts/ps_categoryproducts.php

Grazie a chiunque possa aiutarmi

Share this post


Link to post
Share on other sites

Ciao,

che versione di PS stai usando? Mi sembra strano che l'errore sia in un modulo nativo di Prestashop ...

Comunque, la questione è che probabilmente nel modulo hai un oggetto e lo stai usando come array, quindi la regola generale è:

suponendo che tu voglia estrarre l'ID di un prodotto, se hai un array scrivi:
$product['id']

mentre se hai un oggetto scrivi:
$product->id

Spero di averti aiutato, buona giornata,
Federica

Share this post


Link to post
Share on other sites
7 hours ago, fedesib said:

Ciao,

che versione di PS stai usando? Mi sembra strano che l'errore sia in un modulo nativo di Prestashop ...

Comunque, la questione è che probabilmente nel modulo hai un oggetto e lo stai usando come array, quindi la regola generale è:

suponendo che tu voglia estrarre l'ID di un prodotto, se hai un array scrivi:
$product['id']

mentre se hai un oggetto scrivi:
$product->id

Spero di averti aiutato, buona giornata,
Federica

Ciao Federica grazie innanzitutto per avermi risposto.

Non ho ancora risolto il problema ma ti dico cosa ho fatto. Ho modificato la seguente stringa:

336 $product['id_product'] = $product['id']; 

in

336 $product['id_product'] = $product->id;

Ricevo lo stesso errore ma alla stringa 339 che, come detto ad inizio discussione è la seguente:

 $id_product = $product['id_product'];

La versione di PS è: 1.7.0.4

Grazie

Share this post


Link to post
Share on other sites

Ciao,

da quello che vedo nella funzione getInformationFromConfiguration le righe che ti interessano dovrebbero essere:

       $product = $configuration['product'];
        if ($product instanceof Product) {
            $product = (array) $product;
            $product['id_product'] = $product['id'];
        }

Dato che l'oggetto $product viene convertito in array dalla stringa $product = (array)$product non dovresti avere nessun errore, a meno che la conversione, per qualche motivo non vada a buon fine (qualche info sul casting, qui: http://ocramius.github.io/blog/fast-php-object-to-array-conversion/).

Io proverei a vedere cosa c'è effettivamente nell'array $product e quindi farei un bel print_r($product) dopo $product = (array)$product per capire cosa succede.

Ciao,
Federica

Share this post


Link to post
Share on other sites

Purtroppo ho sempre lo stesso errore pur aggiornando il PrestaShop da 1.7.0.4 al 1.7.0.6

Una domanda le vorrei rivolgere e se aggiornassi al PrestaShop 1.7.6.1 potrei avere dei problemi con il template?

Grazie

Share this post


Link to post
Share on other sites

Ciao,

in genere i temi per la versione 1.7 dovrebbero andare bene per tutte le versioni a partire dalla 1.7, quindi non dovrebbero esserci problemi nel passaggio alla 1.7.6.1. Però, se è un tema acquistato o customizzato ti consiglio di chiedere prima allo sviluppatore, per sicurezza.

Buona giornata,
Federica

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