akasima / xero_commerce

xe3 에서 사용가능한 e-commerce 플러그인
Other
21 stars 10 forks source link

상품옵션 조합형 구현 #126

Closed darron1217 closed 4 years ago

darron1217 commented 4 years ago

※이 PR은 product-type PR위에 작업한것이기 때문에, product-type의 기능들이 포함되어 있습니다.

사전에 협의를 하고 싶어서 포럼이나 issue에 올렸는데 다들 바쁘신것 같아서... 일단 필요한 기능 만들어서 올려봅니다.

변경사항 (관리자페이지)

image

  1. 상품옵션 수정을 show.blade가 아닌 create.blade, edit.blade에서 하도록 변경 (수정시마다 저장이 아닌, 최종 저장버튼을 누를때 한꺼번에 저장되도록 구현)

  2. 옵션값을 저장하는 product_option 테이블을 추가. Option과 OptionItem의 명칭을 명확하게 구분하도록 변수명 모두 변경함. 옵션(ProductOption) : 옵션품목에 사용될 조건들 (색상: 블랙,화이트 / 사이즈 : XL, L 등) 옵션품목(ProductOptionItem) : 옵션들의 조합으로 최종 선택되는 상품들 (블랙, XL와 같은 조합) 자세한DB변경사항은 src/Migrations/2020_03_27_151152_create_product_option.php 참조

  3. 옵션에 타입을 지정 조합 일체선택형(기본값) : 옵션이 여러개일때 모든조합을 하나의 셀렉트박스에 출력 조합 분리선택형 : 옵션이 여러개일때 여러개의 셀렉트박스를 선택하여 옵션품목 추가 단독형 : 옵션값 그 자체를 옵션품목으로 취급 (조합X)

변경사항 (프런트)

image (조합 분리선택형의 예시)

  1. 조합형의 경우 옵션이 모두 선택되었을때 옵션품목이 추가되도록 구현

TODO

  1. 관리자페이지에서 옵션품목 수정시 전부 삭제후 생성되는데, 기존에 있던 옵션들은 그대로 유지되도록 구현 필요 (성능문제)

  2. SubOption 기능 구현 필요 (Text Field)

akasima commented 4 years ago

@darron1217 감사합니다. !!

darron1217 commented 4 years ago

그렇겠네요 그럼 text 타입으로 만들고 json은 모델쪽에서 처리하는걸로 변경해보겠습니다

darron1217 commented 4 years ago

러프하게 만들었는데 바로 merge 해주셨네요...ㅎ 이전버전과의 호환성 때문에 DB테이블 만드는 코드를 Database 클래스는 그대로 두고, Migration 개념을 추가해서 이원화 해놨는데, 전부 Migration으로 옮기고 싶은 생각이 드네요 이전버전과 호환은 안되겠지만요