WooCommerce – faktura z NIP klienta

Ostatnio dostałam sporo pytań o to jak dodać pole NIP do WooCommerce i jak to pole NIP zamieścić na fakturze. Powiecie – co za problem – korzystając z wtyczek wFirma, iFirma czy Fakturownia od WPdesk przecież to nie jest żadna filozofia. Owszem – korzystając z płatnych rozwiązań – to pikuś, ale kiedy ktoś chce zastosować darmową wtyczkę to już nie idzie tak gładko. Jak sobie z tym poradzić?

Pole NIP w formularzu zamówienia

Pierwszym wyzwaniem przed jakim trzeba stanąć to dodanie pola NIP do formularza zamówienia, gdyż nie ma go w WooCommerce tam w standardzie. Mamy pole FIRMA i owszem – można by zmienić mu nazwę np. na FIRMA / NIP, albo dodać dopisek, że jeśli potrzebujesz faktury podaj NIP w polu UWAGI, ale wiecie co? Niewielki odsetek ludzi zobaczy te Wasze dopiski : ) Lepiej na tacy jest więc podać pole NIP, najlepiej obok / pod / nad tego FIRMA by je zauważono. Jak tego dokonać?

Można skorzystać dodawać własne pole za pomocą kawałka kodu wrzucanego w functions.php, można skorzystać ze specjalnej wtyczki do VAT Number jak np. WooCommerce EU VAT Number  (plus, że będzie wtedy walidacja NIPu), albo skorzystać z wtyczki do tworzenia własnych pól na stronie zamówienia jak WooCommerce Checkout Manager, dzięki której dodacie nie tylko pole na NIP, ale także możecie dodać dodatkowe checkboxy ze zgodami, zrobić zależność pomiędzy polami – np. zapytać kogoś czy potrzebuje fakturę, a dopiero potem wyświetlić pola Firma i NIP, a także poprzestawiać pola na stronie realizacji zamówienia czy też ukryć zbędne. W tym artykule (a może w sumie to tutorialu) skupimy się właśnie na tym ostatnim rozwiązaniu z wtyczką WooCommerce Checkout Manager.

Tworzenie pola NIP

Zaczynamy oczywiście od zainstalowania wtyczki  WooCommerce Checkout Manager. Następnie przechodzimy do WooCommerce – Checkout i zakładka Billing i tam klikamy Add New Field.

Wybieramy typ pola Text a następnie w label podajemy nazwę dla naszego pola – w tym wypadku NIP i klikamy zapisz.

W tabeli z polami szukamy naszego nowego pola i ustawiamy go w wybrane miejsce – wystarczy złapać myszką i przesunąć na zasadzie drag and drop. Następnie spojrzyj przy polu w kolumnę ID i zapamiętaj / zapisz sobie to co tam znalazłaś/eś.

Pole NIP dodane, możesz sprawdzić na stronie zamówienia czy się pojawia. Teraz czas na generowanie faktur.

Darmowa wtyczka faktur WooCommerce

WooCommerce nie ma póki co wbudowanej opcji generowania faktur, więc znów z pomocą spieszy nam wtyczka. Stawiamy tutaj na bezpłatne rozwiązania, więc takowe możecie znaleźć w repozytorium WP bezpośrednio przez kokpit Waszej www. Jak wpiszecie invoices to wyskoczy Wam kilka wtyczek. W tym artykule skupimy się na wtyczce WooCommerce PDF Invoices z tego względu, że łatwo w niej wrzucić wyświetlanie własnego pola.

Instalujemy więc wtyczkę i przechodzimy do jej opcji. W opcjach możecie wybrać m.in. przy jakim statusie ma być dołączona faktura do maila – TAK! Będzie to robione automatycznie – nie musicie ręcznie wysyłać nikomu faktur!

Możecie też przejść do zakładki Szablon i tam ustawić kwestie związane z danymi jakie mają się pojawić na fakturze. Powiecie “Ufffffffff to już koniec!” – może Was załamię, ale jeszcze nie – zabawa dopiero się rozpoczyna.

Dodawanie NIP do faktury WooCommerce

Zapomnieliście o wisience na torcie, czyli naszym polu NIP. Go nie dodacie od tak na klik klik w zakładce Szablon. Własne pola musicie dodać – UWAGA! Moje ulubione określenie – w kodzie : )  Nie bójcie się jednak, bo jak zawsze mam dla Was kawałek kodu do przeklejenia i wygląda on o tak:

function add_invoice_information_meta( $info, $invoice ) {

    $vat_number = WPI()->get_meta( $invoice->order, '_billing_wooccm11' );
    if ( $vat_number ) {
        $info['vat_number'] = array(
            'title' => __( 'NIP:', 'woocommerce-pdf-invoices' ),
            'value' => $vat_number,
        );
    }

    return $info;
}
add_filter( 'wpi_invoice_information_meta', 'add_invoice_information_meta', 10, 2 );

Gdzie go wkleić? W plik functions.php w motywie potomnym. Pamiętaj! Koniecznie w motywie potomnym, by przy aktualizacji Twoje wypociny szlag nie trafił.

Zerknijcie na ten oznaczony kolorem różowym fragment $vat_number = WPI()->get_meta( $invoice->order, '_billing_wooccm11’ ) – wiecie co to?  Tak jest – BINGO! To ID tego pola NIP, które mówiłam by zapamiętać. Dla przypomnienia znajdziecie go w tym miejscu, jak na screen.

Pole oznaczone kolorem fioletu 'title’ => __( ’NIP:’, 'woocommerce-pdf-invoices’ ) to etykieta, która pojawi się na fakturze przy numerze NIP. Super prawda? To teraz jeszcze szybki podgląd na to jak to potem wygląda na fakturce. 

No i gotowe. Mamy NIP na fakturze, księgowa/y i klienci nie będą nam suszyć głowy, że go brakuje, no i zrobiliśmy to bezkosztowo – wykorzystując darmowe wtyczki.

Jeśli zależałoby Wam na walidacji możecie pole NIP dodać za pomocą wtyczki WooCommerce EU VAT Number – tak dodane pole również można snippetem dodać do fakturki – jak to zrobić dokładnie to jest w FAQ wtyczki w repozytorium WordPressa.

Czy szło by prościej? No jasne! Zawsze da się coś ogarnąć prościej, ale wtedy niekoniecznie jest już za free. To tyle z mojej strony w tym artykule, polecam gorąco zajrzeć również do innych wpisów dotyczących WooCommerce.

61 komentarzy

  1. Własne pola musicie dodać – UWAGA! Moje ulubione określenie – w kodzie : ) – zaśmiałem się głośno. 😀 Faktycznie to stwierdzenie na forach budzi często grozę 😀

    Poradnik bardzo jasny i konkretny. : ))

      • „… Gdzie go wkleić? W plik functions.php w motywie potomnym. Pamiętaj! Koniecznie w motywie potomnym, by przy aktualizacji Twoje wypociny szlag nie trafił.” – Próbuję wkleić ten kod w plik functions, ale po próbie zaktualizowania mam informację z jakimś błędem. Może w błednym miejscu go wklejam? Pomożesz?

        • Najlepiej na końcu pliku 🙂 może być jakiś średnik albo } pominięty lub za dużo i wtedy nie działa

          • Nadal coś źle robię, bo dalej nie działa. Klikam zaktualizuj plik i jeszcze nie jest to, bo kręci kółko i potem, dalej błąd…

          • Witaj, Sylwio.
            U mnie z kolei wklejenie tego kodu do funkction.php, niezależnie czy motywu potomnego czy rodzica, nie dało pożądanego efektu, bo na pdf nadal brakuje mi pola NiP.
            Nie mam pojęcia, co może być przyczyną.
            Może się domyślasz? 🙂

          • no dobre, dobre 🙂
            spróbowałem to obejść, zmieniając kod szablonu pdf, i początkowo dobrze działało, ale teraz wyskakuje mi błąd internal server error i w pliku debug pojawiła się między innymi informacja o błędzie w kodzie php, który zmieniałemale chyba znowu sobie z tym poradziłem.

            Nie wiem tylko, jak w kodzie php dodać znacznik przejścia do następnej linii, bo teraz numer telefonu łączy mi sie bez spacji z numerem nipu 😉

          • okazało się, że gdy wyłączyłem wtyczkę woocommerce-pdf-invoces-packing-slips i ponownie ją aktywowałem, to kod podany przez Ciebie, Sylwio. zaczął działać 🙂

          • Witaj Sylwio,
            prośba o pomoc, korzystam z 2 wtyczek: Checkout Field Editor for WooCommerce w celu dodania pola NIP w zamówieniu oraz WooCommerce PDF Invoices & Packing Slips do generowania faktur bo wysyłają się automatycznie. Niestety nie wiem jak dodać NIP do faktury (a nie znam się na php)

            z góry dzieki za informację jak mogę to rozwiązać

            pozdrawiam
            Bartek

          • w wersji pro wtyczki WooCommerce PDF Invoices & Packing Slips można dodawać własne pola 🙂

  2. Pani Sylwio, świetny poradnik! W końcu udało mi się to zrobić, ale czy mogłabym prosić o pomoc? Stworzyłam checkbox „Chcę otrzymać fakturę” i pod spodem dodałam wszystkie pola niezbędne do wystawienia faktury. Niestety one są cały czas na wierzchu, bez względu na to czy checkbox jest zaznaczony czy nie 🙁 Zmian tych dokonałam w zakładce „Billing”. Pole „chcę otrzymać fakturę” jest rodzicem dla wszystkich pozostałych pól, a mimo to nie chcą się schować… Przy okazji mam jeszcze jedno pytanie, może Pani mi pomoże? Niestety pole „wysłać na inny adres?” domyślnie jest zaznaczone, co na stronie powoduje niezły chaos. Nie mogę nigdzie znaleźć opcji by ta sekcja była domyślnie ukryta. Będę ogromnie wdzięczna za pomoc! <3

    • Dziękuję 🙂 jeśli chodzi o zależności pomiędzy polami warto sprawdzić czy na pewno są dobre pola przypisane i czy to co ustawiłaś się zapisało, bo ta wtyczka czasem tak ma, że nie wszystko zapisze. Nie masz przypadkiem jakieś wtyczki do optymalizacji typu autoptimize? Tego typu wtyczki „lubią” blokować co nieco na stronie 🙂 Co do drugiego problemu to wejdź w ustawienia WooCommerce, zakładka Wysyłka i potem opcje wysyłki i zaznacz tam w adres wysyłki – domyślnie adres płatności:)

      • Bardzo pięknie dziękuję! Drugi problem załatwiony, a z pierwszym się muszę pomęczyć bo w zasadzie nie mam żadnej takiej wtyczki, ale będę sprawdzać czy wszystko prawidłowo jest przypisane. Będę działać 🙂 Jeszcze raz bardzo dziękuję 🙂

  3. Pani Sylwio wie Pani gdzie znajdę opcję wygenerowania wszystkich Faktur za dany okres? Aby, je ściągnąć i przekazać do księgowości?

  4. Hej, dziękuję za super poradnik 🙂 Chciałabym jeszcze zapytać, czy jest możliwość, żeby ta faktura była po polsku…?

  5. A jeśli chciałbym, aby pole „potrzebujesz fakturę?” pojawiło się również w email potwierdzającym zamóiwnie ? Aktualnie wyświetla się tylko w panelu sklepu w zamówieniach 🙁

  6. Czy to pole NIP można zrobić w taki sposób, by było ono ”wymuszane”. Tak myślę, że pewnie klienci, którzy będą chcieli fakturę na firmę, mogą zapomnieć …. wpisać NIP i wtedy trzeba będzie zrobić fakturę korygującą z palca, na pieszo. Jak zrobić, by system nie przepuścił dalej, dopóki dana osoba nie poda NIP? (Rozumiem, że wcześniej trzeba dodać checkbox: chcesz fakturę na firmę? Jeśli tak, to obowiązkowo podaj NIP)

    • Tak, możesz zrobić checkbox albo listę rozwijaną z wyborem chcę/nie chcę faktury i potem obowiązkowy NIP jeśli ktoś zaznaczy, że chce

  7. Dzień dobry Pani Sylwio,
    Dzięki serdeczne za poradnik! 🙂 Niestety wpisując kod do functions.php nie następuje żadna zmiana. 🙁 Nie pomogło aktywowanie jak i deaktywowanie wtyczki. Wpisuję poprawny kod nipu (u mnie akurat _billing_nip) i niestety nadal w generowanych PDF nie występuje NIP pod adresem na fakturze.

    Czy istnieje jakaś inna droga? Np. edycja pliku „invoice.php” w folderze wtyczki /templates/Simple? Niestety jakiekolwiek akcje php wywołujące „billing_nip” w tym miejscu wywalają błąd. 🙁

    Będę wdzięczny za pomoc!

  8. Dzięki za super poradnik! Bardzo mi pomógł 😊

    Kod ostatecznie u mnie zadziałał inny:

    /**
     * WooCommerce PDF Invoices & Packing Slips:
     * Show the VAT number on the invoice
     */
    add_action( 'wpo_wcpdf_after_billing_address’, function( $template_type, $order ){
    if( $template_type == 'invoice’) {
    if ( $billing_wooccm11 = $order->get_meta( '_billing_wooccm11′ ) ){
    echo '<div>NIP:’ . $billing_wooccm11 . '</div>’;
    }
    }
    }, 10, 2 );

    • jeśli zależy Ci na wtyczce dostosowanej do polskich realiów to polecam zerknąć na wpdesk.pl 🙂 mają też darmową do faktur dostępną w repozytorium WP tylko ona nie działa automatycznie, wersja z automatycznym wystawianiem faktur jest płatna 🙂

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *