Membership Withdrawal
Provides the process for enrolled customers to withdraw from the X2BEE shopping mall. Customers access the personal information change page to submit a withdrawal request, and the withdrawal is completed if there are no orders, claims, or 1:1 inquiries in progress.
Key Features
Withdrawal Eligibility Check
Checks whether withdrawal is possible by verifying if there are any orders, claims, or 1:1 inquiries currently in progress.
Withdrawal Reason Selection
The member selects a reason for withdrawal when requesting to withdraw.
Withdrawal Processing
If withdrawal is possible, the member's status is set to withdrawn and their personal information is masked.
The member's personal information contained in their order history, claim history, 1:1 inquiries, and product inquiries is also masked.
Event Database Processing
After withdrawal processing, a request is sent to the event database to delete the member's information.
Process Definition

Check Withdrawal Eligibility
Members can access the withdrawal page via the personal information edit page. Withdrawal eligibility is checked before withdrawal processing begins.
Withdrawal eligibility check items:
Whether there are orders in progress
Whether there are returns/exchanges in progress
Whether there are 1:1 inquiries in progress
Whether there is remaining mileage
If the withdrawal eligibility conditions are not met, withdrawal processing cannot proceed.
Withdrawal Processing
During withdrawal processing, the previously checked withdrawal eligibility is verified once more.
Processing details:
Personal information (personal details, delivery address information, refund account information) in the member information database is masked.
The member's personal information contained in product inquiry history, order/claim history, and 1:1 inquiry history is masked via the Product API and Order API.
A request is sent to delete the member's information in the event DB.
Once withdrawal processing is complete, an alert talk message and email notifying the customer of completed withdrawal are sent.
API Function List
Withdrawal Eligibility
Checks whether the logged-in member is eligible to withdraw.
Get order/delivery claim count: /api/order/v1/member/getOrdClaimCnt
Get in-progress inquiry count: /api/order/v1/customerservice/getNotCompletedInquiryCount
Member
POST
Membership Withdrawal
Provides withdrawal processing when a member requests to withdraw.
Product Q&A separate storage processing: /api/goods/v1/qnaWithdraw/updateStopQna
Event member separate storage restoration: /api/event/v1/common/doSeparate
Withdrawn/dormant member personal information transfer and masking processing: /api/order/v1/customerservice/withdrawalAndDormantMember
Withdrawal processing: /api/order/v1/member/withdrawalMemberOrderInfo
Member
POST
Definition of Terms
Separate Storage
Under the Personal Information Protection Act, information should in principle be deleted, but in some cases it must be inevitably retained due to other statutory provisions.
The law regarding separate storage of dormant members as of 9/15 has been abolished
Other Notes
After masking the member's personal information in the member database, the withdrawn member's personal information is stored in a separate storage database (a distinct database).
Since withdrawn members are prohibited from rejoining for a certain period, this data is kept in the separate storage database (verified via the CI value)
The period is checked using the code name of code 10 under ST009 (number of days restricting rejoining after withdrawal), and when a member signs up, the system checks whether the customer's CI exists in the withdrawal information table of the separate storage database
If withdrawal processing fails midway, the information in the member database and in the separate storage database must be fully rolled back together, so a different transaction configuration is used.
@Transactional(value = "chainedTransactionManager", rollbackFor = {Exception.class})
chainedTransactionManager: rolls back the separate storage RW DB and the order RW DB together
If masking processing in the member database fails, the entire data set is rolled back, but if an error occurs while calling the masking processing APIs of other modules (order/product/event), the data is not rolled back; instead, a record is inserted into the reprocessing table so it can be reprocessed later.
When withdrawal is processed via the reprocessing batch, the failed APIs of other modules are re-executed to mask the personal information in those modules' data.
Member database masking items:
Member basic information (member name, password, phone number, mobile number, address)
Member detail information (CI)
Member delivery address information (recipient name, address and detailed address, postal code, phone number, mobile number, delivery message information, entrance information, email address)
Member refund account information (bank code, refund account number, account holder name)