Magento 2で特定の商品の注文を検索する方法


  1. SKUを使用して注文を検索する: 特定の商品の注文を検索するためには、商品のSKU(ストックキーユニット)を使用する方法があります。以下は、SKUを使用して注文を検索するためのコード例です。
$sku = 'your_product_sku'; // 検索する商品のSKUを指定
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$orderCollection = $objectManager->get('\Magento\Sales\Model\ResourceModel\Order\Collection');
$orderCollection->addFieldToFilter('sku', $sku);
foreach ($orderCollection as $order) {
    // 注文の処理
    // $orderを使用して必要な操作を行います
}
  1. 商品IDを使用して注文を検索する: 商品IDを使用して注文を検索する方法もあります。以下は、商品IDを使用して注文を検索するためのコード例です。
$productId = 123; // 検索する商品のIDを指定
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$orderItemCollection = $objectManager->get('\Magento\Sales\Model\ResourceModel\Order\Item\Collection');
$orderItemCollection->addFieldToFilter('product_id', $productId);
$orderCollection = $objectManager->get('\Magento\Sales\Model\ResourceModel\Order\Collection');
$orderCollection->addFieldToFilter('entity_id', $orderItemCollection->getColumnValues('order_id'));
foreach ($orderCollection as $order) {
    // 注文の処理
    // $orderを使用して必要な操作を行います
}
  1. カート価格ルールを使用して注文を検索する: 特定の商品に適用されるカート価格ルールを使用して注文を検索する方法もあります。以下は、カート価格ルールを使用して注文を検索するためのコード例です。
$productId = 123; // 検索する商品のIDを指定
$ruleId = 456; // 検索するカート価格ルールのIDを指定
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$ruleCollection = $objectManager->get('\Magento\SalesRule\Model\ResourceModel\Rule\Collection');
$ruleCollection->addFieldToFilter('rule_id', $ruleId);
$orderItemCollection = $objectManager->get('\Magento\Sales\Model\ResourceModel\Order\Item\Collection');
$orderItemCollection->addFieldToFilter('product_id', $productId);
$orderItemCollection->addFieldToFilter('applied_rule_ids', $ruleCollection->getColumnValues('rule_id'));
$orderCollection = $objectManager->get('\Magento\Sales\Model\ResourceModel\Order\Collection');
$orderCollection->addFieldToFilter('entity_id', $orderItemCollection->getColumnValues('order_id'));
foreach ($orderCollection as $order) {
    // 注文の処理
    // $orderを使用して必要な操作を行います
}

上記のコード例は、Magento 2で特定の商品の注文を検索するための一般的な方法です。必要に応じて、コードをカスタマイズして特定の要件に合わせることができます。