Marketplace

 

마켓플레이스 요금제는 각 판매 상품을 갖고 있음.

사이트별 상품 판매정보로 가격 정의 가능 (멤버쉽별 판매가격 정의 가능)

스크린샷 2024-08-12 오전 11.10.10.png

 

스크린샷 2024-08-12 오전 11.12.51.png

 

Feature 에 대해 Apply 되면

  • 사용자 마켓플레이스 요금제(userMarketplacePricingPlans) 생성

    • Feature : ManagerGroup = 1 : 1

    • Feature : userMarketplacePricingPlans = 1 : 1

      • brandSite 예외

        • [Feature, brandSite] : userMarketplacePricingPlans = 1 : 1

  • 마켓플레이스 이용 정보 생성 (MarketplaceUsageInfo)

    • SubscriptionPayment : MarketplaceUsageInfo = 1 : N

 

마켓플레이스 요금제 처리

 

  • 멤버쉽 요금제가 변경될때

    • change membership

    • 이전 멤버쉽 subscriptionPayment 사용 종료

      • 이전 멤버쉽 Free 인 경우 skip

      • subscriptionPayment 하위 marketplaceUsageInfo 사용 종료

    • 이후 멤버쉽 subscriptionPayment 생성

      • 이후 멤버쉽 Free 인 경우 skip

      • new subscriptionPayment 하위 marketplaceUsageInfo 생성

    • subscriptionPaymenttotalMembershipUsagePrice, totalMarketplaceUsagePrice 일할 계산하여 갱신

    • membershipDataService.change

      • commerceSubscriptionService.changeMembership

      • if (MembershipUtils.isFromPaidToFree(membershipEt, changeMembershipType)) { MembershipSubscriptionEt membershipSubscriptionEt = membershipUsageInfoService.endOfUse(membershipEt); endOfUsePayment(context, null, membershipSubscriptionEt); membershipSubscription.regularPayCompleted(); membershipSubscription.updatePlansList(true); // 마켓플레이스이용정보 처리 } else { // List<Node> featureApplyList = NodeUtils.getNodeList("featureApply", "status_matching=apply&managerGroup_matching=" + managerGroup); for (Node featureApply : featureApplyList) { Node feature = featureApply.getReferenceNode("feature"); if (feature != null) { if (StringUtils.equals(feature.getId(), "brandSite")) { List<Node> brandSites = NodeUtils.getNodeList("site", "siteType_matching=brand&group_matching=" + managerGroup); for (Node brandSite : brandSites) { // 브랜드 사이트별 마켓플레이스이용정보 처리 membershipSubscriptionService.applyDefaultPlan(managerGroup, feature, brandSite.getId()); } } else { // 마켓플레이스이용정보 처리 membershipSubscriptionService.applyDefaultPlan(managerGroup, feature, null); } } else { logger.error("changeMembership Not Found Feature {} {}", featureApply.getStringValue("feature"), managerGroup); } } }
  • 사용자가 마켓플레이스 요금제 변경할때

    • 현재 멤버쉽 기준 이용가능한 마켓플레이스 요금제 내에서 변경 가능.

    • userMarketplacePricingPlans 수정.

    • 이전 marketplaceUsageInfo 사용 종료

    • 이후 marketplaceUsageInfo 사용 시작

    • subscriptionPayment.totalMarketplaceUsagePrice 일할 계산하여 갱신

    • marketplacePricingPlansDataService.change

  • Feature Apply 할때

    • 현재 멤버쉽 기준 이용가능한 마켓플레이스 요금제 존재 체크

      • 현재 멤버쉽에서 이용가능한 요금제에서 default 요금제 사용

    • userMarketplacePricingPlans , 사용자별 마켓플레이스 요금제 이용 정보 생성

    • 멤버쉽 구독중이면 subscriptionPayment 존재

      • subscriptionPayment 하위 marketplaceUsageInfo 생성

    • MarketplacePricingPlansDataService.featureApply

  • Feature Unapply 할때

    • userMarketplacePricingPlans 사용 중지. 중단사유 featureUnapply

    • subscriptionPayment 하위 marketplaceUsageInfo 사용 종료

    • subscriptionPayment.totalMarketplaceUsagePrice 일할 계산하여 갱신

    • MarketplacePricingPlansDataService.featureUnapply

 

 

 

 

 

 

 

 

 

 

 

store/customers/marketplacePricingPlans

마켓플레이스 요금제 정보

id

label

name

feature/value

pricingPlansType/value

membershipTypes/0/value

orderNo

isDefaultPlan

101

스탠다드 요금제

스탠다드 요금제

brandSite

premium

pro

1

true

102

프리미엄 요금제

프리미엄 요금제

brandSite

premium

pro

2

false

103

스타트 요금제

스타트 요금제

naverCommerce

start

free

1

true

104

베이직 요금제

베이직 요금제

naverCommerce

basic

pro

2

true

105

프리미엄 요금제

프리미엄 요금제

naverCommerce

premium

pro

3

false

106

스타트 요금제

스타트 요금제

inquiryChat

start

free

1

true

107

베이직 요금제

베이직 요금제

inquiryChat

basic

pro

2

true

108

프리미엄 요금제

프리미엄 요금제

inquiryChat

premium

pro

3

false

109

베이직 요금제

베이직 요금제

momo

basic

pro

1

true

{ "id": "101", "label": "스탠다드 요금제", "name": "스탠다드 요금제", "feature": { "value": "brandSite", "label": "사이트 관리", "refId": "brandSite" }, "pricingPlansType": { "value": "premium", "label": "프리미엄" }, "membershipTypes": [ { "value": "pro", "label": "Pro" } ], "orderNo": 1, "isDefaultPlan": true, "planDescription": "<p style=\"text-align:center\"><strong>스탠다드 요금제</strong></p>\n\n<p style=\"text-align:center\">페이지 방문 월 10만건</p>\n", "brandSite": { "id": "101", "label": "101", "parentId": { "value": "101", "label": "스탠다드 요금제", "refId": "101" }, "pageHits": 100000, "pageHitsPeriod": "P1M" }, "owner": { "value": "anonymous", "label": "Anonymous User", "refId": "user::anonymous" }, "created": "20240226183518", "modifier": { "value": "anonymous", "label": "Anonymous User", "refId": "user::anonymous" }, "changed": "20240528214516" }

 

 

store/products/product

store/products/siteProduct

마켓플레이스 상품 정보

id

name

productKind/value

marketplaceProduct/id

marketplaceProduct/feature/value

marketplaceProduct/marketplacePricingPlans/value

marketplaceProduct/marketplacePricingPlans/label

601

스탠다드

marketplace

601

brandSite

101

스탠다드 요금제

602

프리미엄

marketplace

602

brandSite

102

프리미엄 요금제

603

스타트

marketplace

603

naverCommerce

103

스타트 요금제

604

베이직

marketplace

604

naverCommerce

104

베이직 요금제

605

프리미엄

marketplace

605

naverCommerce

105

프리미엄 요금제

606

스타트

marketplace

606

inquiryChat

106

스타트 요금제

607

베이직

marketplace

607

inquiryChat

107

베이직 요금제

608

프리미엄

marketplace

608

inquiryChat

108

프리미엄 요금제

609

베이직

marketplace

609

momo

109

베이직 요금제

{ "id": 601, "label": "스탠다드", "name": "스탠다드", "productKind": { "value": "marketplace", "label": "마켓플레이스" }, "marketplaceProduct": { "id": "601", "label": "601", "parentId": { "value": "601", "label": "스탠다드", "refId": "601" }, "feature": { "value": "brandSite", "label": "사이트 관리", "refId": "brandSite" }, "marketplacePricingPlans": { "value": "101", "label": "스탠다드 요금제", "refId": "101" } }, "productSaleInfo": { "id": "146582560", "label": "146582560", "supplyPrice": 11000, "salePrice": 11000, "useDiscount": false, "discountSalePrice": 11000, "discountSalePriceMobile": 11000, "stockQuantityLimit": false, "useSku": false, "stockQuantity": 0, "minOrderQuantity": 1, "maxOrderType": { "value": "unlimited", "label": "무제한" }, "priceNegotiable": false, "priceNegotiationMinOrderQuantity": 0, "priceNegotiationMinOrderPrice": 0, "regularDelivery": false, "regularDeliveryDiscountRate": null, "sendGift": false, "deferredPayment": false } },

id

name

baseProduct/value

site/value

siteProductSaleInfo/salePrice

1136925730

무제한

605

metaflyerFree

5500

1147887049

무제한

605

metaflyerEnterprise

5500

1328714239

스타트

603

metaflyerFree

0

1441122641

베이직

607

metaflyerPro

0

1486476162

스타트

603

metaflyerEnterprise

0

1569203349

무제한

602

metaflyerPro

33000

1613235927

프리미엄

608

metaflyerPro

11000

1635352366

베이직

607

metaflyerFree

0

1660829044

스타트

603

metaflyerPro

0

166909009

프리미엄

608

metaflyerFree

11000

167390205

무제한

602

metaflyerFree

33000

1766525681

베이직

604

metaflyerPro

0

1896793513

스타트

606

metaflyerFree

0

1929262489

베이직

601

metaflyerFree

11000

232264775

무제한

602

metaflyerEnterprise

33000

259933162

베이직

607

metaflyerEnterprise

0

263251391

베이직

604

metaflyerEnterprise

0

303020927

베이직

601

metaflyerEnterprise

11000

539623287

스타트

606

metaflyerPro

0

640060135

베이직

604

metaflyerFree

0

676727289

스타트

606

metaflyerEnterprise

0

734537071

베이직

601

metaflyerPro

11000

851605865

무제한

605

metaflyerPro

5500

971798275

프리미엄

608

metaflyerEnterprise

11000

1121130200

베이직

609

metaflyerEnterprise

0

1186211937

베이직

609

metaflyerFree

0

1631442067

베이직

609

metaflyerPro

0