Salta ai contenuti
Prova gratis per 14 giorni
Italiano
Apri in Claude Fai domande su questa paginaApri in ChatGPT Fai domande su questa pagina

Aggiornare/modificare Wholesale Pricing tramite API

Aggiorna una regola Wholesale Pricing esistente tramite l'API pubblica, con il riferimento completo del corpo della richiesta.

Questo documento spiega come aggiornare una regola Wholesale Pricing esistente tramite l’API pubblica.


Per aggiornare un record Wholesale Pricing esistente, usa il seguente endpoint:

PUT https://wholesale.samita.io/api/v1/wholesale-pricings/{id}
  • {id} è l’ID del record Wholesale Pricing
  • L’ID si trova nell’interfaccia dell’app (senza il simbolo «#»)
  • Esempio di riferimento:

PUT https://wholesale.samita.io/api/v1/wholesale-pricings/1

Tutte le richieste API devono includere le seguenti intestazioni obbligatorie:

Intestazione Descrizione Obbligatoria
X-SAMITA-API-KEY Chiave API fornita nell’app Wholesale Sì
X-SAMITA-SHOP-URL Dominio del negozio Shopify nel formato xxx.myshopify.com Sì
CONTENT-TYPE Deve essere application/json Sì

Se manca anche una sola intestazione obbligatoria, la richiesta viene rifiutata.


_ I dati usati per aggiornare Wholesale Pricing devono essere inviati in formato JSON. Un esempio di struttura JSON è riportato alla fine di questo documento.

_ Nella richiesta servono solo i campi da aggiornare. Non è obbligatorio inviare tutti i campi, come invece avviene con il metodo API di creazione.

_ I campi non specificati restano invariati

Esempio di JSON della richiesta:

{
"title": "New Wholesale Pricing",
"status": true,
"apply_customer": {
"type": "all",
"tags": []
},
"exclude_customer": {
"type": "none",
"tags": []
},
"apply_product": {
"type": "all",
"product_ids": [],
"product_tags": [],
"collection_ids": [],
"apply_for_variants": false
},
"exclude_product": {
"type": "none",
"product_ids": [],
"collection_ids": []
},
"discount_for_variants": [
{
"id": 8516448190631,
"variant_pricing": true,
"variants": [
{
"id": 46747346763943,
"discount_groups": [
{
"name": "all",
"type": "percent",
"value": "10"
}
]
}
]
}
],
"apply_market": {
"type": "all",
"handle": []
},
"discount_group": {
"type": "percent",
"value": "10"
},
"active_date": {
"types": ["start_date", "end_date"],
"start_at": "2026-01-15 10:00:00",
"end_at": "2026-01-15 10:00:00"
}
}

  • Il nome usato per identificare il record Wholesale Pricing
  • Facoltativo nell’API di aggiornamento
  • Deve essere una stringa
  • Lunghezza massima: 255 caratteri

  • Definisce se il record è attivo oppure no
  • Facoltativo nell’API di aggiornamento
  • Accetta solo i seguenti valori:
Valore Descrizione
true La regola di prezzo è attiva
false La regola di prezzo non è attiva

Definisce quali clienti possono usufruire di questa regola di prezzo.

Struttura:

"apply_customer": {
"type": "all",
"tags": []
}

type

Valori accettati:

  • all
  • logged
  • non-logged
  • customer-tags

tags

  • Obbligatorio solo quando type == customer-tags
  • Deve essere un array separato da virgole
  • Esempio: ["wholesale","b2b"]

Serve a escludere clienti specifici dalla regola di prezzo.

Struttura:

"exclude_customer": {
"type": "none",
"tags": []
}

type

  • Valore predefinito: none
  • Valori accettati:
Valore Descrizione
none Non escludere nessun cliente
customer-tags Escludi i clienti in base ai tag

tags

  • Obbligatorio solo quando type == customer-tags
  • Esempio: ["vip","wholesale"]

Definisce a quali prodotti viene applicata la regola di prezzo.

Struttura:

"apply_product": {
"type": "all",
"product_ids": [],
"product_tags": [],
"collection_ids": [],
"apply_for_variants": false
}

type

Valori accettati:

  • all
  • products
  • collections
  • product-tags

Gli altri campi sono obbligatori in base al tipo selezionato:

  • product_ids → obbligatorio se type == products
  • product_tags → obbligatorio se type == product-tags
  • collection_ids → obbligatorio se type == collections

apply_for_variants

  • Valori accettati: true o false
  • Valore predefinito: false

Definisce i prodotti da escludere dalla regola.

Struttura:

"exclude_product": {
"type": "none",
"product_ids": [],
"collection_ids": []
}

Tipi accettati:

  • none
  • products
  • collections

Si usa quando gli sconti sono configurati per singola variante.

  • Deve essere vuoto se apply_product.apply_for_variants == false
  • Obbligatorio quando apply_product.apply_for_variants == true

Esempio di struttura:

"discount_for_variants": [
  {
    "id": 8516448190631,
    "variant_pricing": true,
    "variants": [
      {
        "id": 46747346763943,
        "discount_groups": [
          {
            "name": "all",
            "type": "percent",
            "value": "10"
          }
        ]
      }
    ]
  }
]

Struttura:

  • Array di prodotti
  • Ogni prodotto contiene:
    • id – ID prodotto
    • variant_pricing – Deve essere true
    • variants – Array di varianti

Ogni variante contiene:

  • id – ID variante
  • discount_groups – Array di configurazioni di sconto

Regole di discount_groups

  • Se apply_customer.type è all, logged o non-logged
    → è consentito un solo elemento
  • Se apply_customer.type == customer-tags
    → è possibile fornire più gruppi di sconto

Campi all’interno di discount_groups:

Campo Descrizione
name Deve corrispondere al tipo di cliente o al tag cliente
type Tipo di sconto
value Valore dello sconto

Tipi di sconto accettati:

  • percent
  • amount
  • fixed-amount

Regole per il valore:

  • Deve essere un numero maggiore di 0
  • Se type è percent, il valore deve essere inferiore a 100

Definisce a quali mercati Shopify si applica la regola.

Struttura:

"apply_market": {
"type": "all",
"handle": []
}

type

Valori accettati:

  • all
  • specific-market

handle

  • Obbligatorio solo quando type == specific-market
  • Elenco di handle dei mercati separati da virgole
  • Esempio: ["japan","us"]

Si usa quando lo sconto non è configurato per singola variante.

Obbligatorio quando:

  • apply_product.type non è products, OPPURE
  • apply_product.type == products E le varianti non sono applicate

Struttura:

"discount_group": {
"type": "percent",
"value": "10"
}

Regole:

  • type deve essere uno tra:
    • percent
    • amount
    • fixed-amount
  • value
    • Deve essere maggiore di 0
    • Se type è percent, il valore deve essere inferiore a 100

Serve a configurare l’ora di inizio e di fine della regola di prezzo.

Struttura:

"active_date": {
"types": ["start_date", "end_date"],
"start_at": "2026-01-15T10:00:00",
"end_at": "2026-01-15T10:00:00"
}

types

  • Facoltativo
  • Valori accettati: start_date, end_date
  • Esempio: ["start_date","end_date"]

start_at

  • Obbligatorio se types include start_date
  • Formato: YYYY-MM-DD HH:MM:SS

end_at

  • Obbligatorio se types include end_date
  • Formato: YYYY-MM-DD HH:MM:SS

401 – Unauthorized

Possibili motivi:

  • URL del negozio mancante
  • Chiave API mancante
  • URL del negozio non valido
  • Chiave API non valida
  • La chiave API non corrisponde al negozio

403 – This action is unauthorized

  • La chiave API non ha l’autorizzazione Update
  • Ogni chiave API può avere le autorizzazioni View, Create, Update e Delete
  • Questa API richiede l’autorizzazione Update
  • Viene restituito anche quando l’ID fornito non esiste

429 – Too Many Requests

Limite di frequenza superato:

  • Massimo 1 richiesta ogni 5 minuti
  • Massimo 50 richieste al giorno

200 – API Success

  • Record Wholesale Pricing aggiornato correttamente
  • Risposta restituita in formato JSON

Esempio di risposta JSON:

{
"id": 1,
"title": "New Wholesale Pricing",
"status": true,
"apply_customer": {
"type": "all",
"tags": []
},
"exclude_customer": {
"type": "none",
"tags": []
},
"apply_product": {
"type": "all",
"product_ids": [],
"product_tags": [],
"collection_ids": [],
"apply_for_variants": false
},
"exclude_product": {
"type": "none",
"product_ids": [],
"collection_ids": []
},
"discount_for_variants": [
{
"id": 8516448190631,
"variant_pricing": true,
"variants": [
{
"id": 46747346763943,
"discount_groups": [
{
"name": "all",
"type": "percent",
"value": "10"
}
]
}
]
}
],
"apply_market": {
"type": "all",
"handle": []
},
"discount_group": {
"type": "percent",
"value": "10"
},
"active_date": {
"types": [],
"start_at": "",
"end_at": ""
},
"created_at": "2026-01-15T10:00:00",
"updated_at": "2026-01-15T10:00:00"
}

Questa pagina ti è stata utile?