Při platbě bankovním převodem v eshopu, potřebujeme variabilní symbol. Použití čísla objednávky umožní konkurencí poznat kolik máte objednávek, proto je vhodné generovat náhodný číselný kód. Prestashop 1.6 při platbě bankovním převodem (bankwire) generuje řetězec znaků.
Ukázka z emailu co přijde zákazníkovi:
Nezapomeňte vložit označení vaší objednávky DKKPCAKGT jako informaci o platbě pro váš bankovní převod.
Systém používá pro generování identifikace funkci generateReference() která se odkazuje na funkci passwdGen(). Podívejme se na ni, najdete ji v “/classes/order/Order.php”
	public static function generateReference()
	{
		return strtoupper(Tools::passwdGen(9, 'NO_NUMERIC'));
	}
Funkce passwdGen() má různé návratové hodnoty. Podívejme se na ni, najdete ji v “/classes/Tools.php”
public static function passwdGen($length = 8, $flag = 'ALPHANUMERIC')
	{
		switch ($flag)
		{
			case 'NUMERIC':
				$str = '0123456789';
				break;
			case 'NO_NUMERIC':
				$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
				break;
			default:
				$str = 'abcdefghijkmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
				break;
		}
		for ($i = 0, $passwd = ''; $i < $length; $i++)
			$passwd .= Tools::substr($str, mt_rand(0, Tools::strlen($str) - 1), 1);
		return $passwd;
	}
Funkce generateReference() má defaultně nastaveno “NO_NUMERIC” a ta vrací pouze velká písmenka. Stačí tedy “NO_NUMERIC” změnit na “NUMERIC” a jako identifikace objednávky (variabilní symbol) se použije číselný kód.
Upravený kód pro generování varibilního symbolu:
	public static function generateReference()
	{
		return strtoupper(Tools::passwdGen(9, 'NUMERIC'));
	}
	
Zdravim!
Zmenu na cisla jsem provedl a nyni resim jak zamezit tomu aby order reference nezacinal jednou ci vice 0. Delku retezce jsem nastavil na 4 mista. Idealni by bylo pouze pridat pred toto cislo nejakou konstatni cislici.
Diky za prodrobnejsi info a pomoc!
S pozdravem,
ivan
Zvedl jsem to na 8 a nuly uz se neobjevuji a vse OK.
Ahoj,
měl bych dotaz. Postupoval jsem podle návodu a změnit číslo objednávky dle postupu.
Nyní bych potřeboval, aby variabilní symbol byl stejný jako číslo objednávky a nebylo to náhodně vygenerované číslo. Lze to?
Díky za radu. h