Project

General

Profile

Actions

New Function #339

closed

[DATA] KRS 정보 수신 - 스토리 오더 편의점 상품

Added by Jisoo Choi 10 months ago. Updated 9 months ago.

Status:
Closed
Priority:
High
Assignee:
Start date:
01/23/2024
Due date:
% Done:

0%

Estimated time:
Spent time:

Description

 

 

 

 

(편의점 상품) 가격 할인의 경우

*1+1의 경우 추후 따로 반영이 필요하고, 2+1은 기존에도 안 된다고 했기 때문에 해당 논의는 배제하고, 일단 행사 테이블의 내용 중 가격 할인에 대한 내용만 반영

 

 

행사 정보 : VI_APP_EVENT

- 행사 종류(EVENT_KIND)가격 할인(001)일 때, 해당 할인 정보를 편의점 상품의 할인 후 가격에 반영

- 행사시작일자/행사시작시간 ~ 행사종료일자/행사종료시간 정보의 기간대로 반영

 

행사가능매장 : VI_APP_EVENT_STORE

- 행사 코드와 매장 코드를 기준으로 행사가 적용되는 매장에 적용

 

행사별 상품정보 : VI_APP_EVENT_ITEM

- 행사코드와 행사상품그룹, 상품코드, 할인 판매가를 기준으로 할인 후 가격판단

 

 

VI_APP_TABLE

VI_APP_EVENT_STORE

VI_APP_EVENT_ITEM

EVENT_CD

EVENT_KIND

EVENT_BGNDE&TM ~ EVENT_EDDE&TM

DEPT_CD

EVENT_ITEM_GROUP / ITEM_CD

DC_SALE_AMT

행사 코드

행사 종류

*가격 할인

yyyy-mm-dd hh:mm~yyyy-mm-dd hh:mm

매장 코드

상품 코드

할인 판매가

 

[가격] 현재 갖고 오는 정보 그대로 유지

 

[할인 후 가격]

1) 행사 테이블(3) 통해 도출한 할인 판매가 적용

2) VI_APP_SALEITEMDC_SALE_YNY인 경우, DC_SALE_PRICE 적용

*행사 테이블을 통해 도출될 경우 해당 가격(행사 가격)을 우선해서 적용

**행사상품일 경우 DC_SALE_YNN으로 세팅

 

 

우리 구조상 안 되는 부분이 있다면 말씀 부탁드립니다 !

 

 

 

 


Files

Actions #1

Updated by Deca Park 10 months ago

  • Assignee changed from Deca Park to Toby Pham

[KRS event data Scheduler] 

1.[KRS Scheduler] schedulerKRSGoods (편의점), [ADMIN] 스토리 오더 관리 > 상품 관리 (/storeProduct) > 편의점 KRS 수동 업데이트 (KRS manual update) button
  - add event data create logic
  
2.logic

  0) DB (st_krs_event)
   
a) get KRS data
        SELECT EV.EVENT_CD, EV.EVENT_NM, EV.EVENT_KIND, EV.EVENT_BGNDE, EV.EVENT_EDDE, EV.DEL_YN
        FROM  VI_APP_EVENT EV
        WHERE EV.EVENT_KIND IN ( '001', '003') // 001: event discount, 003: 1+1 event
          AND EV.TRANS_YN = 'N'
          AND EV.EVENT_BGNDE <= TO_DATE('20231201','YYYYMMDD')  // '20231201' -> today
          AND EV.EVENT_EDDE >= TO_DATE('20231201','YYYYMMDD')   // '20231201' -> today
    b) process data
      b-1) if EV.DEL_YN = 'Y'
        - DELETE st_krs_event WHERE event_cd = {the EVENT_CD}
      b-2) else
        b-2-1) INSERT/UPDATE st_krs_event
        b-2-2) UPDATE VI_APP_EVENT
                 SET TRANS_YN = 'Y'
                 WHERE EVENT_CD = {the EVENT_CD}


  1) DB (st_krs_event_store)
    a) get KRS data
        SELECT EV.EVENT_CD
                    ,ES.DEPT_CD, ES.DEL_YN
        FROM  VI_APP_EVENT EV
            LEFT JOIN VI_APP_EVENT_STORE ES ON ES.EVENT_CD = EV.EVENT_CD
        WHERE EV.EVENT_KIND IN ( '001', '003') // 001: event discount, 003: 1+1 event
          AND ES.TRANS_YN = 'N'
          AND EV.EVENT_BGNDE <= TO_DATE('20231201','YYYYMMDD')  // '20231201' -> today
          AND EV.EVENT_EDDE >= TO_DATE('20231201','YYYYMMDD')   // '20231201' -> today
  
    b) process data
      b-1) if ES.DEL_YN = 'Y'
        - DELETE st_krs_event_store WHERE dept_cd= {the DEPT_CD}
      b-2) else
        b-2-1) INSERT/UPDATE st_krs_event_store
        b-2-2) UPDATE VI_APP_EVENT_STORE
                 SET TRANS_YN = 'Y'
                 WHERE EVENT_CD = {the EVENT_CD}

   2) DB (st_krs_event_store_item)
     a) get KRS data
        SELECT EV.EVENT_CD
               ,ES.DEPT_CD
               ,EI.ITEM_CD, EI.DC_SALE_AMT, EI.DEL_YN
        FROM  VI_APP_EVENT EV
            LEFT JOIN VI_APP_EVENT_STORE ES ON ES.EVENT_CD = EV.EVENT_CD 
            LEFT JOIN VI_APP_EVENT_ITEM EI ON ES.EVENT_CD = EI.EVENT_CD
        WHERE EV.EVENT_KIND IN ( '001', '003') // 001: event discount, 003: 1+1 event
          AND EV.TRANS_YN = 'N'
          AND EV.EVENT_BGNDE <= TO_DATE('20231201','YYYYMMDD')
          AND EV.EVENT_EDDE >= TO_DATE('20231201','YYYYMMDD')
     b) process data
      b-1) if EI.DEL_YN = 'Y'
        - DELETE st_krs_event_store_item WHERE event_cd={the EVENT_CD} AND item_cd= {the ITEM_CD}
      b-2) else
        b-2-1) INSERT/UPDATE st_krs_event_store_item
                  product_code : "{dept_cd}-{item_cd}"
        b-2-2) UPDATE VI_APP_EVENT_STORE_ITEM
                 SET TRANS_YN = 'Y'
                 WHERE EVENT_CD = {the EVENT_CD} AND ITEM_CD = {the ITEM_CD}

Actions #2

Updated by Jisoo Choi 10 months ago

 

 

 

[가격] 현재 갖고 오는 정보 그대로 유지

 

[할인 후 가격]

1) 행사 테이블(3개) 통해 도출한 할인 판매가 적용

2) VI_APP_GOODS의 DC_SALE_YN이 Y인 경우, DC_SALE_PRICE 적용

*행사 테이블을 통해 도출될 경우 해당 가격(행사 가격)을 우선해서 적용

**행사상품일 경우 DC_SALE_YN은 N으로 세팅

Actions #3

Updated by Deca Park 10 months ago

[KRS product scheduler]

1.schedulerKRSGoods (편의점)
  1) logic change
    a) DB (st_product) 
      a-1) if VI_APP_GOODS_STORY.DC_SALE_YN = 'Y' AND DC_SALE_PRICE IS NOT NULL AND (SALE_PRICE - DC_SALE_PRICE) > 0 
        - price : SALE_PRICE
        - discount_type: 'amount'
        - discount_amount: (SALE_PRICE - DC_SALE_PRICE)
        - sale_price : DC_SALE_PRICE
    
      a-2) else (same as current)
        - discount_type / discount_amount : NULL
        - price / sale_price : SALE_PRICE

Actions #4

Updated by Jisoo Choi 10 months ago

 

 

 

 

편의점 상품일 때

 

[관리자 페이지]

1. 할인 후 가격 : 상품 테이블을 통해 전달된 값 표시

*할인 없을 때에는 그냥 가격과 동일하게 표시(앱 단에서 0% 할인은 할인으로 표시 안 되도록 처리되어 있는 것으로 알고 있습니다.)

 

2. 행사 가격 : 행사 테이블을 통해 계산된 값 표시

 

3. 행사 가격 아래에 안내 문구(2개) 추가 :

*편의점 상품의 할인 후 가격은 상품 정보, 행사 가격은 행사 정보를 통해 계산됩니다.

**행사 가격이 우선 적용됩니다.

 

 

로 부탁드립니다.

 

 

 

 

Actions #5

Updated by Deca Park 10 months ago

[ADMIN] 스토리 오더 관리 > 상품 관리 (/storeProduct) > 상세 (Modify)

  • spec: 편의점상품_행사가격_en.pptx
Actions #6

Updated by Deca Park 10 months ago

1.MallController > [API] GET /api/mall_product_list -> /api/store_product_list
  1) response
    a) event_discount_yn (add before discount_type)
      a-1)
        if the product has event price (st_krs_event_store_item.dc_sale_amt) and > 0, set 'Y'
        else, set 'N'
      a-2) check logic : same with note#5
        st_krs_event
          - condition: event_kind = '001' AND event_bgnde <= today <= event_edde
        st_krs_event_store_item
          - condition: product_code = {the product_code}

    b) discount_type / discount_amount / discount_rate / sale_price
      b-1) if event_discount_yn = 'Y'
        - discount_type : 'amount'
        - discount_amount : price - st_krs_event_store_item.dc_sale_amt
        - discount_rate : NULL
        - sale_price : set by st_krs_event_store_item.dc_sale_amt
      b-3) else
        - same as current

2.ProductController > [API] GET /api/cart_product_list, /api/interest_product_list, /api/product_info
  1) response
    a) event_discount_yn (add before discount_type)
    b) discount_type / discount_amount / discount_rate / sale_price
      - same with No 1-1)

Actions #7

Updated by Toby Pham 10 months ago

  • Status changed from New to Resolved
  • Assignee changed from Toby Pham to Deca Park
Actions #8

Updated by Deca Park 10 months ago

  • Assignee changed from Deca Park to Jisoo Choi
Actions #9

Updated by Deca Park 10 months ago

[ADMIN] 스토리 오더 관리 > 상품 관리 (/storeProduct)

1.편의점 KRS 수동 업데이트  (KRS manual update) button

  • same logic is called like comment#1,#3
Actions #10

Updated by Jisoo Choi 9 months ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF