Nuovi formati evento

Sterling Intelligent Promising introduce un nuovo formato di evento per inventory service. In futuro, tutti i nuovi eventi vengono consegnati nel nuovo formato.

Il seguente elenco menziona gli eventi forniti nei formati più recenti:

Eventi di modifica

Ogni volta che si verifica una modifica dell'inventario, i seguenti eventi vengono pubblicati agli endpoint specificati.
ID evento in Inventory Visibility Codice evento nel payload
Funzione obsoletaSupply.Change Deprecated featuresupplyChange
supplyChange.v2 supplyChange.v2
productAvailability.v2 productAvailability.v2
availableSupplyChange.v2 availableSupplyChange.v2
dgAvailabilityChange.v2 dgAvailabilityChange.v2
Demand.Change demandChange

Eventi istantanea

I seguenti eventi istantanea consentono di pubblicare l'evento di modifica su sistemi esterni.
ID evento in Inventory Visibility Codice evento nel payload
productAvailabilitySnapshot.v2 productAvailabilitySnapshot.v2
dgAvailabilitySnapshot.v2 dgAvailabilitySnapshot.v2
demandSnapshot demandSnapshot
supplySnapshot supplySnapshot
Nota: per i record di domanda e offerta precedenti al giugno 2024 e senza aggiustamenti delta effettuati dopo il giugno 2024, è necessario sincronizzarli nuovamente per visualizzare tali record negli eventi snapshot.
Funzione obsoletaSupply.Change
Quando la fornitura cambia per un item, l'evento Supply.Change viene attivato. Il codice per questo evento è supplyChange.
Il seguente JSON di esempio è un esempio di un evento Supply.Change pubblicato.
{
  "eventbatch":[
   {
     "channel":"Order Management",
     "identifiers":[],
     "events":[
    {
      "code": "supplyChange",
      "timestamp": "2020-01-18T06:00:00.021Z",
      "attributes": [
          { "name":"tenantId", "type":"String", "value":"tenant1" },
          { "name":"productID", "type":"String", "value":"SKU1024" },
          { "name":"unitOfMeasure", "type":"String", "value":"EACH" },
          { "name":"productClass", "type":"String", "value":"NEW" },
          { "name":"shipNode", "type":"String", "value":"Matrix-Store-001" },
          { "name":"shipByDate", "type":"dateTime", "value":"2500-01-01T00:00:00.000Z" },
          { "name":"lineReference", "type":"String", "value":"" },
          { "name":"reference", "type":"String", "value":"" },
          { "name":"referenceType", "type":"String", "value":"" },
          { "name":"segment", "type":"String", "value":"" },
          { "name":"segmentType", "type":"String", "value":"" },
          { "name":"quantity", "type":"Number", "value":"1.0" },
          { "name":"changedQuantity", "type":"Number", "value":"1.0" },
          { "name":"type", "type":"String", "value":"ONHAND_BACKROOM_01" },
          { "name":"baseType", "type":"String", "value":"ONHAND" },
          { "name":"tagNumber", "type":"String", "value":"|||" },
          { "name":"updatedTs", "type":"dateTime", "value":"IGNORE_VALUE" },
          { "name":"eta", "type":"dateTime", "value":"1900-01-01T00:00:00.000Z" },
          { "name":"adjustmentReason", "type":"String", "value":"ADJUSTMENT"},
        ]
        },
    {
      "code":"supplyChange",
      "timestamp":"2020-01-03T15:48:02Z",
      "attributes":[
          { "name":"tenantId", "value":"tenant1", "type":"String"},
          { "name":"productID", "value":"SKU1024", "type":"String"},
          { "name":"unitOfMeasure", "value":"EACH", "type":"String"},
          { "name":"productClass", "value":"NEW", "type":"String"},
          { "name":"lineReference", "value":" ", "type":"String"},
          { "name":"shipNode", "value":"Matrix-Store-002", "type":"String"},
          { "name":"shipByDate", "value":"2500-01-01T00:00:00Z", "type":"dateTime"},
          { "name":"reference", "value":" ", "type":"String"},
          { "name":"referenceType", "value":" ", "type":"String"},
          { "name":"quantity", "value":"200.0", "type":"Number"},
          { "name":"segment", "value":" ", "type":"String"},
          { "name":"segmentType", "value":" ", "type":"String"},
          { "name":"type", "type":"String", "value":"ONHAND_BACKROOM_01" },
          { "name":"baseType", "type":"String", "value":"ONHAND" },
          { "name":"tagNumber", "type":"String", "value":"|||" },
          { "name":"updatedTs", "value":"2020-01-03T15:47:48Z", "type":"dateTime"},
          { "name":"eta", "value":"1900-01-01T00:00:00Z", "type":"dateTime"},
          { "name":"adjustmentReason", "type":"String", "value":"ADJUSTMENT"},
        ]}
     ]
  }]
}
Il campo updatedTs indica l'ora in cui il database è stato aggiornato per questa fornitura. Se non è presente alcun record di database, è null durante forcePublish. Per impostazione predefinita, quando viene eseguita una sincronizzazione della fornitura, l'evento di modifica della fornitura viene pubblicato solo per i record che devono essere upserted come parte della sincronizzazione della fornitura. Tuttavia, quando forcePublish viene inoltrato come true in una sincronizzazione di fornitura, viene pubblicato un evento per ogni record di fornitura che fa parte della sincronizzazione di fornitura. Questo, a sua volta, pubblica anche gli eventi di modifica della disponibilità dei nodi e della rete, indipendentemente dalla variazione della disponibilità dovuta al record di fornitura in arrivo. Se un record di fornitura non è presente nel sistema e viene ignorato come parte del processo di sincronizzazione, updatedTs è null per l'evento di questo record.
Nota: questo parametro è applicabile a productAvailability.v2, availableSupplyChange.v2, dgAvailabilityChange.v2.
supplyChange.v2
Quando la fornitura cambia per un item, l'evento supplyChange.v2 viene attivato. Il codice per questo evento è supplyChange.v2.
Il seguente JSON di esempio è un esempio di un evento supplyChange.v2 pubblicato.
{
  "type": "supplyChange.v2",
  "datacontenttype": "application/json",
  "id": "2a8d36a3-485b-3fc0-bd15-d530625a6ec5",
  "specversion": "1.0",
  "time": "2023-08-30T10:20:31.102Z",
  "data": {
      "tenantId": "tenant1",
      "itemId": "SKU1024",
      "unitOfMeasure": "EACH",
      "productClass": "NEW",
      "shipNode": "Matrix-Store-001"
      "shipByDate": "2500-01-01T00:00:00.000Z",
      "lineReference":null,
      "reference":null,
      "referenceType":null,
      "segment": null,
      "segmentType": null,
      "quantity": 1,
      "changedQuantity": 1,
      "customAttributes" : [ {
         "double" : 10.1,
         "key" : "futureQuantity"
      }, {
         "key" : "adjustmentReasonText",
         "string" : "returnDamaged"
      }, {
         "date" : "2023-01-01T00:00:00.000Z",
         "key" : "manufacturingDate"
     }],
      "type": "ONHAND_BACKROOM_01",
      "baseType": "ONHAND",
      "tagNumber": "|||",
      "updatedTs": "2023-08-30T10:20:31.102Z",
      "eta": "1900-01-01T00:00:00.000Z",
      "adjustmentReason": "ADJUSTMENT",
  }
}
Il campo updatedTs indica l'ora in cui il database è stato aggiornato per questa fornitura. Se non è presente alcun record di database, è null durante forcePublish. Per impostazione predefinita, quando viene eseguita una sincronizzazione della fornitura, l'evento di modifica della fornitura viene pubblicato solo per i record che devono essere upserted come parte della sincronizzazione della fornitura. Tuttavia, quando forcePublish viene inoltrato come true in una sincronizzazione di fornitura, viene pubblicato un evento per ogni record di fornitura che fa parte della sincronizzazione di fornitura. Questo, a sua volta, pubblica anche gli eventi di modifica della disponibilità dei nodi e della rete, indipendentemente dalla variazione della disponibilità dovuta al record di fornitura in arrivo. Se un record di fornitura non è presente nel sistema e viene ignorato come parte del processo di sincronizzazione, updatedTs è null per l'evento di questo record.
productAvailability.v2
La disponibilità dei nodi negli eventi di productAvailability.v2 viene pubblicata per articolo-nodo ogni volta che si verifica una variazione della quantità disponibile. La modifica può essere attivata in caso di aggiornamenti dei livelli di offerta, domanda, scorte di sicurezza, opzioni di adempimento e capacità.
Il seguente esempio JSON è un esempio di evento pubblicato per il metodo di consegna SHP e PICK.
  • Metodo di consegna SHP
    {
      "type": "productAvailability.v2",
      "datacontenttype": "application/json",
      "id": "2a8d36a3-485b-3fc0-bd15-d530625a6ec5",
      "specversion": "1.0",
      "time": "2021-03-10T00:00:00.288Z",
      "data": {
      "itemAttributes" : 
      {
          "color": ["red", "black"],
          "material": ["cotton"],
          "size": ["L", "M"]
      },
      "computeTs": "2021-03-10T00:00:00.097Z",
      "tenantId": "tenant1",
      "productId": "SHIRT",
      "productClass": "CLASS_1",
      "deliveryMethod": "SHP",
      "segment": null,
      "segmentType": null,
      "shipNode": "store-BostonMA",
      "unitOfMeasure": "EACH",
      "currentAvailability": {
         "demandQuantity": 0,
         "supplyQuantity": 5,
         "toTs": "2021-04-01T00:00:00.000Z",
         "availableQuantity": 35,
         "consumedSafetyQuantity": 0,
         "fulfillmentAllowed": true,
         "reservedQuantity": 0,
         "shortageQuantity": 0,
         "thresholdLevel": 0,
         "demandShortage": 0,
         "reservationShortage":0,
         "safetyShortage":0,
         "segmentedQuantity": 5.0,
         "unsegmentedQuantity": 25.0,
         "consumptionDemandQuantity" : 0.0,
         "consumptionReservedQuantity" : 0.0
         "unplanned": {
           "availableQuantity": 5.0,
           "demandQuantity": 3.0,
           "reserveQuantity": 2.0
           }
      },
      "futureAvailability": [
      {
         "demandQuantity": 0,
         "supplyQuantity": 5,
         "fromTs": "2021-04-01T00:00:00.000Z",
         "toTs": "2500-01-01T00:00:00.000Z",
         "availableQuantity": 45,
         "consumedSafetyQuantity": 0,
         "fulfillmentAllowed": true,
         "reservedQuantity": 0,
         "shortageQuantity": 0,
         "demandShortage": 0,
         "reservationShortage":0,
         "safetyShortage":0,
         "segmentedQuantity": 5.0,
         "unsegmentedQuantity": 35.0,
         "consumptionDemandQuantity" : 0.0,
         "consumptionReservedQuantity" : 0.0,  
         "unplanned": {
           "availableQuantity": 5.0,
           "demandQuantity": 3.0,
           "reserveQuantity": 2.0
           }
         }
       ]
     }
    }
  • Metodo di consegna PICK
    {
      "type": "productAvailability.v2",
      "datacontenttype": "application/json",
      "id": "2a8d36a3-485b-3fc0-bd15-d530625a6ed6",
      "specversion": "1.0",
      "time": "2021-03-10T00:00:00.288Z",
      "data": {
      "itemAttributes" : 
      {
          "color": ["red", "black"],
          "material": ["cotton"],
          "size": ["L", "M"]
      },
      "computeTs": "2021-03-10T00:00:00.097Z",
      "tenantId": "tenant1",
      "productId": "SHIRT",
      "productClass": "CLASS_1",
      "deliveryMethod": "PICK",
      "segment": null,
      "segmentType": null,
      "shipNode": "store-BostonMA",
      "unitOfMeasure": "EACH",
      "currentAvailability": {
         "demandQuantity": 0,
         "supplyQuantity": 5,
         "toTs": "2021-04-01T00:00:00.000Z",
         "availableQuantity": 35,
         "consumedSafetyQuantity": 0,
         "fulfillmentAllowed": true,
         "reservedQuantity": 0,
         "shortageQuantity": 0,
         "thresholdLevel": 0,
         "demandShortage": 0,
         "reservationShortage":0,
         "safetyShortage":0,
         "segmentedQuantity": 5.0,
         "unsegmentedQuantity": 25.0,
         "consumptionDemandQuantity" : 0.0,
         "consumptionReservedQuantity" : 0.0,
         "unplanned": {
           "availableQuantity": 5.0,
           "demandQuantity": 3.0,
           "reserveQuantity": 2.0
           }
      },
      "futureAvailability": [
      {
         "demandQuantity": 0,
         "supplyQuantity": 5,
         "fromTs": "2021-04-01T00:00:00.000Z",
         "toTs": "2500-01-01T00:00:00.000Z",
         "availableQuantity": 45,
         "consumedSafetyQuantity": 0,
         "fulfillmentAllowed": true,
         "reservedQuantity": 0,
         "shortageQuantity": 0,
         "demandShortage": 0,
         "reservationShortage":0,
         "safetyShortage":0,
         "segmentedQuantity": 5.0,
         "unsegmentedQuantity": 35.0,
         "consumptionDemandQuantity" : 0.0,
         "consumptionReservedQuantity" : 0.0,
         "unplanned": {
           "availableQuantity": 5.0,
           "demandQuantity": 3.0,
           "reserveQuantity": 2.0
           }
        }
       ]
     }
    }
Nota:
  • shortageQuantity è la carenza generata nel sistema a causa della domanda in eccesso, della prenotazione in eccesso e dello stock di sicurezza in eccesso.
  • Il consumedSafetyQuantity è la quantità di sicurezza che è stata regolata con la disponibilità in mano.
  • Il campo fulfillmentAllowed indica se l'adempimento è consentito o meno.
  • demandShortage fornisce la quantità di domanda in eccesso che non è stato possibile adattare con l'offerta.
  • reservationShortage fornisce il valore di qualsiasi eccesso nella prenotazione.
  • safetyShortage fornisce la quantità di scorte di sicurezza che non è stato possibile adattare con le forniture disponibili e
  • shortageQuantity = demandShortage + reservationShortage + safetyShortage.
  • SegmentedQuantity è la disponibilità proveniente dall'inventario segmentato. Viene calcolato solo quando il segmento consuma scorte non segmentate ed è 0.0 se l'evento mostra una disponibilità non segmentata.
  • UnsegmentedQuantity è la disponibilità proveniente dall'inventario non segmentato. Viene calcolato solo quando il segmento consuma scorte non segmentate.
  • Quando l'evento viene pubblicato per la disponibilità non segmentata, si considerano i seguenti parametri per il calcolo:
    • consumptionDemandQuantity è la quantità aggiuntiva di domanda segmentata assegnata alla disponibilità non segmentata. Viene calcolato solo quando il consumo è abilitato e l'evento viene sollevato per l'inventario non segmentato.
    • consumptionReservedQuantity è la quantità aggiuntiva di prenotazioni segmentate collocate con disponibilità non segmentata. Viene calcolato solo quando il consumo è abilitato e l'evento viene sollevato per l'inventario non segmentato.
  • Le quantità non pianificate in currentAvailability indicano un eccesso di scorte esistenti, mentre quelle in futureAvailability implicano la necessità di rifornire i fornitori.
Quando l'evasione ordini è disattivata a livello di nodo o di articolo, gli eventi di modifica della disponibilità non vengono generati con alcuna attività correlata all'inventario come la domanda e l'offerta. Se è necessario ricevere gli eventi anche quando l'adempimento ordini è disabilitato, la regola basata sul tenant event.alwaysPublishEventForDelMethod deve essere impostata con i metodi di consegna richiesti come elenco separato da virgole. Per impostazione predefinita, questa regola è vuota. Puoi utilizzare l'API Update settings per modificare questa regola.

Per ulteriori informazioni, vedere Update settings API.

Nota: gli eventi di modifica della disponibilità del nodo per i metodi di consegna specificati vengono generati quando la regola precedente è impostata e l'evasione è disabilitata a livello di nodo o di articolo. Ciò è applicabile agli eventi productAvailability.v2 .
availableSupplyChange.v2
L'evento availableSupplyChange.v2 fornisce l'immagine della disponibilità in base alle date dell'offerta quando si verificano modifiche nell'offerta, nella domanda, nella prenotazione o nello stock di sicurezza. Il codice per questo evento è availableSupplyChange.v2. Il punto di attivazione dell'evento availableSupplyChange.v2 è uguale a quello di productavailability.v2.

Per ulteriori informazioni, vedi Forniture disponibili del nodo.

Il seguente esempio JSON è un esempio di evento pubblicato per il metodo di consegna SHP e PICK.
  • Metodo di consegna SHP
    {
       "specversion": "1.0",
       "type": "availableSupplyChange.v2",
       "id": "515aa404-4411-38d8-9855-b6ab093a451e",
       "time": "2023-12-05T23:35:56.616Z",
       "datacontenttype": "application/json",
       "data":{
          "tenantId":"us-b5d0aae5",
          "productId":"SHIRT",
          "segment":null,
          "segmentType":null,
          "unitOfMeasure":"EACH",
          "productClass":"NEW",
          "deliveryMethod":"SHP",
          "shipNode": "store-BostonMA",
          "computeTs": "2023-12-05T23:35:56.584Z",
          "thresholdLevel": "0",
          "availableSupplies":[{
             "availableQuantity" : 8.0,
             "consumedSafetyQuantity" : 0.0,
             "demandQuantity" : 4.0,
             "fromTs" : "2023-12-01T00:00:00.000Z",
             "fulfillmentAllowed" : true,
             "reservedQuantity" : 0.0,
             "shortageQuantity" : 0.0,
             "supplyQuantity" : 12.0,
             "toTs" : "2023-12-30T00:00:01.000Z",
             "demandShortage": 0,
             "reservationShortage":0,
             "safetyShortage":0
          }, 
       {
          "availableQuantity" : 15.0,
          "consumedSafetyQuantity" : 0.0,
          "demandQuantity" : 0.0,
          "fromTs" : "2023-12-10T00:00:00.000Z",
          "fulfillmentAllowed" : true,
          "reservedQuantity" : 0.0,
          "shortageQuantity" : 0.0,
          "supplyQuantity" : 10.0,
          "toTs" : "2024-01-10T00:00:01.000Z",
          "demandShortage": 0,
          "reservationShortage":0,
          "safetyShortage":0,
       }],
       "unsegmentedAvailableSupplies":[{ 
          "availableQuantity" : 90.0,
          "consumedSafetyQuantity" : 0.0,
          "demandQuantity" : 0.0,
          "fromTs" : "1900-01-01T00:00:00.000Z",
          "fulfillmentAllowed" : true,
          "reservedQuantity" : 0.0,
          "shortageQuantity" : 0.0,
          "supplyQuantity" : 90.0,
          "toTs" : "2500-01-01T00:00:00.000Z",
          "demandShortage": 0,
          "reservationShortage":0,
          "safetyShortage":0,
          "consumptionDemandQuantity" : 0.0,
          "consumptionReservedQuantity" : 0.0
       }],
       "itemAttributes" : 
       {
          "color": ["red", "black"],
          "material": ["cotton"],
          "size": ["L", "M"]
        }
      }
    }
  • Metodo di consegna PICK
    {
       "specversion": "1.0",
       "type": "availableSupplyChange.v2",
       "id": "515aa404-4411-38d8-9855-b6ab093a462f",
       "time": "2023-12-05T23:35:56.616Z",
       "datacontenttype": "application/json",
       "data":{
          "tenantId":"us-b5d0aae5",
          "productId":"SHIRT",
          "segment":null,
          "segmentType":null,
          "unitOfMeasure":"EACH",
          "productClass":"NEW",
          "deliveryMethod":"PICK",
          "shipNode": "store-BostonMA",
          "computeTs": "2023-12-05T23:35:56.584Z",
          "thresholdLevel": "0",
          "availableSupplies":[{
             "availableQuantity" : 13.0,
             "consumedSafetyQuantity" : 0.0,
             "demandQuantity" : 4.0,
             "fromTs" : "2023-12-01T00:00:00.000Z",
             "fulfillmentAllowed" : true,
             "reservedQuantity" : 0.0,
             "shortageQuantity" : 0.0,
             "supplyQuantity" : 12.0,
             "toTs" : "2023-12-30T00:00:01.000Z",
             "demandShortage": 0,
             "reservationShortage":0,
             "safetyShortage":0,
          }, 
       {
          "availableQuantity" : 10.0,
          "consumedSafetyQuantity" : 0.0,
          "demandQuantity" : 0.0,
          "fromTs" : "2023-12-10T00:00:00.000Z",
          "fulfillmentAllowed" : true,
          "reservedQuantity" : 0.0,
          "shortageQuantity" : 0.0,
          "supplyQuantity" : 10.0,
          "toTs" : "2024-01-10T00:00:01.000Z",
          "demandShortage": 0,
          "reservationShortage":0,
          "safetyShortage":0
       }],
       "unsegmentedAvailableSupplies":[{ 
          "availableQuantity" : 90.0,
          "consumedSafetyQuantity" : 0.0,
          "demandQuantity" : 0.0,
          "fromTs" : "1900-01-01T00:00:00.000Z",
          "fulfillmentAllowed" : true,
          "reservedQuantity" : 0.0,
          "shortageQuantity" : 0.0,
          "supplyQuantity" : 90.0,
          "toTs" : "2500-01-01T00:00:00.000Z",
          "demandShortage": 0,
          "reservationShortage":0,
          "safetyShortage":0,
          "consumptionDemandQuantity" : 0.0,
          "consumptionReservedQuantity" : 0.0
       }],
       "itemAttributes" : 
       {
          "color": ["red", "black"],
          "material": ["cotton"],
          "size": ["L", "M"]
        }
      }
    }
Quando l'evasione ordini è disattivata a livello di nodo o di articolo, gli eventi di modifica della disponibilità non vengono generati con alcuna attività correlata all'inventario come la domanda e l'offerta. Se è necessario ricevere gli eventi anche quando l'adempimento ordini è disabilitato, la regola basata sul tenant event.alwaysPublishEventForDelMethod deve essere impostata con i metodi di consegna richiesti come elenco separato da virgole. Per impostazione predefinita, questa regola è vuota. Puoi utilizzare l'API Update settings per modificare questa regola.

Per ulteriori informazioni, vedere Update settings API.

Nota: gli eventi di modifica della disponibilità del nodo per i metodi di consegna specificati vengono generati quando la regola precedente è impostata e l'evasione è disabilitata a livello di nodo o di articolo. Ciò è applicabile agli eventi availableSupplyChange.v2 .
dgAvailabilityChange.v2
dgAvailabilityChange.v2 gli eventi rappresentano la disponibilità complessiva della rete per un gruppo di distribuzione. Un nuovo evento viene pubblicato ogni volta che uno o più nodi contenuti subiscono una modifica della quantità di disponibilità o del timestamp. Queste modifiche possono essere innescate da aggiornamenti dell'offerta, della domanda, delle scorte di sicurezza, delle opzioni di evasione o dei livelli di capacità.
Il seguente esempio JSON è un esempio di evento pubblicato per il metodo di consegna SHP e PICK.
  • Metodo di consegna SHP
    {
      "type": "dgAvailabilityChange.v2",
      "datacontenttype": "application/json",
      "id": "304746ba-4d53-3514-94d9-9353b8b14152",
      "specversion": "1.0",
      "time": "2021-03-10T00:00:00.283Z",
      "data": {
      "itemAttributes" : 
      {
         "color": ["red", "black"],
         "material": ["cotton"],
         "size": ["L", "M"]
      },
      "computeTs": "2021-03-10T00:00:00.119Z",
      "tenantId": "tenant1",
      "productId": "SHIRT",
      "productClass": "CLASS_1",
      "deliveryMethod": "SHP",
      "segment" : "Platinum",
      "segmentType" : "B2B Accounts",
      "distributionGroupId": "WEB",
      "unitOfMeasure": "EACH",
      "currentAvailability": {
         "toTs": "2021-04-01T00:00:00.000Z",
         "availableQuantity": 35,
         "consumedSafetyQuantity": 0,
         "fulfillmentAllowed": true,
         "reservedQuantity": 0,
         "shortageQuantity": 0,
         "thresholdLevel": 0,
         "demandShortage": 0,
         "reservationShortage": 0,
         "safetyShortage":0,
         "segmentedQuantity": 20.0,
         "unsegmentedQuantity": 10.0,
         "consumptionDemandQuantity" : 0.0,
         "consumptionReservedQuantity" : 0.0,
         "unplanned": {
           "availableQuantity": 5.0,
           "demandQuantity": 3.0,
           "reserveQuantity": 2.0
           }
        },
        "futureAvailability": [
        {
           "fromTs": "2021-04-01T00:00:00.000Z",
           "toTs": "2500-01-01T00:00:00.000Z",
           "availableQuantity": 45,
           "consumedSafetyQuantity": 0,
           "fulfillmentAllowed": true,
           "reservedQuantity": 0,
           "shortageQuantity": 0,
           "demandShortage": 0,
           "reservationShortage":0,
           "safetyShortage":0,
           "segmentedQuantity": 5.0,
           "unsegmentedQuantity": 35.0,
           "consumptionDemandQuantity" : 0.0,
           "consumptionReservedQuantity" : 0.0
           "unplanned": {
             "availableQuantity": 5.0,
             "demandQuantity": 3.0,
             "reserveQuantity": 2.0
             }
           }
        ]
      }
    }
  • Metodo di consegna PICK
    {
      "type": "dgAvailabilityChange.v2",
      "datacontenttype": "application/json",
      "id": "515aa404-4411-38d8-9855-b6ab093a46df",
      "specversion": "1.0",
      "time": "2021-03-10T00:00:00.283Z",
      "data": {
        "itemAttributes" :
        {
          "color": ["red", "black"],
          "material": ["cotton"],
          "size": ["L", "M"]
        },
      "computeTs": "2021-03-10T00:00:00.119Z",
      "tenantId": "tenant1",
      "productId": "SHIRT",
      "productClass": "CLASS_1",
      "deliveryMethod": "PICK",
      "segment": null,
      "segmentType": null,
      "distributionGroupId": "WEB",
      "unitOfMeasure": "EACH",
      "currentAvailability": {
         "toTs": "2021-04-01T00:00:00.000Z",
         "availableQuantity": 35,
         "consumedSafetyQuantity": 0,
         "fulfillmentAllowed": true,
         "reservedQuantity": 0,
         "shortageQuantity": 0,
         "thresholdLevel": 0,
         "demandShortage": 0,
         "reservationShortage":0,
         "safetyShortage":0,
         "segmentedQuantity": 5.0,
         "unsegmentedQuantity": 25.0,
         "consumptionDemandQuantity" : 0.0,
         "consumptionReservedQuantity" : 0.0,
         "unplanned": {
           "availableQuantity": 5.0,
           "demandQuantity": 3.0,
           "reserveQuantity": 2.0
           }
         },
         "futureAvailability": [
         {
           "fromTs": "2021-04-01T00:00:00.000Z",
           "toTs": "2500-01-01T00:00:00.000Z",
           "availableQuantity": 45,
           "consumedSafetyQuantity": 0,
           "fulfillmentAllowed": true,
           "reservedQuantity": 0,
           "shortageQuantity": 0,
           "demandShortage": 0,
           "reservationShortage":0,
           "safetyShortage":0,
           "segmentedQuantity": 20.0,
           "unsegmentedQuantity": 20.0,
           "consumptionDemandQuantity" : 0.0,
           "consumptionReservedQuantity" : 0.0
           "unplanned": {
             "availableQuantity": 5.0,
             "demandQuantity": 3.0,
             "reserveQuantity": 2.0
             }
           }
        ]
      }
    }
Nota: l'attributo shortageQuantity rappresenta l'aggregazione delle quantità di carenza a livello di nodo su tutti i nodi del gruppo di distribuzione. Per ulteriori informazioni, consultare Definizioni per shortageQuantity, consumedSafetyQuantitye fulfillmentAllowed.
Demand.Change
inventory service consente di pubblicare i dati di modifica della domanda in un sistema esterno per l'analisi. Tali dati consentono al responsabile della supply chain (SC) di essere avvisato quando si verifica un improvviso flusso di domanda di inventario. Ad esempio, se si verifica un improvviso aumento della domanda di disinfettante per le mani, il responsabile SC può modificare rapidamente la strategia di adempimento per mitigare i danni contrattuali ad alcuni degli acquirenti di alto valore.

Il seguente payload di esempio è un esempio di un evento pubblicato. L'ID evento Inventory Visibility è Demand.Change e il codice evento nel payload è demandChange.

{
    "specversion" : "1.0",
    "datacontenttype" : "application/json",
    "type": "demandChange",
    "id": "<UUID>",
    "time": "<time ISO-8601 format>",
    "data": {
        "itemId": "SHIRT",
        "unitOfMeasure": "EACH",
        "productClass": "CLASS_1",
        "tagNumber": "A|02",
        "shipNode": "store-BostonMA",
        "baseType": "OPEN_ORDER",
        "type": "CUSTOM_OPEN_ORDER",
        "segment": "Web",
        "segmentType": "Channel",
        "shipDate": "2020-05-29T13:00:00.000Z",
        "cancelDate": "2020-06-28T13:00:00.000Z",
        "minShipByDate": "2022-01-22T05:00:00.000Z",
        "quantity": 3.0,
        "changedQuantity": 2.0,
        "updatedTs": "2020-05-28T06:00:00.000Z",
        "adjustmentReason" : "PROCESS"
    }
}
Nota: il campo updatedTs indica l'ora in cui il database è stato aggiornato per questa domanda.
productAvailabilitySnapshot.v2
Utilizzare l'evento productAvailabilitySnapshot.v2 per inviare un'istantanea (su richiesta) della disponibilità per un nodo specifico, per tutti i nodi o per i nodi che appartengono a un gruppo di distribuzione.
Il seguente esempio JSON è un esempio di evento pubblicato per il metodo di consegna SHP e PICK.
  • Metodo di consegna SHP
    {
      "type": "productAvailabilitySnapshot.v2",
      "datacontenttype": "application/json",
      "id": "2a8d36a3-485b-3fc0-bd15-d530625a6ec5",
      "specversion": "1.0",
      "time": "2021-03-10T00:00:00.288Z",
      "data": {
        "computeTs": "2021-03-10T00:00:00.097Z",
        "tenantId": "tenant1",
        "snapshotId": "productAvailabilitySnapshot-test",
        "productId": "SHIRT",
        "productClass": "CLASS_1",
        "deliveryMethod": "SHP",
        "segment": null,
        "segmentType": null,
        "shipNode": "store-BostonMA",
        "unitOfMeasure": "EACH",
        "currentAvailability": {
          "demandQuantity": 0,
          "supplyQuantity": 30,
          "toTs": "2021-04-01T00:00:00.000Z",
          "availableQuantity": 35,
          "consumedSafetyQuantity": 0,
          "fulfillmentAllowed": true,
          "reservedQuantity": 0,
          "shortageQuantity": 0,
          "thresholdLevel": 0,
          "demandShortage": 0,
          "reservationShortage":0,
          "safetyShortage":0,
          "segmentedQuantity": 20.0,
          "unsegmentedQuantity": 10.0,
          "consumptionDemandQuantity" : 0.0,
          "consumptionReservedQuantity" : 0.0,
          "unplanned": {
             "availableQuantity": 5.0,
             "demandQuantity": 3.0,
             "reserveQuantity": 2.0
             }
    
        },
        "futureAvailability": [
        {
          "demandQuantity": 0,
          "supplyQuantity": 45,
          "fromTs": "2021-04-01T00:00:00.000Z",
          "toTs": "2500-01-01T00:00:00.000Z",
          "availableQuantity": 40,
          "consumedSafetyQuantity": 0,
          "fulfillmentAllowed": true,
          "reservedQuantity": 0,
          "shortageQuantity": 0,
          "demandShortage": 0,
          "reservationShortage":0,
          "safetyShortage":0,
          "segmentedQuantity": 20.0,
          "unsegmentedQuantity": 20.0,
          "consumptionDemandQuantity" : 0.0,
          "consumptionReservedQuantity" : 0.0
          "unplanned": {
             "availableQuantity": 5.0,
             "demandQuantity": 3.0,
             "reserveQuantity": 2.0
             }
           }
         ]
      }
    }
  • Metodo di consegna PICK
    {
      "type": "productAvailabilitySnapshot.v2",
      "datacontenttype": "application/json",
      "id": "2a8d36a3-485b-3fc0-be26-d530625a6ec5",
      "specversion": "1.0",
      "time": "2021-03-10T00:00:00.288Z",
      "data": {
        "computeTs": "2021-03-10T00:00:00.097Z",
        "tenantId": "tenant1",
        "snapshotId": "productAvailabilitySnapshot-test",
        "productId": "SHIRT",
        "productClass": "CLASS_1",
        "deliveryMethod": "PICK",
        "segment": null,
        "segmentType": null,
        "shipNode": "store-BostonMA",
        "unitOfMeasure": "EACH",
        "currentAvailability": {
          "demandQuantity": 0,
          "supplyQuantity": 30,
          "toTs": "2021-04-01T00:00:00.000Z",
          "availableQuantity": 30,
          "consumedSafetyQuantity": 0,
          "fulfillmentAllowed": true,
          "reservedQuantity": 0,
          "shortageQuantity": 0,
          "thresholdLevel": 0,
          "demandShortage": 0,
          "reservationShortage":0,
          "safetyShortage":0,
          "segmentedQuantity": 20.0,
          "unsegmentedQuantity": 10.0,
          "consumptionDemandQuantity" : 0.0,
          "consumptionReservedQuantity" : 0.0
        },
        "futureAvailability": [
        {
          "demandQuantity": 0,
          "supplyQuantity": 40,
          "fromTs": "2021-04-01T00:00:00.000Z",
          "toTs": "2500-01-01T00:00:00.000Z",
          "availableQuantity": 40,
          "consumedSafetyQuantity": 0,
          "fulfillmentAllowed": true,
          "reservedQuantity": 0,
          "shortageQuantity": 0,
          "demandShortage": 0,
          "reservationShortage":0,
          "safetyShortage":0,
          "segmentedQuantity": 20.0,
          "unsegmentedQuantity": 20.0,
          "consumptionDemandQuantity" : 0.0,
          "consumptionReservedQuantity" : 0.0
          "unplanned": {
            "availableQuantity": 5.0,
            "demandQuantity": 3.0,
            "reserveQuantity": 2.0
            }
          }
        ]
      }
    }
Il seguente esempio EOF è un esempio di un evento pubblicato:
{
  "type": "productAvailabilitySnapshot.v2",
  "datacontenttype": "application/json",
  "id": "2a8d36a3-485b-3fc0-be26-d530625a6ec5",
  "specversion": "1.0",
  "time": "2021-03-10T00:00:00.288Z",
  "data": {
    "tenantId": "tenant1", 
    "snapshotId": "productAvailabilitySnapshot-test",
  }
}
Puoi attivare manualmente l'istantanea per un nodo specifico richiamando l'API publish_all . L'API productAvailabilitySnapshot.v2 publish_all restituisce l' URL di un lavoro insieme all'indirizzo jobId. Pubblica inoltre un evento fittizio quando il processo è completo, che ha lo stesso formato del messaggio normale, ma omette tutti gli attributi diversi da tenantId e snapshotId. snapshotId è un UUID per riconoscere l'evento. L' URL di productAvailabilitySnapshot.v2 è:
https://api.watsoncommerce.ibm.com/<tenantId>/v2/configuration/events/productAvailabilitySnapshot.v2/publish_all
Nota:
dgAvailabilitySnapshot.v2
Utilizzare l'evento dgAvailabilitySnapshot.v2 per inviare un'istantanea (su richiesta) della disponibilità a un gruppo di distribuzione.
Il seguente esempio JSON è un esempio di evento pubblicato per il metodo di consegna SHP e PICK.
  • Metodo di consegna SHP
    {
       "type": "dgAvailabilitySnapshot.v2",
       "datacontenttype": "application/json",
       "id": "240fe0ec-e24a-31c2-93a0-74cb8160aa98",
       "specversion": "1.0",
       "time": "2021-07-17T00:00:00.503Z",
       "data": {
         "computeTs": "2021-07-17T00:00:00.174Z",
         "tenantId": "tenant1",
         "productClass": "NEW",
         "productId": "book",
         "snapshotId": "dgAvailabilitySnapshot-test",
         "unitOfMeasure": "EACH",
         "deliveryMethod": "SHP",
         "segment": null,
         "segmentType": null,
         Deprecated feature"distributionGroup": "Stores",
         "distributionGroupId": "Stores",
         "currentAvailability": {
           "availableQuantity": 5,
           "consumedSafetyQuantity": 0,
           "fulfillmentAllowed": true,
           "reservedQuantity": 0,
           "shortageQuantity": 0,
           "thresholdLevel": 3,
           "toTs": "2021-07-20T00:00:00.000Z",
           "demandShortage": 0,
           "reservationShortage":0,
           "safetyShortage":0,         
           "segmentedQuantity": 0.0,
           "unsegmentedQuantity": 0.0,
           "consumptionDemandQuantity" : 0.0,
           "consumptionReservedQuantity" : 0.0,
           "unplanned": {
             "availableQuantity": 5.0,
             "demandQuantity": 3.0,
             "reserveQuantity": 2.0
           }
         },
         "futureAvailability": [
           {
             "availableQuantity": 15,
             "consumedSafetyQuantity": 0,
             "fromTs": "2021-07-20T00:00:00.000Z",
             "fulfillmentAllowed": true,
             "reservedQuantity": 0,
             "shortageQuantity": 0,
             "toTs": "2021-08-16T00:00:01.000Z",
             "demandShortage": 0,
             "reservationShortage":0,
             "safetyShortage":0,
             "segmentedQuantity": 5.0,
             "unsegmentedQuantity": 5.0,
             "consumptionDemandQuantity" : 0.0,
             "consumptionReservedQuantity" : 0.0
             "unplanned": {
               "availableQuantity": 5.0,
               "demandQuantity": 3.0,
               "reserveQuantity": 2.0
               }
             }
          ]
       } 
     }
  • Metodo di consegna PICK
    {
       "type": "dgAvailabilitySnapshot.v2",
       "datacontenttype": "application/json",
       "id": "240fe0ec-e24a-31c2-93a0-74cb8160bb00",
       "specversion": "1.0",
       "time": "2021-07-17T00:00:00.503Z",
       "data": {
         "computeTs": "2021-07-17T00:00:00.174Z",
         "tenantId": "tenant1",
         "productClass": "NEW",
         "productId": "book",
         "snapshotId": "dgAvailabilitySnapshot-test",
         "unitOfMeasure": "EACH",
         "deliveryMethod": "PICK",
         "segment": null,
         "segmentType": null,
         Deprecated feature"distributionGroup": "Stores",
         "distributionGroupId": "Stores",
         "currentAvailability": {
           "availableQuantity": 5,
           "consumedSafetyQuantity": 0,
           "fulfillmentAllowed": true,
           "reservedQuantity": 0,
           "shortageQuantity": 0,
           "thresholdLevel": 3,
           "toTs": "2021-07-20T00:00:00.000Z",
           "demandShortage": 0,
           "reservationShortage":0,
           "safetyShortage":0,
           "segmentedQuantity": 0.0,
           "unsegmentedQuantity": 0.0,
           "consumptionDemandQuantity" : 0.0,
           "consumptionReservedQuantity" : 0.0,
           "unplanned": {
              "availableQuantity": 5.0,
              "demandQuantity": 3.0,
              "reserveQuantity": 2.0
           }
         },
         "futureAvailability": [
           {
             "availableQuantity": 15,
             "consumedSafetyQuantity": 0,
             "fromTs": "2021-07-20T00:00:00.000Z",
             "fulfillmentAllowed": true,
             "reservedQuantity": 0,
             "shortageQuantity": 0,
             "toTs": "2021-08-16T00:00:01.000Z",
             "demandShortage": 0,
             "reservationShortage":0,
             "safetyShortage":0,
             "segmentedQuantity": 5.0,
             "unsegmentedQuantity": 5.0,
             "consumptionDemandQuantity" : 0.0,
             "consumptionReservedQuantity" : 0.0
             "unplanned": {
                "availableQuantity": 5.0,
                "demandQuantity": 3.0,
                "reserveQuantity": 2.0
                }
             }
          ]
       } 
     }
Nota:
  • L'attributo shortageQuantity rappresenta l'aggregazione delle quantità di carenza a livello di nodo in tutti i nodi del gruppo di distribuzione.
  • L'attributo distributionGroup è deprecato e sarà rimosso in una release successiva del prodotto. Utilizzare invece l'attributo distributionGroupId .
Per ulteriori informazioni, consultare Definizioni per shortageQuantity, consumedSafetyQuantitye fulfillmentAllowed.
Il seguente esempio EOF è un esempio di un evento pubblicato:
{
    "type": "dgAvailabilitySnapshot.v2",
    "datacontenttype": "application/json",
    "id": "2a8d36a3-485b-3fc0-bd15-d530625a6ec5",
    "specversion": "1.0",
    "time": "2021-03-10T00:00:00.288Z",
    "data": {
      "tenantId": "tenant1",
      "snapshotId": "dgAvailabilitySnapshot-test"
    }
}
È possibile attivare manualmente l'istantanea per uno specifico gruppo di distribuzione richiamando l'API publish_all . L'API dgAvailabilitySnapshot.v2 publish_all restituisce l' URL di un lavoro insieme all'indirizzo jobId. Pubblica inoltre un evento fittizio quando il processo è completo, che ha lo stesso formato del messaggio normale, ma omette tutti gli attributi diversi da tenantId e snapshotId. È possibile generare un'istantanea per uno specifico gruppo di distribuzione o per tutti. L' URL di dgAvailabilitySnapshot.v2 è:
https://api.watsoncommerce.ibm.com/<tenantId>v2/configuration/events/dgAvailabilitySnapshot.v2/publish_all
demandSnapshot

Come System Integrator in Inventory Visibility, si pubblica un'istantanea del sistema di richiesta per l'analisi. In qualità di responsabile dell'adempimento, utilizzare queste informazioni per creare un report sul sistema di richiesta e risolvere eventuali problemi rilevati prima del successivo ciclo finanziario. Ad esempio, come risultato di una promozione del prodotto eseguita, si verifica un aumento della domanda per il prodotto in un nodo specifico. Di conseguenza, per soddisfare questo aumento della domanda, è necessario aumentare l'offerta disponibile presso la sede per evitare che i clienti perdano il prodotto. Con la visibilità completa del sistema di richiesta, si continua a soddisfare la domanda dei clienti.

Il seguente JSON di esempio è un esempio di un evento pubblicato. Il codice evento è demandSnapshot.

{
  "type": "demandSnapshot",
  "datacontenttype": "application/json",
  "id": "a1ae3dcd-8fd6-4f76-b7ed-7916c739ac5a",
  "specversion": "1.0",
  "time": "2023-11-28T00:00:00.000Z",
  "data": {
    "fetchTs": "2023-11-28T00:00:00.000Z",
    "tenantId": "tenant1",
    "snapshotId": "demandSnapshot-test",
    "productId": "SKU1024",
    "unitOfMeasure": "EACH",
    "productClass": "NEW",
    "type": "OPEN_ORDER",
    "shipNode": "Matrix-Store-001",
    "tagNumber": null,
    "segment": "ONLINE",
    "segmentType": "Channel",
    "shipDate": "2023-12-05T00:00:00Z",
    "cancelDate": "2500-01-01T00:00:00Z",
    "referenceType": null,
    "reference": null,
    "minShipByDate": "2500-01-01T00:00:00Z",
    "quantity": 10
  }
}
Nota: Inventory Visibility non pubblica più i record di domanda o offerta con tipi non validi o non configurati negli eventi snapshot. Nei prossimi mesi, IV applicherà la convalida in fase di ingest per rifiutare tali record. Assicurarsi che tutti i tipi di domanda e offerta personalizzati siano configurati in IV prima di inviare i dati.
Utilizzare il seguente URL per demandSnapshot:
https://api.watsoncommerce.ibm.com/inventory/{tenantId}/v2/configuration/events/demandSnapshot/publish_all
supplySnapshot
In qualità di Systems Integrator in Inventory Visibility, si pubblica un'istantanea del sistema di fornitura per l'analisi. In qualità di Fulfillment Manager, è possibile avere una visione del sistema di fornitura in anticipo, in modo da poter affrontare eventuali discrepanze riscontrate prima del ciclo finanziario successivo. Ad esempio, si nota un aumento delle vendite di un prodotto nuovo che si è appena iniziato a vendere. Per acquisire più vendite, si decide di eseguire una promozione intorno a questo prodotto su un determinato nodo. Con la visibilità completa del sistema di fornitura, sei già consapevole della quantità di prodotti che devi fornire in anticipo rispetto alla promozione. Ciò garantisce che la richiesta del cliente venga soddisfatta con successo.

Il seguente JSON di esempio è un esempio di un evento pubblicato. Il codice evento è supplySnapshot.

{
  "type": "supplySnapshot",
  "datacontenttype": "application/json",
  "id": "4075a47d-9227-432e-ab3e-c369e8802aa0",
  "specversion": "1.0",
  "time": "2023-11-28T00:00:00.000Z",
  "data": {
    "fetchTs": "2023-11-28T00:00:00.000Z",
    "tenantId": "tenant1",
    "snapshotId": "supplySnapshot-test",
    "itemId": "SKU1024",
    "unitOfMeasure": "EACH",
    "productClass": "NEW",
    "type": "ONHAND",
    "shipNode": "Matrix-Store-001",
    "tagNumber": null,
    "segment": "ONLINE",
    "segmentType": "Channel",
    "eta": "1900-01-01T00:00:00Z",
    "shipByDate": "2500-01-01T00:00:00Z",
    "referenceType": null,
    "reference": null,
    "lineReference": null,
    "quantity": 100
  }
}
Nota: Inventory Visibility non pubblica più i record di domanda o offerta con tipi non validi o non configurati negli eventi snapshot. Nei prossimi mesi, IV applicherà la convalida in fase di ingest per rifiutare tali record. Assicurarsi che tutti i tipi di domanda e offerta personalizzati siano configurati in IV prima di inviare i dati.
Utilizzare il seguente URL per demandSnapshot:
https://api.watsoncommerce.ibm.com/inventory/{tenantId}/v2/configuration/events/supplySnapshot/publish_all
Nota: gli eventi legacy pubblicano valori vuoti come stringa vuota ' '. Mentre i nuovi eventi pubblicano valori vuoti comenullnel messaggio di evento.