Esempio n. 1
0
 /**
  * Select order item.
  *
  * @param FixtureInterface $product
  * @return void
  */
 public function selectItem(FixtureInterface $product)
 {
     /** @var BundleProduct $product */
     $checkoutData = $product->getCheckoutData();
     $bundleSelection = $product->getBundleSelections();
     $bundleOptions = isset($checkoutData['options']['bundle_options']) ? $checkoutData['options']['bundle_options'] : [];
     $labels = [];
     foreach ($bundleOptions as $optionKey => $option) {
         $optionKey = substr($optionKey, -1);
         $productKey = substr($option['value']['name'], -1);
         $labels[] = $bundleSelection[$optionKey]['assigned_products'][$productKey]['name'];
     }
     $this->searchAndSelect(['name' => $product->getName()]);
     $this->getTemplateBlock()->waitLoader();
     $this->getSelectItemsBlock()->fill($labels);
     $this->getTemplateBlock()->waitLoader();
 }
Esempio n. 2
0
 /**
  * Get product options
  *
  * @param FixtureInterface $product
  * @return array
  * @throws \Exception
  */
 public function getOptions(FixtureInterface $product)
 {
     /** @var BundleProduct  $product */
     $bundleSelections = $product->getBundleSelections();
     $bundleOptions = isset($bundleSelections['bundle_options']) ? $bundleSelections['bundle_options'] : [];
     $listFormOptions = $this->getListOptions();
     $formOptions = [];
     foreach ($bundleOptions as $option) {
         $title = $option['title'];
         if (!isset($listFormOptions[$title])) {
             throw new \Exception("Can't find option: \"{$title}\"");
         }
         /** @var SimpleElement $optionElement */
         $optionElement = $listFormOptions[$title];
         $getTypeData = 'get' . $this->optionNameConvert($option['type']) . 'Data';
         $optionData = $this->{$getTypeData}($optionElement);
         $optionData['title'] = $title;
         $optionData['type'] = $option['type'];
         $optionData['is_require'] = $optionElement->find($this->required, Locator::SELECTOR_XPATH)->isVisible() ? 'Yes' : 'No';
         $formOptions[] = $optionData;
     }
     return $formOptions;
 }