Jump to content

[RESOLU] Fatal error in module EbayRequest: syntax error, unexpected T_FUNCTION, expecting ')'


Recommended Posts

Bonjour, depuis ce matin il m'est impossible d'accéder à mon back office et front office après avoir voulu mettre à jour le module eBay vers la dernière version v1.71.

 

Le message suivant s'est affiché: [PrestaShop] Fatal error in module EbayRequest: syntax error, unexpected T_FUNCTION, expecting ')'

Par ftp j'ai enregistrer le module eBay sur mon ordi avant de le supprimé du serveur, tout est ensuite revenu comme avant, maintenant que je retélécharge le module eBay, le bug revient.

Je ne souhaite pas supprimer le module car j'ai plus de 300 produits de synchronisés sur eBay..

 

Pouvez vous m'aider à résoudre ce problème?

 

Prestashop 1.5.6.2

Edited by narelien (see edit history)
Link to comment
Share on other sites

Encore un beau module à la qualité Prestashop...

 

D'ailleurs ça s'installe carrément très mal (incohérence bdd (id_ebay_profile non inséré)), des null inséré dans des tables n'acceptant pas les nulls ( is_multi_sku)

 

Le profile ebay ne se créé pas en mise à jour d'où une autre erreur fatale call member function on non object

 

Concernant le message d'erreur, celà vient de l'utilisation d'une closure qui n'est possible que depuis php 5.3.0

 

Donc si vous tenez absolument à mettre ce déchet sur vos boutiques, passez en PHP 5.3 ou utilisez ce

correctif rapide:

  private function _hasFeatures($feat,$prods)
  {
    $arr = array();
    foreach($prods as $key => $prod)
       $arr[$key] = ((int)$prod['id_feature'] == (int)$feat['id_feature'] ? $prod['value'] : false);
    return $arr;
  }

	public static function prepareTitle($data)
	{
		$product = new Product($data['real_id_product'], false, $data['id_lang']);
		$features = Feature::getFeatures($data['id_lang']);
		$features_product = $product->getFrontFeatures($data['id_lang']);
		$tags = array(
			'{TITLE}',
			'{BRAND}',
			'{REFERENCE}',
			'{EAN}',
		);
		$values = array(
			$data['name'],
			$data['manufacturer_name'],
			$data['reference'],
			$data['ean13'],
		);

		foreach ($features as $feature)
		{

			$tags[] = trim(str_replace(' ', '_', strtoupper('{FEATURE_'.$feature['name'].'}')));
/*
			$hasFeature = array_map(function($val) use ($feature) {
				return ((int)$val['id_feature'] == (int)$feature['id_feature'] ? $val['value'] : false);
			}, $features_product);
*/
      $hasFeature = self::_hasFeatures($feature,$features_product);

			if (isset($hasFeature[0]) &&$hasFeature[0])
				$values[] = $hasFeature[0];
			else
				$values[] = '';

		}
		
		return EbaySynchronizer::fillTemplateTitle($tags, $values, $data['titleTemplate']);
	}

Pour le reste vous allez devoir sûrement recréer vos tables à la main (./sql/sql-install.php)

 

Il vous faudra aussi corriger le fichier synchronizeOrders_CRON.php qui contient un parenthese en trop

Link to comment
Share on other sites

Bonjour à tous , 

veuillez nous envoyer une demande de support via ce formulaire afin que nous puissions vous aider au plus vite : 

https://docs.google.com/a/202-ecommerce.com/forms/d/1JS68sQV6324_R7SNu0Ljq7r_8Yk8BahH7EFDEVVcTrw/viewform

 

Dès la réception de votre demande nous vous enverrons un mail afin de vous aider. 

 

Cordialement, 

202 ecommerce

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...