For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

1

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.

2

Select Withdrawal Reason

A reason for withdrawal is selected at the time of withdrawal. Withdrawal reasons are classified into the following three categories.

  • Personal information related

  • Site usage related

  • Service usage related

If no withdrawal reason is selected, withdrawal processing cannot proceed.

3

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.

4

Delete Token

After withdrawal processing is complete, the existing login token is deleted.

API Function List

API
Description
Server
Method
Remarks

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

Term
Description
Remarks

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)