diff --git a/vendor/magento/module-catalog-graph-ql/Plugin/ProductAttributeSortInput.php b/vendor/magento/module-catalog-graph-ql/Plugin/ProductAttributeSortInput.php
new file mode 100644
index 000000000000..ac1a2279b771
--- /dev/null
+++ b/vendor/magento/module-catalog-graph-ql/Plugin/ProductAttributeSortInput.php
@@ -0,0 +1,95 @@
+getSortFieldsOrder($info, $args['sort']);
+ }
+ return [$field, $context, $info, $value, $args];
+ }
+
+ /**
+ * Get sort fields in the original order
+ *
+ * @param ResolveInfo $info
+ * @param array $sortFields
+ * @return array
+ * @throws \Exception
+ */
+ private function getSortFieldsOrder(ResolveInfo $info, array $sortFields)
+ {
+ $sortFieldsOriginal = [];
+ Visitor::visit(
+ $info->operation,
+ [
+ 'enter' => [
+ NodeKind::ARGUMENT => function (Node $node) use (&$sortFieldsOriginal, $sortFields) {
+ if ($node->name->value === 'sort') {
+ Visitor::visit(
+ $node->value,
+ [
+ 'enter' => [
+ NodeKind::OBJECT_FIELD =>
+ function (Node $node) use (&$sortFieldsOriginal, $sortFields) {
+ if (isset($sortFields[$node->name->value])) {
+ $sortFieldsOriginal[$node->name->value] =
+ $sortFields[$node->name->value];
+ }
+ }
+ ]
+ ]
+ );
+ return Visitor::stop();
+ }
+ }
+ ]
+ ]
+ );
+ return $sortFieldsOriginal;
+ }
+}
diff --git a/vendor/magento/module-catalog-graph-ql/etc/graphql/di.xml b/vendor/magento/module-catalog-graph-ql/etc/graphql/di.xml
index d66ee50ba03a..a55ee59f4a00 100644
--- a/vendor/magento/module-catalog-graph-ql/etc/graphql/di.xml
+++ b/vendor/magento/module-catalog-graph-ql/etc/graphql/di.xml
@@ -208,4 +208,11 @@
+
+
+
+
+
+
+