Piattaforma di nuova generazione

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 required e Staging 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_success della transazione createShipment per cambiare lo stato della spedizione in Ready for Backroom pick o Ready for customer pick. L'abilitazione di questo evento richiamerà l'azione che modificherà lo stato della spedizione in Pronto per il ritiro dal magazzino.

È inoltre necessario aggiungere la condizione Change Status Required e l'azione Change Shipment Status to Backroom Pick .

Condizione di implementazione ritiro dal magazzino

L'azione richiama il YCD_Change_Status_Backroom_Pick_8.0 servizio. Questo servizio verifica se per gli ordini BOPIS e SFS è necessario il prelievo dal magazzino.

Quando la gestione dell'inventario del negozio è abilitata, changeShipmentStatus richiama 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:summary Viene 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 translateBarCode con BarCodeType=StoreOutboundShipment e 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?shipmentNo API.

    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.

    Servizio ISFPrintSIMPickRequestSummary

  • 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-all per 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 stato Ready for Backroom Pick .
  • Il pick-requests e pick-requests:summary Per 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
  • 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 per requestedBy è timbrato come SYSTEM dall'API pick-requests API.

    Una volta modificato l'ordine. una chiamata GET su pick-requests API viene effettuata con i valori order_by appropriati, ad esempio createdTimestamp asc, createdTimestamp desc, requestedBy asc, o requestedBy 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 getUserList viene 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 GET pick-requests come parametro di query assignedTo .
    • 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-requests Con i parametri di query appropriati.
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 assignedToUser garantisce 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 il assignedToUser aggiornato e viene associato all'utente corrente.
    • Se assignedToUser non è impostato, l'API pick-request/<pickRequestId> viene richiamata per l'aggiornamento assignedToUser e si apre la schermata di esecuzione della selezione. Inoltre, l'API changeShipment viene richiamata per aggiornare AssignedToUser e changeShipmentStatus in Backroom pick in progress.
    • Se assignedToUser è lo stesso dell'utente attualmente collegato, viene visualizzata la schermata di esecuzione del ritiro.
    • Se assignedToUser NON è lo stesso dell'utente attualmente collegato, viene aperta una finestra per confermare se l'utente corrente desidera continuare o meno.
  • 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 translateBarCode viene richiamata con BarCodeType = 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-requests L'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-requests Viene 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-pick Viene richiamata e l'attività di prelievo viene aggiornata.
    • Facendo clic su più si aumenta la quantità di ritiro di 1 unità. L'API pick Viene richiamata e l'attività di prelievo viene aggiornata
    • Quando la quantità viene modificata, vengono richiamate le API pick o undo-pick a 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 translateBarCode viene richiamata con origine come SIMSerial. Se l'operazione ha esito positivo, l'API undo-pick viene 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.
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-locations Per 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-codes API.
  • Una volta che l'associazione negozio seleziona un'ubicazione alternativa e un motivo, viene richiamata l'API exception sull'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 come sourceLocationid e 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-tasks sulla 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'API generate-tasks non 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'API pick-tasks:deposit-all Viene richiamata l'API su quel sito stagingLocationId.
    • Se stagingLocationId non 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 .

Al negozio associato viene richiesto di eseguire la scansione dell'ubicazione di staging in cui verranno depositati i prodotti. Durante la scansione, l'API translateBarcode viene chiamata con l'origine SIMLocation. Quando viene scansionata una posizione valida e l'addetto al negozio fa clic su Fine, il pick-tasks:deposit-all Viene chiamata l'API sulla richiesta di prelievo. Insieme all'API pick-tasks:deposit-all API, viene invocato il servizio ISFUpdateShipmentsOfBatchSynchronously , che internamente chiama changeShipment per aggiornare BackroomPickedQuantity e ShortageQty su ShipmentLine. Il servizio chiama anche changeShipmentStatus per spostare la spedizione nello stato Pronto per l'imballaggio o Pronto per il ritiro dal cliente in base al metodo ShipmentDelivery .

Al termine dello staging, l'associazione del negozio viene visualizzata nella pagina Riepilogo spedizione .