FROM CACHE - it_header

APP per modificare metafields di un utente

APP per modificare metafields di un utente

besagnum
Visitatore
3 0 0

Buon giorno vorrei avere un aiuto su un problema riguardante l'implementazione di un APP, questa dovrebbe modificare i metafild associati a un utente.

Ho pensato di usare una chiamata API,

fetch(`https://www.xxxx.it/account/api/2023-07/customers/xxxxx.json`, {
method: 'PUT', 
headers: {
'Content-Type': 'application/json',
'X-Shopify-Access-Token': "xxxx"
},
body: JSON.stringify(
[
{
"key": "xxx",
"value": "newvalue",
"type": "single_line_text_field",
"namespace": "global"
}
]
)
})

Ora non riesco a capire due cose la prima è che al posto di 'account' uso 'admin' come da documentazione riportato mi finisce in catch con il seguente errore "Failed to fetch". ora sostituito con "account" sembra andare almeno a buon fine, ma questo mi restituisce un 404. sicuro sbaglio in qualcosa di base, mi riuscite a dare una mano? Dovrei aver attivato tutti i permessi necessari: 

Admin API access scopesread_custom_pixels, write_customers, read_customers, write_metaobject_definitions, read_metaobject_definitions, write_metaobjects, read_metaobjects, write_customer_merge, read_customer_merge, read_shopify_payments_disputes
Webhook version2023-07
 
Grazie ancora
2 RISPOSTE 2

besagnum
Visitatore
3 0 0

Aggiornamento, oggi forse ho sbagliato qualcosa nella configurazione ma è tornata a funzionare. nel senso che ora le risposte hanno smesso di essere 404 ma un sempre bello 200. 

Preso da felicità ho iniziato a provare un po' di chiamate. Ma arrivata a questa: "https://shopify.dev/docs/api/admin-rest/2023-07/resources/customer#put-customers-customer-id" vedo che cercando di modificare una proprietà il messaggio di risposta è un 200 ma la proprietà non è stata modificata, se qualcuno sa il motivo gliene sarei grato.

di seguito metto le due chiamate, una per richiedere i metafild associati a un utente, l'altra per aggiornarli.

Questa per recuperarli:

--header 'Content-Type: application/json' \
--header 'X-Shopify-Access-Token: my_access_token'
Questa per modificarli:
curl --location --request PUT 'https://www.medicaltech.it/admin/api/2023-07/customers/xxxx.json' \
--header 'Content-Type: application/json' \
--header 'X-Shopify-Access-Token: my_access_token' \
--header 'Cookie: request_method=PUT' \
--data '{
"customer": {
"id": id_
customer,
"metafields": [
{
"key": "sdi",
"value": "gggg",
"type": "single_line_text_field",
"namespace": "custom"
}
]
}
}'
Grazie ancora
besagnum
Visitatore
3 0 0

Aggiornamenti freschi. Dopo aver provato cosi per sfizio, non so il motivo ma non accetta chiamate eseguite con il programma "postman" ma se converto la chiamata in curl, e la poi la rifaccio ecco che tutto va bene. ora non ho la minima idea del perché, anche perché la chiamata in curl la eseguo mediante un tool di postman, proprio non saprei. ora pero mi ritrovo in un'eventualità che mai avrei pensato. praticamente, nonostante sia un app interna creata solo per un tema che, se non ho capito male, gode di alcuni privilegi che la rendono più semplice da integrare di un'app creata per terzi. Be mi ritrovo che bella cosa, le chiamate cosi fatte sono protette da CORS, e quindi si schiantano contro il server. Mi sembra strano per una serie di motivi, il primo che non sto eseguendo una chiamata da un indirizzo alternativo. mi chiedevo non esiste una maniera per aggirare il problema? perchè leggo di un fantomatico App Bridge, qualcuno ne sa qualcosa?