Upravení dat dokumentu
Pokud potřebujete upravit data odesílaná do Fakturoidu za účelem vytvoření dokumentu, můžete k tomu využít připravený filtr.
Filtr pro úpravu dat
Section titled “Filtr pro úpravu dat”apply_filters( 'wpify_woo_fakturoid_invoice_data', $data, $order, $wc_order, $document_type );Parametry filtru
Section titled “Parametry filtru”| Parametr | Typ | Popis |
|---|---|---|
$data | array | Data dokumentu k odeslání |
$order | OrderModel | Model objednávky s Fakturoid daty |
$wc_order | WC_Order | WooCommerce objednávka |
$document_type | string | Typ dokumentu: proforma, invoice, correction |
Struktura odesílaných dat
Section titled “Struktura odesílaných dat”Základní data dokumentu
Section titled “Základní data dokumentu”$data = array( 'document_type' // typ dokumentu: proforma, invoice, correction 'subject_id' // id kontaktu z Fakturoidu 'payment_method' // platební metoda z Fakturoidu 'order_number' // číslo objednávky 'vat_price_mode' // cenový režim DPH: without_vat, from_total_with_vat 'currency' // měna 'subject_custom_id' // id přihlášeného uživatele (je-li nastaven search_contact) 'number_format_id' // id číselné řady 'variable_symbol' // variabilní symbol 'round_total' // zaokrouhlení celkové částky (true/false) 'language' // jazyk faktury (cs, sk, en, de, ...));Doručovací adresa (pokud existuje)
Section titled “Doručovací adresa (pokud existuje)”$data += array( 'client_has_delivery_address' // true pokud má doručovací adresu 'client_delivery_name' // jméno/firma na doručovací adrese 'client_delivery_street' // ulice doručovací adresy 'client_delivery_city' // město doručovací adresy 'client_delivery_zip' // PSČ doručovací adresy 'client_delivery_country' // země doručovací adresy);Bankovní účet (pokud je nastaven)
Section titled “Bankovní účet (pokud je nastaven)”$data += array( 'bank_account_id' // id bankovního účtu ve Fakturoidu 'bank_account' // číslo bankovního účtu 'iban' // IBAN 'swift_bic' // SWIFT/BIC kód);Platební tlačítka
Section titled “Platební tlačítka”$data += array( 'paypal' // true pro zobrazení PayPal tlačítka na webfaktuře 'gopay' // true pro zobrazení GoPay tlačítka na webfaktuře);Reverse charge (přenesená daňová povinnost)
Section titled “Reverse charge (přenesená daňová povinnost)”$data += array( 'transferred_tax_liability' // true pro přenesenou daňovou povinnost (jen v rámci EU));Přenesená daňová povinnost se nastavuje pouze pro B2B prodeje v rámci EU (zákazník má platné VAT ID a je v jiné EU zemi). Pro export mimo EU se transferred_tax_liability nenastavuje.
OSS (One Stop Shop)
Section titled “OSS (One Stop Shop)”$data += array( 'oss' // 'goods' nebo 'service' pro B2C prodeje do jiných EU zemí);OSS se nastavuje pro B2C prodeje (objednávka s DPH) do jiných EU zemí:
goods– pro prodej zboží (používá doručovací adresu)service– pro prodej služeb (používá fakturační adresu)
Poznámka o zaplacení
Section titled “Poznámka o zaplacení”$data += array( 'show_already_paid_note_in_pdf' // true pro zobrazení poznámky "Uhrazeno" na faktuře);Poznámka o zaplacení se nastavuje automaticky, pokud bude faktura ihned po vytvoření označena jako uhrazená. Plugin tuto informaci předává interně z handle_documents() na základě nastavení platební brány (status_mark_fakturoid_paid). Pro opravné doklady je vždy true, protože jsou vždy ihned uhrazeny.
Pro opravné doklady
Section titled “Pro opravné doklady”$data += array( 'proforma' // true je-li proforma 'correction' // true je-li opravný doklad 'correction_id' // id opravovaného dokladu 'note' // poznámka (důvod opravy));Položky dokumentu
Section titled “Položky dokumentu”$data['lines'] = array( array( 'name' // název produktu 'quantity' // množství 'unit_price' // cena za jednotku 'vat_rate' // hodnota DPH (pokud jsou daně zapnuty) 'unit_name' // jednotka množství (ks, kg, ...) 'sku' // SKU produktu (pokud je zapnuto) ), // další položky...);Příklady použití
Section titled “Příklady použití”Přidání jednotky množství
Section titled “Přidání jednotky množství”Ve výchozím stavu se jednotka množství nastavuje z pole „Název jednotky množství” v nastavení pluginu (prázdné = neodesílá se). Tento filtr použijte pro dynamické nastavení jednotky podle produktu.
/** * Edit Fakturoid document data - add unit name * * @param array $data Data * @param OrderModel $order Order model with Fakturoid data * @param WC_Order $wc_order WC order * @param string $document_type Document type * * @return array */function edit_fakturoid_invoice_data( $data, $order, $wc_order, $document_type ): array { foreach ( $data['lines'] as $key => $line ) { $data['lines'][ $key ]['unit_name'] = 'ks'; } return $data;}add_filter( 'wpify_woo_fakturoid_invoice_data', 'edit_fakturoid_invoice_data', 10, 4 );Úprava dat podle typu dokumentu
Section titled “Úprava dat podle typu dokumentu”Ve výchozím stavu se splatnost (due) nenastavuje a použije se výchozí hodnota z nastavení Fakturoidu. Tento filtr použijte pro různou splatnost podle typu dokumentu.
/** * Modify invoice data based on document type * * @param array $data Data * @param OrderModel $order Order model * @param WC_Order $wc_order WC order * @param string $document_type Document type: proforma, invoice, correction * * @return array */function modify_invoice_by_type( $data, $order, $wc_order, $document_type ): array { if ( $document_type === 'proforma' ) { $data['due'] = 7; // splatnost 7 dní pro proformy } elseif ( $document_type === 'invoice' ) { $data['due'] = 14; // splatnost 14 dní pro faktury } return $data;}add_filter( 'wpify_woo_fakturoid_invoice_data', 'modify_invoice_by_type', 10, 4 );Přidání vlastní poznámky
Section titled “Přidání vlastní poznámky”Ve výchozím stavu se poznámka (note) neodesílá. Tento filtr použijte pro přidání vlastní poznámky na fakturu.
/** * Add custom note to invoice * * @param array $data Data * @param OrderModel $order Order model * @param WC_Order $wc_order WC order * @param string $document_type Document type * * @return array */function add_custom_invoice_note( $data, $order, $wc_order, $document_type ): array { // Nepřepisovat poznámku u opravných dokladů - obsahuje důvod opravy if ( $document_type === 'correction' ) { return $data; }
$data['note'] = 'Děkujeme za Váš nákup!'; return $data;}add_filter( 'wpify_woo_fakturoid_invoice_data', 'add_custom_invoice_note', 10, 4 );Změna číselné řady podle platební metody
Section titled “Změna číselné řady podle platební metody”Ve výchozím stavu se používá číselná řada nastavená v administraci pluginu (pole „Číselná řada faktur”). Tento filtr použijte pro dynamickou změnu podle podmínek.
/** * Change number format based on payment method * * @param array $data Data * @param OrderModel $order Order model * @param WC_Order $wc_order WC order * @param string $document_type Document type * * @return array */function change_number_format_by_payment( $data, $order, $wc_order, $document_type ): array { if ( $wc_order->get_payment_method() === 'cod' ) { $data['number_format_id'] = 12345; // ID číselné řady z Fakturoidu pro dobírku } return $data;}add_filter( 'wpify_woo_fakturoid_invoice_data', 'change_number_format_by_payment', 10, 4 );Kde umístit kód
Section titled “Kde umístit kód”Vlastní funkci můžete vložit buď do tzv. child šablony nebo pomocí pluginu Code Snippets.