Hola @lorenamadrid, es un desafío común intentar integrar APIs de conversión de terceros en PrestaShop de forma manual. Como bien apuntan @daniela8923 y @javieradmin, hay varios puntos críticos: la recuperación completa y correcta de los datos del pedido, la seguridad del token de acceso, la deduplicación de eventos y el formateo de los datos para la API de Pinterest.
Tu enfoque de usar hookActionPaymentConfirmation es el correcto para capturar el evento de compra. Sin embargo, necesitas profundizar en el objeto Order para obtener todos los detalles necesarios. Aquí te dejo un snippet que muestra cómo podrías estructurar la obtención de esos datos dentro de tu gancho:
public function hookActionPaymentConfirmation(array $params)
{
if (isset($params['order']) && Validate::isLoadedObject($params['order'])) {
$order = $params['order'];
$customer = new Customer((int)$order->id_customer);
$currency = new Currency((int)$order->id_currency);
$products_data = [];
foreach ($order->getProductsDetail() as $product) {
$products_data[] = [
'product_id' => (string)$product['product_id'],
Este código te da la estructura para recolectar los datos. Sin embargo, la implementación completa de la API de Conversiones (gestión del token de acceso de forma segura, lógica de reintentos, deduplicación de eventos y el envío real vía cURL/Guzzle) es bastante compleja y cualquier error puede invalidar tus datos o romper tu tienda en futuras actualizaciones.
Para una integración robusta, segura y mantenible que se actualice sin problemas y gestione todos los eventos de Pinterest (vista de página, añadir al carrito, compra, etc.), te recomiendo usar un módulo dedicado. Estos módulos están diseñados para manejar toda la complejidad de la API, incluyendo la API de Conversiones. Por ejemplo, el módulo Pinterest Tag y API de conversiones está pensado para esto, facilitando mucho la vida y asegurando que la integración es correcta y compatible con futuras versiones de PrestaShop.