|
22 | 22 | <actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/> |
23 | 23 | <!-- Create category for products --> |
24 | 24 | <createData entity="_defaultCategory" stepKey="createCategory"/> |
25 | | - <!-- Step-2: Create a dropdown product attribute with two options --> |
26 | | - <createData entity="DropdownSizeAttributeData" stepKey="createDropdownAttribute"/> |
27 | | - <createData entity="DropdownSizeOptionSmall" stepKey="createAttributeOptionSmall"> |
| 25 | + <!-- Step-2: Create a dropdown product attribute --> |
| 26 | + <createData entity="productDropDownAttribute" stepKey="createDropdownAttribute"> |
| 27 | + <field key="attribute_code">my_size</field> |
| 28 | + <field key="default_frontend_label">my size</field> |
| 29 | + <field key="frontend_input">select</field> |
| 30 | + <field key="scope">global</field> |
| 31 | + <field key="is_searchable">true</field> |
| 32 | + <field key="is_visible_in_advanced_search">true</field> |
| 33 | + <field key="is_visible_on_front">true</field> |
| 34 | + <field key="is_filterable">true</field> |
| 35 | + <field key="is_filterable_in_search">true</field> |
| 36 | + <field key="used_in_product_listing">true</field> |
| 37 | + <field key="is_used_for_promo_rules">true</field> |
| 38 | + <field key="is_comparable">true</field> |
| 39 | + <field key="used_for_sort_by">true</field> |
| 40 | + </createData> |
| 41 | + <createData entity="productAttributeOption" stepKey="createAttributeOptionSmall"> |
| 42 | + <requiredEntity createDataKey="createDropdownAttribute"/> |
| 43 | + <field key="label">Small</field> |
| 44 | + <field key="sort_order">0</field> |
| 45 | + </createData> |
| 46 | + <createData entity="productAttributeOption" stepKey="createAttributeOptionMedium"> |
28 | 47 | <requiredEntity createDataKey="createDropdownAttribute"/> |
| 48 | + <field key="label">Medium</field> |
| 49 | + <field key="sort_order">1</field> |
29 | 50 | </createData> |
30 | | - <createData entity="DropdownSizeOptionLarge" stepKey="createAttributeOptionLarge"> |
| 51 | + <createData entity="productAttributeOption" stepKey="createAttributeOptionLarge"> |
31 | 52 | <requiredEntity createDataKey="createDropdownAttribute"/> |
| 53 | + <field key="label">Large</field> |
| 54 | + <field key="sort_order">2</field> |
| 55 | + </createData> |
| 56 | + <!-- Step-3: Create a text swatch product attribute --> |
| 57 | + <createData entity="productDropDownAttribute" stepKey="createTextSwatchAttribute"> |
| 58 | + <field key="attribute_code">color_swatch</field> |
| 59 | + <field key="default_frontend_label">color1</field> |
| 60 | + <field key="frontend_input">swatch_text</field> |
| 61 | + <field key="scope">global</field> |
| 62 | + <field key="is_searchable">true</field> |
| 63 | + <field key="is_visible_in_advanced_search">true</field> |
| 64 | + <field key="is_visible_on_front">true</field> |
| 65 | + <field key="is_filterable">true</field> |
| 66 | + <field key="is_filterable_in_search">true</field> |
| 67 | + <field key="used_in_product_listing">true</field> |
| 68 | + <field key="is_used_for_promo_rules">true</field> |
| 69 | + <field key="is_comparable">true</field> |
| 70 | + <field key="used_for_sort_by">true</field> |
| 71 | + </createData> |
| 72 | + <createData entity="productAttributeOption" stepKey="createAttributeOptionBlack"> |
| 73 | + <requiredEntity createDataKey="createTextSwatchAttribute"/> |
| 74 | + <field key="label">Black</field> |
| 75 | + <field key="sort_order">0</field> |
32 | 76 | </createData> |
33 | | - <!-- Step-3: Create a text swatch product attribute with two options --> |
34 | | - <createData entity="TextSwatchColorAttributeData" stepKey="createTextSwatchAttribute"/> |
35 | | - <createData entity="TextSwatchOptionBlack" stepKey="createAttributeOptionBlack"> |
| 77 | + <createData entity="productAttributeOption" stepKey="createAttributeOptionWhite"> |
36 | 78 | <requiredEntity createDataKey="createTextSwatchAttribute"/> |
| 79 | + <field key="label">White</field> |
| 80 | + <field key="sort_order">1</field> |
37 | 81 | </createData> |
38 | | - <createData entity="TextSwatchOptionWhite" stepKey="createAttributeOptionWhite"> |
| 82 | + <createData entity="productAttributeOption" stepKey="createAttributeOptionBlue"> |
39 | 83 | <requiredEntity createDataKey="createTextSwatchAttribute"/> |
| 84 | + <field key="label">Blue</field> |
| 85 | + <field key="sort_order">2</field> |
40 | 86 | </createData> |
41 | 87 | <!-- Create configurable products --> |
42 | 88 | <createData entity="ApiConfigurableProduct" stepKey="createConfigProduct1"> |
43 | 89 | <requiredEntity createDataKey="createCategory"/> |
44 | | - <field key="name">{{ConfigurableProduct1.name}}</field> |
45 | | - <field key="sku">{{ConfigurableProduct1.sku}}</field> |
46 | | - <field key="price">{{ConfigurableProduct1.price}}</field> |
| 90 | + <field key="name">Conf 1</field> |
| 91 | + <field key="sku">conf-1</field> |
| 92 | + <field key="price">100</field> |
47 | 93 | </createData> |
48 | 94 | <createData entity="ApiConfigurableProduct" stepKey="createConfigProduct2"> |
49 | 95 | <requiredEntity createDataKey="createCategory"/> |
50 | | - <field key="name">{{ConfigurableProduct2.name}}</field> |
51 | | - <field key="sku">{{ConfigurableProduct2.sku}}</field> |
52 | | - <field key="price">{{ConfigurableProduct2.price}}</field> |
| 96 | + <field key="name">Conf 2</field> |
| 97 | + <field key="sku">conf-2</field> |
| 98 | + <field key="price">200</field> |
53 | 99 | </createData> |
54 | 100 | </before> |
55 | 101 | <after> |
|
79 | 125 | </actionGroup> |
80 | 126 | <!-- Set custom prices for Small and Large variants --> |
81 | 127 | <actionGroup ref="ChangeConfigurableProductChildProductPriceActionGroup" stepKey="changePriceForSmall"> |
82 | | - <argument name="productAttributes" value="{{SizeAttributeDisplay.small}}"/> |
| 128 | + <argument name="productAttributes" value="my size: Small"/> |
83 | 129 | <argument name="productPrice" value="110"/> |
84 | 130 | </actionGroup> |
85 | 131 | <actionGroup ref="ChangeConfigurableProductChildProductPriceActionGroup" stepKey="changePriceForLarge"> |
86 | | - <argument name="productAttributes" value="{{SizeAttributeDisplay.large}}"/> |
| 132 | + <argument name="productAttributes" value="my size: Large"/> |
87 | 133 | <argument name="productPrice" value="130"/> |
88 | 134 | </actionGroup> |
89 | 135 | <actionGroup ref="SaveConfigurableProductAddToCurrentAttributeSetActionGroup" stepKey="saveConfigProduct1"/> |
|
101 | 147 | <click selector="{{AdminCreateProductConfigurationsPanel.attributeCheckbox($createTextSwatchAttribute.attribute_code$)}}" stepKey="selectColorAttribute"/> |
102 | 148 | <click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickOnNextButton1ForConf2"/> |
103 | 149 | <!-- Select only Small and Large for my_size, and Black and White for color_swatch --> |
104 | | - <waitForElementVisible selector="{{AdminCreateProductConfigurationsPanel.attributeCheckboxByName(AttributeOptionSmall.value)}}" stepKey="waitForOptionsForConf2"/> |
105 | | - <click selector="{{AdminCreateProductConfigurationsPanel.attributeCheckboxByName(AttributeOptionSmall.value)}}" stepKey="selectSmallOptionForConf2"/> |
106 | | - <click selector="{{AdminCreateProductConfigurationsPanel.attributeCheckboxByName(AttributeOptionLarge.value)}}" stepKey="selectLargeOptionForConf2"/> |
107 | | - <click selector="{{AdminCreateProductConfigurationsPanel.attributeCheckboxByName(AttributeOptionBlack.value)}}" stepKey="selectBlackOptionForConf2"/> |
108 | | - <click selector="{{AdminCreateProductConfigurationsPanel.attributeCheckboxByName(AttributeOptionWhite.value)}}" stepKey="selectWhiteOptionForConf2"/> |
| 150 | + <waitForElementVisible selector="{{AdminCreateProductConfigurationsPanel.attributeCheckboxByName('Small')}}" stepKey="waitForOptionsForConf2"/> |
| 151 | + <click selector="{{AdminCreateProductConfigurationsPanel.attributeCheckboxByName('Small')}}" stepKey="selectSmallOptionForConf2"/> |
| 152 | + <click selector="{{AdminCreateProductConfigurationsPanel.attributeCheckboxByName('Large')}}" stepKey="selectLargeOptionForConf2"/> |
| 153 | + <click selector="{{AdminCreateProductConfigurationsPanel.attributeCheckboxByName('Black')}}" stepKey="selectBlackOptionForConf2"/> |
| 154 | + <click selector="{{AdminCreateProductConfigurationsPanel.attributeCheckboxByName('White')}}" stepKey="selectWhiteOptionForConf2"/> |
109 | 155 | <click selector="{{AdminCreateProductConfigurationsPanel.next}}" stepKey="clickOnNextButton2ForConf2"/> |
110 | 156 | <!-- Apply single quantity to all SKUs --> |
111 | 157 | <waitForElementVisible selector="{{AdminCreateProductConfigurationsPanel.applySingleQuantityToEachSkus}}" stepKey="waitForQuantitySection"/> |
|
117 | 163 | <waitForElementVisible selector="{{AdminProductFormActionSection.saveButton}}" stepKey="waitForSaveButtonForConf2"/> |
118 | 164 | <!-- Set custom prices for all variants --> |
119 | 165 | <actionGroup ref="ChangeConfigurableProductChildProductPriceActionGroup" stepKey="changePriceForBlackSmall"> |
120 | | - <argument name="productAttributes" value="{{SizeAttributeDisplay.small_black}}"/> |
| 166 | + <argument name="productAttributes" value="my size: Small, color1: Black"/> |
121 | 167 | <argument name="productPrice" value="210"/> |
122 | 168 | </actionGroup> |
123 | 169 | <actionGroup ref="ChangeConfigurableProductChildProductPriceActionGroup" stepKey="changePriceForBlackLarge"> |
124 | | - <argument name="productAttributes" value="{{SizeAttributeDisplay.large_black}}"/> |
| 170 | + <argument name="productAttributes" value="my size: Large, color1: Black"/> |
125 | 171 | <argument name="productPrice" value="230"/> |
126 | 172 | </actionGroup> |
127 | 173 | <actionGroup ref="ChangeConfigurableProductChildProductPriceActionGroup" stepKey="changePriceForWhiteSmall"> |
128 | | - <argument name="productAttributes" value="{{SizeAttributeDisplay.small_white}}"/> |
| 174 | + <argument name="productAttributes" value="my size: Small, color1: White"/> |
129 | 175 | <argument name="productPrice" value="250"/> |
130 | 176 | </actionGroup> |
131 | 177 | <actionGroup ref="ChangeConfigurableProductChildProductPriceActionGroup" stepKey="changePriceForWhiteLarge"> |
132 | | - <argument name="productAttributes" value="{{SizeAttributeDisplay.large_white}}"/> |
| 178 | + <argument name="productAttributes" value="my size: Large, color1: White"/> |
133 | 179 | <argument name="productPrice" value="270"/> |
134 | 180 | </actionGroup> |
135 | 181 | <actionGroup ref="SaveConfigurableProductAddToCurrentAttributeSetActionGroup" stepKey="saveConfigProduct2"/> |
|
140 | 186 | <actionGroup ref="AdminSaveAndContinueWidgetActionGroup" stepKey="saveWidget"/> |
141 | 187 | <!-- Step-7: Open Conf 1 product page on storefront and validate price changes --> |
142 | 188 | <actionGroup ref="StorefrontOpenProductPageActionGroup" stepKey="openConf1ProductPage"> |
143 | | - <argument name="productUrl" value="{{ConfigurableProduct1.sku}}"/> |
| 189 | + <argument name="productUrl" value="conf-1"/> |
144 | 190 | </actionGroup> |
145 | 191 | <waitForElementVisible selector="{{StorefrontProductInfoMainSection.productName}}" stepKey="waitForProductName"/> |
146 | | - <waitForText selector="{{StorefrontProductInfoMainSection.productName}}" userInput="{{ConfigurableProduct1.name}}" stepKey="verifyProductName"/> |
| 192 | + <waitForText selector="{{StorefrontProductInfoMainSection.productName}}" userInput="Conf 1" stepKey="verifyProductName"/> |
147 | 193 | <!-- Verify default price before selection --> |
148 | 194 | <waitForElementVisible selector="{{StorefrontProductInfoMainSection.productPrice}}" stepKey="waitForDefaultPrice"/> |
149 | 195 | <!-- Select Small option and verify price --> |
150 | 196 | <waitForElementVisible selector="{{StorefrontProductInfoMainSection.productAttributeOptionsSelectButton}}" stepKey="waitForAttributeDropdown"/> |
151 | | - <selectOption selector="{{StorefrontProductInfoMainSection.productAttributeOptionsSelectButton}}" userInput="{{AttributeOptionSmall.value}}" stepKey="selectSmallOption"/> |
| 197 | + <selectOption selector="{{StorefrontProductInfoMainSection.productAttributeOptionsSelectButton}}" userInput="Small" stepKey="selectSmallOption"/> |
152 | 198 | <waitForElementVisible selector="{{StorefrontProductInfoMainSection.productPrice}}" stepKey="waitForPriceAfterSmallSelection"/> |
153 | 199 | <waitForText selector="{{StorefrontProductInfoMainSection.productPrice}}" userInput="$110.00" stepKey="verifySmallPrice"/> |
154 | 200 | <!-- Select Large option and verify price changes --> |
155 | | - <selectOption selector="{{StorefrontProductInfoMainSection.productAttributeOptionsSelectButton}}" userInput="{{AttributeOptionLarge.value}}" stepKey="selectLargeOption"/> |
| 201 | + <selectOption selector="{{StorefrontProductInfoMainSection.productAttributeOptionsSelectButton}}" userInput="Large" stepKey="selectLargeOption"/> |
156 | 202 | <waitForElementVisible selector="{{StorefrontProductInfoMainSection.productPrice}}" stepKey="waitForPriceAfterLargeSelection"/> |
157 | 203 | <waitForText selector="{{StorefrontProductInfoMainSection.productPrice}}" userInput="$130.00" stepKey="verifyLargePrice"/> |
158 | 204 | <!-- Select Small again and verify price changes back --> |
159 | | - <selectOption selector="{{StorefrontProductInfoMainSection.productAttributeOptionsSelectButton}}" userInput="{{AttributeOptionSmall.value}}" stepKey="selectSmallOptionAgain"/> |
| 205 | + <selectOption selector="{{StorefrontProductInfoMainSection.productAttributeOptionsSelectButton}}" userInput="Small" stepKey="selectSmallOptionAgain"/> |
160 | 206 | <waitForElementVisible selector="{{StorefrontProductInfoMainSection.productPrice}}" stepKey="waitForPriceAfterSmallSelectionAgain"/> |
161 | 207 | <waitForText selector="{{StorefrontProductInfoMainSection.productPrice}}" userInput="$110.00" stepKey="verifySmallPriceAgain"/> |
162 | 208 | </test> |
|
0 commit comments