Bonjour @louisparis43,
@charlottehub a bien identifié les points clés. Votre code dans l'override est bien placé, mais la manière de récupérer et de formater les données de la commande pour l'API TikTok Events nécessite quelques ajustements.
Le problème principal vient effectivement de la construction des tableaux content_ids et contents, ainsi que de la fonction de hachage de l'email. Pour les produits, vous devez appeler la méthode getProducts() sur l'objet $order et ensuite parcourir le résultat. Pour le hachage SHA256 de l'email, la fonction PHP correcte est hash('sha256', $string).
Voici le code corrigé que vous pouvez utiliser dans votre override/controllers/front/OrderConfirmationController.php:
class OrderConfirmationControllerCore extends FrontController
{
public function initContent()
{
parent::initContent();
$orderId = (int)Tools::getValue('id_order');
if ($orderId) {
$order = new Order($orderId);
if (Validate::isLoadedObject($order) && $order->id_customer == $this->context->customer->id) {
$products = $order->getProducts();
N'oubliez pas que les modifications directes dans les overrides peuvent être délicates à maintenir et peuvent être écrasées lors de mises à jour de PrestaShop. Pour une solution plus robuste et facile à gérer, surtout pour le suivi des conversions avec des plateformes comme TikTok, un module dédié est souvent préférable. Vous pourriez envisager d'utiliser un module TikTok Ads conversion tracking qui gère toute cette logique d'API des événements et la compatibilité avec PrestaShop, même pour les anciennes versions comme la 1.7.6.8.
Testez ce snippet et dites-moi si ça résout votre problème de formatage des données.