# Butonul de retragere din contract: ce trebuie să pună la dispoziție un magazin online

> Legislația europeană a consumatorului dă cumpărătorilor dreptul de a se retrage dintr-un contract la distanță, iar direcția în care merg lucrurile e o funcție digitală de retragere, clară, chiar pe site: un buton permanent vizibil, o declarație online, un pas de confirmare și o confirmare automată pe un suport durabil.

Source: https://valenys.com/ro/solutii/retragere-din-contract/
Updated: 2026-09-08

---
_Legislația europeană a consumatorului dă cumpărătorilor dreptul de a se retrage dintr-un contract la distanță, iar direcția în care merg lucrurile e o funcție digitală de retragere, clară, chiar pe site._

Un buton permanent vizibil, o declarație online, un pas de confirmare și o confirmare automată pe un suport durabil. Pagina asta explică ce trebuie să facă funcția și ce presupune s-o construiești corect.

## De ce nu mai e de ajuns un PDF

Tiparul clasic era un formular de retragere ca document descărcabil. Consumatorul îl găsea, îl tipărea sau îl completa, îl trimitea pe email și aștepta. Fiecare pas din fluxul ăsta pune frecare în fața unui drept pe care legea îl acordă necondiționat.

O funcție digitală de retragere scoate frecarea și, la fel de important, produce dovadă. Magazinul știe exact ce s-a cerut, pentru ce comandă, la ce oră. Și consumatorul la fel. Nimeni nu se mai ceartă dacă a ajuns sau nu un email.

## Ce trebuie să facă funcția, de fapt

Cinci lucruri, și fiecare e mai greu decât pare.

### Să se găsească, permanent

Un buton care există doar înăuntrul unei zone de cont autentificate nu e disponibil unui cumpărător fără cont. Locul lui e acolo unde caută un consumator: în subsol, în zona de cont, în lista de comenzi, în detaliul comenzii, pe pagina de contact și în politica de retur.

### Să identifice contractul

Consumatorul trebuie să poată spune din ce comandă se retrage. Adică potrivirea unui număr de comandă cu adresa de email folosită la plasare — și pentru cumpărătorii cu cont, și pentru cei fără.

### Să preia o declarație

Ce produse, ce cantități, date de contact, date pentru restituire, metoda de returnare. Și trebuie să scadă cantitățile acoperite deja de o cerere anterioară, altfel un consumator se poate retrage de două ori din același articol.

### Să ceară o confirmare explicită

Un pas de confirmare distinct, cu textul legal la vedere și un buton a cărui formulare nu lasă nicio îndoială despre ce face apăsarea lui.

### Să confirme pe un suport durabil

Imediat, automat, cu conținutul cererii, data și ora. Durabil înseamnă că îl păstrează consumatorul — nu un ecran de confirmare care dispare la reîncărcare.

## Două câmpuri, nu un formular tipărit

Butonul stă în comanda pe care cumpărătorul o are deja deschisă. În spatele lui: numărul comenzii și adresa de email folosită la finalizare. Nimic de descărcat, nimic de tipărit, nimic de semnat și scanat.

## Cum funcționează modulul Valenys

### Patru pași, identici pe fiecare platformă

Identificarea (numărul comenzii plus emailul de pe comandă — clienții autentificați care pornesc din propria comandă sar peste pasul ăsta), alegerea produselor și a cantităților, cu scăderea celor deja cerute, un pas de recapitulare cu textul legal la vedere și confirmarea.

### Un cod unic și o marcă de timp pe fiecare cerere

Consumatorul primește o confirmare pe email; administratorul magazinului primește o notificare. Perechea asta e dovada.

### O fereastră, nu o pagină separată

JavaScript simplu cu fetch, fără dependență de jQuery sau Bootstrap și cu stiluri proprii injectate — deci nu se bate cu tema voastră. Nu adaugă nicio adresă în structura site-ului și nu se amestecă într-o configurație SEO existentă, inclusiv în pachete care își administrează singure rutele.

### Nu modifică fișierele de bază ale platformei

Pe OpenCart folosește evenimente în loc să editeze șabloanele temei, așa că o temă Journal sau una custom își păstrează subsolul intact. Se dezinstalează curat, iar înregistrările cu valoare juridică se păstrează implicit, în loc să dispară odată cu modulul.

### Administrarea

O listă cu filtre, o vedere de detaliu cu istoric, schimbări de stare cu notificare opțională, export și un jurnal de audit.

### Protecție împotriva abuzului și tratarea datelor

Jetoane CSRF, validare pe server a comenzii și a emailului, limitarea ratei cererilor, jetoane cu amprentă pentru comenzile fără cont, mascarea IP-ului și perioade GDPR de păstrare, anonimizare și ștergere a atașamentelor.

## Șase platforme, un singur flux verificat

Dacă aveți mai multe magazine pe platforme diferite, sau dacă sunteți o agenție care întreține magazine pentru clienți, aveți un singur comportament de învățat și un singur răspuns de dat.

### OpenCart

3.0.3.8, cu adaptări pentru 2.3.x și 4.x. Livrat ca modul OCMOD.

### WordPress + WooCommerce

Versiunea 5 și mai sus. Livrat ca plugin WordPress, compatibil HPOS.

### PrestaShop

1.7 și 8. Livrat ca modul nativ.

### Magento

2.3 și mai sus. Livrat ca modul în app/code.

### Shopify

Un backend prin App Proxy plus un fragment Liquid.

### Gomag și magazine custom

Un backend de sine stătător, un API REST și un widget încorporat.

## Un registru, nu un email care se pierde

Fiecare declarație cu codul ei, comanda de care aparține, starea și limba în care a fost depusă. Exact ce vă trebuie în ziua în care cineva contestă dacă retragerea a fost vreodată trimisă.

## Ce face și ce nu face modulul

Implementează **funcția tehnică**. Conformitatea deplină mai cere ca butonul să fie așezat vizibil, acolo unde îl găsesc consumatorii, iar informarea precontractuală și politica de retur să spună că funcția există și unde e. Amândouă fac parte din implementarea pe care o livrăm, dar sunt decizii pe care le aprobați voi — nu ceva ce poate face un modul singur.

Nu pretindem că modulul vă scoate expunerea. Pretindem că funcția e construită corect, cu dovadă atașată fiecărei cereri.

Regulile și datele naționale concrete diferă de la un stat membru la altul, iar pagina asta nu ghicește intenționat care sunt ale voastre. Spuneți-ne pe ce piețe vindeți și confirmăm ce se aplică înainte să se implementeze ceva.

## Spuneți-ne pe ce piețe vindeți

Un contract poate însemna zece magazine. Dacă întrețineți site-uri de comerț pentru clienți, modulul plus implementarea e un serviciu pe care îl puteți revinde.

## Întrebări frecvente

**Se aplică și la vânzările între firme?**

Dreptul de retragere din legislația europeană a consumatorului protejează consumatorii. Vânzarea la distanță între firme e reglementată altfel. Dacă vindeți și una, și alta, funcția trebuie să se aplice pe partea de consumator — ceea ce e o chestiune de configurare, nu o construcție separată.

**O poate folosi un cumpărător fără cont?**

Da. Identificarea merge pe numărul comenzii și emailul folosit la plasare, așa că un cumpărător care a finalizat fără cont se poate retrage fără să-și creeze unul.

**Ne strică setările de SEO?**

Nu. Fluxul rulează într-o fereastră deschisă dintr-un buton, deci nu adaugă adrese indexabile și nu schimbă structura site-ului. Pe OpenCart merge cu sau fără adrese SEO și nu suprascrie reguli ținute de un pachet de SEO. Acolo unde se folosește o pagină dedicată, recomandarea implicită e noindex, follow.

**Ce se întâmplă cu înregistrările dacă dezinstalăm?**

Se păstrează implicit. Înregistrările cu valoare juridică n-ar trebui să dispară fiindcă s-a scos un modul; ștergerea e o acțiune deliberată, cu un temei legal în spate, nu un efect secundar.

**Ce platforme sunt acceptate?**

OpenCart, WordPress cu WooCommerce, PrestaShop, Magento, Shopify și Gomag sau magazine custom, printr-un API REST și un widget încorporat. Spuneți-ne pe ce rulați și confirmăm formatul de livrare.

**Se poate retrage un consumator dintr-o parte din comandă?**

Da — alegerea produselor și a cantităților face parte din flux, iar cantitățile acoperite deja de o cerere anterioară se scad automat, ca să nu se poată retrage de două ori același articol.
