ACSD-54626: Can’t create new purchase order rule with NUMBER_OF_SKUS via GraphQL

The ACSD-54626 patch fixes the issue where a customer can’t create a new purchase order rule (createPurchaseOrderApprovalRule) with the NUMBER_OF_SKUS attribute via GraphQL. This patch is available when the Quality Patches Tool (QPT) 1.1.42 is installed. The patch ID is ACSD-54626. Please note that the issue is scheduled to be fixed in Adobe Commerce 2.4.7.

Affected products and versions

The patch is created for Adobe Commerce version:

  • Adobe Commerce (all deployment methods) 2.4.6-p2

Compatible with Adobe Commerce versions:

  • Adobe Commerce (all deployment methods) 2.4.6 - 2.4.6-p3
NOTE
The patch might become applicable to other versions with new Quality Patches Tool releases. To check if the patch is compatible with your Adobe Commerce version, update the magento/quality-patches package to the latest version and check the compatibility on the Quality Patches Tool: Search for patches page. Use the patch ID as a search keyword to locate the patch.

Issue

Customer cannot create a new purchase order rule (createPurchaseOrderApprovalRule) with the NUMBER_OF_SKUS attribute via GraphQL.

Prerequisites:

Install and enable Adobe Commerce B2B modules.

Steps to reproduce:

  1. Enable B2B company and purchase rules.

  2. Create a company with enabled purchase rules.

  3. Run the following GraphQL query:

    code language-none
    mutation CreatePurchaseRule {
        createPurchaseOrderApprovalRule(
            input: {
                name: "Test Rule"
                description: "description"
                applies_to: "MQ=="
                status: ENABLED
                approvers: "MQ=="
                condition: {
                    attribute: NUMBER_OF_SKUS
                    operator: MORE_THAN
                    quantity: 10
                }
            }
        ) {
            uid
            name
            __typename
        }
    }
    

Expected results:

A purchase rule is created.

Actual results:

The following error is thrown:

{
    "errors": [
        {
            "message": "Required data is missing from a rule condition.",
            "locations": [
                {
                    "line": 2,
                    "column": 3
                }
            ],
            "path": [
                "createPurchaseOrderApprovalRule"
            ],
            "extensions": {
                "category": "graphql-input"
            }
        }
    ],
    "data": {
        "createPurchaseOrderApprovalRule": null
    }
}

Apply the patch

To apply individual patches, use the following links depending on your deployment method:

To learn more about Quality Patches Tool, refer to:

For info about other patches available in QPT, refer to Quality Patches Tool: Search for patches in the Quality Patches Tool guide.

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a