Jump to content

Ordinamento categoria tramite webservice


blufix79

Recommended Posts

Buongiorno a tutti,

 

Sono alle prese con l'ordinamento delle categorie tramite webservices. Mi aspettavo che funzionasse passando in "position" il valore della posizione che vorrei assumesse la categoria nell'ordinamento. Invece mi viene spostata sempre come ultima.

Controllando il codice, ho notato che il metodo update esegue sempre un addPosition quando viene chiamato tramite servizio. Questo succede anche se non passo esplicitamente il valore position, ma mantengo quello attualmente settato nella categoria. Qualcuno ha idea del perchè vi sia questa logica? 

 

Riporto la parte di codice del metodo update, la versione di Prestashop è 1.6.1.4, ma questo comportamente l'ho riscontrato anche nelle versioni sucessive.

 

File: classes/Category.php

// If the parent category was changed, we don't want to have 2 categories with the same position
        if (!isset($changed)) {
            $changed = $this->getDuplicatePosition();
        }
        if ($changed) {
            if (Tools::isSubmit('checkBoxShopAsso_category')) {
                foreach (Tools::getValue('checkBoxShopAsso_category') as $id_asso_object => $row) {
                    foreach ($row as $id_shop => $value) {
                        $this->addPosition((int)Category::getLastPosition((int)$this->id_parent, (int)$id_shop), (int)$id_shop);
                    }
                }
            } else {
                foreach (Shop::getShops(true) as $shop) {
                    $this->addPosition((int)Category::getLastPosition((int)$this->id_parent, $shop['id_shop']), $shop['id_shop']);
                }
            }
        }

Grazie in anticipo per qualsiasi consiglio.

Edited by blufix79 (see edit history)
Link to comment
Share on other sites

Ciao..bel casino!!.

 

cercando ho trovato questo...sembra che la funzione setWsCategories in classes >product.php abbia problemi...prova a fare quella modifica

 

https://github.com/PrestaShop/PrestaShop/pull/5308/commits/39bb35e38f46358a667c2c08816c45f6295265bd

 

https://www.prestashop.com/forums/topic/452799-updating-product-positions-in-categories-using-webservice-api-16014/

 

dacci news :-)

 

Fabrizio

Link to comment
Share on other sites

Ciao Fabry, Grazie per la risposta.

 

Avevo già dato uno sguardo al secondo link che mi hai passato. Provo a spiegarmi meglio, il mio problema non è relativo all'ordinamento del prodotto nella categoria, ma all'ordinamento della categoria stessa rispetto alle categorie appartenenti allo stesso livello.

 

Ad esempio:

NomeCategoriaPadre
 |-NomeCategoria1 - position 1
 |-NomeCategoria2 - position 2
 |-NomeCategoria3 - position 3
 |-NomeCategoria4 - position 4
 |-NomeCategoria5 - position 5

Vorrei spostare la categoria con position 2 al posto della 3, ma tramite webservices la categoria viene sempre spostata alla fine e mi ritrovo in questa situazione:

NomeCategoriaPadre
 |-NomeCategoria1 - position 1
 |-NomeCategoria3 - position 2
 |-NomeCategoria4 - position 3
 |-NomeCategoria5 - position 4
 |-NomeCategoria2 - position 5

Questo comportamento avviene anche se modifico il solo nome della categoria, ad esempio, o addirittura anche se la rimando cosi come la recupero, senza modificare nulla. Viene sempre spostata per ultima. Il codice che ho inserito nel post precedente si riferisce al file classes/Category.php.

 

Grazie

Salvatore.

Link to comment
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...