Implementazione del ritiro dal magazzino
Un associato di negozio deve essere in grado di ritirare i prodotti disponibili nel magazzino e collocarli in una località di staging in modo che possano essere utilizzati per evadere gli ordini spedizione dal negozio
o ritiro nel negozio
.
Questa sezione descrive le API, i servizi e altri componenti utilizzati per implementare l'attività di ritiro dal magazzino.
Presupposti e limitazioni
- I dettagli del corriere (SCAC) e la data di spedizione (
ExpectedShipmentDate) sono già timbrati sulla spedizione. Per impostazione predefinita, il negozio associato non dispone dell'accesso per scegliere il corriere. - L'ordine completo viene ritirato insieme e inserito nell'area di staging. Il ritiro parziale e lo spostamento dei prodotti nell'area di staging non è supportato.
- Le regole
Staging location requiredeStaging location translation required, impostate utilizzando Sterling Business Center, non sono più applicabili. Quando l'inventario viene tracciato nel negozio, una collocazione di staging è obbligatoria perché questa soluzione tiene traccia dell'inventario e l'inventario si sposta nella stazione di imballaggio o nell'area di ritiro del cliente dopo il ritiro. La configurazione dello staging automatico sposta automaticamente l'inventario nella località di staging senza alcun intervento manuale. - La trasmissione dei seriali come seriali richiesti nella spedizione non è attualmente supportata. Questo perché, di solito negli ordini di spedizione online o negli ordini di ritiro, il cliente non passa un numero di serie specifico.
- I passi di configurazione prerequisiti richiesti per il ritiro dal magazzino sono stati completati. Per ulteriori informazioni sulle configurazioni richieste per l'attività di prelievo dal magazzino, vedere Configurazione del prelievo dal magazzino.
Soluzione
- Creazione della richiesta di ritiro
In Applications Manager, attivare l'evento
on_successdella transazionecreateShipmentper cambiare lo stato della spedizione inReady for Backroom pickoReady for customer pick. L'abilitazione di questo evento richiamerà l'azione che modificherà lo stato della spedizione inPronto per il ritiro dal magazzino
.È inoltre necessario aggiungere la condizione
Change Status Requirede l'azioneChange Shipment Status to Backroom Pick.
L'azione richiama il
YCD_Change_Status_Backroom_Pick_8.0servizio. Questo servizio verifica se per gli ordini BOPIS e SFS è necessario il prelievo dal magazzino.Quando la gestione dell'inventario del negozio è abilitata,
changeShipmentStatusrichiama l'API di aggiornamento della richiesta di prelievo per creare la richiesta di prelievo per quella spedizione.
- Preleva ordini
- Un negozio associato può avviare il ritiro dal magazzino o il singolo ordine dal portlet Ordini ritiro nella vista Evasione ordine . In un negozio, che gestisce l'inventario a livello di collocazione, l'associato del negozio inizia il processo di ritiro esaminando un elenco ordinato per SLA, che è la data di spedizione prevista.
- L'associato del negozio può selezionare il conteggio visualizzato al centro del portlet Ordini ritiro per visualizzare l'elenco completo delle spedizioni da ritirare. L'API
pick-requests:summaryViene chiamata per recuperare questi conteggi.Chiamata GET su
stores/{storeId}/pick-requests:summary?group_by=status&deliveryMethod=CARRY,PICK,SHIP - Il conteggio In corso e Non avviato include le spedizioni walk-in (o carry), ritiro dal negozio e spedizione dal negozio. Pertanto, vengono prese in considerazione le autorizzazioni della risorsa per ritirare le spedizioni di ciascun tipo di evasione.
Se un negozio associato non dispone delle autorizzazioni per alcun metodo di consegna, il portlet non viene visualizzato affatto.
- L'associazione negozio può anche eseguire la scansione del numero di ordine nel portlet per aprire direttamente la richiesta di ritiro.
La scansione di un ordine richiama l'API
translateBarCodeconBarCodeType=StoreOutboundShipmente mette in corrispondenza l'input del codice a barra con il numero di spedizione e quindi il numero d'ordine.Se il codice a barre corrisponde al numero di spedizione, la richiesta di prelievo con quel numero di spedizione viene recuperata utilizzando una GET su
stores/{storeId}/pick-requests?shipmentNoAPI.Se corrisponde al numero dell'ordine, la richiesta di ritiro viene richiamata utilizzando il parametro di interrogazione
orderNo.Se la richiesta di ritiro non è stata avviata o è in corso, viene visualizzata la pagina Ordini di ritiro . Altrimenti, viene aperta la pagina Riepilogo ritiro .
Se l'input del codice a barre non corrisponde ad alcun numero di spedizione o numero di ordine o se non viene trovata una richiesta di ritiro corrispondente, viene visualizzato un errore.
- È disponibile un'azione per stampare la richiesta di ritiro, che richiama il servizio
ISFPrintSIMPickRequestSummary. È possibile personalizzare le funzioni di stampa pronte all'uso personalizzando questo servizio o utilizzando l'XML di esempio, /template/prints/ycd/xsl/ISFPrintPickRequest_multiApiInput.xsl.sample e /template/prints/ycd/xsl/ISFPrintPickRequest_output.xsl.sample.
- Un'altra azione, Seleziona tutto, è disponibile nella pagina Seleziona ordini se si concede l'autorizzazione alle risorse 'Seleziona tutto'. Questa azione richiama l'API
pick-tasks:pick-allper selezionare tutti i prodotti non serializzati, se disponibili. I prodotti serializzati non saranno contrassegnati come ritirati perché i prodotti seriali devono ancora essere sottoposti a scansione.
- Elenco ordine di prelievo
- Un associato di negozio può fare clic sul conteggio In corso per visualizzare le spedizioni in stato
Backroom Pick in Progress. Allo stesso modo, facendo clic sul conteggio Non avviato vengono visualizzate le spedizioni che si trovano nello statoReady for Backroom Pick. - Il
pick-requestsepick-requests:summaryPer recuperare questi conteggi:- Chiamata GET su
stores/{storeId}/pick-requests?deliveryMethod=CARRY&status=NOT_STARTED,IN_PROGRESS&fields=requestedProducts&order_by=createdTimestamp%20asc&page_size=10 - Chiamata GET su
stores/{storeId}/pick-requests:summary?group_by=deliveryMethod&deliveryMethod=CARRY&status=NOT_STARTED,IN_PROGRESS
- Chiamata GET su
- Per impostazione predefinita, le richieste di selezione vengono ordinate dal meno recente al più recente in base alla data / ora di creazione della richiesta di selezione. È anche possibile ordinare le richieste di ritiro per
requestedBy. Il valore predefinito perrequestedByè timbrato come SYSTEM dall'APIpick-requestsAPI.Una volta modificato l'ordine. una chiamata GET su
pick-requestsAPI viene effettuata con i valoriorder_byappropriati, ad esempiocreatedTimestamp asc,createdTimestamp desc,requestedBy asc, orequestedBy desc.stores/{storeId}/pick-requests?deliveryMethod=CARRY&status=NOT_STARTED,IN_PROGRESS&fields=requestedProducts&order_by=requestedBy%20asc&page_size=10 - È possibile filtrare gli ordini di ritiro in base all'utente a cui la richiesta di ritiro è assegnata, allo stato e al tipo di ordine.
- L'elenco Assegnato a mostra tutti gli utenti dei negozi con l'utente corrente come prima voce. L'API
getUserListviene richiamata al momento dell'accesso e memorizzata in AppContext. Lo stesso elenco utenti viene utilizzato per visualizzare gli utenti nell'elenco Assegnato a . Qualsiasi elemento selezionato viene passato a GETpick-requestscome parametro di queryassignedTo. - Il bind dello stato viene eseguito con il bind della richiesta di selezione. Le richieste di ritiro completate non possono essere visualizzate con altri stati perché le richieste di ritiro aperte sono memorizzate in una tabella diversa rispetto alle richieste di ritiro completate. Quindi, se l'utente seleziona lo stato Completato , gli altri stati vengono deselezionati automaticamente.
- Il campo Tipo di ordine viene mostrato solo nella scheda Spedizione poiché solo gli ordini di spedizione possono essere di diversi tipi, vendite e trasferimenti. Gli ordini di walk-in e ritiro vengono presi come ordini di vendita. A seconda del tipo di ordine, il parametro della query di scopo delle richieste di selezione è popolato (SALES o TRANSFER).
- Quando si applica il filtro, viene effettuata una chiamata GET all'API
pick-requestsCon i parametri di query appropriati.
- L'elenco Assegnato a mostra tutti gli utenti dei negozi con l'utente corrente come prima voce. L'API
- Un associato di negozio può fare clic sul conteggio In corso per visualizzare le spedizioni in stato
- Flusso di esecuzione della richiesta di selezione
- Quando un negozio associato fa clic sul pulsante Seleziona o Continua ritiro nella pagina Elenco ordini di ritiro o quando esegue la scansione del numero di ordine o di spedizione dal portlet, l'attività di ritiro viene assegnata a tale utente. La convalida
assignedToUsergarantisce che l'utente corrente non avvii alcuna richiesta di ritiro già in corso da parte di un altro utente. - Viene richiamato un GET su
pick-request/<pickRequestId>per ottenere ilassignedToUseraggiornato e viene associato all'utente corrente.- Se
assignedToUsernon è impostato, l'APIpick-request/<pickRequestId>viene richiamata per l'aggiornamentoassignedToUsere si apre la schermata di esecuzione della selezione. Inoltre, l'APIchangeShipmentviene richiamata per aggiornareAssignedToUserechangeShipmentStatusin Backroom pick in progress. - Se
assignedToUserè lo stesso dell'utente attualmente collegato, viene visualizzata la schermata di esecuzione del ritiro. - Se
assignedToUserNON è lo stesso dell'utente attualmente collegato, viene aperta una finestra per confermare se l'utente corrente desidera continuare o meno.
- Se
- La pagina Ordini ritiro visualizza le attività di ritiro con ID ubicazione di origine, articolo, quantità, stato dell'inventario, classe di prodotti e prodotti abbreviati, se presenti.
- Se vengono visualizzate più attività di selezione per la stessa ubicazione di origine, vengono visualizzate in un'unica ubicazione nell'interfaccia utente.
- Se al momento della creazione della richiesta di ritiro, l'inventario non viene trovato per alcun prodotto o la carenza di record associati del negozio per un prodotto, vengono visualizzati i prodotti corti.
- Se il negozio è configurato come un singolo negozio di ubicazione, le etichette di ubicazione non vengono visualizzate
- Durante la scansione di un codice a barre, l'API
translateBarCodeviene richiamata conBarCodeType = StoreItem/Location.- Se la scansione dell'ubicazione è obbligatoria, è necessario eseguire la scansione dell'ubicazione prima di selezionare il prodotto. Se la scansione della collocazione non è obbligatoria, è possibile eseguire direttamente la scansione dell'elemento. Il sistema trova la collocazione corrispondente per tale elemento e la usa.
- Se la collocazione è sottoposta a scansione, il sistema la imposta come collocazione corrente o sottoposta a scansione.
- Se l'articolo viene scansionato e se non è un articolo serializzato, l'attività di prelievo corrispondente viene trovata tramite una chiamata GET su
pickrequest/<pickrequestid>/picktasks?productId=<>&unitOfMeasure=<>&sourceLocationId=<>. Poi,pick-requestsL'API di questo task di prelievo viene richiamata con 1 unità. Nell'interfaccia utente, l'attività di ritiro viene aggiornata per visualizzare che è stata selezionata 1 unità. - Se viene scansionato un seriale, viene trovata l'attività di prelievo corrispondente e viene richiamata l'API con il seriale
pick-requestsViene richiamata l'API con il seriale. Nell'interfaccia utente, tale attività di selezione viene aggiornata visualizzandone il numero di serie.
- Se la scansione della collocazione è obbligatoria, le icone meno e più e le unità di aggiornamento quantità possono essere selezionate solo quando viene eseguita la scansione di una collocazione. Quindi, le operazioni vengono eseguite solo se l'ubicazione sottoposta a scansione corrisponde all'origine dell'attività di selezione
LocationId. - Nel riquadro della quantità, le icone meno e più sono abilitate solo quando l'autorizzazione ad aggiornare manualmente la quantità durante il prelievo della risorsa è stata concessa in Gestione applicazioni
Per un item non serializzato:
- Facendo clic su meno si riduce la quantità di ritiro di 1 unità. L'API
undo-pickViene richiamata e l'attività di prelievo viene aggiornata. - Facendo clic su più si aumenta la quantità di ritiro di 1 unità. L'API
pickViene richiamata e l'attività di prelievo viene aggiornata - Quando la quantità viene modificata, vengono richiamate le API
pickoundo-picka seconda che la quantità venga aggiunta o ridotta.
Per un item serializzato- Facendo clic su meno si apre una finestra per rimuovere l'elemento. L'associato del negozio può eseguire la scansione del numero di serie e verrà contrassegnato come non ritirato. Durante la scansione, l'API
translateBarCodeviene richiamata con origine comeSIMSerial. Se l'operazione ha esito positivo, l'APIundo-pickviene richiamata passando il numero di serie e vengono visualizzati i numeri di serie selezionati. - La quantità non può essere modificata immettendo il numero di unità. I numeri di serie devono essere scansionati o digitati nel campo di scansione per essere contrassegnati come selezionati o rimossi.
- Facendo clic su meno si riduce la quantità di ritiro di 1 unità. L'API
- Quando un negozio associato fa clic sul pulsante Seleziona o Continua ritiro nella pagina Elenco ordini di ritiro o quando esegue la scansione del numero di ordine o di spedizione dal portlet, l'attività di ritiro viene assegnata a tale utente. La convalida
- Registra carenza
- Se un negozio associato rileva che in una collocazione, l'inventario è danneggiato o è in carenza, deve controllare se l'inventario è disponibile in qualsiasi altra ubicazione nel negozio prima di contrassegnarlo come breve. Fare clic su Ubicazione alternativa per visualizzare altre ubicazioni.
- RITROVARE
alternate-source-locationsPer ottenere le posizioni alternative per l'attività di prelievo. L'API restituisce l'elenco di ubicazioni che possono soddisfare le unità rimanenti. Se le unità rimanenti non possono essere soddisfatte, restituiranno le collocazioni con le unità di inventario disponibili. - Se non ci sono collocazioni con inventario disponibile, il negozio associato può registrare una carenza. Devono anche selezionare il motivo per scegliere una posizione diversa o registrare una carenza. I motivi vengono elencati chiamando l'API
exception-codesAPI. - Una volta che l'associazione negozio seleziona un'ubicazione alternativa e un motivo, viene richiamata l'API
exceptionsull'attività di selezione e viene creato un oggetto eccezione sull'attività di selezione. Se un'altra collocazione ha l'inventario richiesto, viene creata una nuova attività di ritiro con la collocazione alternativa fornita comesourceLocationide la quantità viene aggiornata come unità rimanenti o disponibili. La quantità nell'attività di ritiro originale è ridotta. Se l'ubicazione alternativa non è disponibile, viene aggiornata la quantità di carenza nell'attività di ritiro. - È anche possibile che nel momento in cui viene creata una richiesta di ritiro o quando viene registrata una carenza, l'inventario non fosse disponibile, ma successivamente il negozio riceve l'inventario. In tali casi, l'associato del negozio può ricercare la quantità disponibile e aggiornare la richiesta di ritiro facendo clic sul pulsante Aggiorna .
Quando un negozio associato fa clic su Aggiorna, viene richiamata l'API
generate-taskssulla richiesta di ritiro. Questa API controlla se altre ubicazioni dispongono di inventario per i prodotti corti e se l'inventario non viene trovato, viene visualizzato un messaggio. Vengono create nuove attività di ritiro e la schermata degli ordini di ritiro viene aggiornata. L'APIgenerate-tasksnon considera le ubicazioni in cui la carenza è già contrassegnata per tale prodotto. - Se tutti i prodotti nella richiesta di ritiro sono completamente accorciati, la richiesta di ritiro e la spedizione vengono annullate.
- Assegna località di trasferimento
- Al termine del ritiro, il sistema verifica se la richiesta di ritiro è stata completamente ritirata o abbreviata.
- Se l'inventario per la richiesta di ritiro è completamente ridotto, la richiesta di ritiro e la spedizione vengono annullate.
- Se l'ordine viene ritirato completamente con alcune carenze registrate, viene visualizzata la finestra Assegna ubicazione di staging a seconda della regola di staging automatica.Se la regola di staging automatico è impostata su true:
- Se
stagingLocationIdè timbrato, l'APIpick-tasks:deposit-allViene richiamata l'API su quel sitostagingLocationId. - Se
stagingLocationIdnon ha un timbro, viene visualizzata la finestra Ubicazione di staging della scansione .
Se la regola di staging automatico è impostata su false, viene visualizzata la finestra Ubicazione di staging di scansione .
- Se
Al negozio associato viene richiesto di eseguire la scansione dell'ubicazione di staging in cui verranno depositati i prodotti. Durante la scansione, l'API
translateBarcodeviene chiamata con l'origineSIMLocation. Quando viene scansionata una posizione valida e l'addetto al negozio fa clic su Fine, ilpick-tasks:deposit-allViene chiamata l'API sulla richiesta di prelievo. Insieme all'APIpick-tasks:deposit-allAPI, viene invocato il servizioISFUpdateShipmentsOfBatchSynchronously, che internamente chiamachangeShipmentper aggiornareBackroomPickedQuantityeShortageQtysuShipmentLine. Il servizio chiama anchechangeShipmentStatusper spostare la spedizione nello stato Pronto per l'imballaggio o Pronto per il ritiro dal cliente in base al metodoShipmentDelivery.Al termine dello staging, l'associazione del negozio viene visualizzata nella pagina Riepilogo spedizione .