302: PrestaShop 1.5 – Configure shop information – an error occurred during installation

During our PrestaShop 1.5 testing, we came upon the following error when attempting to install PrestaShop 1.5:

prestashop-an-error-occurred-during-installation
An error occurred during installation
You can use the links on the left column to go back to the previous steps, or restart the installation process by clicking here.

Configure shop information

In this file, install/error_log, we found the following error:

[14-May-2012 13:54:30] PHP Warning:  simplexml_load_string() [<a href='function.simplexml-load-string'>function.simplexml-load-string</a>]: Entity: line 1: parser error : Space required after the Public Identifier in /home/userna5/prestashop.inmotiontesting.com/classes/LocalizationPack.php on line 41

Therefore, we reviewed this file – classes/LocalizationPack.php – and saw the problem was with the $file variable being passed here:

public function loadLocalisationPack($file, $selection, $install_mode = false)
{
	if (!$xml = simplexml_load_string($file))
	return false;

During our troubleshooting we emailed ourselves the $file variable (using the php mail function) and found out the problem was in this file – install/models/install.php – at line 401:

$localization_file_content = @Tools::file_get_contents('http://api.prestashop.com/download/localization/'.$version.'/'.$data['shop_country'].'.xml');

What was happening is that $localization_file_content was set to http://api.prestashop.com/download/localization/15/us.xml, however that file did not exist. At the time of this writing, that URL was resulting in a 404 error. To resolve this issue, we added the following line in install/models/install.php:

$localization_file_content = @Tools::file_get_contents('http://api.prestashop.com/download/localization/'.$version.'/'.$data['shop_country'].'.xml');
unset($localization_file_content);

The unset function deleted the variable, and therefore ran the following code, which creates the contents based upon files already stored within PrestaShop 1.5 (instead of trying to download them from api.prestashop.com – which is resulting in a 404 error)

if (!$localization_file_content)
{
	$localization_file = _PS_ROOT_DIR_.'/localization/default.xml';
	if (file_exists(_PS_ROOT_DIR_.'/localization/'.$data['shop_country'].'.xml'))
	$localization_file = _PS_ROOT_DIR_.'/localization/'.$data['shop_country'].'.xml';
	$localization_file_content = file_get_contents($localization_file);
}

Leave a Reply