백룸피킹 구현
상점 직원은 백룸에서 사용 가능한 제품을 피킹하여 상점에서 선적
또는 상점에서 픽업
오더를 이행하는 데 사용할 수 있도록 임시대기 로케이션에 배치할 수 있어야 합니다.
이 섹션에서는 백룸피킹 작업을 구현하는 데 사용되는 API, 서비스 및 기타 구성품목에 대해 설명합니다.
가정 및 제한사항
- 운송업체 (SCAC) 상세내역 및 선적 날짜 (
ExpectedShipmentDate) 는 이미 쉽먼트에 스탬프가 찍혀 있습니다. 기본적으로 상점 직원은 운송업체를 선택할 수 있는 액세스 권한이 없습니다. - 전체 오더가 함께 피킹되어 스테이징 영역에 배치됩니다. 제품을 스테이징 영역으로 부분 피킹 및 이동하는 것은 지원되지 않습니다.
- 스털링 비즈니스 센터를 사용하여 설정한
Staging location required및Staging location translation required규칙은 더 이상 적용되지 않습니다. 상점에서 재고가 추적되면 이 솔루션이 재고를 추적하고 재고가 포장 스테이션 또는 피킹 후 고객 픽업 영역으로 이동하므로 스테이징 로케이션이 필수입니다. 자동 스테이징을 구성하면 수동 개입 없이 재고가 자동으로 임시대기 로케이션으로 이동됩니다. - 쉽먼트에서 요청된 일련번호로 일련번호를 전달하는 것은 현재 지원되지 않습니다. 이는 일반적으로 온라인 선적 오더 또는 픽업 오더에서 고객이 특정 일련 번호를 전달하지 않기 때문입니다.
- 백룸피킹에 필요한 전제조건 구성 단계가 완료되었습니다. 백룸 픽 작업에 필요한 구성에 대한 자세한 내용은 백룸 픽 구성을 참조하세요.
솔루션
- 피킹 요청 작성
애플리케이션 관리자에서
createShipment트랜잭션의on_success이벤트를 활성화하여 배송 상태를Ready for Backroom pick또는Ready for customer pick로 변경합니다. 이 이벤트를 사용으로 설정하면 쉽먼트 상태를백룸피킹 준비
로 변경하는 액션이 호출됩니다.또한
Change Status Required조건 및Change Shipment Status to Backroom Pick조치를 추가해야 합니다.
이 조치는
YCD_Change_Status_Backroom_Pick_8.0서비스를 호출합니다. 이 서비스는 BOPIS및 SFS오더에 백룸피킹이 필요한지 여부를 확인하고ISFSIMCreatePickRequest서비스를 호출합니다.스토어 재고 관리가 활성화되면
changeShipmentStatus에서 업데이트 피킹 요청 API를 호출하여 해당 배송에 대한 피킹 요청을 생성합니다.
- 피킹 오더
- 상점 직원은 오더 이행 보기의 오더 피킹 포틀릿에서 백룸피킹 또는 단일 오더 피킹을 시작할 수 있습니다. 로케이션 레벨에서 재고를 유지보수하는 상점에서 상점 직원은 예상 쉽먼트 날짜인 SLA별로 정렬된 목록을 조회하여 피킹 프로세스를 시작합니다.
- 상점 직원은 피킹 오더 포틀릿의 가운데에 표시된 개수를 클릭하여 피킹할 전체 쉽먼트 목록을 조회할 수 있습니다. API는
pick-requests:summaryAPI를 호출하여 이러한 개수를 검색합니다.stores/{storeId}/pick-requests:summary?group_by=status&deliveryMethod=CARRY,PICK,SHIP에서 GET 호출 - 진행 중 및 시작되지 않음 계수에는 워크인 (또는 운반), 상점에서 픽업, 상점 쉽먼트에서 선적이 포함됩니다. 따라서 각 이행 유형의 쉽먼트를 피킹하기 위한 자원 권한이 고려됩니다.
상점 직원에게 배송방법에 대한 권한이 없는 경우 포틀릿이 전혀 표시되지 않습니다.
- 상점 직원은 포틀릿에서 오더 번호를 스캔하여 피킹 요청을 직접 열 수도 있습니다.
오더 스캔은
BarCodeType=StoreOutboundShipment의translateBarCodeAPI를 호출하고 바코드 입력을 쉽먼트 번호 및 오더 번호와 일치시킵니다.바코드가 배송 번호와 일치하는 경우 해당 배송 번호의 픽업 요청은 GET on
stores/{storeId}/pick-requests?shipmentNoAPI를 사용하여 가져옵니다.오더 번호와 일치하는 경우 피킹 요청은
orderNo조회 매개변수를 사용하여 페치됩니다.피킹 요청이 시작되지 않았거나 진행 중인 경우 피킹 오더 페이지가 열립니다. 그렇지 않으면 요약 선택 페이지가 열립니다.
바코드 입력이 쉽먼트 번호 또는 오더 번호와 일치하지 않거나 일치하는 피킹 요청을 찾을 수 없는 경우 에러가 표시됩니다.
ISFPrintSIMPickRequestSummary서비스를 호출하는 피킹 요청을 출력하는 액션을 사용할 수 있습니다. 이 서비스를 사용자 정의하거나 샘플 XML, /template/prints/ycd/xsl/ISFPrintPickRequest_multiApiInput.xsl.sample 및 /template/prints/ycd/xsl/ISFPrintPickRequest_output.xsl.sample를 사용하여 즉시 사용 가능한 인쇄 기능을 사용자 정의할 수 있습니다.
- 다른 조치인 모두 선택은 '모두 선택' 자원에 권한이 부여된 경우 주문 선택 페이지에서 사용 가능합니다. 이 액션은
pick-tasks:pick-allAPI를 호출하여 직렬화되지 않은 모든 제품을 선택합니다 (사용 가능한 경우). 직렬 제품을 계속 스캔해야 하므로 일련화된 제품은 피킹됨으로 표시되지 않습니다.
- 피킹 오더 목록
- 상점 직원은 진행 중 계수를 클릭하여
Backroom Pick in Progress상태의 쉽먼트를 조회할 수 있습니다. 마찬가지로 시작되지 않음 계수를 클릭하면Ready for Backroom Pick상태의 쉽먼트가 표시됩니다. - 그리고
pick-requests및pick-requests:summaryAPI를 호출하여 이러한 개수를 검색합니다:stores/{storeId}/pick-requests?deliveryMethod=CARRY&status=NOT_STARTED,IN_PROGRESS&fields=requestedProducts&order_by=createdTimestamp%20asc&page_size=10에서 GET 호출stores/{storeId}/pick-requests:summary?group_by=deliveryMethod&deliveryMethod=CARRY&status=NOT_STARTED,IN_PROGRESS에서 GET 호출
- 기본적으로 피킹 요청은 피킹 요청 작성 시간소인을 기반으로 가장 오래된 요청에서 가장 최신 요청으로 정렬됩니다.
requestedBy를 기준으로 피킹 요청을 정렬할 수도 있습니다.requestedBy의 기본값은 시스템으로 스탬프가 찍혀 있습니다pick-requestsAPI.정렬이 변경되면 에 대한 GET 호출
pick-requestsAPI에 적절한order_by값(예:createdTimestamp asc,createdTimestamp desc,requestedBy asc,requestedBy desc등)을 사용하여 호출합니다.stores/{storeId}/pick-requests?deliveryMethod=CARRY&status=NOT_STARTED,IN_PROGRESS&fields=requestedProducts&order_by=requestedBy%20asc&page_size=10 - 피킹 요청이 지정된 사용자, 상태 및 오더 유형에 따라 피킹 오더를 필터링할 수 있습니다.
- 지정 대상 목록은 첫 번째 항목으로 현재 사용자가 있는 상점의 모든 사용자를 표시합니다.
getUserListAPI는 로그인 시 호출되며 AppContext에 저장됩니다. 동일한 사용자 목록이 지정 대상 목록에 사용자를 표시하는 데 사용됩니다. 선택된 항목은 GETpick-requests에assignedTo조회 매개변수로 전달됩니다. - 상태 바인딩은 pick 요청 바인딩을 사용하여 수행됩니다. 열린 피킹 요청이 완료된 피킹 요청과 다른 테이블에 저장되어 있으므로 완료된 피킹 요청을 다른 상태로 표시할 수 없습니다. 따라서 사용자가 완료됨 상태를 선택하면 다른 상태는 자동으로 선택 취소됩니다.
- 오더 유형 필드는 선적 탭에만 표시됩니다. 선적 오더만 다른 유형, 판매 및 배송이 될 수 있기 때문입니다. 접수 및 픽업 오더는 판매 오더로 간주됩니다. 오더 유형에 따라 pick-requests 목적 쿼리 매개변수가 채워집니다 (SALES 또는 TRANSFER).
- 필터를 적용하면 적절한 쿼리 매개변수를 사용하여
pick-requestsAPI에서 적절한 쿼리 매개변수를 사용하여 GET 호출을 수행합니다.
- 지정 대상 목록은 첫 번째 항목으로 현재 사용자가 있는 상점의 모든 사용자를 표시합니다.
- 상점 직원은 진행 중 계수를 클릭하여
- 요청 실행 플로우 선택
- 상점 직원이 피킹 오더 목록 페이지에서 피킹 또는 피킹 계속 버튼을 클릭하거나 포틀릿에서 오더 또는 쉽먼트 번호를 스캔할 때 피킹 작업이 해당 사용자에게 지정됩니다.
assignedToUser유효성 검증은 현재 사용자가 다른 사용자가 이미 진행 중인 선택 요청을 시작하지 않도록 합니다. pick-request/<pickRequestId>에서 GET을 호출하여 업데이트된assignedToUser를 가져오고 현재 사용자와 일치합니다.assignedToUser가 설정되지 않은 경우assignedToUser를 업데이트하기 위해pick-request/<pickRequestId>API가 호출되고 피킹 실행 화면이 열립니다. 또한AssignedToUser및changeShipmentStatus를 백룸피킹 진행 중으로 업데이트하기 위해changeShipmentAPI가 호출됩니다.assignedToUser가 현재 로그인한 사용자와 동일한 경우 피킹 실행 화면이 열립니다.assignedToUser가 현재 로그인된 사용자와 동일하지 않은 경우 현재 사용자가 계속할지 여부를 확인하는 창이 열립니다.
- 오더피킹 오더 페이지에는 소스 로케이션 ID, 아이템, 수량, 재고 상태, 품목그룹 및 수량이 부족한 제품 (있는 경우) 이 있는 피킹 작업이 표시됩니다.
- 동일한 소스 위치에 대해 여러 개의 피킹 작업이 표시되는 경우 사용자 인터페이스의 한 위치 아래에 표시됩니다.
- 피킹 요청 생성 시 제품에 대한 재고를 찾을 수 없거나 상점 직원이 제품에 대한 수량미달을 기록하는 경우에는 부족한 제품이 표시됩니다.
- 상점이 단일 위치 상점으로 구성된 경우 위치 레이블이 표시되지 않습니다.
- 바코드 스캔 시
translateBarCodeAPI는BarCodeType = StoreItem/Location로 호출됩니다.- 위치 스캔이 필수인 경우 제품을 피킹하기 전에 위치를 스캔해야 합니다. 위치 스캔이 필수가 아닌 경우 품목을 직접 스캔할 수 있습니다. 시스템이 해당 항목의 일치하는 위치를 찾아 사용합니다.
- 위치가 스캔되면 시스템은 이를 스캔된 위치 또는 현재 위치로 설정합니다.
- 품목이 스캔되고 직렬화된 품목이 아닌 경우, 일치하는 선택 작업은
pickrequest/<pickrequestid>/picktasks?productId=<>&unitOfMeasure=<>&sourceLocationId=<>에서 GET 호출을 통해 찾습니다. 그런 다음pick-requests이 선택 작업의 API는 1 단위로 호출됩니다. 사용자 인터페이스에서 피킹 작업이 업데이트되어 1개의 단위가 피킹되었음을 표시합니다. - 일련번호가 스캔되면 일치하는 선택 작업이 발견되고
pick-requestsAPI가 해당 시리얼과 함께 호출됩니다. 사용자 인터페이스에서 해당 피킹 작업은 피킹된 시리얼을 표시하여 업데이트됩니다.
- 로케이션 스캔이 필수인 경우에는 로케이션을 스캔할 때에만 빼기 및 더하기 아이콘과 수량 업데이트 단위를 클릭할 수 있습니다. 그런 다음 스캔된 위치가 피킹 작업 소스
LocationId와 일치하는 경우에만 오퍼레이션이 수행됩니다. - 수량 상자에서 빼기 및 더하기 아이콘은 애플리케이션 관리자에서 리소스를 선택하는 동안 수동으로 수량 업데이트 권한이 부여된 경우에만 활성화됩니다
일련화되지 않은 품목의 경우:
- 빼기를 클릭하면 피킹 수량이 1단위로 감소합니다. API가
undo-pickAPI가 호출되고 선택 작업이 업데이트됩니다. - 더하기를 클릭하면 피킹 수량이 1단위 증가합니다. API가
pickAPI가 호출되고 선택 작업이 업데이트됩니다 - 수량이 편집되면 수량이 추가되거나 감소되는지 여부에 따라
pick또는undo-pickAPI가 호출됩니다.
일련화된 품목의 경우- 빼기를 클릭하면 항목을 제거할 수 있는 창이 열립니다. 상점 직원은 일련 번호를 스캔할 수 있으며 피킹되지 않은 것으로 표시됩니다. 스캔 시
translateBarCodeAPI는 소스를SIMSerial로 사용하여 호출됩니다. 성공하면 일련 번호를 전달하여undo-pickAPI가 호출되고 피킹된 일련 번호가 표시됩니다. - 단위 수를 입력하여 수량을 편집할 수 없습니다. 피킹 또는 제거됨으로 표시하려면 일련 번호를 스캔하거나 스캔 필드에 입력해야 합니다.
- 빼기를 클릭하면 피킹 수량이 1단위로 감소합니다. API가
- 상점 직원이 피킹 오더 목록 페이지에서 피킹 또는 피킹 계속 버튼을 클릭하거나 포틀릿에서 오더 또는 쉽먼트 번호를 스캔할 때 피킹 작업이 해당 사용자에게 지정됩니다.
- 수량미달 기록
- 상점 직원이 로케이션에서 재고가 손상되었거나 부족한 것을 발견하면, 재고를 부족으로 표시하기 전에 상점의 다른 로케이션에서 재고가 사용 가능한지 확인해야 합니다. 다른 위치를 보려면 대체 위치 를 클릭하십시오.
- GET
alternate-source-locationsAPI를 호출하여 해당 선택 작업의 대체 위치를 가져옵니다. API는 나머지 단위를 이행할 수 있는 위치 목록을 리턴합니다. 남아 있는 단위를 이행할 수 없는 경우 사용 가능한 재고 단위와 함께 로케이션을 리턴합니다. - 사용 가능한 재고가 있는 로케이션이 없는 경우 상점 직원은 수량미달을 기록할 수 있습니다. 또한 다른 위치를 선택하거나 수량미달을 기록하는 이유를 선택해야 합니다. 이유를 나열하려면
exception-codesAPI를 호출하여 나열됩니다. - 상점 직원이 대체 로케이션 및 사유를 선택하면 피킹 작업의
exceptionAPI가 호출되고 피킹 작업에서 예외 오브젝트가 생성됩니다. 다른 로케이션에 필수 재고가 있는 경우sourceLocationid로 지정된 대체 로케이션을 사용하여 새 피킹 작업이 생성되고 수량은 나머지 또는 사용 가능한 단위로 업데이트됩니다. 원래 피킹 작업의 수량이 감소됩니다. 대체 로케이션을 사용할 수 없는 경우 피킹 작업의 수량미달 수량이 업데이트됩니다. - 또한 피킹 요청이 작성되거나 수량미달이 기록될 때 재고를 사용할 수 없었지만 나중에 상점이 재고를 수령할 수 있습니다. 이 경우 상점 직원은 사용 가능한 수량을 찾고 새로 고치기 버튼을 클릭하여 피킹 요청을 업데이트할 수 있습니다.
상점 직원이 새로 고치기를 클릭하면 피킹 요청에 대한
generate-tasksAPI가 호출됩니다. 이 API는 다른 로케이션에 부족한 제품에 대한 재고가 있는지 확인하고 재고를 찾을 수 없는 경우 메시지가 표시됩니다. 새 피킹 작업이 생성되고 오더 피킹 화면이 최신 정보로 고쳐집니다.generate-tasksAPI는 해당 제품에 대해 수량미달이 이미 표시된 로케이션을 고려하지 않습니다. - 피킹 요청의 모든 제품이 완전히 부족하면 피킹 요청 및 쉽먼트가 취소됩니다.
- 임시대기 로케이션 지정
- 피킹이 완료되면 시스템은 피킹 요청이 완전히 피킹되었거나 수량이 부족한지 확인합니다.
- 피킹 요청에 대한 재고가 완전히 부족하면 피킹 요청 및 쉽먼트가 취소됩니다.
- 일부 수량미달이 기록된 상태에서 오더가 완전히 피킹되면 자동 스테이징 규칙에 따라 임시대기 로케이션 지정 창이 열립니다.자동 스테이징 규칙이 true로 설정된 경우:
stagingLocationId이 스탬프가 찍히면pick-tasks:deposit-allAPI가 해당stagingLocationId에서 호출됩니다.stagingLocationId에 소인이 표시되지 않으면 임시대기 로케이션 스캔 창이 표시됩니다.
자동 스테이징 규칙이 false로 설정되면 스캔 스테이징 위치 창이 표시됩니다.
상점 직원은 제품을 예치할 임시대기 로케이션을 스캔하도록 프롬프트됩니다. 스캔 시
translateBarcodeAPI는 소스를SIMLocation로 사용하여 호출됩니다. 유효한 위치가 스캔되고 스토어 직원이 완료를 클릭하면 픽 요청의pick-tasks:deposit-allAPI가 호출됩니다. API와 함께pick-tasks:deposit-allAPI와 함께ISFUpdateShipmentsOfBatchSynchronously서비스가 호출되고, 내부적으로changeShipment을 호출하여ShipmentLine에서BackroomPickedQuantity및ShortageQty을 업데이트합니다. 또한 서비스는changeShipmentStatus를 호출하여ShipmentDelivery메소드에 따라 쉽먼트를 포장 준비 또는 고객 픽업 준비 상태로 이동합니다.스테이징이 완료되면 상점 직원이 쉽먼트 요약정보 페이지로 이동합니다.