Käyttöönotto

Tradetracker-koodin lisääminen

Tarvittavat ohjelmistot

Tässä työssä tarvitaan

  • verkkoselain (esim. Edge)
  • yksinkertainen tekstieditori (esim. Notepad++)
  • FTP-ohjelma (esim. Filezilla)

Toteutusohjeet (vaihe 1)

  • Kirjaudu verkkokaupan hallintaliittymään (demo).
  • Klikkaa ylhäältä asetukset / koodit ja ulkoasu.
  • Klikkaa Lisää uusi -painiketta.
  • Valitse tyypiksi "HTML5/JavaScript".
  • Syötä nimeksi "Tradetracker" tai mitä tahansa.
  • Valitse Sivu-kohdasta "Kiitos tilauksesta / maksuun siirtyminen".
  • Valitse Sijainti-kohdasta "Verkkokaupassa </body> ennen".
  • Lisää Koodi-kohtaan:
    <div id="csx4_tradetracker_oma"></div>
    <script>
    if (document.getElementById('csx4_connections_order_id') && document.getElementById('csx4_connections_order_id').value) {
    	$csx4_tradetracker_order_id = document.getElementById('csx4_connections_order_id').value;
    	if ($csx4_tradetracker_order_id.match(/^[0-9]+$/)) {
    		var $xhr1 = "$xhr1_trdtrc";
    		var $xhr1 = new XMLHttpRequest();
    		var $nocache = Math.random();
    		$xhr1.open("POST", "tradetracker_oma.php", true);
    		$xhr1.onreadystatechange = function () {
    			if ($xhr1.readyState == 4 && $xhr1.status == 200) {
    				if (document.getElementById('csx4_tradetracker_oma')) document.getElementById('csx4_tradetracker_oma').innerHTML=$xhr1.responseText;
    			}
    		}
    		$xhr1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
    		var $query = "nocache=" + $nocache + "";		
    		$query += "&csx4_tradetracker_order_id=" + $csx4_tradetracker_order_id + "";
    		$xhr1.send($query);
    	}	
    }
    </script>
    
  • Klikkaa Tallenna-painiketta.

Toteutusohjeet (vaihe 2)

Luo omalle tietokoneellesi tradetracker_oma.php -niminen tekstitiedosto ja siirrä se FTP-ohjelmalla kotisivutilan kansioon, jossa thank_you.php -tiedosto sijaitsee. Tiedoston sisällön on oltava seuraavanlainen lukuun ottamatta Tradetracker-kohtaa, jossa olevat tunnukset pitää vaihtaa oikeiksi.

<?php

/* 	-----------------------------------------------------UTF-8---❤-----
	sec/tradetracker_oma.php (model example)

	Clover Shop(r) X4
	Copyright (c) 2013- Clover Shop Oy. All rights reserved.

	This is commercial software. Unauthorized use, reproduction,
	reverse engineering and/or distribution is strictly prohibited.

	For more information, please visit http://www.clovershop.com
	--------------------------------------------------------------------
	*/


	
// Estetään väärät pyynnöt karkeasti

if (!$_POST && preg_match ("/\/tradetracker_oma\.php/", $_SERVER['PHP_SELF'])) {

	error_reporting (0);
	exit;

}



// Säädetään virheilmoitusherkkyyttä

error_reporting (0);



// Luetaan asetukset

include "config/config_inc.php";



// Tradetracker

$csx4_tradetracker_cid = "12345";
$csx4_tradetracker_pid = "12345";



// Avataan MySQL-yhteys

$mysql_link = @mysqli_connect ($config['mysql5_server'], $config['mysql5_readwrite_username'], $config['mysql5_readwrite_password'], $config['mysql5_database']);
if (!$mysql_link) {
	echo "Tietokantayhteys ei toimi, MySQL-virhe: ". mysqli_connect_error();
	exit;
}

if (version_compare (PHP_VERSION, "5.2.3", ">=")) {
	mysqli_set_charset ($mysql_link, "utf8");
} else {
	mysqli_query ($mysql_link, "SET NAMES 'utf8'");
}



// Näytetään tilaustiedot ja merkitään ne luetuksi
// Turvallisuusratkaisuna on
// - tilauksen id-numeron tarkistaminen
// - IP-osoitteen tarkistaminen
// - lukumerkintä ja toiston esto
// - kolmen sekunnin aikaikkuna
// Turvallisuustaso ei vastaa Clover Shopin tasoa, mutta on käytännössä riittävä

if ($_POST['csx4_tradetracker_order_id'] && preg_match ("/^[0-9]+$/", $_POST['csx4_tradetracker_order_id'])) {

	$result = mysqli_query ($mysql_link, "SELECT cs_order_number, cs_order_xml, cs_order_log, cs_order_datetime FROM csx4_orders WHERE cs_order_id='". mysqli_real_escape_string ($mysql_link, $_POST['csx4_tradetracker_order_id']) ."' LIMIT 1");
	
	if (is_object ($result) && mysqli_num_rows ($result)) {
		
		$s = mysqli_fetch_array ($result);
	
	
	
		// Tarkistetaan aikaikkunaan osuminen, IP-osoite ja lukumerkintä (toiston esto)
	
		if (
		strtotime (date ("d.m.Y \k\l\o H:i:s")) > strtotime ("+3 seconds", strtotime ($s['cs_order_datetime'])) || 
		!preg_match ("/". str_replace (".", "\.", $_SERVER['REMOTE_ADDR']) ."/", $s['cs_order_log']) || 
		preg_match ("/TT luettu/", $s['cs_order_log'])
		) {		
			mysqli_close ($mysql_link);
			exit;	
		}
		
		
		
		// Lasketaan tilattujen tuotteiden verottomat hinnat yhteen
		
		libxml_use_internal_errors (true);
		$xml_validity = simplexml_load_string ("". $s['cs_order_xml'] ."");
		if ($xml_validity !== false) $order = new SimpleXMLElement($s['cs_order_xml']);
		foreach ($order->cart->product as $line) {		
			if ($line->id) { // Jos kyseessä on tuote
				if ((float) $line->vat_percent && (float) $line->vat_percent > 0) { // Jos hinta on verollinen
					$tam = $tam + ((float) $line->total) * 100 / (100 + ((float) $line->vat_percent));				
				} else {
					$tam = $tam + ((float) $line->total);
				}
			}			
		}
		
		
		
		// Näytetään pikseli
		
		echo "<img src=\"https://ts.tradetracker.net/?cid=". $csx4_tradetracker_cid ."&pid=". $csx4_tradetracker_pid ."&tid=". $s['cs_order_number'] ."&tam=". number_format ($tam, 2, ".", "") ."\" alt=\"\" width=\"1\" height=\"1\" border=\"0\" />"; 
		
		
		
		// Kirjataan pikselin näyttäminen tilauksen lokitietoihin
		
		$result = mysqli_query ($mysql_link, "SELECT cs_order_log FROM csx4_orders WHERE cs_order_id='". mysqli_real_escape_string ($mysql_link, $_POST['csx4_tradetracker_order_id']) ."' LIMIT 1");
		if (is_object ($result) && mysqli_num_rows ($result)) {
			$s = mysqli_fetch_array ($result);
			mysqli_query ($mysql_link, "UPDATE csx4_orders SET cs_order_log='". mysqli_real_escape_string ($mysql_link, date ("d.m.Y \k\l\o H:i:s") ." TT luettu\n". $s['cs_order_log']) ."' WHERE cs_order_id='". mysqli_real_escape_string ($mysql_link, $_POST['csx4_tradetracker_order_id']) ."'") or die();
		}

	}

}



// Suljetaan MySQL-yhteys

mysqli_close ($mysql_link);

?>

Vastuunrajoitus

Näillä ohjeilla ja koodiesimerkeillä ei ole minkäänlaista toimivuustakuuta. Emme vastaa välittömistä, välillisistä, satunnaisista tai epäsuorista vahingoista, menetyksistä, korvauksista, tai kolmannen osapuolen esittämistä vaatimuksista, jotka johtuvat näiden ohjeiden tai koodiesimerkkien noudattamisesta.

Tilaa asiakaskirjeemme

Asiakaskirjeen tilaajana saat sähköpostitse tärkeitä asiakastiedotteita noin 2-5 kertaa vuodessa. Asiakaskirjeen tilaaminen on tärkeää, jos käytät ohjelmistoa.

Tietosuojaseloste