Skip to content

Commit 28596de

Browse files
committed
Deprecate setPaymentMethodAndPlaceOrderMutation
Fixes magento/graphql-ce#875
1 parent d93d288 commit 28596de

File tree

3 files changed

+39
-12
lines changed

3 files changed

+39
-12
lines changed

app/code/Magento/QuoteGraphQl/Model/Resolver/SetPaymentAndPlaceOrder.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,11 @@
2020
use Magento\Sales\Api\OrderRepositoryInterface;
2121

2222
/**
23-
* @inheritdoc
23+
* Resolver for setting payment method and placing order
24+
*
25+
* @deprecated Should use setPaymentMethodOnCart and placeOrder mutations in single request.
26+
* @see \Magento\QuoteGraphQl\Model\Resolver\SetPaymentMethodOnCart
27+
* @see \Magento\QuoteGraphQl\Model\Resolver\PlaceOrder
2428
*/
2529
class SetPaymentAndPlaceOrder implements ResolverInterface
2630
{

app/code/Magento/QuoteGraphQl/etc/schema.graphqls

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ type Mutation {
1818
setShippingMethodsOnCart(input: SetShippingMethodsOnCartInput): SetShippingMethodsOnCartOutput @resolver(class: "\\Magento\\QuoteGraphQl\\Model\\Resolver\\SetShippingMethodsOnCart")
1919
setPaymentMethodOnCart(input: SetPaymentMethodOnCartInput): SetPaymentMethodOnCartOutput @resolver(class: "Magento\\QuoteGraphQl\\Model\\Resolver\\SetPaymentMethodOnCart")
2020
setGuestEmailOnCart(input: SetGuestEmailOnCartInput): SetGuestEmailOnCartOutput @resolver(class: "Magento\\QuoteGraphQl\\Model\\Resolver\\SetGuestEmailOnCart")
21-
setPaymentMethodAndPlaceOrder(input: SetPaymentMethodAndPlaceOrderInput): PlaceOrderOutput @resolver(class: "\\Magento\\QuoteGraphQl\\Model\\Resolver\\SetPaymentAndPlaceOrder")
21+
setPaymentMethodAndPlaceOrder(input: SetPaymentMethodAndPlaceOrderInput): PlaceOrderOutput @deprecated(reason: "Should use setPaymentMethodOnCart and placeOrder mutations in single request.") @resolver(class: "\\Magento\\QuoteGraphQl\\Model\\Resolver\\SetPaymentAndPlaceOrder")
2222
placeOrder(input: PlaceOrderInput): PlaceOrderOutput @resolver(class: "\\Magento\\QuoteGraphQl\\Model\\Resolver\\PlaceOrder")
2323
}
2424

dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/SetPaymentMethodAndPlaceOrderTest.php

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,14 @@ public function testSetPaymentOnCartWithSimpleProduct()
7878
$query = $this->getQuery($maskedQuoteId, $methodCode);
7979
$response = $this->graphQlMutation($query, [], '', $this->getHeaderMap());
8080

81-
self::assertArrayHasKey('setPaymentMethodAndPlaceOrder', $response);
82-
self::assertArrayHasKey('order', $response['setPaymentMethodAndPlaceOrder']);
83-
self::assertArrayHasKey('order_id', $response['setPaymentMethodAndPlaceOrder']['order']);
81+
self::assertArrayHasKey('setPaymentMethodOnCart', $response);
82+
self::assertArrayHasKey('cart', $response['setPaymentMethodOnCart']);
83+
self::assertArrayHasKey('selected_payment_method', $response['setPaymentMethodOnCart']['cart']);
84+
self::assertArrayHasKey('code', $response['setPaymentMethodOnCart']['cart']['selected_payment_method']);
85+
self::assertEquals($methodCode, $response['setPaymentMethodOnCart']['cart']['selected_payment_method']['code']);
86+
87+
self::assertArrayHasKey('order', $response['placeOrder']);
88+
self::assertArrayHasKey('order_id', $response['placeOrder']['order']);
8489
}
8590

8691
/**
@@ -116,9 +121,14 @@ public function testSetPaymentOnCartWithVirtualProduct()
116121
$query = $this->getQuery($maskedQuoteId, $methodCode);
117122
$response = $this->graphQlMutation($query, [], '', $this->getHeaderMap());
118123

119-
self::assertArrayHasKey('setPaymentMethodAndPlaceOrder', $response);
120-
self::assertArrayHasKey('order', $response['setPaymentMethodAndPlaceOrder']);
121-
self::assertArrayHasKey('order_id', $response['setPaymentMethodAndPlaceOrder']['order']);
124+
self::assertArrayHasKey('setPaymentMethodOnCart', $response);
125+
self::assertArrayHasKey('cart', $response['setPaymentMethodOnCart']);
126+
self::assertArrayHasKey('selected_payment_method', $response['setPaymentMethodOnCart']['cart']);
127+
self::assertArrayHasKey('code', $response['setPaymentMethodOnCart']['cart']['selected_payment_method']);
128+
self::assertEquals($methodCode, $response['setPaymentMethodOnCart']['cart']['selected_payment_method']['code']);
129+
130+
self::assertArrayHasKey('order', $response['placeOrder']);
131+
self::assertArrayHasKey('order_id', $response['placeOrder']['order']);
122132
}
123133

124134
/**
@@ -224,12 +234,25 @@ private function getQuery(
224234
) : string {
225235
return <<<QUERY
226236
mutation {
227-
setPaymentMethodAndPlaceOrder(input: {
228-
cart_id: "$maskedQuoteId"
237+
setPaymentMethodOnCart(
238+
input: {
239+
cart_id: "{$maskedQuoteId}"
229240
payment_method: {
230-
code: "$methodCode"
241+
code: "{$methodCode}"
242+
}
243+
}
244+
) {
245+
cart {
246+
selected_payment_method {
247+
code
231248
}
232-
}) {
249+
}
250+
}
251+
placeOrder(
252+
input: {
253+
cart_id: "{$maskedQuoteId}"
254+
}
255+
) {
233256
order {
234257
order_id
235258
}

0 commit comments

Comments
 (0)