/** * Return product options on view page. * * @param InjectableFixture $product * @return array */ public function getOptions(InjectableFixture $product) { $options = []; $associatedProducts = $product->getAssociated(); foreach ($associatedProducts as $product) { $subProductBlock = $this->_rootElement->find(sprintf($this->subProductByName, $product['name']), Locator::SELECTOR_XPATH); $options[] = ['name' => $subProductBlock->find($this->productName)->getText(), 'qty' => $subProductBlock->find($this->qty)->getValue()]; } return $options; }
/** * Fill grouped product options. * * @param InjectableFixture $product * @return void */ public function fillOptions(InjectableFixture $product) { $checkoutData = $checkoutData = $product->getCheckoutData(); $associatedProducts = $product->getAssociated(); if (isset($checkoutData['options'])) { $groupedBlock = $this->getGroupedProductBlock(); foreach ($checkoutData['options'] as $key => $option) { $groupedBlock->getGroupedItemForm($associatedProducts[$key]['name'])->fillOption($option); } } }