Testa l'endpoint di aggiornamento stato di pubblicazione.
Aggiorna lo stato di pubblicazione di uno o più prodotti nel tuo inventario
Questo endpoint consente di aggiornare lo stato di pubblicazione di uno o più prodotti nel tuo inventario. Lo stato di pubblicazione indica la fase del ciclo di vita del prodotto nel tuo catalogo, ad esempio se è in fase di revisione, pronto per essere pubblicato o già pubblicato online.
L'aggiornamento può essere applicato a più prodotti contemporaneamente fornendo un elenco di ID separati da virgola.
PUT https://api.commerceclarity.io/inventories/set-publication-state
Parametro | Tipo | Obbligatorio | Descrizione |
---|---|---|---|
ids |
string | Obbligatorio | Elenco di ID prodotto separati da virgola. Possono essere codice prodotto (EAN, ASIN, MINSAN) o SKU |
publication_state |
string | Obbligatorio | Il nuovo stato di pubblicazione da assegnare ai prodotti. Valori accettati: pending_review , ready , online |
Stato | Descrizione |
---|---|
pending_review |
Il prodotto è in attesa di revisione prima di essere approvato per la pubblicazione |
ready |
Il prodotto è stato revisionato ed è pronto per essere pubblicato |
online |
Il prodotto è attualmente pubblicato e visibile online |
{
"status": "success",
"message": "Inventory statuses set"
}
{
"status": "error",
"message": "Invalid publication state",
"errors": [
"The publication state field is required.",
"The selected publication state is invalid."
]
}
<?php
require 'vendor/autoload.php';
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
$client = new Client([
'base_uri' => 'https://api.commerceclarity.io',
'timeout' => 10.0,
'headers' => [
'Authorization' => 'Bearer IL_TUO_TOKEN_API',
'Accept' => 'application/json',
'Content-Type' => 'application/json',
]
]);
// Lista di ID prodotto separati da virgola
$productIds = '8004120057724,8004120061721,NS-CRIO-001';
// Stato di pubblicazione da impostare
$publicationState = 'online'; // Valori possibili: pending_review, ready, online
$requestData = [
'ids' => $productIds,
'publication_state' => $publicationState
];
try {
$response = $client->put('/inventories/set-publication-state', [
'json' => $requestData
]);
$result = json_decode($response->getBody()->getContents(), true);
echo "Stato: " . $result['status'] . "\n";
echo "Messaggio: " . $result['message'] . "\n";
} catch (RequestException $e) {
echo "Errore: " . $e->getMessage() . "\n";
if ($e->hasResponse()) {
$errorResponse = json_decode($e->getResponse()->getBody()->getContents(), true);
echo "Stato: " . ($errorResponse['status'] ?? 'sconosciuto') . "\n";
echo "Messaggio: " . ($errorResponse['message'] ?? 'nessun messaggio') . "\n";
if (isset($errorResponse['errors'])) {
echo "Errori di validazione:\n";
foreach ($errorResponse['errors'] as $error) {
echo "- " . $error . "\n";
}
}
}
}
// Configurazione della richiesta
const apiUrl = 'https://api.commerceclarity.io/inventories/set-publication-state';
const token = 'IL_TUO_TOKEN_API';
// Dati della richiesta
const requestData = {
ids: '8004120057724,8004120061721,NS-CRIO-001', // Lista di ID prodotto separati da virgola
publication_state: 'online' // Valori possibili: pending_review, ready, online
};
// Configurazione della richiesta
const requestOptions = {
method: 'PUT',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify(requestData)
};
// Effettua la richiesta API
fetch(apiUrl, requestOptions)
.then(response => {
if (!response.ok) {
return response.json().then(errorData => {
throw new Error(errorData.message || `Status: ${response.status}`);
});
}
return response.json();
})
.then(data => {
console.log('Risposta:', data);
console.log(`Stato: ${data.status}`);
console.log(`Messaggio: ${data.message}`);
// Esempio: aggiornare l'interfaccia utente per riflettere lo stato aggiornato
if (data.status === 'success') {
// Aggiorna l'UI con i nuovi stati di pubblicazione
const productIds = requestData.ids.split(',');
productIds.forEach(productId => {
const productElement = document.querySelector(`[data-product-id="${productId}"]`);
if (productElement) {
// Aggiorna il badge dello stato di pubblicazione
const statusBadge = productElement.querySelector('.publication-state-badge');
if (statusBadge) {
statusBadge.textContent = requestData.publication_state;
// Aggiorna la classe CSS in base allo stato
statusBadge.classList.remove('badge-pending', 'badge-ready', 'badge-online');
switch (requestData.publication_state) {
case 'pending_review':
statusBadge.classList.add('badge-pending');
break;
case 'ready':
statusBadge.classList.add('badge-ready');
break;
case 'online':
statusBadge.classList.add('badge-online');
break;
}
}
}
});
// Mostra un messaggio di conferma
showNotification('Stato di pubblicazione aggiornato con successo', 'success');
}
})
.catch(error => {
console.error('Errore durante l'aggiornamento dello stato di pubblicazione:', error.message);
// Esempio: mostrare un messaggio di errore all'utente
showNotification(`error: ${error.message}`, 'error');
});
// Funzione di utilità per mostrare notifiche
function showNotification(message, type) {
// Implementazione della tua funzione di notifica
console.log(`[${type.toUpperCase()}] ${message}`);
}
import requests
import json
# Configurazione API
api_url = 'https://api.commerceclarity.io/inventories/set-publication-state'
token = 'IL_TUO_TOKEN_API'
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
# Dati della richiesta
request_data = {
'ids': '8004120057724,8004120061721,NS-CRIO-001', # Lista di ID prodotto separati da virgola
'publication_state': 'online' # Valori possibili: pending_review, ready, online
}
try:
# Effettua la richiesta PUT
response = requests.put(
api_url,
headers=headers,
json=request_data
)
# Solleva eccezione per errori HTTP
response.raise_for_status()
# Estrai i dati dalla risposta
result = response.json()
print(f"Stato: {result['status']}")
print(f"Messaggio: {result['message']}")
# Esempio: aggiornare un registro locale dei prodotti
if result['status'] == 'success':
product_ids = request_data['ids'].split(',')
# Esempio di aggiornamento di un database locale
def update_product_publication_state(product_id, state):
print(f"Aggiornamento stato pubblicazione per prodotto {product_id} a '{state}'")
# Qui inserisci la logica per aggiornare un database locale
# Ad esempio: db.execute("UPDATE products SET publication_state = ? WHERE id = ?", (state, product_id))
# Aggiorna lo stato di pubblicazione per ogni prodotto
for product_id in product_ids:
update_product_publication_state(product_id, request_data['publication_state'])
print(f"\nStato di pubblicazione aggiornato con successo per {len(product_ids)} prodotti")
except requests.exceptions.HTTPError as err:
print(f"Errore HTTP: {err}")
if response.text:
error_data = response.json()
print(f"Stato: {error_data.get('status', 'sconosciuto')}")
print(f"Messaggio: {error_data.get('message', 'nessun messaggio')}")
if 'errors' in error_data:
print("Errori di validazione:")
for error in error_data['errors']:
print(f"- {error}")
except requests.exceptions.RequestException as err:
print(f"Errore durante la richiesta: {err}")
curl -X PUT "https://api.commerceclarity.io/inventories/set-publication-state" \
-H "Authorization: Bearer IL_TUO_TOKEN_API" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"ids": "8004120057724,8004120061721,NS-CRIO-001",
"publication_state": "online"
}'
Utile per gestire un flusso di approvazione dei prodotti prima della pubblicazione, impostando i prodotti da pending_review
a ready
dopo la verifica.
Permette di pubblicare online contemporaneamente un gruppo di prodotti che hanno superato la fase di controllo qualità.
Consente di riportare i prodotti da online
a pending_review
per rimuoverli temporaneamente dal catalogo online senza eliminarli.
Impara come autenticare le tue richieste API con token di accesso.
Vai all'AutenticazioneAggiungi nuovi prodotti al tuo inventario per poterne recuperare i dettagli.
Vedi EndpointVerifica lo stato attuale di un prodotto specifico nel tuo inventario.
Vedi Endpoint