Withdrawal from the contract
- — 12 months guarantee for all our add-ons
- — add-ons sold to entire world
- — stable, flexible, high-quality products
- — competitive prices, attractive discounts
- — quick and competent technical support
- — installation in 24 hours
- — personalized solutions - we'll write any add-on for you
An extension for Store Builder and Multi-Vendor that gives customers a simple way to submit an electronic statement of withdrawal from the contract, in line with EU Directive 2023/2673. The form is available both to logged-in customers from their account and to people who placed an order without registering. A guest enters the order number and the e-mail address used at checkout, and the system sends a one-time magic link that opens either the submission form or the status view for previously submitted statements. The shop guides every request through a structured process with automatic e-mail notifications, full status change history, and optional RMA module integration.
Key Features
- Electronic withdrawal form available both from the customer account and to guests who placed an order without registering
- Guest magic-link flow: a one-time link sent to the order's e-mail address, either to submit a new statement or to view the status of existing ones, with the link automatically injected into the order notification e-mail
- Permanent medium: the confirmation e-mail contains full consumer data and the statement text, a ready legal document compliant with Polish consumer law
- Eleven-state state machine with change history and admin comments in a single view
- Product, category and product-type exclusion rules combined with a categorized return-reason dictionary and a TOP 5 reasons widget in the admin panel
- Order data snapshot at submission time: products, prices and address remain unchanged even if the order is edited later
After installation the add-on appears on the list of installed extensions alongside other SoftSolid modules. All required database tables are created automatically, and the add-on is ready for configuration right away:

Add-ons list, the Withdrawal from Contract add-on installed and active
In the general settings you decide on the withdrawal window (14 days by default in line with the EU directive), the order statuses that qualify for a request, the form style shown to the customer, and the link to the information page about the right of withdrawal. A separate section enables the guest magic-link mode and sets the lifetime of the one-time link, so handling unregistered customers comes down to flipping a single switch:

General settings, withdrawal window, eligible statuses, form style and guest magic-link mode
From the add-on menu you reach three sections: the list of withdrawal requests, the diagnostic logs, and the exclusion rules. Everything sits in one place, so handling customer requests (including those submitted by guests via magic link) does not require jumping between different panels:

Add-on panel, Withdrawals, Logs and Exclusion rules
You create an exclusion rule by choosing the object type (product, category or product type), its CS-Cart identifier, and an optional reason shown to the customer. The reason can be entered in every active store language, so the customer reads the explanation in their own language both in the logged-in form and in the form opened from a magic link:

Exclusion rule form, object type, identifier and multilingual reason
Logged-in customers find the list of their statements directly in the account menu, and unregistered customers reach the same view after clicking the magic link sent to the order's e-mail address. No need to create an account, no need to contact the store:

Customer account menu, direct link to My Statements
The withdrawal form lists the order's products with the quantities available for return and the submission deadline. Excluded items are clearly marked with their reason, and the customer picks a categorized return reason from a ready-made list (with an optional free-text description when choosing "Other reason"). A guest opening the form from a magic link sees exactly the same view, so the experience is consistent for every customer:

Withdrawal form, products, exclusions with reason and categorized return reason picker
The customer statement list shows the request number, the linked order, the submission date, the type (full or partial) and the current status. An unregistered customer reaches the very same list by clicking the "Check status of your statements" magic link, so they never have to message support to find out where their return stands:

Customer statement list, request history with type and status
The request details show the submitted products with prices, the withdrawal reason, and the full status change history with admin comments. All order data comes from the snapshot saved at submission time and remains unchanged even if the order is edited later in the admin panel:

Customer statement details, products, reason and status change history
The administrator sees every request in a single list with filters by status, order number, customer and date. An additional "Guests only" filter narrows the view to requests submitted by unregistered customers, and every such row is tagged with a yellow "Guest" badge. Auditing returns from people without an account comes down to one click:

Admin panel, withdrawal list with filters and guest submissions tagged
In the request details inside the admin panel you see the line items with quantities and prices, the reason picked by the customer, and the change history. The status change form with a comment field, the inline "Change reason" panel and the RMA link section are all available on the same screen. Every change is recorded in the audit log:

Admin withdrawal details, status change, reason change and RMA linking
After submission the customer automatically receives a confirmation e-mail that contains the full consumer data set, the withdrawal statement text, the submission date and time, and a table of submitted items. The message is a ready, immutable legal document compliant with Polish consumer law (art. 21 § 1), and unregistered customers receive it at the same e-mail address they used at checkout:

Confirmation e-mail with full consumer data and statement text
The Withdrawal from Contract add-on closes the after-sales gap for every customer, not just for registered ones. People who buy without creating an account (a very common scenario in many EU markets) get full-featured access to the form and to status tracking through a secure magic link, while the shop guides every request through a structured process with automatic notifications. Fewer support messages, less manual work, a full audit trail for every request, and compliance with EU Directive 2023/2673.
Our add-on vs. the standard CS-Cart RMA module
RMA stands for Return Merchandise Authorization, which translates into Polish as „autoryzacja zwrotu towaru". In e-commerce practice the term refers to the procedure in which a customer reports that they wish to send a purchased item back, and the shop issues that request a tracking number and walks it through the stages of registration, eligibility review, acceptance, goods collection and refund. CS-Cart ships with a built-in RMA module that runs this path for complaints, warranty claims and general after-sales service.
The built-in CS-Cart RMA module is designed for handling complaints and after-sales service, not for EU consumer law compliance. Our add-on fills that gap and can work alongside RMA rather than replace it.
- Dedicated legal purpose. RMA is unrelated to EU consumer law. Our add-on is built specifically for Directive 2023/2673, with a 14-day window, the information disclosure requirement and a list of statutory exclusions.
- Support for unregistered customers. RMA requires a customer account to submit a claim. Our add-on offers a secure magic-link flow, so a guest can submit a statement and check its status by providing only the order number and the e-mail address.
- Statutory deadline enforcement. RMA does not verify whether the statutory deadline has passed. Our add-on blocks the form once the configured window expires, protecting the shop from accepting late requests.
- Customer-facing exclusion reasons. RMA does not handle products excluded from the right of withdrawal. Our add-on lets you define exclusions per product, category or product type, with a multilingual reason visible on the form.
- Order data snapshot. RMA does not freeze the state of the order at submission time. Our add-on stores an immutable copy of the data (products, prices, address, payment method) that remains valid evidence even after the order is edited later.
- Permanent medium for the statement. RMA sends a short notification. Our add-on produces a full e-mail with the complete consumer data set and the statement text, compliant with Polish consumer law.
- State machine tailored to the withdrawal process. RMA uses a general return flow. Our add-on has 11 states reflecting the actual legal path: from submission, through verification and acceptance or rejection, to expected return, refund and case closure.
- Duplicate protection. RMA allows multiple claims for the same line items. Our add-on tracks already-claimed quantities and blocks resubmission of an item until the active request is closed.
- Complementary to RMA. When a withdrawal request is accepted, our add-on automatically creates a linked RMA record. The two modules work together, each in its own legal area.
Feel free to contact us and purchase the add-on!
Choose the most convenient form of payment for the add-on. You can pay once and use the add-on. Choosing a subscription payment (monthly or annual) means that you pay for the add-on at regular intervals and have access to the latest versions of the addon and technical support.
- Store Bulider
- Multi-Vendor
- 4.20.x
- 4.19.x
- 4.18.x
- 4.17.x
- 4.16.x
- 4.15.x
- No changes
No reviews found
