/** * Modify "Price Type" fields * * @param array $meta * @return array */ private function modifyPriceTypeFields(array $meta) { $isConfigurable = $this->locator->getProduct()->getTypeId() === ConfigurableProductType::TYPE_CODE; $paths = $this->arrayManager->findPaths(CustomOptionsModifier::FIELD_PRICE_TYPE_NAME, $meta, CustomOptionsModifier::GROUP_CUSTOM_OPTIONS_NAME . '/children', 'children'); foreach ($paths as $fieldPath) { $meta = $this->arrayManager->merge($fieldPath . static::META_CONFIG_PATH, $meta, ['component' => 'Magento_ConfigurableProduct/js/components/custom-options-price-type', 'isConfigurable' => $isConfigurable, 'bannedOptions' => ['percent'], 'imports' => ['updateOptions' => 'ns = ${ $.ns }, index = ' . ConfigurablePanel::CONFIGURABLE_MATRIX . ':isEmpty']]); } return $meta; }
/** * @param array|mixed $indexes * @param array $data * @param string|array|null $startPath * @param string|array|null $internalPath * @param array $result * @dataProvider findPathsDataProvider */ public function testFindPaths($indexes, array $data, $startPath, $internalPath, $result) { $this->assertSame($result, $this->arrayManager->findPaths($indexes, $data, $startPath, $internalPath)); }