안녕하세요. 쇼핑몰사이트에서 물품정보 페이지에서 “즉시구매”를 하는 경우(장바구니에 담지

 
JeongWoo Choi

안녕하세요.

쇼핑몰사이트에서 물품정보 페이지에서 “즉시구매”를 하는 경우(장바구니에 담지 않고 바로 구매하는 경우) 프로세스에 대해서 의견을 들어보고자 질문을 올리게되었습니다.
제가 생각한 방법은 크게 2가지 입니다.

1. “즉시구매” 버튼을 눌렀을 시 –> ‘물품이름’, ‘물품옵션’, ‘수량’ 등의 데이터를 하나로 묶는 Item이라는 모델을 만들고 주문정보입력 페이지로 이동
–> 이 경우, 구매항목을 관리하기 쉬울뿐더러, 결제까지 문제없이 진행되는 경우 구현도 매우 용이합니다
하지만 문제는, ‘즉시구매’ 버튼을 누르고 주문정보입력페이지까지 이동을 했는데, 갑자기 변심이 생겨 해당 페이지를 벗어나는 경우, 생성된 Item은
db에서 쓸모없는 아이템이 됩니다. 이 쓸모없어진 item을 처리하기 위해서는, 사용자가 ‘주문정보입력’ 페이지를 벗어나는 이벤트를 자바스크립트단에서 감지하여(onbeforeunload 등으), 이런 쓸모없어진 Item을 delete할 수 있는 APIView등을 통해 ajax request를 날리는 방법을 생각해봤는데, 괜찮은 방법일까요?

2. 위에서 언급한 “쓸모없어진 Item”이 발생하는 문제를 방지하기 위해서 –> ‘물품이름’, ‘물품옵션’, ‘수량’ 등을 Item 화 시키지 않고, 그냥 각각의 데이터를 별개의 raw data로써 “주문정보입력페이지”에 전달하는 방법을 생각했습니다. 이 경우, 최종결제까지 성공적으로 완료가 된 후에야 Item으로 모델화 시키려고 합니다. 근데 문제는 이런 raw 데이터들을 ‘주문정보입력 페이지”까지는 전달이 쉽지만(GET query string) html에 rendering하기가 약간 번거롭고, 또 여차여차 해서 “주문정보입력페이지”에 render를 한다고 해도, 이 페이지에서 최종주문을 생성하기 위한 Order POST view에 다시 전달하기가 조금 힘들다는 점입니다. 왜냐하면, “주문정보입력 페이지”에서 데이터들이 rendering이 될 때는 element가 아니라 그냥 HTML로써 뿌려지는데, 이를 다시 에 담아서 POST하는 것은 불가능다고 생각되기 때문입니다. 그렇다고 Order의 POST를 처리하는 View에 query string으로써 해당 데이터들을 보내기는 더욱 이상하다는 생각이 듭니다.

이렇게 생각해 봤는데, 관련해서 조언 혹은 더 좋은 방법이 있으면 제안부탁드립니다
감사합니다

  • Young-il Cho

    Session에 serialize하여 저장 하시는게 어떨지

Advertisements