Order number + email required
-
Hi,
Is it possible to set that it would be required to enter order number + email address while submitting a form?
-
Hi,
no, AFAIK, from a legal perspective that is currently not allowed.
Best,
DennisFor example, German legislation — specifically §356a BGB, which implements the corresponding EU directive — explicitly requires that the consumer must be able to provide information identifying the contract they wish to withdraw from. In practice, this identification can only be ensured reliably by using the order number or the invoice number.
By the way, the consumer’s name is also mandatory.
(2) Die Widerrufsfunktion muss dem Verbraucher ermöglichen, eine Widerrufserklärung an den Unternehmer zu übermitteln und dem Unternehmer in oder mit der Widerrufserklärung ohne Weiteres folgende Informationen bereitzustellen oder zu bestätigen:- den Namen des Verbrauchers,
- Angaben zur Identifizierung des Vertrags oder des Teils des Vertrags, den der Verbraucher widerrufen möchte,
- Angaben zum elektronischen Kommunikationsmittel, mit welchem dem Verbraucher eine Eingangsbestätigung für den Widerruf zu übermitteln ist.
@vdwoocommercesupport could you share which article did you follow where it says that order number and the name of customer is NOT mandatory?
Please consult a lawyer if in doubt. Yes, the customer needs to supply info on how to identify the contract but that is possible based on email too. The order number field can, unfortunately, not be validated based on existing orders as even typos need trigger a withdrawal (the right to withdraw must not be made more difficult to exercise). To my current knowledge the more “defensive” stand on this topic is to not make the order number mandatory. You may of course change that via filters available within the plugin.
First + last name can be mandatory, as to my understanding (that was not part of the initial question). I’ll introduce a new setting within the next version to configure that.
Best,
Dennis§356a BGB clearly requires the consumer to provide information that enables unambiguous identification of the contract. Neither an email address nor a name provides such identification in the general case.
If the form allows submitting a withdrawal request without data that actually enables identification of the contract, the seller cannot identify the contract and therefore cannot execute the withdrawal.
This means the consumer is effectively deprived of their statutory right — solely because they did not provide the order number or the invoice number.
This is not merely an inconvenience; it undermines the very essence of the right of withdrawal.
In addition, the approach you propose completely excludes the possibility of a partial withdrawal, which directly contradicts the law.
As a compromise, I would suggest allowing the merchant to choose which fields must be mandatory. In that part of the settings, you can simply add a legal disclaimer stating that the responsibility lies with the merchant.-
This reply was modified 2 months, 2 weeks ago by
vladdiem.
Maybe we’ll need to adjust the wording (of the order number field) to make that a little more safe (to use a mandatory field). The issue is that no specific contract details such as an order number or invoice number may be required (see https://www.haendlerbund.de/de/leistungen/rechtssicherheit/hilfe-bei-abmahnung/abmahnung-widerrufsbutton).
The article only considers the simplest case of a full withdrawal, where such a minimal data set may sometimes work.
It does not address partial withdrawals at all — and for a partial withdrawal, it is technically impossible to present the list of items and allow the customer to select which ones to withdraw without the order number (and a name match for at least minimal verification).
-
This reply was modified 2 months, 2 weeks ago by
vladdiem.
Hi,
legally, you are not required to offer partial withdrawals but of course it makes sense to use the order number to identify the contract – nevertheless you’ll need to make sure your customers can enter different information (e.g. invoice number or whatever) to identify the contract. So the current idea is to rename the order number field to “Contract identification (e.g. order number)” and make it mandatory (by default – can be adjusted via the settings).
Best,
DennisHi Dennis,
Thanks for the productive discussion.
Your idea to rename the field to “Contract identification (e.g. order number)” and make it mandatory by default sounds good to me.
Just one clarification regarding partial withdrawals: §356a BGB explicitly refers to “Angaben zur Identifizierung des Vertrags oder des Teils des Vertrags, den der Verbraucher widerrufen möchte.” This wording clearly includes partial withdrawals as well.
Best,
VladHi Vlad,
thank you too for your input 🙂
Just one clarification regarding partial withdrawals: §356a BGB explicitly refers to “Angaben zur Identifizierung des Vertrags oder des Teils des Vertrags, den der Verbraucher widerrufen möchte.” This wording clearly includes partial withdrawals as well.
The “or” does not imply that partial withdrawals are mandatory. Check out the legal assessment by IT Recht Kanzlei regarding partial withdrawals. The next update will include another setting to optionally show a textarea (additional information) where guest customers may provide information on a partial withdrawal.
Best,
DennisFor the time being: As a quick work around, you might want to put into your
functions.php. The functions just adds therequiredfield to the args array of the order_number form field.// make order_number mandatory by adding required flag to args
function aaa_eu_owb_make_order_number_required($args) {
if (is_array($args)) {
$args['required'] = true;
}
return $args;
}
add_filter('eu_owb_woocommerce_form_field_order_number_args', 'aaa_eu_owb_make_order_number_required', 10, 1);More complete example, because setting the form field to “required” does not trigger any validation by the Ajax callback. In this example, all fields first name, last name, order number in addition to e-mail address are mandatory to be filled. Action
eu_owb_woocommerce_process_order_withdrawal_requestwill be called byorder_withdrawal_requestand provides access to already processed form data stored in$meta. Bear in mind provided data is not semantically checked at all; here you could build on existing shop checks to validate provided content.// make order_number mandatory by adding required flag to args
function aaa_eu_owb_make_input_field_required($args) {
if (is_array($args)) {
$args['required'] = true;
}
return $args;
}
add_filter('eu_owb_woocommerce_form_field_order_number_args', 'aaa_eu_owb_make_input_field_required', 10, 1);
add_filter('eu_owb_woocommerce_form_field_first_name_args', 'aaa_eu_owb_make_input_field_required', 10, 1);
add_filter('eu_owb_woocommerce_form_field_last_name_args', 'aaa_eu_owb_make_input_field_required', 10, 1);
// check if provided data is non-empty; we expect order_number, first_name, and last_name to be mandatory.
function aaa_eu_owb_check_mandatory_fields($order, $error, $items, $meta, $was_guest) {
$err_msg='';
if ( empty( $meta['order_number'] ) ) {
$err_msg .= ', '._x('Order number', 'owb', 'woocommerce-germanized' );
}
if ( empty( $meta['first_name'] ) ) {
$err_msg .= ', '._x('First name', 'owb', 'woocommerce-germanized' );
}
if ( empty( $meta['last_name'] ) ) {
$err_msg .= ', '._x('Last name', 'owb', 'woocommerce-germanized' );
}
if (!empty($err_msg)) {
$error->add( 'missing_fields', _x( 'Bitte prüfen Sie Ihre Angaben: ', 'owb', 'woocommerce-germanized' ).substr($err_msg, 2));
}
}
add_action('eu_owb_woocommerce_process_order_withdrawal_request', 'aaa_eu_owb_check_mandatory_fields', 10, 5);Hi @theschappy,
thanks for providing the code snippets – please check 2.3.0 (which should rollout today) which contains settings to make certain fields mandatory.
Best,
DennisThanks @vdwoocommercesupport – great idea to make fields configurable in the backend. I can confirm that it works like expected.
You must be logged in to reply to this topic.