THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour, dpuis hier je bloque sur un truc surement tout bête.

J'ai une fonction dans laquelle je veux récupérer l'ID d'un produit pour une commande.
Je récupère ma commande en faisant : $order = OrderQuery::create()->findPk($orderToChange);

Ensuite impossible de pouvoir la récupérer; j'ai réussi mais en faisant quelque chose de très sale et qui ne fonctionne pas pour tout les produits.

$productOrder = $order->getOrderProducts();
$productOrderTest = substr($productOrder.["data"], 185, -1760 );
$idProductTest = (int) filter_var($productOrderTest, FILTER_SANITIZE_NUMBER_INT);
$ProductSaleElements = ProductSaleElementsQuery::create()->findPk($idProductTest);
$idProduct = $ProductSaleElements->getProductId();
$product = ProductQuery::create()->findPk($idProduct);

Si quelqu'un à une solution à mon problème.

merci !

Offline


Voilà comment je ferais pour récupérer les ID des produits dans une commande.

        /** @var OrderProduct $orderProduct */
        foreach ($order->getOrderProducts() as $orderProduct) {
            // Si c'est une combinaison qui a été commandée, on a l'ID du PSE correspondant.
            // Sinon, c'est un produit simple: le retrouver par sa reférence
            if (null !== $pse = ProductSaleElementsQuery::create()->findPk($orderProduct->getProductSaleElementsId())) {
                $productId = $pse->getProductId();
            } elseif (null !== $product = ProductQuery::create()->findOneByRef($orderProduct->getProductRef())) {
                $productId = $product->getId();
            }
        }

OpenStudio Toulouse

Offline


Bon ba ça marche parfaitement !
merci, deux jours que j'essaye et que je galère !

Merci beaucoup !

Offline