Prepojenie SuperFaktúry a WooCommerce

Pre vývojárov

Plugin je open source pod licenciou GPL. Jeho správanie upravíte filtrami a akciami WordPressu. Kód patrí do vlastného pluginu alebo do functions.php child témy.

Požiadavky

Aktuálna verzia1.59.2
WordPress4.4 a novší, testované do 7.1
WooCommerce3.7.0 a novší, testované do 11.1.2
PHP7.4 a novšie
Nové úložisko objednávok (HPOS)podporované
Bloková pokladňapodporovaná
Jazyk nastavení pluginuslovenčina, čeština

Filtre a akcie

Všetky filtre a akcie s popisom, parametrami a verziou, od ktorej existujú, sú na stránke Filtre a akcie.

Príklady

Bez dokladu pre objednávky s nulovou sumou

Filter sf_skip_invoice vynechá pre objednávku všetky doklady.

add_filter( 'sf_skip_invoice', function ( $skip, $order ) {
	return $skip || 0.0 === (float) $order->get_total();
}, 10, 2 );

Iný číselník pre objednávky z Česka

Filter wc_sf_sequence_id určí číselník SuperFaktúry pre nový doklad. Číslo 12345 nahraďte ID číselníka z vášho účtu.

add_filter( 'wc_sf_sequence_id', function ( $sequence_id, $type, $order ) {
	if ( 'regular' === $type && 'CZ' === $order->get_billing_country() ) {
		return 12345; // ID číselníka v SuperFaktúre.
	}
	return $sequence_id;
}, 10, 3 );

Doklady v inej firme podľa meny objednávky

Filter sf_order_api_credentials mení prístupové údaje pre doklady objednávky. V tomto príklade idú doklady objednávok v českých korunách do inej firmy v tom istom účte SuperFaktúry.

add_filter( 'sf_order_api_credentials', function ( $credentials, $order ) {
	if ( 'CZK' === $order->get_currency() ) {
		$credentials['woocommerce_sf_company_id'] = 12345; // ID firmy v SuperFaktúre.
	}
	return $credentials;
}, 10, 2 );

Ostatné údaje dokladu sa vezmú z nastavení pluginu, aj ID číselníka, loga a bankového účtu, ktoré patria prvej firme. Číselník pre druhú firmu nastavte filtrom wc_sf_sequence_id, logo a bankový účet filtrom sf_invoice_data. Automatické párovanie úhrad pracuje len s firmou z nastavení pluginu.

EAN v popise položky

Filter sf_item_data upraví položku dokladu. V tomto príklade doplní do popisu EAN z poľa GTIN, UPC, EAN alebo ISBN. Toto pole má WooCommerce od verzie 9.2, preto kód najprv overí, či existuje.

add_filter( 'sf_item_data', function ( $item_data, $order, $product ) {
	if ( $item_data && $product && method_exists( $product, 'get_global_unique_id' ) && $product->get_global_unique_id() ) {
		$item_data['description'] = trim( ( $item_data['description'] ?? '' ) . "\nEAN: " . $product->get_global_unique_id() );
	}
	return $item_data;
}, 10, 3 );

Kód pluginu

Zdrojový kód vydaných verzií je v repozitári na WordPress.org. Zmeny jednotlivých verzií sú v zozname zmien.

Chyby a otázky

Napíšte na superfaktura@2day.sk, akú verziu pluginu, WordPressu a WooCommerce máte, čo presne sa stalo a čo je v API logu v nastaveniach pluginu. Otázky môžete klásť aj vo fóre na WordPress.org.