Jump to content

Identificazione campi all' interno delle risorse delle API


Falco-F8L

Recommended Posts

Una buona giornata a tutti.

Pongo due premesse essenziali: sono agli inizi della mia conoscenza di PS e cerco di cavarmela da solo imparando e sbagliando, piuttosto che cercare assistenza professionale che per il momento non posso prendere in considerazione.

Devo realizzare un interfacciamento tra PS e un software ERP, tramite uno script esterno a PS che comunica con quest' ultimo tramite le API. Sono adesso nella primissima fase, prima ancora di iniziare a mettere insieme il codice, dove devo identificare correttamente tutte le risorse coinvolte. Sono riuscito a capire molto per intuito, qualcosa modificando dati tramite l' amministrazione di PS e osservando come vengono modificati i dati restituiti tramite le chiamate API, ma c'è ancora molto che resta non identificato. La documentazione di PS sulle API è decisamente carente da questo punto di vista (salvo che mi sono preso un abbaglio e ho cercato dove non potevo trovare quello che mi serve, nel qual caso apprezzo una vostra dritta).

L' installazione di PS è una versione 1.7.8.9 con il tema Classic 1.0.0.

Faccio qualche esempio su cui mi sono arenato: nella tabella API "Products" ci sono i tag "new", "cache_default_attribute", "location" che non ho identificato all' interno dell' amministrazione del sito PS, non so a quale tipo di dato si rifacciano, e non ne trovo accenno nè nell' help nè online. Qualcuno sa a cosa corrispondono e dove e come sono gestiti? Questi sono i primi che ho trovato, se dopo aver finito di analizzare la tabella ne salteranno fuori altri non mancherò di riportarli.

Altro esempio: nella gestione dei prodotti sull' amministrazione del sito, c'è il paragrafo delle "Preferenze disponibilità" sotto il tag delle "Quantità". Per quanto mi sforzi, non sono riuscito a capire a quali tag di quale tabella API corrisponda il suo contenuto.

Stessa cosa vale per lo switch "online" che attiva e disattiva la visibilità della scheda articolo all' interno del catalogo.

Potete aiutarmi a capire qualcosa di più?

Ringrazio anticipatamente.

Andrea

 

Edited by Falco-F8L (see edit history)
Link to comment
Share on other sites

Ciao,

hai dato un'occhiata ai campi della tabella ps_product e ps_product_shop nel database? Credo ti potrà essere utile per chiarire quali siano i campi relativi ai prodotti con cui hai a che fare sia con le chiamate API sia in generale per la gestione dei dati di PS.

Relativamente alla tua domanda: "cache_default_attribute" ha a che fare con la combinazione di default (se il prodotto ha combinazioni); "location" ha a che fare con la gestione del magazzino; "new" mi lascia perplessa perchè non mi risulta che ci sia un parametro per indicare se il prodotto è una novità (PS lo gestisce con un parametro globale del negozio e poi con la data di inserimento del prodotto) e la condizione del prodotto è "condition".

Immagino che tu abbia già guardato ma ti consiglio anche di dare un'occhiata alla documentazione delle API di PS qui: https://devdocs.prestashop-project.org/1.7/webservice/getting-started/

Buona giornata,
Federica

Link to comment
Share on other sites

5 hours ago, fedesib said:

Ciao,

hai dato un'occhiata ai campi della tabella ps_product e ps_product_shop nel database? Credo ti potrà essere utile per chiarire quali siano i campi relativi ai prodotti con cui hai a che fare sia con le chiamate API sia in generale per la gestione dei dati di PS.

Relativamente alla tua domanda: "cache_default_attribute" ha a che fare con la combinazione di default (se il prodotto ha combinazioni); "location" ha a che fare con la gestione del magazzino; "new" mi lascia perplessa perchè non mi risulta che ci sia un parametro per indicare se il prodotto è una novità (PS lo gestisce con un parametro globale del negozio e poi con la data di inserimento del prodotto) e la condizione del prodotto è "condition".

Immagino che tu abbia già guardato ma ti consiglio anche di dare un'occhiata alla documentazione delle API di PS qui: https://devdocs.prestashop-project.org/1.7/webservice/getting-started/

Buona giornata,
Federica

Innanzitutto grazie per la risposta. Andiamo con ordine:

1) Purtroppo no ho accesso al DB di PS (l' installazione di PS è su un server remoto). Tutte le "occhiate ai campi" le faccio indirettamente leggendo quali campi sono stati modificati negli XML che mi restituiscono le API dopo avere modificato qualcosa sull' amministrazione di PS.

2) Se "cache_default_attribute" si riferisce al prodotto combinazioni, proverò a forzarlo al valore 0 restituito dai miei articoli di prova creati manualmente, dal momento che non gestisco le combinazioni.

3) Anche "location" resta senza una collocazione precisa, intanto lascio il campo vuoto come negli XML letti.

4) Stando a questo link https://devdocs.prestashop-project.org/8/webservice/tutorials/create-product-az/ (scoperto dopo avere scritto il mio primo messaggio, e so che riguarda la versione 8 ma spero che qualche punto in comune con la 1.7 ci sia...) il campo "new" va messo a 1 alla creazione di un nuovo articolo tramite API. Vedremo se il debug del codice che andrò a scrivere confermerà o meno. Apparentemente, PS dichiara che qualsiasi risorsa va creata senza specificare un ID, che viene assegnato ala risorsa stessa da PS DOPO la creazione e che è interrogabile successivamente. Ho capito bene?

5) Il campo "condition" fa parte di quelli che ho identificato con i mezzi a disposizione, cmq grazie 😊

6) Sì, l' help online di PS sulle API è il primo link letto e studiato con la massima cura da quando mi sono imbarcato in questo delirio.

Proseguiamo la navigazione...

Andrea

 

Edited by Falco-F8L (see edit history)
Link to comment
Share on other sites

Ciao Andrea,

1. Non avere accesso al DB non è per niente comodo! Non riesci a fartelo dare? Anche per verificare cosa succede dopo che sei riuscito a creare i prodotti via API.
Magari puoi farti un'installazione locale di PS e testare tutto lì, secondo me sarebbe più comodo e veloce.

2. Sì direi che puoi mettere il campo a 0

3. Secondo me puoi mettere a 0 anche "location"

4. Sì, credo tu abbia capito bene, l'ID viene assegnato automaticamente da PS dopo la creazione del prodotto (è così anche dal backoffice e in genere è così per tutti i CMS)

Buona giornata,
Federica

Link to comment
Share on other sites

On 8/21/2023 at 8:18 AM, fedesib said:

Ciao Andrea,

1. Non avere accesso al DB non è per niente comodo! Non riesci a fartelo dare? Anche per verificare cosa succede dopo che sei riuscito a creare i prodotti via API.
Magari puoi farti un'installazione locale di PS e testare tutto lì, secondo me sarebbe più comodo e veloce.

2. Sì direi che puoi mettere il campo a 0

3. Secondo me puoi mettere a 0 anche "location"

4. Sì, credo tu abbia capito bene, l'ID viene assegnato automaticamente da PS dopo la creazione del prodotto (è così anche dal backoffice e in genere è così per tutti i CMS)

Buona giornata,
Federica

Domani il mio fornitore di servizi internet rientra dalle ferie, vediamo se può darmi l' accesso.

Per li resto grazie, restano ancora un paio di dubbi ma eventualmente li tiro fuori dopo aver terminato almeno la prima stesura dello script che segue questo studio di massima.

Andrea

Link to comment
Share on other sites

Buongiorno,

Mi auto-rispondo sulla domanda della sezione "Preferenze Disponibilità", nel mio primo messaggio, che è gestita dal tag <out_of_stock> della tabella "stock_availables". Anche lo switch "online" è stato identificato nel tag <active> della tabella "products". Spero che l' informazione sarà utile a qualcun altro (visto anche il tempo speso per trovarla!).

Saluti,

Andrea

Edited by Falco-F8L (see edit history)
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...