Integrace Targito, WordPress a WooCommerce

Pro eshop gsklub.cz jsem vytvořil pokročilý plugin na integraci Targito, WordPressu a WooCommerce.

Pokud Targito neznáte, jedná se o nástroj na pokročilý emailový marketing. Jednou z hlavních výhod je pokročilá segmentace dle chování uživatelů na webu, další velkou předností je příprava na big data – nemusíte se tedy bát, že emailový nástroj budete muset kvůli objemu dat brzy měnit. Samozřejmostí jsou nástroje jako zapomenutý košík, popupy pro přihlášení atd.

Plugin nabízí trackování uživatele během nákupního procesu – sledují se navštívené produkty, kategorie, články, přidání položek do košíku, průchod checkoutem i dokončení objednávky.

Pokud uživatel souhlasil se zasíláním newletterů, posílají se data z objednávky do systému Targito, kde možné s nimi dále pracovat.

Plugin obsahuje také shortcode pro vložení formuláře pro přihlášení k odběru novinek kamkoli na stránku, v tomto případě se data odesílají a validují přes REST API.

Sdílení dat není vyřešeno jako u většiny podobných systémů přes API, ale generováním a nahráváním CSV souborů na zabezpečený FTP server, odkud se data automaticky několikrát denně aktualizují.

K tomu se dá v PHP použít knihovna phpseclib, která podporuje protokol SFTP a pomůže nám tak s nahráváním souborů na FTP server. Kód, který to zařídí, je poměrně jednoduchý:

<?php

namespace WPProgramator\TARGITOWP;

use phpseclib\Net\SFTP;

class FTP {
	private $host;
	private $port;
	private $username;
	private $password;

	/** @var SFTP */
	private $client;
	/**
	 * @var Settings
	 */
	private $settings;

	/**
	 * FTP constructor.
	 */
	public function __construct( Settings $settings ) {
		$this->settings = $settings;
		$this->host     = $this->settings->get_option( 'ftp_host' );
		$this->port     = $this->settings->get_option( 'ftp_port' );
		$this->username = $this->settings->get_option( 'ftp_username' );
		$this->password = $this->settings->get_option( 'ftp_password' );
		$this->get_client();
	}

	/**
	 * Get client
	 * @return SFTP
	 */
	private function get_client() {
		$this->client = new SFTP( $this->host );

		return $this->client;
	}

	/**
	 * Upload file to the SFTP server
	 *
	 * @param $filename
	 * @param $data
	 *
	 * @return bool|\WP_Error
	 */
	public function upload( $filename, $data ) {
		if ( ! $this->client->isAuthenticated() ) {
			$login = $this->login();
			if ( is_wp_error( $login ) ) {
				return $login;
			}
		}

		$result = $this->client->put( $filename, $data );
		if ( ! $result ) {
			return new \WP_Error( 'upload-failed', __( 'Upload Failed', targito ), $this->client->getLastSFTPError() );
		}

		return true;
	}

	/**
	 * Login to the SFTP server
	 * @return bool|\WP_Error
	 */
	private function login() {
		if ( ! $this->client->login( $this->username, $this->password ) ) {
			return new \WP_Error( 'sftp-login-failed', __( 'SFTP Login Failed', targito ), $this->client->getLastSFTPError() );
		}

		return true;
	}
}

Pro nahrání souboru pak stačí zavolat:

$result = wpp_targito()->ftp->upload( 'import/' . wpp_targito()->settings->get_option( 'ftp_shop_prefix' ) . 'all_transactions.csv', $data );

Pokud budete mít o integraci systému Targito, WordPressu a WooCommerce zájem, nebo potřebujete propojit WooCommerce s jiným nástrojem na emailový marketing, neváhejte se na mě obrátit – mám připravená řešení pro Mailchimp, Drip, SmartEmailing, EcoMail a další…:-)

Přidat komentář