Skip to content

Commit c95051e

Browse files
committed
ACQE-8463:Admin cannot handle order placement when payment methods are not available
- Added new test file
1 parent 47721be commit c95051e

File tree

3 files changed

+79
-0
lines changed

3 files changed

+79
-0
lines changed

app/code/Magento/Sales/Test/Mftf/Data/OrderData.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,7 @@
4545
<data key="processing">Processing</data>
4646
<data key="ordered">Ordered</data>
4747
</entity>
48+
<entity name="AdminPaymentErrorMessage" type="message">
49+
<data key="error_Message">This payment method is not available.</data>
50+
</entity>
4851
</entities>

app/code/Magento/Sales/Test/Mftf/Section/AdminOrderFormPaymentSection.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,7 @@
3838
<element name="DHLShipping" type="text" selector="//dd[@class='admin__order-shipment-methods-options' and contains(text(),'{{paymentMethodName}}')]" parameterized="true"/>
3939
<element name="shippingMethodName" type="text" selector="//*[contains(text(), '{{paymentMethodName}}')]" parameterized="true"/>
4040
<element name="verifyCheckMoneyPayment" type="text" selector="//label[@for='p_method_checkmo']"/>
41+
<element name="paymentErrorMessage" type="text" selector="#order-message div.message-error"/>
42+
<element name="verifyCashOnDelivery" type="text" selector="//label[@for='p_method_cashondelivery']"/>
4143
</section>
4244
</sections>
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright 2025 Adobe
5+
* All Rights Reserved.
6+
*/
7+
-->
8+
9+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
11+
<test name="AdminOrderPlacementWithPaymentMethodConstraintsTest">
12+
<annotations>
13+
<features value="Sales"/>
14+
<stories value="Admin Order Management"/>
15+
<title value="Admin cannot handle order placement when payment methods are not available"/>
16+
<description value="Verify admin order creation behavior when payment methods are disabled or not available due to order total constraints"/>
17+
<severity value="MINOR"/>
18+
<testCaseId value="AC-13220"/>
19+
<group value="payment"/>
20+
<group value="sales"/>
21+
<group value="order_management"/>
22+
</annotations>
23+
<before>
24+
<!-- Precondition 1: Create product -->
25+
<createData entity="SimpleProduct_25" stepKey="simpleProduct">
26+
<field key="price">10</field>
27+
</createData>
28+
<createData entity="Simple_US_Customer_CA" stepKey="simpleCustomer"/>
29+
<!-- Step 1&2: Disable payment method one of "Check/Money Order" and "Zero Subtotal Checkout" -->
30+
<actionGroup ref="CliDisableCheckMoneyOrderPaymentMethodActionGroup" stepKey="disabledCheckMoneyOrderValue"/>
31+
<magentoCLI command="config:set {{DisableZeroSubtotalCheckoutConfigData.path}} {{DisableZeroSubtotalCheckoutConfigData.value}}" stepKey="disabledZeroSubtotalCheckoutOrderValue"/>
32+
<!-- Step 3: Enable CashOnDelivery -->
33+
<createData entity="CashOnDeliveryPaymentMethodDefault" stepKey="enableCashOnDeliveryPaymentMethod"/>
34+
<!-- Step 4: Set the Maximum Order Total and Maximum Order Total CashOnDelivery -->
35+
<magentoCLI command="config:set payment/cashondelivery/max_order_total 100" stepKey="cashOnDeliveryMaximumOrderTotalConfigData"/>
36+
<magentoCLI command="config:set payment/cashondelivery/min_order_total 1" stepKey="cashOnDeliveryMinimumOrderTotalConfigData"/>
37+
<actionGroup ref="CliIndexerReindexActionGroup" stepKey="runCronReindex">
38+
<argument name="indices" value=""/>
39+
</actionGroup>
40+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
41+
</before>
42+
<after>
43+
<!-- Clean up created data -->
44+
<deleteData createDataKey="simpleProduct" stepKey="deleteProduct"/>
45+
<deleteData createDataKey="simpleCustomer" stepKey="deleteCustomer"/>
46+
<!-- Restore original payment method configurations -->
47+
<magentoCLI command="config:set {{EnableCheckMoneyOrderPaymentMethod.path}} {{EnableCheckMoneyOrderPaymentMethod.value}}" stepKey="enableCheckMoneyOrderPaymentMethod"/>
48+
<magentoCLI command="config:set payment/cashondelivery/active 0" stepKey="restoreCOD"/>
49+
<!-- Clear cache and logout -->
50+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logoutFromAdmin"/>
51+
</after>
52+
<!-- Step 5: Create an new order from admin -->
53+
<actionGroup ref="AdminNavigateToNewOrderPageExistingCustomerActionGroup" stepKey="navigateToNewOrderWithExistingCustomer">
54+
<argument name="customer" value="$$simpleCustomer$$"/>
55+
</actionGroup>
56+
<!-- Step 6: Add products to cart below 100$ and check COD available -->
57+
<actionGroup ref="AddSimpleProductToOrderActionGroup" stepKey="addSimpleProductToOrder">
58+
<argument name="product" value="$$simpleProduct$$"/>
59+
<argument name="productQty" value="1"/>
60+
</actionGroup>
61+
<waitForElementVisible selector="{{AdminOrderFormPaymentSection.verifyCashOnDelivery}}" stepKey="verifyCashOnDeliveryPaymentMethodIsAvaiable"/>
62+
<!-- Step 7: Add more products or increase quantity more than 100$ and check COD is not avaiable -->
63+
<actionGroup ref="AddSimpleProductToOrderActionGroup" stepKey="addSimpleProductAgainByChangingQuantity">
64+
<argument name="product" value="$$simpleProduct$$"/>
65+
<argument name="productQty" value="11"/>
66+
</actionGroup>
67+
<waitForElementNotVisible selector="{{AdminOrderFormPaymentSection.verifyCashOnDelivery}}" stepKey="verifyCashOnDeliveryPaymentMethodNotAvaiable"/>
68+
<!-- Step 8: Submit order when no payment methods visible and verify error message -->
69+
<actionGroup ref="OrderSelectFlatRateShippingActionGroup" stepKey="orderSelectFlatRateShippingMethod"/>
70+
<actionGroup ref="AdminCheckoutSelectCheckMoneyOrderBillingMethodActionGroup" stepKey="selectBillingMethod"/>
71+
<actionGroup ref="AdminOrderClickSubmitOrderActionGroup" stepKey="submitOrder"/>
72+
<waitForText selector="{{AdminOrderFormPaymentSection.paymentErrorMessage}}" userInput="{{AdminPaymentErrorMessage.error_Message}}" stepKey="verifyOrderDonotPlacedAndSeeErrorMessage"/>
73+
</test>
74+
</tests>

0 commit comments

Comments
 (0)