Jump to content

Avere i pulsanti di modifica e aggiunta dei prodotti nel BO sempre disponibili


biello

Recommended Posts

Salve, 

sto cercando il modo di avere sempre disponibili i pulsanti di aggiunta e modifica dei prodotti negli ordini, per tutti gli stati d'ordine.

Sono sicuro che sia un problema solamente di visualizzazione in quanto i pulsanti vengono caricati e come saprete già vengono inibiti dallo status dell'ordine.

Se qualcuno sa come indirizzarmi, grazie in anticipo.

Andrea

Link to comment
Share on other sites

Allora, ho trovato come far visualizzare i pulsanti di modifica e cancella del prodotto:

/src/PrestaShopBundle/Resources/views/Admin/Sell/Order/Order/Blocks/View/product.html.twig

Ma il problema rimane perchè un ordine a cui si visualizza la bolla di consegna ( o fattura) non può essere modificato.

Quindi c'è un blocco.

Sto provando a cercare il modo di modificare questo comportamento (assurdo a mio avviso).

 

Qualcuno ha avuto lo stesso problema?

 

Grazie,

Andrea

 

Link to comment
Share on other sites

Questo comportamento è "gestito" dai metodi Order::hasBeenShipped() e Order::hasBeenDelivered().

Questi 2 metodi verificano se l'ordine è stato Spedito (hasBeenShipped) o Consegnato (hasBeenDelivered).

Un ordine risulta spedito se ha assunto uno stato che ha il campo shipped su 1 (Segna l'ordine come spedito).

Un ordine risulta spedito se ha assunto uno stato che ha il campo delivery su 1 (Mostra il PDF di consegna).

I metodi in questione vengono richiamati nel metodo PrestaShop\PrestaShop\Adapter\Order\QueryHandler\GetOrderForViewingHandler::handle()

qui infatti viene istanziata la classe OrderForViewingche che accetta nel costruttore, oltre ad altri parametri,  $isDelivered e $isShipped.

Spero che queste info possano darti uno spunto su come risolvere la questione.

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

4 hours ago, codencode said:

Questo comportamento è "gestito" dai metodi Order::hasBeenShipped() e Order::hasBeenDelivered().

Questi 2 metodi verificano se l'ordine è stato Spedito (hasBeenShipped) o Consegnato (hasBeenDelivered).

Un ordine risulta spedito se ha assunto uno stato che ha il campo shipped su 1 (Segna l'ordine come spedito).

Un ordine risulta spedito se ha assunto uno stato che ha il campo delivery su 1 (Mostra il PDF di consegna).

I metodi in questione vengono richiamati nel metodo PrestaShop\PrestaShop\Adapter\Order\QueryHandler\GetOrderForViewingHandler::handle()

qui infatti viene istanziata la classe OrderForViewingche che accetta nel costruttore, oltre ad altri parametri,  $isDelivered e $isShipped.

Spero che queste info possano darti uno spunto su come risolvere la questione.

Allora, effettivamente settando a 0 i due stati, i pulsanti ci sono. Il problema è che andando a modificare l'ordine, poi,  appare il messaggio "Non puoi modificare il carrello una volta che l'ordine è stato consegnato." mentre, stranamento, i prodotti possono essere aggiunti.

 

Link to comment
Share on other sites

Non so come hai implementato le modifiche, ma se io modifico i 2 metodi inserendo un banale return false

return false;

viene visualizzato il pulsante e l'aggiunta di un nuovo prodotto funziona correttamente.

Ovviamente quello che ho fatto è una "prova", i metodi andrebbero modificati con un override mediante modulo, e questa cosa andrebbe fatto se si sta modificando un ordine dal back-office, non puoi semplicemente mettere l'istruzione che ho usato io altrimenti ti impatta su tutto il CMS.

Link to comment
Share on other sites

9 minutes ago, codencode said:

Non so come hai implementato le modifiche, ma se io modifico i 2 metodi inserendo un banale return false

return false;

viene visualizzato il pulsante e l'aggiunta di un nuovo prodotto funziona correttamente.

Ovviamente quello che ho fatto è una "prova", i metodi andrebbero modificati con un override mediante modulo, e questa cosa andrebbe fatto se si sta modificando un ordine dal back-office, non puoi semplicemente mettere l'istruzione che ho usato io altrimenti ti impatta su tutto il CMS.

Scusami l'aggiunta funziona anche a me, i pulsanti di modifica e cancellazione del prodotto poi si fermano.

Ho semplicemente aggiunto a mano i valori per vedere il funzionamento, poi l'implementazione l'avrei fatta con calma.

Hai provato a modificare un prodotto e fare "salva"?

 

Grazie ancora,,

Andrea

Link to comment
Share on other sites

1 hour ago, codencode said:

Si, ho provato l'aggiunta, la modifica e la cancellazione di un prodotto e funziona correttamente.

si anche a me ora! Non mi resta che implementare la cosa.

Tu come lo implementeresti? Io fondamentalmente pensavo di legare questo comportamento ( di possibilità di modifica) ad alcuni "stati di ordine".

Ti ringrazio per il tempo che mi hai dedicato, credo che comunque questo sia un problema che affligge molti shop, sopratutto chi gestisce molti ordini che hanno poi bisogno di essere modificati anche dopo la generazione. Non so perchè è stato pensato cosi, ma il fatto di stampare un DDT non dovrebbe essere legato poi alla possibilità di modificarlo e meno.

Andrea

Link to comment
Share on other sites

Io credo che sia stato implementato in questo modo perché una volta che l'ordine risulta spedito, non "dovrebbe" essere più modificato, in linea teorica è corretto, ma praticamente può accadere di dover modificare un ordine in quello stato.
Poi a monte potrebbe esserci qualche altra motivazione che mi sfugge.

Per i nostri clienti che necessitano di questa cosa, utilizziamo un modulo ad hoc che, tra le altre cose, mostra un pulsante che permette di "forzare" la modifica dell'ordine, quindi se l'ordine risulta già spedito cliccando su questo pulsante "forza" il comportamento di base permettendo quindi le operazioni bloccate.

Per poter capire se l'ordine si trova nella modalità "forzata" il modulo sfrutta la sessione, in questo modo nei metodi da modificare il modulo sa se deve utilizzare il funzionamento standard, oppure il comportamento che permette di forzare l'ordine.

Sicuramente ci saranno altre soluzioni, magari mediante la decorazione dei servizi Symfony, ma questa è quella che ci è venuta in mente.

Link to comment
Share on other sites

42 minutes ago, codencode said:

Io credo che sia stato implementato in questo modo perché una volta che l'ordine risulta spedito, non "dovrebbe" essere più modificato, in linea teorica è corretto, ma praticamente può accadere di dover modificare un ordine in quello stato.
Poi a monte potrebbe esserci qualche altra motivazione che mi sfugge.

Per i nostri clienti che necessitano di questa cosa, utilizziamo un modulo ad hoc che, tra le altre cose, mostra un pulsante che permette di "forzare" la modifica dell'ordine, quindi se l'ordine risulta già spedito cliccando su questo pulsante "forza" il comportamento di base permettendo quindi le operazioni bloccate.

Per poter capire se l'ordine si trova nella modalità "forzata" il modulo sfrutta la sessione, in questo modo nei metodi da modificare il modulo sa se deve utilizzare il funzionamento standard, oppure il comportamento che permette di forzare l'ordine.

Sicuramente ci saranno altre soluzioni, magari mediante la decorazione dei servizi Symfony, ma questa è quella che ci è venuta in mente.

Allora, se io faccio un ordine e va in "attesa di bonifico bancario" ci sono due possibilità:

1) faccio stampare il ddt, ma allora li non si può più modificare nulla, al massimo si può aggiungere uno sconto.

2) non faccio stampare il ddt e allora posso modificare.

Secondo me è fuori logica perchè io "devo" stampare l'ordine darlo al magazzino, poi se c'è una mancanza o il cliente mi fa un aggiunta, devo poterlo modificare.

Quando tutto è ok  e il pacco è stato chiuso e spedito, allora possiamo anche "bloccarlo".

Ultima cosa, ma il modulo che utilizzate si può acquistare?

Grazie,

Andrea

Schermata 2022-07-22 alle 13.21.45.jpg

Link to comment
Share on other sites

5 hours ago, codencode said:

Non sviluppiamo moduli per il marketplace.

Se hai un minimo di dimestichezza con il codice riesci ad implementarla, altrimenti devi fartela sviluppare ad hoc.

 

Grazie molte per tutte le info, sei stato prezioso.

Se non riesco, posso contattarvi per lo sviluppo?

 

grazie,

Andrea

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...