Piattaforma di nuova generazione

Implementazione di spostamenti di inventario con richieste di spostamento

Un negozio associato può utilizzare le informazioni nella richiesta di spostamento per ritirare i prodotti da un'ubicazione di origine e posizionarli nell'ubicazione di destinazione.

Soluzione

Comprendere le API, i servizi e altri componenti utilizzati per implementare il flusso di spostamento dell'inventario.

Scansione portlet

Nel portlet Sposta inventario , è possibile visualizzare le richieste di spostamento. Il portlet visualizza il conteggio delle richieste di spostamento non avviate o nuove, in corso e il totale di queste due richieste di spostamento. Il portlet supporta anche lo spostamento ad hoc in cui è possibile spostare l'inventario senza creare una richiesta di spostamento precedente. Il portlet è visibile solo se si dispone dell'autorizzazione. Il pulsante Avvia spostamento ad hoc è visibile solo se è abilitata l'autorizzazione della risorsa Crea richiesta di spostamento ad hoc . Per recuperare il conteggio totale, viene richiamato SIMAPI - {tenantId}/stores/{storeId}/move-requests:summarize?groupBy=status .

Quando si fa clic sui numeri totali, viene visualizzata la pagina Elenco richieste di spostamento . Quando si fa clic su Non avviato, è possibile visualizzare le richieste di spostamento nello stato Non avviato . Quando si fa clic su In corso, è possibile visualizzare richieste di spostamento che si trovano nello stato In corso . Quando si fa clic su Totale, è possibile visualizzare sia le richieste di spostamento non avviate che in corso.

Pagina Elenco richieste di spostamento

La pagina Elenco richieste di spostamento visualizza le richieste di spostamento aperte che non sono in stato avviato o in corso nel negozio. A seconda di come si va dal portlet, vengono elencate le richieste di spostamento non avviate, in corso o entrambe. Per recuperare le richieste di spostamento, viene chiamato GET on SIM API - {tenantId}/v1/stores/{storeId}/move-requests?status={statuses}&fields=totalRequestedQuantity . Per impostazione predefinita, le richieste di spostamento sono ordinate in base all'ordine dal meno recente al più recente. Le richieste di spostamento aperte vengono richiamate in una chiamata, il che significa che le chiamate di backend non vengono impaginate. La pagina Elenco richieste di spostamento mostra la paginazione e vengono visualizzate 15 richieste di spostamento. L'ordine delle richieste di spostamento dal più recente al meno recente ordina le richieste di spostamento in base all'attributo createdTimestamp .

Per le richieste di spostamento, sono supportati filtri quali l'associazione del negozio assegnato, lo stato e il tipo di spostamento.

Il tipo di spostamento è ulteriormente categorizzato nei seguenti tipi:
  • Generale - sia l'ubicazione di origine che di destinazione o di destinazione viene specificata al momento della creazione della richiesta di spostamento.
  • Accantonamento - viene specificata solo la collocazione di origine e l'applicazione imbutita una collocazione di destinazione o destinazione di accantonamento in base alle dedica di inventario configurate al momento del processo di spostamento dell'inventario.
  • Rifornimento - viene specificata una collocazione di destinazione o dedicata e l'applicazione immette la collocazione di origine in base a dove è disponibile l'inventario.
  • ad hoc - una richiesta di spostamento non viene precedentemente creata. Tuttavia, l'inventario viene spostato come deciso dall'associato del negozio.

Quando si applica un filtro, GET on SIM API - {tenantId}/v1/stores/{storeId}/move-requests?assignedToUserId={userId}&status={statuses}&type={moveTypes}&fields=requestedProducts viene richiamato per richiamare l'elenco di richieste di spostamento filtrate.

Fare clic sul link ID spostamento per andare alla pagina di riepilogo. Per una richiesta di spostamento non avviata, viene visualizzato il pulsante Sposta . Quando si fa clic su questo pulsante, viene visualizzato il flusso di esecuzione dello spostamento. Per una richiesta di spostamento in stato in corso, viene visualizzato il pulsante Continua .

Sposta flusso del processo

Quando si fa clic su Sposta , viene richiamato PATCH on SIM-API {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId} per aggiornare il campo AssignedToUserId come utente corrente. Se una richiesta di spostamento viene avviata da un altro negozio associato ed è in corso, viene visualizzato un messaggio appropriato. È possibile assegnare la richiesta di spostamento a se stessi e continuare. Altrimenti, si rimane nella pagina Elenco richieste di spostamento .

Per recuperare le attività di spostamento nella pagina di richiesta di spostamento, viene richiamato GET on SIM API {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId}?fields=moveTasks . Questa chiamata API fa parte del mashup personalizzato, che accoda anche le informazioni sul prodotto all'oggetto richiesta di spostamento richiamando l'API getCompleteItemList .

La richiesta di spostamento implica il ritiro dei prodotti dalla posizione di origine e il loro deposito nella posizione di destinazione. La pagina di selezione visualizza attività di spostamento raggruppate per ubicazione di origine. Mentre la pagina di deposito visualizza le attività di spostamento raggruppate in base alla destinazione o all'ubicazione di destinazione. Nella pagina di elenco delle richieste di spostamento, quando si fa clic sul pulsante Sposta o Continua e se il ritiro non è ancora avviato o è in corso, viene visualizzata la pagina di ritiro. Se il ritiro è stato completato, viene visualizzato un messaggio appropriato. Puoi andare alla pagina di deposito e depositare i prodotti ritirati.

Per richieste di spostamento, sono configurate le seguenti regole:
  • regola Is location scan mandatory before scanning any product abilitata. Per ulteriori informazioni su questa regola, vedi l'API stores-rule in Configurazione dello spostamento dell'inventario.
    • Se la scansione dell'ubicazione è obbligatoria, prima di contrassegnare il prodotto come ritirato o depositato, eseguire prima la scansione dell'ubicazione di origine o di deposito. Quindi, eseguire la scansione del prodotto.
    • Se la scansione della collocazione non è obbligatoria, eseguire direttamente la scansione dei prodotti da spostare senza eseguire la scansione della collocazione.
  • Is manual movement regola abilitata per contrassegnare l'inventario come ritirato o depositato senza eseguire la scansione del prodotto. Questa regola si basa sull'autorizzazione della risorsa Manually update quantity while picking or depositing in Move inventory . Se questa autorizzazione di risorsa è consentita, è possibile visualizzare i pulsanti meno e più. Inoltre, la casella di testo della quantità è modificabile. È possibile modificare la quantità prelevata o depositata utilizzando questi widget invece di eseguire la scansione del prodotto.

Quando esegui la scansione di un codice a barre, viene richiamata l'API translateBarcode . Se viene eseguita la scansione di una collocazione, la collocazione sottoposta a scansione viene impostata per impostazione predefinita come collocazione corrente. Se un prodotto viene sottoposto a scansione e la scansione dell'ubicazione è obbligatoria, l'attività di spostamento corrispondente viene identificata utilizzando l'ubicazione e il prodotto. Se rilevata, l'attività di spostamento viene contrassegnata come selezionata richiamando POST on SIM API - {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId}/move-tasks/{moveTaskId}/pick. Altrimenti, viene visualizzato un messaggio di errore. Se l'ubicazione sottoposta a scansione non è obbligatoria, è possibile eseguire la scansione del prodotto senza eseguire la scansione dell'ubicazione di origine. Nella pagina di ritiro, durante la scansione del prodotto, il prodotto è contrassegnato come ritirato. Nella pagina di deposito, durante la scansione del prodotto, viene contrassegnato come depositato.

Quando si fa clic sul widget meno, la quantità prelevata o depositata viene ridotta di un'unità. POST on SIM API - {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId}/move-tasks/{moveTaskId}/undo-pick o {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId}/move-tasks/{moveTaskId}/undo-deposit viene richiamato su questa azione. Quando si fa clic sul widget più, la quantità prelevata o depositata viene aumentata di una unità. POST on SIM API - {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId}/move-tasks/{moveTaskId}/pick o {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId}/move-tasks/{moveTaskId}/pick viene richiamato su questa azione. È possibile modificare manualmente anche la quantità prelevata o depositata. In questo caso, a seconda che la quantità sia aumentata o diminuita, viene richiamata l'API di selezione SIM o di annullamento selezione.

Per un elemento seriale tracciato, i widget della casella di testo più e quantità sono disabilitati. Per contrassegnare un prodotto come ritirato o depositato, eseguire la scansione del numero di serie. Per annullare il prelievo o annullare il deposito, fare clic sul widget meno. Viene visualizzata una finestra in cui è possibile eseguire la scansione del numero di serie per rimuovere i seriali prelevati o depositati. Alla scansione, l'API translateBarcode viene richiamata con BarcodeType=Serial e quindi viene richiamata l'API POST on {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId}/move-tasks/{moveTaskId}/undo-pick or {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId}/move-tasks/{moveTaskId}/undo-deposit .

È possibile registrare la carenza solo nel flusso di prelievo e non nel flusso di deposito. Viene aperta la finestra Registra carenza in cui sono elencati i motivi e le quantità non ritirate sono contrassegnate come corta. I motivi della carenza vengono richiamati chiamando GET on SIM API - {tenantId}/v1/exception-codes?activity=MOVE&storeId={storeId} e la carenza viene contrassegnata chiamando POST on SIM API - {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId}/move-tasks/{moveTaskId}/exceptions.
  • Se si contrassegnano tutti i prodotti come corti, la richiesta di spostamento viene automaticamente annullata.
  • Se si selezionano tutti i prodotti, viene visualizzato un messaggio appropriato. Puoi andare alla pagina di deposito in cui la chiamata API sulla scansione del codice a barre, meno widget, più widget e la modifica della casella di testo della quantità sono gli stessi come spiegato in precedenza in questa sezione.

Se una destinazione, un deposito o una località di destinazione non sono contrassegni nella richiesta di spostamento, è possibile selezionare una località di destinazione. Il GET on SIM API - {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId}/move-tasks/{moveTaskId}/alternate-target-locations viene richiamato per recuperare le posizioni dedicate per il prodotto. È possibile selezionare qualsiasi ubicazione dedicata. Se le ubicazioni dedicate non sono disponibili, è possibile eseguire la scansione o selezionare qualsiasi altra ubicazione. Se l'ubicazione selezionata è piena o non raggiungibile, è possibile selezionare un'ubicazione alternativa facendo clic sul collegamento dell'ubicazione alternativa. Viene chiamato GET on SIM API - {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId}/move-tasks/{moveTaskId}/alternate-target-locations che visualizza l'elenco di ubicazioni dedicate per il prodotto selezionato. È inoltre possibile selezionare qualsiasi altra posizione per depositare il prodotto. Per visualizzare altre ubicazioni diverse da quelle dedicate, viene richiamato GET on {tenantId}/v1/stores/{storeId}/locations .

Prima di selezionare una collocazione di deposito alternativa per l'attività di spostamento, è necessario selezionare un motivo. I motivi vengono richiamati richiamando GET on SIM API - {tenantId}/v1/exception-codes?activity=MOVE&storeId={storeId}. Un'altra attività di spostamento con una nuova ubicazione alternativa viene creata chiamando POST on SIM API - {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId}/move-tasks/{moveTaskId}/exceptions. La nuova attività di spostamento visualizza la quantità non ancora depositata.

Per annullare le richieste di spostamento che non sono avviate o lo stato in corso, richiamare l'API Cancel Move Request . Facoltativamente, è possibile passare gli attributi exceptionCode e exceptionReason nella richiesta API per catturare il codice di eccezione e la descrizione per annullare la richiesta di spostamento. L'indicatore cancelAllApplicableProductQuantity viene utilizzato per annullare qualsiasi quantità di prodotto o seriali senza dover passare l'attributo quantità o seriali nella richiesta API requestedProducts . Per ulteriori informazioni sull'annullamento delle richieste di spostamento, consultare l'API Annulla richiesta di spostamento.

Sposta pagina di riepilogo

Una volta depositati tutti i prodotti, la richiesta di trasferimento viene contrassegnata come completata e viene visualizzata la pagina Riepilogo spostamento . Dopo aver completato una richiesta di spostamento, non è possibile apportare ulteriori modifiche. Per richiamare i dettagli della richiesta di spostamento, viene chiamato GET on SIM API {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId} . L'API getCompleteItemList viene richiamata anche all'interno dello stesso mashup personalizzato per recuperare i dettagli del prodotto.