This repository was archived by the owner on Dec 19, 2019. It is now read-only.
This repository was archived by the owner on Dec 19, 2019. It is now read-only.
Using ... on ConfigurableProduct on category(id:) fails #85
Closed
Description
I have been trying to get all the products of a given category, including the sub-products of each product if it is a configurable product. This fails, here is an example of the request:
{
category(id: 14) {
id
name
products {
items {
sku
... on ConfigurableProduct {
variants {
product {
sku
}
}
}
}
}
}
}
The problematic part is the ... on ConfigurableProduct
block, if I remove it, the query works. With that block, the query fails with the following error message:
{
"errors": [
{
"debugMessage": "Notice: Undefined property: GraphQL\\Language\\AST\\InlineFragmentNode::$name in /Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/app/code/Magento/CatalogGraphQl/Model/AttributesJoiner.php on line 31",
"message": "Internal server error",
"category": "internal",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"category"
],
"trace": [
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/app/code/Magento/CatalogGraphQl/Model/AttributesJoiner.php",
"line": 31,
"call": "Magento\\Framework\\App\\ErrorHandler::handler(8, 'Undefined property: GraphQL\\Language\\AST\\InlineFragmentNode::$name', '/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/app/code/Magento/CatalogGraphQl/Model/AttributesJoiner.php', 31, array(4))"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/DataProvider/CategoryTree.php",
"line": 142,
"call": "Magento\\CatalogGraphQl\\Model\\AttributesJoiner::join(instance of GraphQL\\Language\\AST\\FieldNode, instance of Magento\\Catalog\\Model\\ResourceModel\\Category\\Collection(24))"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/DataProvider/CategoryTree.php",
"line": 146,
"call": "Magento\\CatalogGraphQl\\Model\\Resolver\\Products\\DataProvider\\CategoryTree::joinAttributesRecursively(instance of Magento\\Catalog\\Model\\ResourceModel\\Category\\Collection(24), instance of GraphQL\\Language\\AST\\FieldNode)"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/DataProvider/CategoryTree.php",
"line": 146,
"call": "Magento\\CatalogGraphQl\\Model\\Resolver\\Products\\DataProvider\\CategoryTree::joinAttributesRecursively(instance of Magento\\Catalog\\Model\\ResourceModel\\Category\\Collection(24), instance of GraphQL\\Language\\AST\\FieldNode)"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/app/code/Magento/CatalogGraphQl/Model/Resolver/Products/DataProvider/CategoryTree.php",
"line": 94,
"call": "Magento\\CatalogGraphQl\\Model\\Resolver\\Products\\DataProvider\\CategoryTree::joinAttributesRecursively(instance of Magento\\Catalog\\Model\\ResourceModel\\Category\\Collection(24), instance of GraphQL\\Language\\AST\\FieldNode)"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/app/code/Magento/CatalogGraphQl/Model/Resolver/CategoryTree.php",
"line": 76,
"call": "Magento\\CatalogGraphQl\\Model\\Resolver\\Products\\DataProvider\\CategoryTree::getTree(instance of Magento\\Framework\\GraphQl\\Schema\\Type\\ResolveInfo, 14)"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/vendor/webonyx/graphql-php/src/Deferred.php",
"line": 54,
"call": "Magento\\CatalogGraphQl\\Model\\Resolver\\CategoryTree::Magento\\CatalogGraphQl\\Model\\Resolver\\{closure}()"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/vendor/webonyx/graphql-php/src/Deferred.php",
"line": 34,
"call": "GraphQL\\Deferred::run()"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/vendor/webonyx/graphql-php/src/Executor/Promise/Adapter/SyncPromiseAdapter.php",
"line": 139,
"call": "GraphQL\\Deferred::runQueue()"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/vendor/webonyx/graphql-php/src/GraphQL.php",
"line": 88,
"call": "GraphQL\\Executor\\Promise\\Adapter\\SyncPromiseAdapter::wait(instance of GraphQL\\Executor\\Promise\\Promise)"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/lib/internal/Magento/Framework/GraphQl/Query/QueryProcessor.php",
"line": 63,
"call": "GraphQL\\GraphQL::executeQuery(instance of Magento\\Framework\\GraphQl\\Schema, '{\n category(id: 14) {\n id\n name\n products {\n items {\n sku\n ... on ConfigurableProduct {\n variants {\n product {\n sku\n }\n }\n }\n }\n }\n }\n}\n', null, instance of Magento\\GraphQl\\Model\\Query\\Resolver\\Context, array(0), null)"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/app/code/Magento/GraphQl/Controller/GraphQl.php",
"line": 108,
"call": "Magento\\Framework\\GraphQl\\Query\\QueryProcessor::process(instance of Magento\\Framework\\GraphQl\\Schema, '{\n category(id: 14) {\n id\n name\n products {\n items {\n sku\n ... on ConfigurableProduct {\n variants {\n product {\n sku\n }\n }\n }\n }\n }\n }\n}\n', instance of Magento\\GraphQl\\Model\\Query\\Resolver\\Context, array(0))"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/lib/internal/Magento/Framework/Interception/Interceptor.php",
"line": 58,
"call": "Magento\\GraphQl\\Controller\\GraphQl::dispatch(instance of Magento\\Framework\\App\\Request\\Http)"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/lib/internal/Magento/Framework/Interception/Interceptor.php",
"line": 138,
"call": "Magento\\GraphQl\\Controller\\GraphQl\\Interceptor::___callParent('dispatch', array(1))"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/lib/internal/Magento/Framework/Interception/Interceptor.php",
"line": 153,
"call": "Magento\\GraphQl\\Controller\\GraphQl\\Interceptor::Magento\\Framework\\Interception\\{closure}(instance of Magento\\Framework\\App\\Request\\Http)"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/generated/code/Magento/GraphQl/Controller/GraphQl/Interceptor.php",
"line": 26,
"call": "Magento\\GraphQl\\Controller\\GraphQl\\Interceptor::___callPlugins('dispatch', array(1), array(1))"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/lib/internal/Magento/Framework/App/Http.php",
"line": 135,
"call": "Magento\\GraphQl\\Controller\\GraphQl\\Interceptor::dispatch(instance of Magento\\Framework\\App\\Request\\Http)"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/generated/code/Magento/Framework/App/Http/Interceptor.php",
"line": 24,
"call": "Magento\\Framework\\App\\Http::launch()"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/lib/internal/Magento/Framework/App/Bootstrap.php",
"line": 256,
"call": "Magento\\Framework\\App\\Http\\Interceptor::launch()"
},
{
"file": "/Users/jelger/dev/magento/magento2-vagrant-for-developers/magento2ce/index.php",
"line": 39,
"call": "Magento\\Framework\\App\\Bootstrap::run(instance of Magento\\Framework\\App\\Http\\Interceptor)"
}
]
}
],
"data": {
"category": null
}
}
I was actually also trying to get all the products of children categories, it fails for similar reasons, here is the complete request I have been trying:
{
category(id: 14) {
id
name
products {
items {
sku
... on ConfigurableProduct {
variants {
product {
sku
}
}
}
}
}
children {
id
name
products {
items {
sku
... on ConfigurableProduct {
variants {
product {
sku
}
}
}
}
}
}
}
}
cc: @antonkril and @paliarush as discussed on Slack