Sari la conținut
WEBLURE

WooCommerce · Facturare

WooCommerce: configurarea câmpurilor pentru persoane juridice

Firmele cer factură pe persoană juridică. Adaugi la checkout câmpuri pentru CUI și Reg. Com., doar când clientul bifează „firmă”, și le salvezi în comandă ca să ajungă pe factură.

  • Bifă „Cumpăr ca firmă”
  • CUI și Reg. Com.
  • Validare
  • Salvare în comandă
  • Date pentru factură

Răspuns în aceeași zi lucrătoare Ofertă fixă Fără parole

Vrei să ți-o facem noi?

Doar două câmpuri. Răspundem în aceeași zi lucrătoare, cu ofertă fixă.

+ Telefon și detalii (opțional)

Răspuns rapid

Adaugi la checkout o bifă „Cumpăr ca firmă” și câmpurile CUI și Reg. Com., afișate doar când bifa e activă. Le validezi la plasarea comenzii, le salvezi în meta-datele comenzii (compatibil cu HPOS) și le transmiți modulului de facturare. Hook-urile clasice de checkout nu randează câmpuri în checkout-ul cu blocuri; acolo folosești API-ul woocommerce_register_additional_checkout_field() (text, select, checkbox, date). Modulul SmartBill menționează și suport pentru clienți cu cod de TVA intracomunitar.

Ce ai nevoie

  • Câmpurile cerute pe factură (denumire, CUI, Reg. Com., adresă)
  • Acces la tema copil
  • Știi dacă folosești checkout clasic sau cu blocuri
  • Un mediu de test

Pașii, pe rând

  1. 1Stabilește ce date cere facturaPentru persoane juridice, de obicei: denumirea firmei, CUI (cu sau fără prefixul RO), numărul de înregistrare la Registrul Comerțului și adresa sediului. Validează lista cu contabilul.
  2. 2Verifică tipul de checkoutFragmentul de mai jos folosește hook-urile checkout-ului clasic. În checkout-ul cu blocuri câmpurile adăugate astfel nu apar; folosești API-ul oficial woocommerce_register_additional_checkout_field(), care suportă câmpuri text, select, checkbox și date.
  3. 3Adaugă bifa și câmpurileCu woocommerce_after_checkout_billing_form afișezi bifa „Cumpăr ca firmă” și câmpurile CUI și Reg. Com. Un mic JavaScript le arată doar când bifa e activă.
  4. 4Validează la plasarea comenziiDacă bifa e activă, CUI-ul este obligatoriu și trebuie să aibă format valid (cifre, eventual cu prefix RO). Altfel adaugi o eroare cu wc_add_notice.
  5. 5Salvează în comandăCu woocommerce_checkout_create_order salvezi datele în meta-datele comenzii, compatibil cu HPOS.
  6. 6Afișează datele în administrareSub adresa de facturare, ca echipa să vadă că e comandă pe firmă și să verifice datele înainte de facturare.
  7. 7Transmite datele către facturăModulul de facturare trebuie să citească aceste câmpuri; unele module le au deja (de exemplu opțiuni pentru CIF/cod TVA), altele cer o mică adaptare. Testează o factură pe firmă cap-coadă.

Bifă „firmă” + CUI + Reg. Com. la checkout clasic (schelet)

php
add_action('woocommerce_after_checkout_billing_form', function ($checkout) {
    woocommerce_form_field('wl_firma', ['type' => 'checkbox', 'label' => 'Cumpăr ca firmă'], $checkout->get_value('wl_firma'));
    echo '<div id="wl-camp-firma" style="display:none">';
    woocommerce_form_field('wl_cui', ['type' => 'text', 'label' => 'CUI', 'placeholder' => 'ex: RO12345678'], $checkout->get_value('wl_cui'));
    woocommerce_form_field('wl_regcom', ['type' => 'text', 'label' => 'Nr. Reg. Com.', 'placeholder' => 'ex: J40/1234/2020'], $checkout->get_value('wl_regcom'));
    echo '</div>';
    ?>
    <script>
    jQuery(function ($) {
        function t() { $('#wl-camp-firma').toggle($('#wl_firma').is(':checked')); }
        $(document.body).on('change', '#wl_firma', t); t();
    });
    </script>
    <?php
});

add_action('woocommerce_checkout_process', function () {
    if (!empty($_POST['wl_firma'])) {
        $cui = strtoupper(preg_replace('/\s+/', '', wp_unslash($_POST['wl_cui'] ?? '')));
        if (!preg_match('/^(RO)?\d{2,10}$/', $cui)) {
            wc_add_notice('Introdu un CUI valid pentru factura pe firmă.', 'error');
        }
    }
});

add_action('woocommerce_checkout_create_order', function ($order) {
    if (!empty($_POST['wl_firma'])) {
        $order->update_meta_data('_wl_firma', 1);
        $order->update_meta_data('_wl_cui', sanitize_text_field(wp_unslash($_POST['wl_cui'] ?? '')));
        $order->update_meta_data('_wl_regcom', sanitize_text_field(wp_unslash($_POST['wl_regcom'] ?? '')));
    }
});

add_action('woocommerce_admin_order_data_after_billing_address', function ($order) {
    if ($order->get_meta('_wl_firma')) {
        echo '<p><strong>Firmă — CUI:</strong> ' . esc_html($order->get_meta('_wl_cui')) . ' · <strong>Reg. Com.:</strong> ' . esc_html($order->get_meta('_wl_regcom')) . '</p>';
    }
});

Fragmentele de cod sunt scheleturi: le adaptezi la magazinul tău și le testezi întâi pe un mediu de test (staging). Funcționează în checkout-ul clasic. Verifică la contabil ce date trebuie să apară pe factură.

Nu vrei să te complici sau ai rămas blocat? Scrie-ne și o facem noi.

Scrie-ne pe WhatsAppCere ofertă

Mai multe detalii

Cauze frecvente și greșeli de evitatDacă pașii de mai sus nu au rezolvat problema
1

Câmpurile nu apar la checkout

De ce: Magazinul folosește checkout-ul cu blocuri, unde hook-urile clasice nu randează câmpuri.

Ce faci: Folosește o implementare compatibilă cu blocurile sau testează temporar cu checkout-ul clasic.

2

CUI-ul nu ajunge pe factură

De ce: Modulul de facturare nu citește câmpurile tale personalizate.

Ce faci: Mapează câmpurile în modul sau adaptează integrarea ca să le citească.

3

Clienții introduc CUI în formate diferite

De ce: Cu sau fără prefix RO, cu spații sau puncte.

Ce faci: Normalizează valoarea la salvare (elimină spațiile, majuscule) și validează formatul.

Întrebări frecvente4 răspunsuri
Pot completa automat firma după CUI?

Da, interogând serviciul public ANAF pentru plătitorii de TVA. Vezi ghidul despre completarea datelor firmei după CUI.

Funcționează cu checkout-ul cu blocuri?

Nu hook-urile clasice din fragment. Pentru blocuri ai nevoie de altă implementare, pe care o putem face.

Modulul de facturare le preia singur?

Depinde de modul. Unele au câmpuri proprii pentru CIF sau cod TVA intracomunitar; altele cer mapare. Testăm o factură pe firmă cap-coadă.

Vă ocupați de implementare?

Da, inclusiv legătura cu programul tău de facturare. Cere ofertă fixă.

Subiecte acoperite pe această pagină

  • câmp CUI checkout WooCommerce
  • factură pe firmă WooCommerce
  • persoană juridică checkout WooCommerce
  • cumpăr ca firmă WooCommerce
  • Reg. Com. checkout
  • date firmă factură WooCommerce