레거시 플랫폼

솔루션

이 절에서는 기능의 구현에 관련된 API, UE, 서비스 및 기타 구성품목에 대해 설명합니다.

애플리케이션이 로드될 때, 상점 애플리케이션은 관리자가 엔터프라이즈에 대해 설정한 테마를 검색하고 이에 따라 UI를 표시하기 위해 웹 상점 UI에 적용되는 테마 규칙을 읽습니다. 엔터프라이즈의 테마를 선택하려면 표시 옵션 구성을 참조하십시오. 그러나 Sterling Business Center UI에서 Sterling Store Engagement 애플리케이션에 대한 새 테마를 작성할 수 없습니다.

따라서 Sterling Business Center에서 선택할 수 있는 테마를 작성하려면 코드 유형이 WEB_STORE_THEMEmanageCommonCode API를 사용하십시오. 관리자가 사용 가능한 옵션에서 테마를 선택하면 WSC_STORE_THEME규칙에 대해 테마가 지속됩니다. Sterling Store Engagement 애플리케이션이 로드되면 엔터프라이즈에 대해 설정된 테마를 가져오기 위해 규칙 이름을 WSC_STORE_THEME 로 사용하여 getRuleDetails API가 호출됩니다.

고객이 이전에 구매한 제품을 반품하려고 상점에 오면, 상점 직원은 다음 방법 중 하나로 반품 제품 포틀릿에서 반품오더를 생성할 수 있습니다.

고객이 반품할 제품을 가지고 오면, 상점 직원은 반품 제품 포틀릿에서 반품오더를 시작할 수 있습니다. 상점 직원은 다음 방법 중 하나로 반품오더에 추가할 제품을 검색할 수 있습니다.
  • 판매오더 검색:

    고객에게 입고가 있는 경우 상점 직원은 오더 번호별로 검색하거나 입고에서 바코드를 스캔할 수 있습니다.

    • 상점 직원이 입고 바코드를 스캔할 때 오더 번호를 검색하기 위해 translatebar code API가 호출됩니다. getOrderList API는 오더 번호로 오더의 상세내역을 검색하도록 호출됩니다.
      • translatebar code API에서 변환이 리턴되지 않으면 getOrderList API가 translatebar code API에 대한 원래 입력으로 호출되거나 상점 직원이 홈 화면으로 돌아가서 오더 번호를 수동으로 입력할 수 있습니다.
      • translatebar code API에서 여러 변환을 리턴하는 경우 적절한 오류 메시지가 표시됩니다.
      • getOrderList API에서 오더가 리턴되지 않으면 적절한 에러 메시지가 표시됩니다.
      • getOrderList API가 복수 오더를 리턴하는 경우, 해당 오더가 나열되고 상점 직원은 반품 제품이 속하는 적절한 오더를 선택할 수 있습니다.
      • getOrderList API에서 단일 오더를 리턴하는 경우, 반품할 제품 추가 페이지가 표시됩니다.
    • 상점 직원이 수동으로 오더 번호를 입력하면, getOrderList API가 오더의 상세내역을 검색하도록 호출됩니다.
      • getOrderList API에서 단일 오더를 리턴하는 경우, 반품할 제품 추가 페이지가 표시됩니다.
      • getOrderList API가 복수 오더를 리턴하는 경우, 해당 오더가 나열되고 상점 직원은 반품 제품이 속하는 적절한 오더를 선택할 수 있습니다.
      • getOrderList API에서 오더가 리턴되지 않으면 적절한 에러 메시지가 표시됩니다.
    오더 상세검색:

    상점 직원은 이름, 성, 이메일, 전화번호, 우편번호 또는 지불 유형 등의 추가적인 검색 기준을 사용하여 오더에 대한 상세검색을 수행할 수 있습니다. 예를 들어, 상점 직원이 지불 방법을 기준 중 하나로 선택하는 경우getPaymentTypeListAPI는 다음을 사용하여 모든 지불 유형을 검색하도록 호출됩니다.CallingEnterpriseCode속성을 표시합니다. 상점 직원이 선택한 지불 유형은 다른 검색 기준과 함께 입력으로 전달됩니다.getOrderList일치하는 오더를 검색하기 위한 API입니다.

  • 검색에서는 고정된 수의 오더를 표시합니다. 로드할 오더가 추가로 있는 경우에는 상점 직원이 검색을 세분화하도록 표시하는 메시지가 표시됩니다. 상점 직원은 필터 옵션을 사용하여 검색 결과의 범위를 좁힐 수 있습니다.
  • 검색에서는 등록된 고객 및 등록되지 않은 고객이 제출한 확정된 오더 및 초안오더를 나열합니다. 오더 목록은 오더 번호, 제품 수, 오더 채널, 상점 이름(상점 구매의 경우), 날짜, 오더 금액, 상태, 고객 이름 등의 상세내역을 제공합니다.
  • getCompleteOrderLineList API는 오더에 남아 있는 제품 수와 함께 최대 두 개의 제품에 대한 이미지를 리턴합니다.
  • 고객 검색:

    고객에게 입고가 없는 경우 상점 직원은 반품 제품 포틀릿에서 시작점으로 고객 을 선택한 후 검색 필드에서 전화번호를 사용하여 고객을 검색할 수 있습니다. 상점 직원은 오더 아이콘을 활용하고 고객을 선택하여 고객을 검색할 수 있습니다. 고객을 시작점으로 선택하면 스캔 옵션이 숨겨집니다. 상점 직원은 고객의 전화번호를 입력하고 검색 아이콘을 클릭할 수 있습니다.

    • 상점 직원이 검색을 클릭하면 검색 기준과 매치되는 정보를 가진 고객을 검색하기 위해 getCompleteCustomerList API가 호출됩니다.
      • 여러 고객이 리턴되는 경우, 상점 직원이 선택할 수 있도록 목록이 표시됩니다. 나열되는 각 고객에 대해서 상점 직원이 올바른 고객을 선택하는 데 도움이 되도록 주소, 전화번호 및 이메일 주소가 표시됩니다.

        상점 직원이 올바른 고객을 선택한 후 오더 조회를 선택하면, getOrdersList API가 해당 고객의 계정과 연계되는 전체 판매오더를 검색하도록 호출됩니다.

      • 단일 고객이 리턴되는 경우, 고객 상세내역 페이지에 해당 고객의 계정과 연계된 전체 오더가 표시됩니다.
      • 고객이 리턴되지 않은 경우에는 고객을 찾을 수 없음 메시지가 표시됩니다. 그러면 상점 직원은 다른 전화번호를 입력하거나 제품 또는 오더를 검색하도록 선택할 수 있습니다.
    고객 상세검색:

    상점 직원은 이름, 성, 이메일, 전화번호, 우편번호 또는 신용카드의 마지막 네 자리 숫자 등의 추가적인 검색 기준을 사용하여 고객에 대한 상세검색을 수행할 수 있습니다.

    상점 직원이 검색을 수행하면 매칭 고객을 검색하기 위해 getCompleteCustomerList API가 호출됩니다. 올바른 고객이 식별되면 상점 직원은 해당 고객에 대해 오더 조회를 클릭할 수 있습니다. 그런 다음 해당 고객과 연계된 오더를 검색하기 위해 getOrderList API가 호출됩니다. 초안오더와 확정된 오더가 모두 표시됩니다. 상점 직원은 반품오더를 생성해야 할 판매오더를 식별한 후 고객이 반품하려는 제품을 선택하고 반품오더를 생성할 수 있습니다.

  • getCompleteOrderLineList API는 오더에 남아 있는 제품 수와 함께 최대 두 개의 제품에 대한 이미지를 리턴합니다.
  • 필터 옵션

    상점 직원은 직접 오더를 검색하는 중에 또는 고객의 오더 이력을 통해 오더를 필터링할 수 있습니다. 상점 직원은 오더 날짜 범위, 상태 및 오더 채널 등의 기준을 사용하여 오더 목록을 필터링할 수 있습니다. 상점 직원이 필터 옵션을 클릭하면 항목 유형 선택란을 채우기 위해 getCommonCodeList API가 호출됩니다. 오더 상태는 <WAR>\ngstore\shared\order\ 폴더에 있는 OrderStatusList.json 파일의 사전 정의된 목록에서 선택됩니다. 해당 파일은 구성 가능하므로 필요에 따라 상태를 사용자 정의할 수 있습니다. 상점 직원은 상점 내에서 검색 을 선택하여 현재 상점에서만 생성된 오더를 검색할 수 있습니다.

    상점 직원이 적절한 필터 기준을 선택한 후 필터를 적용하면 필터 기준이 getOrderList API에 전달되어 입력 기준과 매치되는 오더를 검색합니다. 오더 상태, 날짜 범위, 판매자 조직 코드 및 적절한 EntryType 속성을 가진 복합 조회가 getOrderList API에 대한 입력으로 전달되어 오더를 검색합니다. 상점 채널의 경우 EntryTypeStore이고 콜 센터 채널의 경우 EntryTypeCallCenter입니다.

  • 제품 검색:

    고객이 영수증을 지참하지 않았거나 상점에 등록되지 않았거나 상점에 등록되어 있지만 오더를 찾을 수 없는 경우, 상점 직원은 제품을 검색하여 반품 프로세스를 시작할 수 있습니다. 이를 블라인드 반품이라고 합니다. 상점 직원은 블라인드 반품 허용 규칙이 사용으로 설정된 경우에만 블라인드 반품을 생성할 수 있습니다. 이 규칙은 기본적으로 사용 가능합니다. 블라인드 반품에서 상점 직원은 고객이 반품하려는 제품의 바코드를 스캔하거나 상점 직원이 제품 ID 또는 키워드를 입력하여 제품을 검색할 수 있습니다.

    • 상점 직원이 제품을 스캔하는 경우 바코드를 변환하고 제품을 반품하기 위해 getCompleteItemList API가 호출됩니다.
      • 이 API에서 단일 제품을 리턴하는 경우, 반품할 제품 추가 페이지가 표시됩니다. getCompleteItemList API가 제품 상세내역을 검색하도록 호출되면 상점 직원은 반품오더에 제품을 추가할 수 있습니다.
        상점 직원은 공유 버튼을 클릭하여 제품 상세내역을 고객과 공유할 수 있습니다. 공유 팝업 창에서 상점 직원은 기본적으로 이메일을 통해 제품 상세내역을 공유할 수 있습니다. 고객의 등록된 이메일 주소가 자동으로 채워지고 이메일 주소가 없는 경우에는 상점 직원이 직접 이메일 주소를 입력할 수 있습니다. 상점 직원이 이메일 버튼을 클릭하면 제품 상세내역이 고객에게 전송됩니다. 마찬가지로 상점 직원은 이메일 주소를 여러 개 입력하여 제품 상세내역을 여러 개의 이메일 주소로 보낼 수 있습니다.
        참고: 사용자 정의를 통해 여러 공유 옵션을 추가할 수도 있습니다. 마찬가지로 필요한 대로 기본 이메일 서비스를 사용자 정의할 수 있습니다.
        상점 직원에게 Email Product details 자원 권한이 없고 공유 단추에 이메일 옵션만 있는 경우 공유 단추가 화면에 표시되지 않습니다.
      • getCompleteItemList API에서 복수의 제품을 리턴하는 경우 적절한 에러 메시지가 표시됩니다.
      • getCompleteItemList API에서 제품을 리턴하지 않으면, searchCatalogIndex API가 호출되고 제품 목록 페이지가 표시됩니다.
    • 상점 직원이 키워드를 입력하고 검색을 클릭하면, searchCatalogIndex API가 키워드와 매치되는 제품을 로드하도록 호출되고 아이템 목록 페이지에는 모든 매칭 아이템이 표시됩니다. 그러면 반품오더에 추가할 올바른 아이템을 선택할 수 있습니다.

반품할 제품 추가

참고:

Windows™ 버전 8.1 에서 반품할 제품 추가 화면을 볼 때 화면 깜박임 문제가 발생할 수 있습니다.

리턴할 오더가 식별된 후 상점 직원은 반품할 제품 추가 페이지로 이동합니다. getCompleteOrderDetails API가 오더 상세내역을 페치하도록 호출되고, getCompleteOrderLineList API가 제품 상세내역을 페치하도록 호출됩니다. 다음 로직이 실행됩니다.
  • 제품이 반품 가능한지 여부를 포함하여 각 제품의 상세내역이 표시됩니다. 오더에 반품 가능한 제품이 없는 경우 상점 직원은 반품오더를 생성할 수 없습니다.
  • 아이템을 페치하는 동안 YCD_SHOW_RESHIP_ON_RETURN_ENTRY 규칙이 사용 안함으로 설정되면, ReshipParentLineKey 속성이 널로 설정된 제품만 페치됩니다. 재선적 제품이 페치되지 않도록 하기 위해 ReshipParentLineKeyQryTypeISNULL로 설정됩니다.
  • 상점 직원은 검색 아이콘을 클릭하여 오더 검색 방법을 변경한 다음 고객, 오더 또는 제품을 검색할 수 있습니다. 상점 직원은 다른 판매오더를 검색하여 복수 판매오더의 제품을 단일 반품오더에 추가할 수 있습니다.
  • 반품 제품의 이행(Fulfilment) 방법이 CARRY로 설정됩니다.

반품할 제품 추가 화면에는 제품이 반품 및 비반품을 기준으로 정렬됩니다. 반품할 수 있는 제품이 먼저 나열되고, 그 다음에 반품할 수 없는 제품이 나열됩니다. 각 제품마다 설명, 이미지, 반품 가능한 수량 및 이미 반품된 수량 등을 포함하여 전체 상세내역이 있습니다. 제품은 여러 가지 사유로 반품 불가능으로 처리될 수 있습니다. 제품의 상태가 반품으로 허용되지 않거나 제품이 반품 정책을 위반하거나 제품의 전체 수량이 이미 반품된 경우가 해당됩니다. 반품 정책은 Sterling Business Center에서 설정되며 비즈니스 요구사항에 맞게 수정할 수 있습니다.

일부 반품 정책은 어떠한 사유로도 재설정할 수 없으며, 이러한 제품은 반품할 수 없음을 표시합니다. 일부 반품 정책은 적절한 권한을 있는 상점 직원이 재설정할 수 있습니다. 이러한 제품은 재설정 필요를 표시합니다. 제품을 스캔하여 반품 정책 위반이 있으면 반품 정책을 벗어나는 제품 창이 열립니다. 반품 위반을 재설정할 수 있는 경우 관리자는 재설정 코드를 입력할 수 있습니다. 승인 계획에 대한 단일 승인자가 있고 전체 반품 정책 위반에 대한 승인 계획이 동일하다고 가정합니다. 자세한 정보는 반품 정책 위반 재설정 을 참조하십시오. 재설정에 성공하면 제품은 반품에 추가를 표시하며, 해당 반품오더가 취소되고 상점 직원이 동일한 제품으로 새 반품오더를 생성하지 않는 한 해당 제품에는 재설정이 다시 필요하지 않습니다.

반품할 수 있는 제품의 경우 상점 직원은 반품에 추가 를 클릭하거나 제품의 바코드를 스캔할 수 있습니다. translatebar code API는 상점 직원이 제품을 스캔할 때 호출됩니다. 유효한 변환이 리턴되면, getCompleteOrderLineList API를 사용하여 제품에 대해 매칭 오더 라인이 페치됩니다. 매칭 오더 라인이 반품 가능 라인이면, createOrder API가 초안 반품오더를 생성하도록 호출됩니다. 이 API는 처음에만 호출됩니다. 이후에 두 번째로 제품이 추가되는 경우에는 changeOrder API가 초안 반품오더를 업데이트하도록 호출됩니다. 상점 직원이 제품을 반품에 추가하도록 선택하면 제품 한 단위가 추가됩니다. 다수의 동일 제품을 반품하려는 경우, 상점 직원은 각 개별 제품에 대해 반복해서 반품에 추가를 클릭합니다.

다음 로직이 실행됩니다.
  • createOrder API의 EntryType 속성은 Store로 설정됩니다.
  • getCompleteOrderDetails API가 판매오더에서 고객 정보를 페치하도록 호출됩니다. 반품오더에 소인될 고객 정보가 createOrder 또는 changeOrder API로 전달됩니다.
  • getCompleteOrderDetails API가 판매오더의 OrderLineKey 속성을 페치하면, 이 속성은 반품오더의 DerivedFrom 요소에 있는 createOrder 또는 changeOrder API로 전달됩니다.

상점 직원은 소형 장바구니를 클릭하여 언제든지 반품오더의 제품을 조회할 수 있습니다. 소형 장바구니에는 장바구니에 있는 제품과 수량이 표시됩니다. 상점 직원은 소형 장바구니에서 반품오더의 제품을 제거할 수 있지만 개별적으로 제품의 수량을 늘리거나 줄일 수는 없습니다.

블라인드 반품에 제품 추가

고객이 영수증을 지참하지 않고 등록된 고객이 아닌 경우, 상점 직원은 제품을 검색합니다. 올바른 제품이 식별되면 상점 직원은 반품에 추가를 클릭할 수 있습니다. 다음 로직이 실행됩니다.
  • 블라인드 반품에서 제품의 가장 낮은 단가를 페치하도록 getLowestPrice API가 호출됩니다. 최저 가격은 PRICING_BLIND_RETURN_DAYS 규칙을 기반으로 하며, 제품의 최저 가격을 찾도록 NumberOfDaysInPast 속성을 구성하는 데 사용됩니다. 이 규칙을 설정하지 않으면 기본값이 90일로 설정됩니다. 상점 직원이 반품오더를 생성한 날짜와 과거에 구성된 기간(일) 사이의 최저 가격이 반품 제품 가격으로 표시됩니다.
  • createOrder API는 아직 생성되지 않은 경우 반품오더를 생성하도록 호출됩니다. changeOrder API는 생성되는 반품오더에 제품을 추가하기 위해 호출됩니다.
수동 번들 제품에만 블라인드 반품이 지원됩니다. 구성 가능 번들 제품이 추가되면 에러 메시지가 표시됩니다.

상점 직원은 소형 장바구니를 클릭하여 언제든지 반품오더에 있는 제품을 조회할 수 있습니다. getCompleteOrderLineList API가 장바구니의 제품 목록을 가져오도록 호출됩니다. 각 제품 옆에는 X 아이콘이 있으며, 상점 직원은 이 아이콘을 클릭하여 제품을 삭제할 수 있습니다.

상점 직원이 X 아이콘을 클릭하면 Action 속성이 REMOVE 로 설정된 modifyFulfillmentOptions API가 호출되어 제품을 삭제합니다. 제품이 삭제된 후 소형 장바구니를 새로 고칩니다.

반품 목록

전 제품이 반품에 추가된 후, 상점 직원이 제품의 반품 사유를 추가하려면 다음 화면에서 계속할 수 있습니다. 상점 직원은 전 제품을 추가한 후 계속을 클릭합니다. getCompleteOrderDetails API가 헤더 정보 및 오더 총계 정보를 페치하도록 호출되고, getCompleteOrderLineList API가 Returns List 화면에서 오더 라인 정보를 표시하도록 호출됩니다. processReturnOrder API는 판매오더에서 반품오더로 할인 및 비용(있는 경우)을 복사하기 위해 호출됩니다.

반품되는 각 아이템에는 반품 사유가 있어야 합니다. 반품 사유는 Sterling Business Center 에서 구성되며 반품 사유를 페치하기 위해 CodeType 속성을 RETURN_REASON 로 설정하여 getCommonCodeList API가 호출됩니다. 반품 목록 화면이 로드될 때 반품 사유 추가 팝업 창이 표시되며, 상점 직원은 반품 사유를 입력해야 합니다. 반품된 제품은 각기 다른 반품 사유가 있을 수 있습니다. 또는 상점 직원이 전 제품에 대해 동일한 반품 사유를 적용할 수도 있습니다. 반품 사유가 서로 다르면, 각 제품이 표시되고 상점 직원이 각 제품에 대한 개별 반품 사유를 추가할 수 있습니다. 상점 직원이 나중에 반품 사유를 선택하도록 선택하는 경우 상점에서 각 제품에 대해 반품 사유 추가를 클릭할 수 있습니다. 반품 사유 추가 팝업 창이 표시됩니다. 상점 직원은 반품 사유를 선택할 수 있습니다.

상점 직원이 반품 사유 추가 창에 전체 필수 상세내역을 입력하고 확인을 클릭하면, changeOrder API가 반품 사유와 함께 오더를 업데이트하도록 호출됩니다.

반품오더에서 제품을 제거해야 할 경우 상점 직원이 삭제 아이콘을 클릭하면, changeOrder API가 반품오더에서 제품을 제거하도록 호출됩니다.

상점 직원이 블라인드 반품을 생성하는 경우 반품 목록 화면에서 고객을 식별해야 합니다. 상점 직원은 고객 식별을 클릭할 수 있습니다. 고객이 시스템에 있는 경우 상점 직원은 고객을 검색할 수 있습니다. 그렇지 않으면, 상점 직원은 고객 프로파일을 새로 생성할 수 있습니다.
  • 기존 고객
    • 기존 고객은 이름, 성, 이메일 또는 전화번호로 검색할 수 있습니다. getCompleteCustomerList API가 모든 기존 고객을 검색하도록 호출됩니다.
    • 기존 고객의 경우 청구처선적처와 같은 연계된 주소가 생성되어 있으면 상점 직원이 해당 고객을 검색할 때 이러한 주소가 표시됩니다.
    • 상점 직원이 올바른 고객을 찾아 확인을 클릭하면, changeOrder API가 오더에 고객 상세내역을 추가하도록 호출됩니다. 주소가 고객 계정과 연계된 경우 해당 주소는 자동으로 오더의 도착지 주소로 설정됩니다.
  • 신규 고객
    • 고객에 대한 레코드를 찾을 수 없거나 신규 고객인 경우, 상점 직원은 신규 고객 탭을 선택하여 소비자고객을 생성할 수 있습니다.
    • 상점 직원이 고객에 대한 주소 상세내역을 입력하고 탭아웃하면 다음 로직이 실행됩니다.
      • 상점 직원이 확인을 클릭하면 verifyAddress API가 호출됩니다. YCDVerifyAddressWithAVSUE UI가 구성된 경우 주소가 유효성 검증됩니다. 주소가 유효하지 않거나 입력 주소와 매치되는 주소가 여럿 발견되는 경우, 사용자가 유효하지 않은 주소를 수정하거나 매칭 주소 목록에서 올바른 주소를 선택하도록 프롬프트됩니다.
      • 유효한 주소가 선택되면, manageCustomer API가 고객을 생성하도록 호출됩니다.
      • changeOrder API가 반품오더에 고객 상세내역을 추가하도록 호출됩니다.
  • 상점 직원은 고객 패널에서 고객 변경을 클릭하여 고객 정보를 변경할 수 있으며, API 호출은 고객을 새로 생성하는 것과 유사합니다. 또한 상점 직원은 편집 아이콘을 클릭하여 오더에 대해 선택되는 주소를 수정할 수 있습니다. 도착지 주소 편집 팝업 창이 표시되면 상점 직원은 주소를 입력하고 확인을 클릭합니다. modifyFulfillmentOptions API가 오더의 주소를 업데이트하도록 호출됩니다. 상점 직원이 주소를 편집하는 경우, 오더 변경만 수행되고 고객 계정에 저장되지 않습니다.

반품 정책 위반 재설정

제품이 반품 가능하지 않지만 상점 직원이 계속해서 제품을 반품에 추가하려는 경우 정책 위반을 재설정해야 합니다. 반품 상품에 대한 반품 정책 재설정은 Sterling Business Center에서 설정됩니다. 설정되는 반품 정책은 반품 제품에 대한 규칙을 판별합니다.
  • 재설정 정책이 Allow Override로 설정된 경우, 애플리케이션에서 제품 위반이 자동으로 재설정됩니다.
  • 재설정 정책이 Do Not Allow Override로 설정된 경우, 정책을 재설정할 수 없습니다. 상점 직원은 반품 정책을 조회하여 고객에게 위반에 대해 설명할 수 있습니다.
  • 반품 정책이 Allow Return Based on Approval Plan으로 설정된 경우, 적절한 승인 코드로 재설정이 허용됩니다. 상점 직원이 반품 정책을 위반하는 제품에 대해 재설정을 클릭하면 재설정 창이 표시됩니다.
    • CodeType 속성이 WSC_RETURN_OVERRIDE로 설정된 getCommonCodeList API가 재설정 사유를 페치하도록 호출됩니다.
    • 상점 직원은 관리자 재설정 코드를 입력해야 합니다.
    • 상점 직원은 확인을 클릭하여 오더에 반품 사유와 재설정 코드를 저장할 수 있습니다. 반품오더에 추가되는 첫 번째 아이템에 대해 createOrder API가 호출됩니다. 반품오더에 추가되는 첫 번째 제품 이후로 전 제품에 대해 changeOrder API가 호출됩니다.
    • 개별 제품에 대해서는 재설정 코드를 입력할 수 없습니다. 재설정 코드가 입력되면 반품 정책 위반이 있는 전 제품이 재설정됩니다. 상점 직원이 반품오더에서 반품 정책 위반이 있는 전 제품을 재설정하지 않으려는 경우 상점 직원은 먼저 해당 반품오더에서 재설정하지 않아야 하는 제품을 삭제한 후 나머지 제품을 재설정해야 합니다.
  • createOrder 또는 changeOrder API가 성공하면 YCD_ValidateReturnOverrideCode 서비스가 호출됩니다. 오더 오브젝트, 선택된 제품, 반품 사유 및 재설정 코드가 서비스에 입력되어 재설정 코드를 유효성 검증합니다.
    • 서비스가 호출된 후 processReturnOrder API가 오더 라인에 대한 위반을 페치하도록 호출됩니다.
  • 서비스가 성공적으로 실행되면 제품에 대한 모든 위반사항이 페치됩니다. 각 위반에 대해 recordApprovals API가 호출됩니다. 위반 ID는 API로 전달되고 API는 재설정을 승인하거나 거부합니다.
    • 이 API가 재설정 코드를 승인하면 제품의 상태가 1200으로 변경됩니다. 승인이 수락되면, createOrder 또는 changeOrder API가 재설정 사유를 기록하도록 호출됩니다.
    • API가 재설정 코드를 거부하는 경우, 제품은 미변경처리 상태로 유지되고 오더에 재설정이 추가되지 않습니다.

상점 직원이 위반에 대해 알리도록 하려면 반품 및 재설정 정책 위반을 둘 다 설정해야 합니다.

제품에 대한 반품 및 재설정 정책이 충돌하는 경우, 적절한 에러 메시지가 표시되고 제품이 반품오더에 추가되지 않습니다.

교환 제품 추가

고객은 반품할 제품과 교환하여 다른 제품을 구매할 수도 있습니다. 상점 직원은 아이템을 스캔하거나 교환 패널에 키워드를 입력하여 교환 제품을 추가할 수 있습니다. 키워드가 입력되거나 제품이 스캔되면 다음 로직이 실행됩니다.
  • 상점 직원이 교환할 제품을 스캔하면, getCompleteItemList API가 호출되어 제품을 검색하고 제품 상세내역 페이지가 표시됩니다. 결과를 찾을 수 없는 경우, searchCatalogIndex API가 제품을 나열하도록 호출됩니다.
  • 상점 직원이 키워드를 입력하고 검색 아이콘을 클릭하면, searchCatalogIndex API가 매칭 제품을 나열하도록 호출됩니다. 그러면 목록에서 올바른 제품을 선택할 수 있습니다.
상점 직원은 공유 버튼을 클릭하여 제품 상세내역을 고객과 공유할 수 있습니다. 공유 팝업 창에서 상점 직원은 기본적으로 이메일을 통해 제품 상세내역을 공유할 수 있습니다. 고객의 등록된 이메일 주소가 자동으로 채워지고 이메일 주소가 없는 경우에는 상점 직원이 직접 이메일 주소를 입력할 수 있습니다. 상점 직원이 이메일 버튼을 클릭하면 제품 상세내역이 고객에게 전송됩니다. 마찬가지로 상점 직원은 이메일 주소를 여러 개 입력하여 제품 상세내역을 여러 개의 이메일 주소로 보낼 수 있습니다.
참고: 사용자 정의를 통해 여러 공유 옵션을 추가할 수도 있습니다. 마찬가지로 필요한 대로 기본 이메일 서비스를 사용자 정의할 수 있습니다.
상점 직원에게 Email Product details 자원 권한이 없고 공유 단추에 이메일 옵션만 있는 경우 공유 단추가 화면에 표시되지 않습니다.

올바른 제품을 찾으면, 상점 직원이 교환으로 추가를 클릭하여 교환오더에 제품을 추가할 수 있습니다.

교환할 제품이 처음으로 추가되면 createOrder API가 호출되어 교환오더를 생성합니다. 다음 로직이 실행됩니다.
  • getCompleteOrderDetails API가 반품오더에서 OrderHeaderKey 속성을 페치하도록 호출된 다음 createOrder API에서 ReturnOrderHeaderKeyForExchange 속성으로 전달됩니다.
  • 교환오더의 createOrder API에서 ExchangeType 속성이 YCD_DEFAULT_EXCHANGE_TYPE 규칙에 따라 설정됩니다.

제품이 교환오더에 추가된 후 반품 목록 화면에는 추가된 교환 제품이 표시됩니다. 상점 직원은 제품을 선물로 지정, 쿠폰 적용, 배송방법 변경 등을 포함하여 교환 제품에 대한 모든 필요한 수정사항을 작성할 수 있습니다.

상점 직원은 교환 제품의 가격을 재설정하려는 경우 편집 아이콘을 선택할 수 있습니다. 상점 직원이 교환 제품의 단위 가격 옆에 있는 편집 아이콘을 선택하면 가격 재설정 창이 표시됩니다. 상점 직원은 새 가격과 가격 재설정 사유를 입력한 후 변경사항을 적용할 수 있습니다.

대체 이유를 페치하기 위해 CodeType 속성을 YCD_PRICEOVERRIDE로 설정하여 getCommonCodeList API를 호출합니다. 상점 직원이 적용을 클릭하면, modifyFulfillmentOptions API가 제품의 정가를 재설정하도록 호출됩니다. 제품의 원래 가격과 새 가격이 표시됩니다.

상점 직원은 가격 재설정 액션에 필요한 자원 권한이 있어야 제품의 가격을 재설정할 수 있습니다. 상점 직원에게 이러한 자원 권한이 없는 경우에는 가격 재설정 아이콘이 표시되지 않습니다.

선물 옵션은 교환 제품에 대해 사용 가능합니다. 전 제품에 대해 이 제품을 선물로 지정 메시지가 표시됩니다.

상점 직원은 교환오더 플로우를 완료하는 동안 전체 교환오더 또는 개별 교환 제품에 쿠폰을 적용할 수 있어야 합니다. 상점 직원은 쿠폰을 스캔하거나 쿠폰 코드를 입력한 후 Enter 키를 눌러 오더에 쿠폰을 적용할 수 있습니다. 쿠폰을 식별하기 위해 translatebar code API가 호출됩니다. 쿠폰이 식별되면, changeOrder API가 오더에 쿠폰을 적용하도록 호출됩니다.
  • 쿠폰이 성공적으로 오더에 적용되면, getCompleteOrderDetails API가 업데이트된 가격으로 오더 패널을 새로 고치도록 호출됩니다. 쿠폰이 성공적으로 적용되지 않으면 에러 메시지가 표시됩니다.
  • 상점 직원은 쿠폰 옆에 있는 X 아이콘을 클릭하여 쿠폰을 삭제할 수 있습니다. 쿠폰을 제거하려면 Promotion 요소에서 ACTION 속성이 REMOVE로 설정된 changeOrder API가 호출됩니다. getCompleteOrderDetails API는 업데이트된 정보로 페이지를 새로 고치도록 호출됩니다.
주: 다음 유형의 쿠폰은 지원되지 않습니다.
  • 선적 비용에 적용 가능한 쿠폰
  • 특정 지불 유형에 적용 가능한 쿠폰

전 제품이 추가되고 고객이 식별된 후 필요한 경우 상점 직원은 환불을 클릭할 수 있습니다. ExecuteReturnPolicy 속성이 Y로 설정된 processReturnOrder API가 반품 제품을 유효성 검증하도록 호출됩니다. 위반이 발생하는 경우, 반품 정책을 벗어나는 제품 팝업 창이 열리고 상점 직원은 반품을 허용하기 위해 관리자 재설정 코드를 입력할 관리자를 호출해야 합니다. 그렇지 않으면 상점 직원이 반품오더에서 제품을 제거할 수 있습니다. 정책 위반을 재설정할 수 없는 경우, 상점 직원은 결제를 진행하기 전에 반품오더에서 제품을 제거해야 합니다. 위반이 발생하지 않으면 결제 화면이 표시됩니다.

지불

상점 직원이 반품 목록 화면에서 결제 화면으로 이동할 때, processReturnOrder API가 환불 금액을 계산하도록 호출됩니다. 원래 판매오더에 모든 지불 방법이 저장된 경우, processReturnOrder API는 반품오더에 대한 기본 지불 방법을 채웁니다. 반품오더에 대한 기본 지불 방법 및 해당 지불 방법의 환불 금액은 지불 유형 구성에 따라 다릅니다.

Default for Return 규칙이 설정된 경우에는 다음 로직이 실행됩니다.
  • 한 번에 하나의 지불 유형만 반품 프로세스의 기본 지불 유형으로 설정할 수 있습니다.
  • 특정 지불 유형이 반품에 대해 기본값으로 설정되면 블라인드 반품 동안 해당 지불 유형으로 금액이 환불됩니다.
  • 판매오더에 사용된 지불 유형이 반품 유효하지 않은 경우에는 기본 지불 유형으로 금액이 환불됩니다.
Valid for Return 규칙이 설정된 경우에는 다음 로직이 실행됩니다.
  • 판매오더에 사용된 지불 유형이 반품 유효한 경우에는 제품 반품 시에 동일한 지불 유형으로 금액이 환불됩니다. 판매오더에서 둘 이상의 지불 유형이 사용된 경우에는 반품 시퀀스가 고려되며, 반품 시퀀스에 따라 금액이 환불됩니다.
  • 판매오더에 사용된 지불 유형이 반품 유효하지 않은 경우에는 제품 반품 시에 반품 환불 화면에서 지불 패널에 유효하지 않은 지불 유형이 표시되지 않습니다. 그러나 사용자가 새 지불 방법 추가 링크를 통해 반품 유효하지 않은 경우 지불 유형을 선택하고 환불 프로세스를 완료할 수 있습니다.
Credit Card Valid For Return 규칙이 설정된 경우에는 금액이 신용카드에 환불됩니다. Credit Card Valid For Return 규칙이 설정되지 않은 경우에는 반품 금액이 기본 지불 방법으로 환불됩니다. 고객이 기본 지불 방법 외의 지불 방법으로 환불하도록 요청하는 경우 상점 직원은 새 지불 방법을 추가할 수 있습니다. 판매오더가 쉽먼트 인보이스 생성을 완료한 경우 반품오더 지불 방법에 대해 PlannedRefundAmount 속성이 채워집니다.
오더에 교환 제품이 없는 경우 다음 로직이 실행됩니다.
  • 반품오더의 환불 금액에는 기본 지불 방법과 모든 지불 방법의 해당 PlannedRefundAmount가 표시됩니다.
  • processReturnOrder API의 GrandRefundTotal 속성은 고객에게 돌려줘야 할 환불을 표시하도록 호출됩니다.
  • getCompleteOrderDetails API는 반품오더의 상세내역을 검색하는 데 사용됩니다.
반품오더에 대한 교환오더가 있는 경우 다음 로직이 실행됩니다.
  • getCompleteOrderDetails API가 GrandExchangeTotal 속성을 검색하여 교환오더 총계를 표시하고 GrandTotal 속성을 검색하여 반품오더 및 교환오더의 총계를 표시하도록 호출합니다.
  • GrandRefundTotal 금액이 $0보다 크면, 고객은 환불을 받습니다. 기본 지불 방법은 계획된 환불 금액에서 표시됩니다.
  • GrandRefundTotal 금액이 $0 미만이면, 고객은 교환오더에 상환할 금액이 있습니다. 고객이 오더에 상환할 금액이 있는 경우, getCompleteOrderDetails API가 ChargeTransactionDetails 속성에서 RemainingAmountToAuth 속성을 페치하여 고객이 지불해야 할 잔액을 표시하도록 호출됩니다. 고객이 교환오더에서 상환해야 할 잔액이 있는 경우에는 기본 지불 방법이 없습니다.
  • 지불을 캡처하려면 다음 로직이 실행됩니다.
    • capturePayment API가 교환오더에 대한 지불을 캡처하도록 호출됩니다.
    • getPaymentList API가 수락된 지불 유형을 페치하도록 호출됩니다.
    • CodeType 속성이 YCD_CREDIT_CARD_TYPE으로 설정된 getCommonCodeList API가 수락된 신용카드 유형을 페치하도록 호출됩니다. 그런 다음 정보가 getPaymentCardTypeList API로 전달되어 지불카드 유형 목록을 페치합니다.
    • 신용카드 지불의 경우, SecureAuthenticationCode 속성이 processOrderPayments API에 전달되어 모든 신용카드의 CVV 코드를 캡처합니다.
    • 보안상의 사유로 신용카드 번호는 애플리케이션에 제공되지 않습니다. 그 대신에 Sterling Sensitive Data Capture Server에서 카드 번호를 암호화하기 위해 지불을 캡처합니다. 상점 직원은 신용카드의 CVV 코드를 받습니다. 이 코드는 트랜잭션 정보로서 승인을 위해 processOrderPayments API로 전달되지만 시스템 또는 시스템 로그에 저장되지 않습니다.
    • 지불 처리 시 에러가 발생하면 capturePayment 또는 processOrderPayments API의 출력에서 ChargeTransactionDetails 요소가 호출되어 적절한 에러 메시지를 표시합니다.
    • 지불 처리가 완료되면 confirmDraftOrder API가 지불을 확정하도록 호출됩니다.

특정 환불 금액의 지불 유형에 대해 If Refund Amount is 제약조건이 설정된 경우 Refund Using Payment Type 제약조건에 지정된 지불 유형에 환불이 제공됩니다. 예를 들어, 판매오더가 신용카드 지불 유형과 연관된 경우 오더 반품 시 오더 총계가 $1,000보다 크면 환불 금액을 수표로 환불해야 합니다. 오더 총계가 $1000보다 크지 않으면 SVC(Store Value Card)로 환불되도록 제약조건을 설정할 수 있습니다. 이와 같이 설정하려면 신용카드 지불 유형에서 Refund to new payment type 제약조건을 SVC로 설정해야 하며, SVC 지불 유형에서 오더 총계가 $1000 미만이 되도록 제약조건을 설정해야 합니다. 지불 유형의 Default for ReturnRefund to a new payment type 규칙이 ON이면 상점 직원이 블라인드 반품을 수행할 때 Refund to new payment type으로 설정된 지불 유형을 고려해야 합니다.

processOrderPayments API가 실시간으로 고객에 대한 환불을 처리하도록 호출됩니다. 지불 처리 시 에러가 발생하면 capturePayment 또는 processOrderPayments API의 출력에서 chargeTransactionDetails 요소가 호출되어 적절한 에러 메시지를 표시합니다. 지불 처리 시 에러가 발생하지 않으면, confirmDraftOrder API가 오더를 확정하도록 호출됩니다.

주: 지불 정보를 입력하는 동안 상점 직원이 Returns list 페이지로 돌아가면 입력된 모든 지불 정보가 유실됩니다. 지불은 초안오더에 저장되지 않습니다.

반품오더 또는 교환오더 요약정보 조회

지불이 완료되면 상점 직원은 반품 요약정보 또는 교환 요약정보를 조회할 수 있습니다. getCompleteOrderDetails API가 전체 반품오더 및 교환오더 상세내역을 가져오도록 호출됩니다. getCompleteOrderLineList API가 반품 제품 및 교환 제품 상세내역을 검색하도록 호출됩니다.

상점 직원은 고객용 영수증을 출력할 수 있습니다. 상점 직원이 영수증을 출력하도록 선택하면 출력할 반품오더 상세내역을 전송하기 위해 StoreReturnReceipt_95 서비스가 호출됩니다.

고객이 반품 영수증을 이메일 주소로 전송해 달라고 요청하는 경우가 있습니다. 반품오더 상세내역을 가져와 이메일을 전송하기 위해 YCD_StoreReturnEmail 서비스가 호출됩니다.

상점 직원이 완료를 클릭하면 반품 로케이션 기록 창이 표시됩니다. getReturnDispositionList API가 반품 로케이션을 페치하도록 호출됩니다. 상점 직원은 반품된 전 제품을 동일한 반품 로케이션으로 보내야 하는지 선택합니다. 다음 로직이 실행됩니다.
  • 전 제품을 동일한 반품 로케이션으로 보내야 하는 경우, 창에는 반품 로케이션을 선택하기 위한 메뉴가 표시됩니다. 상점 직원은 반품 로케이션을 선택해야 합니다.
  • 제품을 각기 다른 반품 로케이션으로 보내야 하는 경우, 창에는 각 제품에 대한 반품 로케이션 메뉴가 표시됩니다. 상점 직원은 각 제품의 반품 로케이션을 선택해야 합니다.
  • 제품의 반품 로케이션을 저장하려면 상점 직원은 확인을 클릭합니다. changeOrder API가 반품오더에 대한 변경사항을 저장하도록 호출됩니다.
상점 직원이 반품 로케이션을 선택하여 반품오더에 저장한 후, 페이지가 표시됩니다.

반품오더 또는 교환오더 취소

상점 직원이 반품오더 또는 교환오더를 취소하도록 선택하는 경우, deleteOrder API가 OrderHeaderKey 속성으로 오더를 삭제하도록 호출됩니다. 상점 직원이 오더를 취소한 후 제품을 반품해야 할 경우 새 반품오더를 생성해야 합니다. 임의의 재설정 코드가 필요한 경우 재설정 코드를 다시 입력해야 합니다.