차세대 플랫폼

백룸피킹 구현

상점 직원은 백룸에서 사용 가능한 제품을 피킹하여 상점에서 선적 또는 상점에서 픽업 오더를 이행하는 데 사용할 수 있도록 임시대기 로케이션에 배치할 수 있어야 합니다.

이 섹션에서는 백룸피킹 작업을 구현하는 데 사용되는 API, 서비스 및 기타 구성품목에 대해 설명합니다.

가정 및 제한사항

  • 운송업체 (SCAC) 상세내역 및 선적 날짜 (ExpectedShipmentDate) 는 이미 쉽먼트에 스탬프가 찍혀 있습니다. 기본적으로 상점 직원은 운송업체를 선택할 수 있는 액세스 권한이 없습니다.
  • 전체 오더가 함께 피킹되어 스테이징 영역에 배치됩니다. 제품을 스테이징 영역으로 부분 피킹 및 이동하는 것은 지원되지 않습니다.
  • 스털링 비즈니스 센터를 사용하여 설정한 Staging location requiredStaging 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:summary API를 호출하여 이러한 개수를 검색합니다.

    stores/{storeId}/pick-requests:summary?group_by=status&deliveryMethod=CARRY,PICK,SHIP 에서 GET 호출

  • 진행 중시작되지 않음 계수에는 워크인 (또는 운반), 상점에서 픽업, 상점 쉽먼트에서 선적이 포함됩니다. 따라서 각 이행 유형의 쉽먼트를 피킹하기 위한 자원 권한이 고려됩니다.

    상점 직원에게 배송방법에 대한 권한이 없는 경우 포틀릿이 전혀 표시되지 않습니다.

  • 상점 직원은 포틀릿에서 오더 번호를 스캔하여 피킹 요청을 직접 열 수도 있습니다.

    오더 스캔은 BarCodeType=StoreOutboundShipmenttranslateBarCode API를 호출하고 바코드 입력을 쉽먼트 번호 및 오더 번호와 일치시킵니다.

    바코드가 배송 번호와 일치하는 경우 해당 배송 번호의 픽업 요청은 GET on stores/{storeId}/pick-requests?shipmentNo API를 사용하여 가져옵니다.

    오더 번호와 일치하는 경우 피킹 요청은 orderNo 조회 매개변수를 사용하여 페치됩니다.

    피킹 요청이 시작되지 않았거나 진행 중인 경우 피킹 오더 페이지가 열립니다. 그렇지 않으면 요약 선택 페이지가 열립니다.

    바코드 입력이 쉽먼트 번호 또는 오더 번호와 일치하지 않거나 일치하는 피킹 요청을 찾을 수 없는 경우 에러가 표시됩니다.

  • ISFPrintSIMPickRequestSummary 서비스를 호출하는 피킹 요청을 출력하는 액션을 사용할 수 있습니다. 이 서비스를 사용자 정의하거나 샘플 XML, /template/prints/ycd/xsl/ISFPrintPickRequest_multiApiInput.xsl.sample/template/prints/ycd/xsl/ISFPrintPickRequest_output.xsl.sample를 사용하여 즉시 사용 가능한 인쇄 기능을 사용자 정의할 수 있습니다.

    ISFPrintSIMPickRequestSummary

  • 다른 조치인 모두 선택은 '모두 선택' 자원에 권한이 부여된 경우 주문 선택 페이지에서 사용 가능합니다. 이 액션은 pick-tasks:pick-all API를 호출하여 직렬화되지 않은 모든 제품을 선택합니다 (사용 가능한 경우). 직렬 제품을 계속 스캔해야 하므로 일련화된 제품은 피킹됨으로 표시되지 않습니다.
피킹 오더 목록
  • 상점 직원은 진행 중 계수를 클릭하여 Backroom Pick in Progress 상태의 쉽먼트를 조회할 수 있습니다. 마찬가지로 시작되지 않음 계수를 클릭하면 Ready for Backroom Pick 상태의 쉽먼트가 표시됩니다.
  • 그리고 pick-requestspick-requests:summary API를 호출하여 이러한 개수를 검색합니다:
    • 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-requests API.

    정렬이 변경되면 에 대한 GET 호출 pick-requests API에 적절한 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

  • 피킹 요청이 지정된 사용자, 상태 및 오더 유형에 따라 피킹 오더를 필터링할 수 있습니다.
    • 지정 대상 목록은 첫 번째 항목으로 현재 사용자가 있는 상점의 모든 사용자를 표시합니다. getUserList API는 로그인 시 호출되며 AppContext에 저장됩니다. 동일한 사용자 목록이 지정 대상 목록에 사용자를 표시하는 데 사용됩니다. 선택된 항목은 GET pick-requestsassignedTo 조회 매개변수로 전달됩니다.
    • 상태 바인딩은 pick 요청 바인딩을 사용하여 수행됩니다. 열린 피킹 요청이 완료된 피킹 요청과 다른 테이블에 저장되어 있으므로 완료된 피킹 요청을 다른 상태로 표시할 수 없습니다. 따라서 사용자가 완료됨 상태를 선택하면 다른 상태는 자동으로 선택 취소됩니다.
    • 오더 유형 필드는 선적 탭에만 표시됩니다. 선적 오더만 다른 유형, 판매 및 배송이 될 수 있기 때문입니다. 접수 및 픽업 오더는 판매 오더로 간주됩니다. 오더 유형에 따라 pick-requests 목적 쿼리 매개변수가 채워집니다 (SALES 또는 TRANSFER).
    • 필터를 적용하면 적절한 쿼리 매개변수를 사용하여 pick-requests API에서 적절한 쿼리 매개변수를 사용하여 GET 호출을 수행합니다.
요청 실행 플로우 선택
  • 상점 직원이 피킹 오더 목록 페이지에서 피킹 또는 피킹 계속 버튼을 클릭하거나 포틀릿에서 오더 또는 쉽먼트 번호를 스캔할 때 피킹 작업이 해당 사용자에게 지정됩니다. assignedToUser 유효성 검증은 현재 사용자가 다른 사용자가 이미 진행 중인 선택 요청을 시작하지 않도록 합니다.
  • pick-request/<pickRequestId> 에서 GET을 호출하여 업데이트된 assignedToUser 를 가져오고 현재 사용자와 일치합니다.
    • assignedToUser 가 설정되지 않은 경우 assignedToUser 를 업데이트하기 위해 pick-request/<pickRequestId> API가 호출되고 피킹 실행 화면이 열립니다. 또한 AssignedToUserchangeShipmentStatus백룸피킹 진행 중으로 업데이트하기 위해 changeShipment API가 호출됩니다.
    • assignedToUser 가 현재 로그인한 사용자와 동일한 경우 피킹 실행 화면이 열립니다.
    • assignedToUser 가 현재 로그인된 사용자와 동일하지 않은 경우 현재 사용자가 계속할지 여부를 확인하는 창이 열립니다.
  • 오더피킹 오더 페이지에는 소스 로케이션 ID, 아이템, 수량, 재고 상태, 품목그룹 및 수량이 부족한 제품 (있는 경우) 이 있는 피킹 작업이 표시됩니다.
    • 동일한 소스 위치에 대해 여러 개의 피킹 작업이 표시되는 경우 사용자 인터페이스의 한 위치 아래에 표시됩니다.
    • 피킹 요청 생성 시 제품에 대한 재고를 찾을 수 없거나 상점 직원이 제품에 대한 수량미달을 기록하는 경우에는 부족한 제품이 표시됩니다.
    • 상점이 단일 위치 상점으로 구성된 경우 위치 레이블이 표시되지 않습니다.
  • 바코드 스캔 시 translateBarCode API는 BarCodeType = StoreItem/Location로 호출됩니다.
    • 위치 스캔이 필수인 경우 제품을 피킹하기 전에 위치를 스캔해야 합니다. 위치 스캔이 필수가 아닌 경우 품목을 직접 스캔할 수 있습니다. 시스템이 해당 항목의 일치하는 위치를 찾아 사용합니다.
    • 위치가 스캔되면 시스템은 이를 스캔된 위치 또는 현재 위치로 설정합니다.
    • 품목이 스캔되고 직렬화된 품목이 아닌 경우, 일치하는 선택 작업은 pickrequest/<pickrequestid>/picktasks?productId=<>&unitOfMeasure=<>&sourceLocationId=<> 에서 GET 호출을 통해 찾습니다. 그런 다음 pick-requests 이 선택 작업의 API는 1 단위로 호출됩니다. 사용자 인터페이스에서 피킹 작업이 업데이트되어 1개의 단위가 피킹되었음을 표시합니다.
    • 일련번호가 스캔되면 일치하는 선택 작업이 발견되고 pick-requests API가 해당 시리얼과 함께 호출됩니다. 사용자 인터페이스에서 해당 피킹 작업은 피킹된 시리얼을 표시하여 업데이트됩니다.
  • 로케이션 스캔이 필수인 경우에는 로케이션을 스캔할 때에만 빼기 및 더하기 아이콘과 수량 업데이트 단위를 클릭할 수 있습니다. 그런 다음 스캔된 위치가 피킹 작업 소스 LocationId와 일치하는 경우에만 오퍼레이션이 수행됩니다.
  • 수량 상자에서 빼기 및 더하기 아이콘은 애플리케이션 관리자에서 리소스를 선택하는 동안 수동으로 수량 업데이트 권한이 부여된 경우에만 활성화됩니다

    일련화되지 않은 품목의 경우:

    • 빼기를 클릭하면 피킹 수량이 1단위로 감소합니다. API가 undo-pick API가 호출되고 선택 작업이 업데이트됩니다.
    • 더하기를 클릭하면 피킹 수량이 1단위 증가합니다. API가 pick API가 호출되고 선택 작업이 업데이트됩니다
    • 수량이 편집되면 수량이 추가되거나 감소되는지 여부에 따라 pick 또는 undo-pick API가 호출됩니다.
    일련화된 품목의 경우
    • 빼기를 클릭하면 항목을 제거할 수 있는 창이 열립니다. 상점 직원은 일련 번호를 스캔할 수 있으며 피킹되지 않은 것으로 표시됩니다. 스캔 시 translateBarCode API는 소스를 SIMSerial로 사용하여 호출됩니다. 성공하면 일련 번호를 전달하여 undo-pick API가 호출되고 피킹된 일련 번호가 표시됩니다.
    • 단위 수를 입력하여 수량을 편집할 수 없습니다. 피킹 또는 제거됨으로 표시하려면 일련 번호를 스캔하거나 스캔 필드에 입력해야 합니다.
수량미달 기록
  • 상점 직원이 로케이션에서 재고가 손상되었거나 부족한 것을 발견하면, 재고를 부족으로 표시하기 전에 상점의 다른 로케이션에서 재고가 사용 가능한지 확인해야 합니다. 다른 위치를 보려면 대체 위치 를 클릭하십시오.
  • GET alternate-source-locations API를 호출하여 해당 선택 작업의 대체 위치를 가져옵니다. API는 나머지 단위를 이행할 수 있는 위치 목록을 리턴합니다. 남아 있는 단위를 이행할 수 없는 경우 사용 가능한 재고 단위와 함께 로케이션을 리턴합니다.
  • 사용 가능한 재고가 있는 로케이션이 없는 경우 상점 직원은 수량미달을 기록할 수 있습니다. 또한 다른 위치를 선택하거나 수량미달을 기록하는 이유를 선택해야 합니다. 이유를 나열하려면 exception-codes API를 호출하여 나열됩니다.
  • 상점 직원이 대체 로케이션 및 사유를 선택하면 피킹 작업의 exception API가 호출되고 피킹 작업에서 예외 오브젝트가 생성됩니다. 다른 로케이션에 필수 재고가 있는 경우 sourceLocationid 로 지정된 대체 로케이션을 사용하여 새 피킹 작업이 생성되고 수량은 나머지 또는 사용 가능한 단위로 업데이트됩니다. 원래 피킹 작업의 수량이 감소됩니다. 대체 로케이션을 사용할 수 없는 경우 피킹 작업의 수량미달 수량이 업데이트됩니다.
  • 또한 피킹 요청이 작성되거나 수량미달이 기록될 때 재고를 사용할 수 없었지만 나중에 상점이 재고를 수령할 수 있습니다. 이 경우 상점 직원은 사용 가능한 수량을 찾고 새로 고치기 버튼을 클릭하여 피킹 요청을 업데이트할 수 있습니다.

    상점 직원이 새로 고치기를 클릭하면 피킹 요청에 대한 generate-tasks API가 호출됩니다. 이 API는 다른 로케이션에 부족한 제품에 대한 재고가 있는지 확인하고 재고를 찾을 수 없는 경우 메시지가 표시됩니다. 새 피킹 작업이 생성되고 오더 피킹 화면이 최신 정보로 고쳐집니다. generate-tasks API는 해당 제품에 대해 수량미달이 이미 표시된 로케이션을 고려하지 않습니다.

  • 피킹 요청의 모든 제품이 완전히 부족하면 피킹 요청 및 쉽먼트가 취소됩니다.
임시대기 로케이션 지정
피킹이 완료되면 시스템은 피킹 요청이 완전히 피킹되었거나 수량이 부족한지 확인합니다.
  • 피킹 요청에 대한 재고가 완전히 부족하면 피킹 요청 및 쉽먼트가 취소됩니다.
  • 일부 수량미달이 기록된 상태에서 오더가 완전히 피킹되면 자동 스테이징 규칙에 따라 임시대기 로케이션 지정 창이 열립니다.
    자동 스테이징 규칙이 true로 설정된 경우:
    • stagingLocationId 이 스탬프가 찍히면 pick-tasks:deposit-all API가 해당 stagingLocationId 에서 호출됩니다.
    • stagingLocationId 에 소인이 표시되지 않으면 임시대기 로케이션 스캔 창이 표시됩니다.

    자동 스테이징 규칙이 false로 설정되면 스캔 스테이징 위치 창이 표시됩니다.

상점 직원은 제품을 예치할 임시대기 로케이션을 스캔하도록 프롬프트됩니다. 스캔 시 translateBarcode API는 소스를 SIMLocation로 사용하여 호출됩니다. 유효한 위치가 스캔되고 스토어 직원이 완료를 클릭하면 픽 요청의 pick-tasks:deposit-all API가 호출됩니다. API와 함께 pick-tasks:deposit-all API와 함께 ISFUpdateShipmentsOfBatchSynchronously 서비스가 호출되고, 내부적으로 changeShipment 을 호출하여 ShipmentLine 에서 BackroomPickedQuantityShortageQty 을 업데이트합니다. 또한 서비스는 changeShipmentStatus 를 호출하여 ShipmentDelivery 메소드에 따라 쉽먼트를 포장 준비 또는 고객 픽업 준비 상태로 이동합니다.

스테이징이 완료되면 상점 직원이 쉽먼트 요약정보 페이지로 이동합니다.