Press "Enter" to skip to content

Wymaganie od klienta numeru NIP przy wyborze faktury (zamiast paragonu) [PRESTASHOP 1.7]

Admin 1

Modyfikacja dotyczy wersji PrestaShop 1.7.8.9.

Moduł faktura/paragon w PrestaShop.

W PrestaShop nie ma możliwości ustanowienia wyboru Faktura/Paragon. Są z kolei na rynku dostępne darmowe i płatne moduły do wyboru typu dokumentu. To jaki dokument wybrał kupujący jest potem widoczne w detalach zamówienia.

Posłużymy się tutaj darmowym modułem twparagonfaktura

Można go pobrać poniżej:

twparagonfaktura_v1.0.zip


[suma MD5: efbe4a9d6ac8e39d73c2ec68cf1c3cab]

 

Po instalacji ustawiamy domyślny dokument na „Faktura”:

Następnie instalujemy moduł w kodzie szablonu.

Otwórz plik:

themes/{SZABLON UŻYWANY PRZEZ SKLEP}/templates/checkout/_partials/steps/addresses.tpl

I wstaw kod:

{block name='hook_display_receipt_invoice_extra'}
 {hook h='displayReceiptInvoiceExtra'}
{/block}

Zaraz pod kodem:

<div class="js-address-form">

Następnie wyczyść cache w dziale:

Zaawansowane –> Wydajność

Po tej operacji w formularzu zakupu klient zobaczy wybór Faktura/Paragon:

A Ty, jako sprzedawca zobaczysz co wybrał w zamówieniu:

Dodanie pola NIP

Domyślnie pola NIP w formularzu adresu nie ma:

Jest pole NIP UE (do niego wrócimy) ale to nie jest pole o które nam chodzi.

W tym celu wejdź do miejsca w adminie:

Międzynarodowy -> Położenie -> Kraje -> Polska (lub Poland)

I na dole włącz opcję „Potrzebny NIP?” na TAK:

Zapisz to ustawienie. W formularzu w adresie pojawi się to pole:

Tutaj od razu możesz ustawić kolejność pol. Jeszcze raz wejdź do edycji kraju i w polu „Format adresu” po prostu przeklej vat_number na koniec listy:

Zapisz to ustawienie. NIP UE będzie juz na końcu:

Osiągnięty efekt i od razu problem

W tym momencie mamy taką sytuację:

  1. Klient może wybrać fakturę lub paragon
  2. Dla każdego z tych wyborów zobaczy obowiązkowe pole NIP

Ilustruje to błąd:

Jednak nam zależy aby tylko przy wyborze faktury pojawiało się to oznaczenie. Dla paragonu nie ma to sensu.

Rozwiązanie problemu

Na początek musimy wyłączyć „obowiązkowość” pola NIP w dziale

Międzynarodowy -> Położenie -> Kraje -> Polska (lub Poland)

Tak jak podano wyżej włącz opcję „Potrzebny NIP?” tym razem na NIE:

Następnie otwórz poniższy plik w zainstalowanym module twparagonfaktura:

modules/twparagonfaktura/views/js/twparagonfaktura.js

Po kodzie:

$(document).ready(function(){

Wklej:

$('#delivery-address .dni input').prop('required',true);

Ustawia to pole NIP jako wymagane (tylko po stronie przeglądarki – nie „globalnie” w całym sklepie PrestaShop). Czyli zobaczysz widoczny wyżej komunikat „Proszę wypełnić to pole”

Tutaj uwaga. Dodaj ten kod jeśli domyślnym dokumentem sprzedaży ma być Faktura. Jeśli jest inaczej nie wklejaj tego kodu, a tylko ten poniżej.

Następnie po kodzie:

var docType = $('#paragonfaktura_select').val();

Wklej:

if (docType == 'Invoice') {
    $('#delivery-address .dni input').prop('required',true);
} else {
    $('#delivery-address .dni input').prop('required',false);
}

Jak widać, w zależoności od wybranego typu dokumentu ustawia pole dni (czyli NIP) jako obowiązkowe – lub nie.

Odczytanie numeru NIP klienta.

Może być to problematyczne. Numer NIP może nie być odrazu widoczny w zamówieniu.

Aby to zrobić przeklikaj tę ścieżkę:

1) link „Zobacz szczegóły” w detalach zamówienia:

2) pole „Adresy” w detalach klienta

3) pole „numer NIP

Gotowe! Tym sposobem jak klient zarząda faktury to my zarządamy od niego także podania NIP, aby można było wystawić pełnoprawny dokument 😉

grafika: wallpaperflare.com

  1. Witam.
    Zrobiłem dokladnie krok po kroku.
    i mam takie coś że czy wybiorę fakturę czy paragon pole nip jest widoczne i nie wymagane (mogę go nie uzupełniać i tak puści dalej nawet przy fakturze)
    co mogłem zrobić nie tak?
    presta 1,7,8,10.

Dodaj komentarz

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

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Zobacz także !
Chcę użyć starej wersji modułu autoupgrade i blokuje mi to…