diff --git a/app/code/Magento/CatalogMessageBroker/Model/DataMapper/AttributeTypeInterface.php b/app/code/Magento/CatalogMessageBroker/Model/DataMapper/AttributeTypeInterface.php deleted file mode 100644 index e62da1da7..000000000 --- a/app/code/Magento/CatalogMessageBroker/Model/DataMapper/AttributeTypeInterface.php +++ /dev/null @@ -1,21 +0,0 @@ -attributePool = $attributePool; - } - /** * @inheritDoc */ @@ -32,16 +19,17 @@ public function map(array $productData): array $dynamicAttributes = []; foreach ($productData['attributes'] ?? [] as $attribute) { - $attributeType = $this->attributePool[$attribute['type']]; - if (!$attributeType instanceof \Magento\CatalogMessageBroker\Model\DataMapper\AttributeTypeInterface) { - continue; + $values = []; + foreach ($attribute['value'] ?? [] as $option) { + $values[] = $option['value']; } $dynamicAttributes[] = [ 'code' => $attribute['attribute_code'], - 'value' => $attributeType->getAttribute($attribute), + 'type' => $attribute['type'], + 'values' => $values ]; } - return $dynamicAttributes ? ['dynamic_attributes' => $dynamicAttributes] : []; + return $dynamicAttributes ? ['attributes' => $dynamicAttributes] : []; } } diff --git a/app/code/Magento/CatalogMessageBroker/Model/DataMapper/MultiselectOptionType.php b/app/code/Magento/CatalogMessageBroker/Model/DataMapper/MultiselectOptionType.php deleted file mode 100644 index e0b78aec3..000000000 --- a/app/code/Magento/CatalogMessageBroker/Model/DataMapper/MultiselectOptionType.php +++ /dev/null @@ -1,29 +0,0 @@ - - - - - Magento\CatalogMessageBroker\Model\DataMapper\BooleanType - Magento\CatalogMessageBroker\Model\DataMapper\SelectOptionType - Magento\CatalogMessageBroker\Model\DataMapper\Type - Magento\CatalogMessageBroker\Model\DataMapper\Type - Magento\CatalogMessageBroker\Model\DataMapper\MultiselectOptionType - - - diff --git a/app/code/Magento/CatalogStorefront/Test/Api/Category/TestCategories.php b/app/code/Magento/CatalogStorefront/Test/Api/Category/TestCategories.php new file mode 100644 index 000000000..ef3533f56 --- /dev/null +++ b/app/code/Magento/CatalogStorefront/Test/Api/Category/TestCategories.php @@ -0,0 +1,242 @@ +categoriesConsumer = Bootstrap::getObjectManager()->create(CategoriesConsumer::class); + $this->catalogService = Bootstrap::getObjectManager()->create(CatalogService::class); + $this->categoriesGetRequestInterface = Bootstrap::getObjectManager()->create( + CategoriesGetRequestInterface::class + ); + $this->messageBuilder = Bootstrap::getObjectManager()->create(ChangedEntitiesMessageBuilder::class); + $this->categoryRepository = Bootstrap::getObjectManager()->create(CategoryRepositoryInterface::class); + $this->arrayMapper = Bootstrap::getObjectManager()->get(CategoryArrayMapper::class); + } + + /** + * Validate category data retrieved from SF API after whole cycle save/index/export/import + * + * @magentoDataFixture Magento/Catalog/_files/category_specific_fields.php + * @magentoDbIsolation disabled + * @param array $expected + * @throws \Throwable + * @dataProvider categoryDataProvider + */ + public function testCategoryData(array $expected): void + { + $this->runCategoryConsumer(10); + $actual = $this->getApiResults(10, $this->attributeCodes); + self::assertEquals($expected, $actual); + } + + /** + * Validate category breadcrumbs data retrieved from SF API after whole cycle save/index/export/import + * + * @magentoDataFixture Magento/Catalog/_files/category_tree.php + * @magentoDbIsolation disabled + * @param array $expected + * @throws \Throwable + * @dataProvider categoryBreadcrumbsProvider + */ + public function testCategoryBreadcrumbsData(array $expected): void + { + $this->runCategoryConsumer(402); + $actual = $this->getApiResults(402, ['breadcrumbs']); + self::assertArrayHasKey('breadcrumbs', $actual); + self::assertEquals($expected, $actual['breadcrumbs']); + } + + public function categoryDataProvider(): array + { + return [ + [ + [ + 'id' => '10', + 'path' => '1/2/3', + 'position' => 1, + 'level' => 2, + 'children_count' => 0, + 'name' => 'Category_en', + 'display_mode' => 'PRODUCTS_AND_PAGE', + 'default_sort_by' => 'price', + 'url_key' => 'category-en', + 'url_path' => 'category-en', + 'is_active' => true, + 'is_anchor' => true, + 'include_in_menu' => false, + 'available_sort_by' => [ + 0 => 'name', + 1 => 'price', + ], + 'breadcrumbs' => [], + 'description' => 'Category_en Description', + 'canonical_url' => '', + 'product_count' => 0, + 'children' => [], + 'image' => '', + 'parent_id' => '2', + 'meta_title' => 'Category_en Meta Title', + 'meta_description' => 'Category_en Meta Description', + 'meta_keywords' => 'Category_en Meta Keywords', + 'attributes' => [] + ] + ] + ]; + } + + public function categoryBreadcrumbsProvider(): array + { + return [ + [ + [ + [ + "category_id" => "400", + "category_name" => "Category 1", + "category_level" => 2, + "category_url_key" => "category-1", + "category_url_path" => "category-1" + ], + [ + "category_id" => "401", + "category_name" => "Category 1.1", + "category_level" => 3, + "category_url_key" => "category-1-1", + "category_url_path" => "category-1/category-1-1" + ] + ] + ] + ]; + } + + /** + * @param int $categoryId + * @throws NoSuchEntityException + */ + private function runCategoryConsumer($categoryId): void + { + $category = $this->categoryRepository->get($categoryId); + self::assertEquals($categoryId, $category->getId()); + $entitiesData = [ + [ + 'entity_id' => (int)$category->getId(), + ] + ]; + $message = $this->messageBuilder->build( + CategoriesConsumer::CATEGORIES_UPDATED_EVENT_TYPE, + $entitiesData, + self::STORE_CODE + ); + $this->categoriesConsumer->processMessage($message); + } + + /** + * @param int $categoryId + * @param array $attributes + * @return array + * @throws FileSystemException + * @throws RuntimeException + * @throws \Throwable + */ + private function getApiResults($categoryId, $attributes): array + { + $this->categoriesGetRequestInterface->setIds([$categoryId]); + $this->categoriesGetRequestInterface->setStore(self::STORE_CODE); + $this->categoriesGetRequestInterface->setAttributeCodes($attributes); + $catalogServiceItem = $this->catalogService->getCategories($this->categoriesGetRequestInterface); + self::assertNotEmpty($catalogServiceItem->getItems()); + $item = $catalogServiceItem->getItems()[0]; + self::assertEquals($item->getId(), $categoryId); + + return $this->arrayMapper->convertToArray($item); + } +} diff --git a/app/code/Magento/CatalogStorefront/Test/Api/Product/ProductDynamicAttributes.php b/app/code/Magento/CatalogStorefront/Test/Api/Product/ProductDynamicAttributes.php new file mode 100644 index 000000000..726ca235c --- /dev/null +++ b/app/code/Magento/CatalogStorefront/Test/Api/Product/ProductDynamicAttributes.php @@ -0,0 +1,196 @@ +catalogService = Bootstrap::getObjectManager()->create(CatalogService::class); + $this->productsGetRequestInterface = Bootstrap::getObjectManager()->create(ProductsGetRequestInterface::class); + $this->productRepository = Bootstrap::getObjectManager()->create(ProductRepositoryInterface::class); + $this->arrayMapper = Bootstrap::getObjectManager()->create(ProductArrayMapper::class); + } + + /** + * Validate product with boolean attribute + * + * @magentoDataFixture Magento_CatalogExport::Test/Api/_files/one_product_simple_with_boolean_attribute.php + * @magentoDbIsolation disabled + * @throws NoSuchEntityException + */ + public function testProductBooleanAttribute(): void + { + $expected = [ + [ + 'code' => 'boolean_attribute', + 'type' => 'boolean', + 'values' => ['yes'] + ] + ]; + $actual = $this->getApiResult('simple_with_boolean'); + self::assertArrayHasKey('attributes', $actual); + self::assertEquals($expected, $actual['attributes']); + } + + /** + * Validate product with multiselect attribute + * + * @magentoApiDataFixture Magento_CatalogExport::Test/Api/_files/one_product_simple_with_multiselect_attribute.php + * @magentoDbIsolation disabled + */ + public function testProductMultiselectAttribute(): void + { + $expected = [ + [ + 'code' => 'multiselect_attribute', + 'type' => 'multiselect', + 'values' => ['Option 1'] + ] + ]; + $actual = $this->getApiResult('simple_with_multiselect'); + self::assertArrayHasKey('attributes', $actual); + self::assertEquals($expected, $actual['attributes']); + } + + /** + * Validate product with image attribute + * + * @magentoApiDataFixture Magento_CatalogExport::Test/Api/_files/one_product_simple_with_image_attribute.php + * @magentoDbIsolation disabled + */ + public function testProductImageAttribute(): void + { + $expected = [ + [ + 'code' => 'image_attribute', + 'type' => 'media_image', + 'values' => ['imagepath'] + ] + ]; + $actual = $this->getApiResult('simple_with_image'); + self::assertArrayHasKey('attributes', $actual); + self::assertEquals($expected, $actual['attributes']); + } + + /** + * Validate product with decimal attribute + * + * @magentoApiDataFixture Magento_CatalogExport::Test/Api/_files/one_product_simple_with_decimal_attribute.php + * @magentoDbIsolation disabled + */ + public function testProductDecimalAttribute(): void + { + $expected = [ + [ + 'code' => 'decimal_attribute', + 'type' => 'price', + 'values' => ['100.000000'] + ] + ]; + $actual = $this->getApiResult('simple_with_decimal'); + self::assertArrayHasKey('attributes', $actual); + self::assertEquals($expected, $actual['attributes']); + } + + /** + * Validate product with text editor attribute + * + * @magentoApiDataFixture Magento_CatalogExport::Test/Api/_files/one_product_simple_with_text_editor_attribute.php + * @magentoDbIsolation disabled + */ + public function testProductTextEditorAttribute(): void + { + $expected = [ + [ + 'code' => 'text_editor_attribute', + 'type' => 'textarea', + 'values' => ['text Editor Attribute test'] + ] + ]; + $actual = $this->getApiResult('simple_with_text_editor'); + self::assertArrayHasKey('attributes', $actual); + self::assertEquals($expected, $actual['attributes']); + } + + /** + * Validate product with date attribute + * + * @magentoApiDataFixture Magento_CatalogExport::Test/Api/_files/one_product_simple_with_date_attribute.php + * @magentoDbIsolation disabled + */ + public function testProductDateAttribute(): void + { + $productRepository = Bootstrap::getObjectManager()->create(ProductRepositoryInterface::class); + $product = $productRepository->get('simple_with_date'); + + $expected = [ + [ + 'code' => 'date_attribute', + 'type' => 'date', + 'values' => [$product->getData('date_attribute')] + ] + ]; + $actual = $this->getApiResult('simple_with_date'); + self::assertArrayHasKey('attributes', $actual); + self::assertEquals($expected, $actual['attributes']); + } + + public function getApiResult($sku) : array + { + $product = $this->productRepository->get($sku); + $this->productsGetRequestInterface->setIds([$product->getId()]); + $this->productsGetRequestInterface->setStore(self::STORE_CODE); + $this->productsGetRequestInterface->setAttributeCodes(['attributes']); + $catalogServiceItem = $this->catalogService->getProducts($this->productsGetRequestInterface); + self::assertNotEmpty($catalogServiceItem->getItems()); + + return $this->arrayMapper->convertToArray($catalogServiceItem->getItems()[0]); + } +} diff --git a/app/code/Magento/CatalogStorefront/Test/Api/StorefrontTestsAbstract.php b/app/code/Magento/CatalogStorefront/Test/Api/StorefrontTestsAbstract.php index 1b32c8c27..de31d879b 100644 --- a/app/code/Magento/CatalogStorefront/Test/Api/StorefrontTestsAbstract.php +++ b/app/code/Magento/CatalogStorefront/Test/Api/StorefrontTestsAbstract.php @@ -10,10 +10,12 @@ use Magento\CatalogStorefront\Model\Storage\Client\DataDefinitionInterface; use Magento\CatalogStorefront\Model\Storage\State; use Magento\Framework\App\ResourceConnection; +use Magento\Indexer\Model\Indexer; use Magento\TestFramework\Helper\Bootstrap; use PHPUnit\Framework\TestCase; use Magento\TestFramework\Workaround\ConsumerInvoker; use Magento\TestFramework\Helper\CompareArraysRecursively; +use PHPUnit\Framework\TestResult; /** * Test abstract class for store front tests @@ -30,6 +32,16 @@ abstract class StorefrontTestsAbstract extends TestCase 'catalog_data_exporter_products' ]; + /** + * @var array + */ + private const QUEUES = [ + 'catalog.category.export.queue', + 'catalog.product.export.queue', + 'storefront.catalog.product.connector', + 'storefront.catalog.category.connector', + ]; + /** * @var CompareArraysRecursively */ @@ -52,6 +64,7 @@ protected function tearDown(): void parent::tearDown(); $this->clearCatalogStorage(); $this->cleanFeeds(); + $this->cleanOldMessages(); } /** @@ -102,6 +115,39 @@ private function cleanFeeds(): void } } + /** + * Clean old messages from rabbitmq + * + * @return void + */ + private function cleanOldMessages(): void + { + if ($this->isSoap()) { + return; + } + + /** @var \Magento\Framework\Amqp\Config $amqpConfig */ + $amqpConfig = Bootstrap::getObjectManager() + ->get(\Magento\Framework\Amqp\Config::class); + + foreach (self::QUEUES as $queue) { + $amqpConfig->getChannel()->queue_purge($queue); + } + } + + /** + * Run tests and clean old messages before running other tests + * + * @param TestResult|null $result + * @return TestResult + */ + public function run(TestResult $result = null): TestResult + { + $this->cleanOldMessages(); + $this->resetIndexerToOnSave(); + return parent::run($result); + } + /** * Runs consumers before test execution * @@ -109,8 +155,20 @@ private function cleanFeeds(): void */ protected function runTest() { - $this->runConsumers(); - parent::runTest(); + if (!$this->isSoap()) { + $this->runConsumers(); + parent::runTest(); + } + } + + /** + * Check if it is SOAP request + * + * @return bool + */ + private function isSoap(): bool + { + return TESTS_WEB_API_ADAPTER === 'soap'; } /** @@ -124,6 +182,19 @@ public function runConsumers(array $consumers = []) : void $consumerInvoker->invoke($consumers); } + /** + * Resetting indexer to 'on save' mode + * + * @return void + */ + private function resetIndexerToOnSave(): void + { + $indexer = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + ->get(Indexer::class); + $indexer->load('catalog_data_exporter_products'); + $indexer->setScheduled(false); + } + /** * Compare expected and actual results * diff --git a/app/code/Magento/CatalogStorefrontApi/Api/Catalog.php b/app/code/Magento/CatalogStorefrontApi/Api/Catalog.php index 7c1cd63c2..1bd953f1e 100644 --- a/app/code/Magento/CatalogStorefrontApi/Api/Catalog.php +++ b/app/code/Magento/CatalogStorefrontApi/Api/Catalog.php @@ -266,20 +266,25 @@ private function getProductsFromProto(ProductsGetResult $value): ProductsGetResu $r->setSamples($res); $r->setVisibility($item1->getVisibility()); $res = []; - foreach ($item1->getDynamicAttributes() as $item23) { - // convert data from \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue - // to \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValue - /** @var \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue $item23 **/ + foreach ($item1->getAttributes() as $item23) { + // convert data from \Magento\CatalogStorefrontApi\Proto\Attribute + // to \Magento\CatalogStorefrontApi\Api\Data\Attribute + /** @var \Magento\CatalogStorefrontApi\Proto\Attribute $item23 **/ $p = function () use ($item23) { - $r = new \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValue(); + $r = new \Magento\CatalogStorefrontApi\Api\Data\Attribute(); $r->setCode($item23->getCode()); - $r->setValue($item23->getValue()); + $r->setType($item23->getType()); + $values = []; + foreach ($item23->getValues() as $newValue) { + $values[] = $newValue; + } + $r->setValues($values); return $r; }; $out = $p(); $res[] = $out; } - $r->setDynamicAttributes($res); + $r->setAttributes($res); $r->setMetaDescription($item1->getMetaDescription()); $r->setMetaKeyword($item1->getMetaKeyword()); $r->setMetaTitle($item1->getMetaTitle()); @@ -706,20 +711,25 @@ private function importProductsToProto(ImportProductsRequestInterface $value): I $r->setSamples($res); $r->setVisibility($prop2->getVisibility()); $res = []; - foreach ($prop2->getDynamicAttributes() as $item24) { - // convert data from \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValue - // to \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue - /** @var \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValue $item24 **/ + foreach ($prop2->getAttributes() as $item24) { + // convert data from \Magento\CatalogStorefrontApi\Api\Data\Attribute + // to \Magento\CatalogStorefrontApi\Proto\Attribute + /** @var \Magento\CatalogStorefrontApi\Api\Data\Attribute $item24 **/ $p = function () use ($item24) { - $r = new \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue(); + $r = new \Magento\CatalogStorefrontApi\Proto\Attribute(); $r->setCode($item24->getCode()); - $r->setValue($item24->getValue()); + $r->setType($item24->getType()); + $values = []; + foreach ($item24->getValues() as $newValue) { + $values[] = $newValue; + } + $r->setValues($values); return $r; }; $proto = $p(); $res[] = $proto; } - $r->setDynamicAttributes($res); + $r->setAttributes($res); $r->setMetaDescription($prop2->getMetaDescription()); $r->setMetaKeyword($prop2->getMetaKeyword()); $r->setMetaTitle($prop2->getMetaTitle()); @@ -1240,20 +1250,25 @@ private function importCategoriesToProto(ImportCategoriesRequestInterface $value $r->setMetaDescription($prop2->getMetaDescription()); $r->setMetaKeywords($prop2->getMetaKeywords()); $res = []; - foreach ($prop2->getDynamicAttributes() as $item27) { - // convert data from \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValue - // to \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue - /** @var \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValue $item27 **/ + foreach ($prop2->getAttributes() as $item27) { + // convert data from \Magento\CatalogStorefrontApi\Api\Data\Attribute + // to \Magento\CatalogStorefrontApi\Proto\Attribute + /** @var \Magento\CatalogStorefrontApi\Api\Data\Attribute $item27 **/ $p = function () use ($item27) { - $r = new \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue(); + $r = new \Magento\CatalogStorefrontApi\Proto\Attribute(); $r->setCode($item27->getCode()); - $r->setValue($item27->getValue()); + $r->setType($item27->getType()); + $values = []; + foreach ($item27->getValues() as $newValue) { + $values[] = $newValue; + } + $r->setValues($values); return $r; }; $proto = $p(); $res[] = $proto; } - $r->setDynamicAttributes($res); + $r->setAttributes($res); return $r; }; $proto = $p(); @@ -1435,20 +1450,25 @@ private function getCategoriesFromProto(CategoriesGetResponse $value): Categorie $r->setMetaDescription($item1->getMetaDescription()); $r->setMetaKeywords($item1->getMetaKeywords()); $res = []; - foreach ($item1->getDynamicAttributes() as $item26) { - // convert data from \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue - // to \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValue - /** @var \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue $item26 **/ + foreach ($item1->getAttributes() as $item26) { + // convert data from \Magento\CatalogStorefrontApi\Proto\Attribute + // to \Magento\CatalogStorefrontApi\Api\Data\Attribute + /** @var \Magento\CatalogStorefrontApi\Proto\Attribute $item26 **/ $p = function () use ($item26) { - $r = new \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValue(); + $r = new \Magento\CatalogStorefrontApi\Api\Data\Attribute(); $r->setCode($item26->getCode()); - $r->setValue($item26->getValue()); + $r->setType($item26->getType()); + $values = []; + foreach ($item26->getValues() as $newValue) { + $values[] = $newValue; + } + $r->setValues($values); return $r; }; $out = $p(); $res[] = $out; } - $r->setDynamicAttributes($res); + $r->setAttributes($res); return $r; }; $out = $p(); diff --git a/app/code/Magento/CatalogStorefrontApi/Api/CatalogProxyServer.php b/app/code/Magento/CatalogStorefrontApi/Api/CatalogProxyServer.php index 7e3025fd7..62f5ad1ad 100644 --- a/app/code/Magento/CatalogStorefrontApi/Api/CatalogProxyServer.php +++ b/app/code/Magento/CatalogStorefrontApi/Api/CatalogProxyServer.php @@ -269,20 +269,25 @@ private function getProductsToProto(ProductsGetResultInterface $value): Products $r->setSamples($res); $r->setVisibility($item1->getVisibility()); $res = []; - foreach ($item1->getDynamicAttributes() as $item23) { - // convert data from \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValue - // to \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue - /** @var \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValue $item23 **/ + foreach ($item1->getAttributes() as $item23) { + // convert data from \Magento\CatalogStorefrontApi\Api\Data\Attribute + // to \Magento\CatalogStorefrontApi\Proto\Attribute + /** @var \Magento\CatalogStorefrontApi\Api\Data\Attribute $item23 **/ $p = function () use ($item23) { - $r = new \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue(); + $r = new \Magento\CatalogStorefrontApi\Proto\Attribute(); $r->setCode($item23->getCode()); - $r->setValue($item23->getValue()); + $r->setType($item23->getType()); + $values = []; + foreach ($item23->getValues() as $newValue) { + $values[] = $newValue; + } + $r->setValues($values); return $r; }; $proto = $p(); $res[] = $proto; } - $r->setDynamicAttributes($res); + $r->setAttributes($res); $r->setMetaDescription($item1->getMetaDescription()); $r->setMetaKeyword($item1->getMetaKeyword()); $r->setMetaTitle($item1->getMetaTitle()); @@ -716,20 +721,25 @@ private function importProductsFromProto(ImportProductsRequest $value): ImportPr $r->setSamples($res); $r->setVisibility($prop2->getVisibility()); $res = []; - foreach ($prop2->getDynamicAttributes() as $item24) { - // convert data from \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue - // to \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValue - /** @var \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue $item24 **/ + foreach ($prop2->getAttributes() as $item24) { + // convert data from \Magento\CatalogStorefrontApi\Proto\Attribute + // to \Magento\CatalogStorefrontApi\Api\Data\Attribute + /** @var \Magento\CatalogStorefrontApi\Proto\Attribute $item24 **/ $p = function () use ($item24) { - $r = new \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValue(); + $r = new \Magento\CatalogStorefrontApi\Api\Data\Attribute(); $r->setCode($item24->getCode()); - $r->setValue($item24->getValue()); + $r->setType($item24->getType()); + $values = []; + foreach ($item24->getValues() as $newValue) { + $values[] = $newValue; + } + $r->setValues($values); return $r; }; $out = $p(); $res[] = $out; } - $r->setDynamicAttributes($res); + $r->setAttributes($res); $r->setMetaDescription($prop2->getMetaDescription()); $r->setMetaKeyword($prop2->getMetaKeyword()); $r->setMetaTitle($prop2->getMetaTitle()); @@ -1271,20 +1281,25 @@ private function importCategoriesFromProto(ImportCategoriesRequest $value): Impo $r->setMetaDescription($prop2->getMetaDescription()); $r->setMetaKeywords($prop2->getMetaKeywords()); $res = []; - foreach ($prop2->getDynamicAttributes() as $item27) { - // convert data from \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue - // to \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValue - /** @var \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue $item27 **/ + foreach ($prop2->getAttributes() as $item27) { + // convert data from \Magento\CatalogStorefrontApi\Proto\Attribute + // to \Magento\CatalogStorefrontApi\Api\Data\Attribute + /** @var \Magento\CatalogStorefrontApi\Proto\Attribute $item27 **/ $p = function () use ($item27) { - $r = new \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValue(); + $r = new \Magento\CatalogStorefrontApi\Api\Data\Attribute(); $r->setCode($item27->getCode()); - $r->setValue($item27->getValue()); + $r->setType($item27->getType()); + $values = []; + foreach ($item27->getValues() as $newValue) { + $values[] = $newValue; + } + $r->setValues($values); return $r; }; $out = $p(); $res[] = $out; } - $r->setDynamicAttributes($res); + $r->setAttributes($res); return $r; }; $out = $p(); @@ -1473,20 +1488,25 @@ private function getCategoriesToProto(CategoriesGetResponseInterface $value): Ca $r->setMetaDescription($item1->getMetaDescription()); $r->setMetaKeywords($item1->getMetaKeywords()); $res = []; - foreach ($item1->getDynamicAttributes() as $item26) { - // convert data from \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValue - // to \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue - /** @var \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValue $item26 **/ + foreach ($item1->getAttributes() as $item26) { + // convert data from \Magento\CatalogStorefrontApi\Api\Data\Attribute + // to \Magento\CatalogStorefrontApi\Proto\Attribute + /** @var \Magento\CatalogStorefrontApi\Api\Data\Attribute $item26 **/ $p = function () use ($item26) { - $r = new \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue(); + $r = new \Magento\CatalogStorefrontApi\Proto\Attribute(); $r->setCode($item26->getCode()); - $r->setValue($item26->getValue()); + $r->setType($item26->getType()); + $values = []; + foreach ($item26->getValues() as $newValue) { + $values[] = $newValue; + } + $r->setValues($values); return $r; }; $proto = $p(); $res[] = $proto; } - $r->setDynamicAttributes($res); + $r->setAttributes($res); return $r; }; $proto = $p(); diff --git a/app/code/Magento/CatalogStorefrontApi/Api/Data/DynamicAttributeValue.php b/app/code/Magento/CatalogStorefrontApi/Api/Data/Attribute.php similarity index 59% rename from app/code/Magento/CatalogStorefrontApi/Api/Data/DynamicAttributeValue.php rename to app/code/Magento/CatalogStorefrontApi/Api/Data/Attribute.php index 5bb28a6bc..5cad70bcd 100644 --- a/app/code/Magento/CatalogStorefrontApi/Api/Data/DynamicAttributeValue.php +++ b/app/code/Magento/CatalogStorefrontApi/Api/Data/Attribute.php @@ -11,13 +11,13 @@ namespace Magento\CatalogStorefrontApi\Api\Data; /** - * Autogenerated description for DynamicAttributeValue class + * Autogenerated description for Attribute class * * phpcs:disable Magento2.PHP.FinalImplementation * @SuppressWarnings(PHPMD) * @SuppressWarnings(PHPCPD) */ -final class DynamicAttributeValue implements DynamicAttributeValueInterface +final class Attribute implements AttributeInterface { /** @@ -28,7 +28,12 @@ final class DynamicAttributeValue implements DynamicAttributeValueInterface /** * @var string */ - private $value; + private $type; + + /** + * @var array + */ + private $values; /** * @inheritdoc @@ -56,9 +61,9 @@ public function setCode(string $value): void * * @return string */ - public function getValue(): string + public function getType(): string { - return (string) $this->value; + return (string) $this->type; } /** @@ -67,8 +72,29 @@ public function getValue(): string * @param string $value * @return void */ - public function setValue(string $value): void + public function setType(string $value): void + { + $this->type = $value; + } + + /** + * @inheritdoc + * + * @return string[] + */ + public function getValues(): array + { + return (array) $this->values; + } + + /** + * @inheritdoc + * + * @param string[] $value + * @return void + */ + public function setValues(array $value): void { - $this->value = $value; + $this->values = $value; } } diff --git a/app/code/Magento/CatalogStorefrontApi/Api/Data/DynamicAttributeValueArrayMapper.php b/app/code/Magento/CatalogStorefrontApi/Api/Data/AttributeArrayMapper.php similarity index 79% rename from app/code/Magento/CatalogStorefrontApi/Api/Data/DynamicAttributeValueArrayMapper.php rename to app/code/Magento/CatalogStorefrontApi/Api/Data/AttributeArrayMapper.php index f69c8ab9d..121bef142 100644 --- a/app/code/Magento/CatalogStorefrontApi/Api/Data/DynamicAttributeValueArrayMapper.php +++ b/app/code/Magento/CatalogStorefrontApi/Api/Data/AttributeArrayMapper.php @@ -13,7 +13,7 @@ use Magento\Framework\ObjectManagerInterface; /** - * Autogenerated description for DynamicAttributeValue class + * Autogenerated description for Attribute class * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) * @SuppressWarnings(PHPMD.CyclomaticComplexity) @@ -21,7 +21,7 @@ * @SuppressWarnings(PHPMD.NPathComplexity) * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ -final class DynamicAttributeValueArrayMapper +final class AttributeArrayMapper { /** * @var mixed @@ -41,14 +41,15 @@ public function __construct(ObjectManagerInterface $objectManager) /** * Convert the DTO to the array with the data * - * @param DynamicAttributeValue $dto + * @param Attribute $dto * @return array */ - public function convertToArray(DynamicAttributeValue $dto) + public function convertToArray(Attribute $dto) { $result = []; $result["code"] = $dto->getCode(); - $result["value"] = $dto->getValue(); + $result["type"] = $dto->getType(); + $result["values"] = $dto->getValues(); return $result; } } diff --git a/app/code/Magento/CatalogStorefrontApi/Api/Data/DynamicAttributeValueInterface.php b/app/code/Magento/CatalogStorefrontApi/Api/Data/AttributeInterface.php similarity index 54% rename from app/code/Magento/CatalogStorefrontApi/Api/Data/DynamicAttributeValueInterface.php rename to app/code/Magento/CatalogStorefrontApi/Api/Data/AttributeInterface.php index efd32da19..bcb120a5e 100644 --- a/app/code/Magento/CatalogStorefrontApi/Api/Data/DynamicAttributeValueInterface.php +++ b/app/code/Magento/CatalogStorefrontApi/Api/Data/AttributeInterface.php @@ -11,11 +11,11 @@ namespace Magento\CatalogStorefrontApi\Api\Data; /** - * Autogenerated description for DynamicAttributeValue interface + * Autogenerated description for Attribute interface * * @SuppressWarnings(PHPMD.BooleanGetMethodName) */ -interface DynamicAttributeValueInterface +interface AttributeInterface { /** * Autogenerated description for getCode() interface method @@ -33,17 +33,32 @@ public function getCode(): string; public function setCode(string $value): void; /** - * Autogenerated description for getValue() interface method + * Autogenerated description for getType() interface method * * @return string */ - public function getValue(): string; + public function getType(): string; /** - * Autogenerated description for setValue() interface method + * Autogenerated description for setType() interface method * * @param string $value * @return void */ - public function setValue(string $value): void; + public function setType(string $value): void; + + /** + * Autogenerated description for getValues() interface method + * + * @return string[] + */ + public function getValues(): array; + + /** + * Autogenerated description for setValues() interface method + * + * @param string[] $value + * @return void + */ + public function setValues(array $value): void; } diff --git a/app/code/Magento/CatalogStorefrontApi/Api/Data/DynamicAttributeValueMapper.php b/app/code/Magento/CatalogStorefrontApi/Api/Data/AttributeMapper.php similarity index 81% rename from app/code/Magento/CatalogStorefrontApi/Api/Data/DynamicAttributeValueMapper.php rename to app/code/Magento/CatalogStorefrontApi/Api/Data/AttributeMapper.php index 163b85ff5..45191dca8 100644 --- a/app/code/Magento/CatalogStorefrontApi/Api/Data/DynamicAttributeValueMapper.php +++ b/app/code/Magento/CatalogStorefrontApi/Api/Data/AttributeMapper.php @@ -13,7 +13,7 @@ use Magento\Framework\ObjectManagerInterface; /** - * Autogenerated description for DynamicAttributeValue class + * Autogenerated description for Attribute class * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) * @SuppressWarnings(PHPMD.CyclomaticComplexity) @@ -21,12 +21,12 @@ * @SuppressWarnings(PHPMD.NPathComplexity) * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ -final class DynamicAttributeValueMapper +final class AttributeMapper { /** * @var string */ - private static $dtoClassName = DynamicAttributeValueInterface::class; + private static $dtoClassName = AttributeInterface::class; /** * @var mixed @@ -58,7 +58,7 @@ public function setData($data) /** * Build new DTO populated with the data * - * @return DynamicAttributeValue + * @return Attribute */ public function build() { @@ -78,18 +78,21 @@ public function build() * In case if the field is object, the corresponding Mapper would be create and DTO representing the field data * would be built * - * @param DynamicAttributeValue $dto + * @param Attribute $dto * @param string $key * @param mixed $value */ - private function setByKey(DynamicAttributeValue $dto, string $key, $value): void + private function setByKey(Attribute $dto, string $key, $value): void { switch ($key) { case "code": $dto->setCode((string) $value); break; - case "value": - $dto->setValue((string) $value); + case "type": + $dto->setType((string) $value); + break; + case "values": + $dto->setValues((array) $value); break; } } diff --git a/app/code/Magento/CatalogStorefrontApi/Api/Data/Category.php b/app/code/Magento/CatalogStorefrontApi/Api/Data/Category.php index 6c89d94a4..7a35aa265 100644 --- a/app/code/Magento/CatalogStorefrontApi/Api/Data/Category.php +++ b/app/code/Magento/CatalogStorefrontApi/Api/Data/Category.php @@ -143,7 +143,7 @@ final class Category implements CategoryInterface /** * @var array */ - private $dynamicAttributes; + private $attributes; /** * @inheritdoc @@ -652,21 +652,21 @@ public function setMetaKeywords(string $value): void /** * @inheritdoc * - * @return \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValueInterface[] + * @return \Magento\CatalogStorefrontApi\Api\Data\AttributeInterface[] */ - public function getDynamicAttributes(): array + public function getAttributes(): array { - return (array) $this->dynamicAttributes; + return (array) $this->attributes; } /** * @inheritdoc * - * @param \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValueInterface[] $value + * @param \Magento\CatalogStorefrontApi\Api\Data\AttributeInterface[] $value * @return void */ - public function setDynamicAttributes(array $value): void + public function setAttributes(array $value): void { - $this->dynamicAttributes = $value; + $this->attributes = $value; } } diff --git a/app/code/Magento/CatalogStorefrontApi/Api/Data/CategoryArrayMapper.php b/app/code/Magento/CatalogStorefrontApi/Api/Data/CategoryArrayMapper.php index 4b52f458d..ba73fa4e8 100644 --- a/app/code/Magento/CatalogStorefrontApi/Api/Data/CategoryArrayMapper.php +++ b/app/code/Magento/CatalogStorefrontApi/Api/Data/CategoryArrayMapper.php @@ -79,11 +79,11 @@ public function convertToArray(Category $dto) $result["meta_keywords"] = $dto->getMetaKeywords(); /** Convert complex Array field **/ $fieldArray = []; - foreach ($dto->getDynamicAttributes() as $fieldArrayDto) { - $fieldArray[] = $this->objectManager->get(\Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValueArrayMapper::class) + foreach ($dto->getAttributes() as $fieldArrayDto) { + $fieldArray[] = $this->objectManager->get(\Magento\CatalogStorefrontApi\Api\Data\AttributeArrayMapper::class) ->convertToArray($fieldArrayDto); } - $result["dynamic_attributes"] = $fieldArray; + $result["attributes"] = $fieldArray; return $result; } } diff --git a/app/code/Magento/CatalogStorefrontApi/Api/Data/CategoryInterface.php b/app/code/Magento/CatalogStorefrontApi/Api/Data/CategoryInterface.php index e1ff4aff1..cc5b29e06 100644 --- a/app/code/Magento/CatalogStorefrontApi/Api/Data/CategoryInterface.php +++ b/app/code/Magento/CatalogStorefrontApi/Api/Data/CategoryInterface.php @@ -378,17 +378,17 @@ public function getMetaKeywords(): string; public function setMetaKeywords(string $value): void; /** - * Autogenerated description for getDynamicAttributes() interface method + * Autogenerated description for getAttributes() interface method * - * @return \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValueInterface[] + * @return \Magento\CatalogStorefrontApi\Api\Data\AttributeInterface[] */ - public function getDynamicAttributes(): array; + public function getAttributes(): array; /** - * Autogenerated description for setDynamicAttributes() interface method + * Autogenerated description for setAttributes() interface method * - * @param \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValueInterface[] $value + * @param \Magento\CatalogStorefrontApi\Api\Data\AttributeInterface[] $value * @return void */ - public function setDynamicAttributes(array $value): void; + public function setAttributes(array $value): void; } diff --git a/app/code/Magento/CatalogStorefrontApi/Api/Data/CategoryMapper.php b/app/code/Magento/CatalogStorefrontApi/Api/Data/CategoryMapper.php index c54268a35..c9e260ae1 100644 --- a/app/code/Magento/CatalogStorefrontApi/Api/Data/CategoryMapper.php +++ b/app/code/Magento/CatalogStorefrontApi/Api/Data/CategoryMapper.php @@ -164,15 +164,15 @@ private function setByKey(Category $dto, string $key, $value): void case "meta_keywords": $dto->setMetaKeywords((string) $value); break; - case "dynamic_attributes": + case "attributes": $convertedArray = []; foreach ($value as $element) { $convertedArray[] = $this->objectManager - ->create(\Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValueMapper::class) + ->create(\Magento\CatalogStorefrontApi\Api\Data\AttributeMapper::class) ->setData($element) ->build(); } - $dto->setDynamicAttributes($convertedArray); + $dto->setAttributes($convertedArray); break; } } diff --git a/app/code/Magento/CatalogStorefrontApi/Api/Data/Product.php b/app/code/Magento/CatalogStorefrontApi/Api/Data/Product.php index e9ba42085..fa36a0d72 100644 --- a/app/code/Magento/CatalogStorefrontApi/Api/Data/Product.php +++ b/app/code/Magento/CatalogStorefrontApi/Api/Data/Product.php @@ -128,7 +128,7 @@ final class Product implements ProductInterface /** * @var array */ - private $dynamicAttributes; + private $attributes; /** * @var string @@ -699,22 +699,22 @@ public function setVisibility(string $value): void /** * @inheritdoc * - * @return \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValueInterface[] + * @return \Magento\CatalogStorefrontApi\Api\Data\AttributeInterface[] */ - public function getDynamicAttributes(): array + public function getAttributes(): array { - return (array) $this->dynamicAttributes; + return (array) $this->attributes; } /** * @inheritdoc * - * @param \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValueInterface[] $value + * @param \Magento\CatalogStorefrontApi\Api\Data\AttributeInterface[] $value * @return void */ - public function setDynamicAttributes(array $value): void + public function setAttributes(array $value): void { - $this->dynamicAttributes = $value; + $this->attributes = $value; } /** diff --git a/app/code/Magento/CatalogStorefrontApi/Api/Data/ProductArrayMapper.php b/app/code/Magento/CatalogStorefrontApi/Api/Data/ProductArrayMapper.php index 8e92e1406..6c83be06c 100644 --- a/app/code/Magento/CatalogStorefrontApi/Api/Data/ProductArrayMapper.php +++ b/app/code/Magento/CatalogStorefrontApi/Api/Data/ProductArrayMapper.php @@ -88,11 +88,11 @@ public function convertToArray(Product $dto) $result["visibility"] = $dto->getVisibility(); /** Convert complex Array field **/ $fieldArray = []; - foreach ($dto->getDynamicAttributes() as $fieldArrayDto) { - $fieldArray[] = $this->objectManager->get(\Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValueArrayMapper::class) + foreach ($dto->getAttributes() as $fieldArrayDto) { + $fieldArray[] = $this->objectManager->get(\Magento\CatalogStorefrontApi\Api\Data\AttributeArrayMapper::class) ->convertToArray($fieldArrayDto); } - $result["dynamic_attributes"] = $fieldArray; + $result["attributes"] = $fieldArray; $result["meta_description"] = $dto->getMetaDescription(); $result["meta_keyword"] = $dto->getMetaKeyword(); $result["meta_title"] = $dto->getMetaTitle(); diff --git a/app/code/Magento/CatalogStorefrontApi/Api/Data/ProductInterface.php b/app/code/Magento/CatalogStorefrontApi/Api/Data/ProductInterface.php index 4567f3429..c2cca15cd 100644 --- a/app/code/Magento/CatalogStorefrontApi/Api/Data/ProductInterface.php +++ b/app/code/Magento/CatalogStorefrontApi/Api/Data/ProductInterface.php @@ -333,19 +333,19 @@ public function getVisibility(): string; public function setVisibility(string $value): void; /** - * Autogenerated description for getDynamicAttributes() interface method + * Autogenerated description for getAttributes() interface method * - * @return \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValueInterface[] + * @return \Magento\CatalogStorefrontApi\Api\Data\AttributeInterface[] */ - public function getDynamicAttributes(): array; + public function getAttributes(): array; /** - * Autogenerated description for setDynamicAttributes() interface method + * Autogenerated description for setAttributes() interface method * - * @param \Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValueInterface[] $value + * @param \Magento\CatalogStorefrontApi\Api\Data\AttributeInterface[] $value * @return void */ - public function setDynamicAttributes(array $value): void; + public function setAttributes(array $value): void; /** * Autogenerated description for getMetaDescription() interface method diff --git a/app/code/Magento/CatalogStorefrontApi/Api/Data/ProductMapper.php b/app/code/Magento/CatalogStorefrontApi/Api/Data/ProductMapper.php index 51b5bcd6b..0bbd12593 100644 --- a/app/code/Magento/CatalogStorefrontApi/Api/Data/ProductMapper.php +++ b/app/code/Magento/CatalogStorefrontApi/Api/Data/ProductMapper.php @@ -169,15 +169,15 @@ private function setByKey(Product $dto, string $key, $value): void case "visibility": $dto->setVisibility((string) $value); break; - case "dynamic_attributes": + case "attributes": $convertedArray = []; foreach ($value as $element) { $convertedArray[] = $this->objectManager - ->create(\Magento\CatalogStorefrontApi\Api\Data\DynamicAttributeValueMapper::class) + ->create(\Magento\CatalogStorefrontApi\Api\Data\AttributeMapper::class) ->setData($element) ->build(); } - $dto->setDynamicAttributes($convertedArray); + $dto->setAttributes($convertedArray); break; case "meta_description": $dto->setMetaDescription((string) $value); diff --git a/app/code/Magento/CatalogStorefrontApi/Metadata/Catalog.php b/app/code/Magento/CatalogStorefrontApi/Metadata/Catalog.php index 9d69c6278..90c78c896 100644 --- a/app/code/Magento/CatalogStorefrontApi/Metadata/Catalog.php +++ b/app/code/Magento/CatalogStorefrontApi/Metadata/Catalog.php @@ -16,8 +16,8 @@ public static function initOnce() return; } $pool->internalAddGeneratedFile(hex2bin( - "0af3400a0d636174616c6f672e70726f746f12226d6167656e746f2e6361" . - "74616c6f6753746f726566726f6e744170692e70726f746f22d20b0a0750" . + "0ace400a0d636174616c6f672e70726f746f12226d6167656e746f2e6361" . + "74616c6f6753746f726566726f6e744170692e70726f746f22be0b0a0750" . "726f64756374120a0a02696418012001280912180a106174747269627574" . "655f7365745f696418022001280912130a0b6861735f6f7074696f6e7318" . "032001280812120a0a637265617465645f617418052001280912120a0a75" . @@ -35,264 +35,263 @@ public static function initOnce() "746f726566726f6e744170692e70726f746f2e566964656f123b0a077361" . "6d706c657318202003280b322a2e6d6167656e746f2e636174616c6f6753" . "746f726566726f6e744170692e70726f746f2e53616d706c6512120a0a76" . - "69736962696c69747918252001280912550a1264796e616d69635f617474" . - "7269627574657318322003280b32392e6d6167656e746f2e636174616c6f" . - "6753746f726566726f6e744170692e70726f746f2e44796e616d69634174" . - "7472696275746556616c756512180a106d6574615f646573637269707469" . - "6f6e18162001280912140a0c6d6574615f6b6579776f7264181720012809" . - "12120a0a6d6574615f7469746c6518182001280912120a0a63617465676f" . - "7269657318192003280912180a1072657175697265645f6f7074696f6e73" . - "18462001280912120a0a637265617465645f696e184a2001280912120a0a" . - "757064617465645f696e184b2001280912210a197175616e746974795f61" . - "6e645f73746f636b5f737461747573184c2001280912190a116f7074696f" . - "6e735f636f6e7461696e6572184d2001280912260a1e6d7372705f646973" . - "706c61795f61637475616c5f70726963655f74797065184e200128091215" . - "0a0d69735f72657475726e61626c65184f2001280912120a0a75726c5f73" . - "7566666978185020012809123b0a076f7074696f6e7318512003280b322a" . - "2e6d6167656e746f2e636174616c6f6753746f726566726f6e744170692e" . - "70726f746f2e4f7074696f6e12440a0c75726c5f72657772697465731852" . - "2003280b322e2e6d6167656e746f2e636174616c6f6753746f726566726f" . - "6e744170692e70726f746f2e55726c52657772697465121e0a16636f756e" . - "7472795f6f665f6d616e756661637475726518552001280912150a0d7370" . - "656369616c5f707269636518572001280212190a117370656369616c5f66" . - "726f6d5f6461746518582001280912170a0f7370656369616c5f746f5f64" . - "61746518592001280912370a056c696e6b73185a2003280b32282e6d6167" . - "656e746f2e636174616c6f6753746f726566726f6e744170692e70726f74" . - "6f2e4c696e6b12150a0d63616e6f6e6963616c5f75726c185b2001280912" . - "120a0a70726963655f7669657718602001280912220a1a6c696e6b735f70" . - "75726368617365645f73657061726174656c79186220012808121c0a146f" . - "6e6c795f785f6c6566745f696e5f73746f636b186620012802124b0a0f70" . - "726f647563745f6f7074696f6e7318c7012003280b32312e6d6167656e74" . - "6f2e636174616c6f6753746f726566726f6e744170692e70726f746f2e50" . - "726f647563744f7074696f6e125d0a1573686f707065725f696e7075745f" . - "6f7074696f6e7318c8012003280b323d2e6d6167656e746f2e636174616c" . - "6f6753746f726566726f6e744170692e70726f746f2e50726f6475637453" . - "686f70706572496e7075744f7074696f6e22470a0e50726f647563745661" . - "7269616e74120a0a02696418012001280912150a0d6f7074696f6e5f7661" . - "6c75657318022003280912120a0a70726f647563745f6964180320012809" . - "22390a1450726f6475637456617269616e74496d706f7274120a0a026964" . - "18012001280912150a0d6f7074696f6e5f76616c75657318022003280922" . - "420a05507269636512150a0d726567756c61725f70726963651801200128" . - "0212130a0b66696e616c5f7072696365180220012802120d0a0573636f70" . - "6518032001280922ad010a1250726f647563744f7074696f6e56616c7565" . - "120a0a026964180120012809120d0a056c6162656c18022001280912120a" . - "0a736f72745f6f72646572180320012809120f0a0764656661756c741804" . - "2001280812110a09696d6167655f75726c18052001280912160a0e717479" . - "5f6d75746162696c697479180620012808120b0a03717479180720012802" . - "12100a08696e666f5f75726c180820012809120d0a057072696365180920" . - "01280222bb010a0d50726f647563744f7074696f6e120a0a026964180120" . - "012809120d0a056c6162656c18022001280912120a0a736f72745f6f7264" . - "657218032001280512100a08726571756972656418042001280812130a0b" . - "72656e6465725f74797065180520012809120c0a04747970651806200128" . - "0912460a0676616c75657318072003280b32362e6d6167656e746f2e6361" . - "74616c6f6753746f726566726f6e744170692e70726f746f2e50726f6475" . - "63744f7074696f6e56616c756522ae020a1950726f6475637453686f7070" . - "6572496e7075744f7074696f6e120a0a026964180120012809120d0a056c" . - "6162656c18022001280912120a0a736f72745f6f72646572180320012805" . - "12100a08726571756972656418042001280812130a0b72656e6465725f74" . - "79706518052001280912380a05707269636518062003280b32292e6d6167" . - "656e746f2e636174616c6f6753746f726566726f6e744170692e70726f74" . - "6f2e507269636512160a0e66696c655f657874656e73696f6e1807200328" . - "09123d0a0572616e676518082001280b322e2e6d6167656e746f2e636174" . - "616c6f6753746f726566726f6e744170692e70726f746f2e56616c756552" . - "616e676512140a0c696d6167655f73697a655f7818092001280512140a0c" . - "696d6167655f73697a655f79180a2001280522260a0a56616c756552616e" . - "6765120c0a0466726f6d180120012802120a0a02746f1802200128022247" . - "0a044c696e6b12120a0a70726f647563745f696418012001280912100a08" . - "706f736974696f6e180220012805120c0a0474797065180320012809120b" . - "0a0371747918042001280222f5030a064f7074696f6e12110a096f707469" . - "6f6e5f696418012001280912120a0a70726f647563745f69641802200128" . - "09120c0a047479706518032001280912120a0a69735f7265717569726518" . - "0420012809120b0a03736b7518052001280912160a0e6d61785f63686172" . - "61637465727318062001280912160a0e66696c655f657874656e73696f6e" . - "18072001280912140a0c696d6167655f73697a655f781808200128091214" . - "0a0c696d6167655f73697a655f7918092001280912120a0a736f72745f6f" . - "72646572180a2001280912150a0d64656661756c745f7469746c65180b20" . - "01280912130a0b73746f72655f7469746c65180c20012809120d0a057469" . - "746c65180d2001280912150a0d64656661756c745f7072696365180e2001" . - "2809121a0a1264656661756c745f70726963655f74797065180f20012809" . - "12130a0b73746f72655f707269636518102001280912180a1073746f7265" . - "5f70726963655f74797065181120012809120d0a05707269636518122001" . - "280912120a0a70726963655f7479706518132001280912100a0872657175" . - "6972656418142001280912130a0b70726f647563745f736b751815200128" . - "09123e0a0576616c756518162003280b322f2e6d6167656e746f2e636174" . - "616c6f6753746f726566726f6e744170692e70726f746f2e4f7074696f6e" . - "56616c756522ab030a0b4f7074696f6e56616c756512110a096f7074696f" . - "6e5f696418012001280912120a0a70726f647563745f6964180220012809" . - "120c0a047479706518032001280912120a0a69735f726571756972651804" . - "20012809120b0a03736b7518052001280912160a0e6d61785f6368617261" . - "637465727318062001280912160a0e66696c655f657874656e73696f6e18" . - "072001280912140a0c696d6167655f73697a655f7818082001280912140a" . - "0c696d6167655f73697a655f7918092001280912120a0a736f72745f6f72" . - "646572180a2001280912150a0d64656661756c745f7469746c65180b2001" . - "280912130a0b73746f72655f7469746c65180c20012809120d0a05746974" . - "6c65180d2001280912150a0d64656661756c745f7072696365180e200128" . - "09121a0a1264656661756c745f70726963655f74797065180f2001280912" . - "130a0b73746f72655f707269636518102001280912180a1073746f72655f" . - "70726963655f74797065181120012809120d0a0570726963651812200128" . - "0912120a0a70726963655f7479706518132001280912160a0e6f7074696f" . - "6e5f747970655f696418142001280922660a0a55726c5265777269746512" . - "0b0a0375726c180120012809124b0a0a706172616d657465727318022003" . - "280b32372e6d6167656e746f2e636174616c6f6753746f726566726f6e74" . - "4170692e70726f746f2e55726c52657772697465506172616d6574657222" . - "320a1355726c52657772697465506172616d65746572120c0a046e616d65" . - "180120012809120d0a0576616c756518022001280922260a084b65795661" . - "6c7565120b0a036b6579180120012809120d0a0576616c75651802200128" . - "0922340a1544796e616d696341747472696275746556616c7565120c0a04" . - "636f6465180120012809120d0a0576616c7565180220012809223a0a0d4d" . - "656469615265736f75726365120b0a0375726c180120012809120d0a056c" . - "6162656c180220012809120d0a05726f6c657318032003280922600a0549" . - "6d61676512430a087265736f7572636518012001280b32312e6d6167656e" . - "746f2e636174616c6f6753746f726566726f6e744170692e70726f746f2e" . - "4d656469615265736f7572636512120a0a736f72745f6f72646572180220" . - "01280922610a0653616d706c6512430a087265736f757263651801200128" . + "69736962696c69747918252001280912410a0a6174747269627574657318" . + "322003280b322d2e6d6167656e746f2e636174616c6f6753746f72656672" . + "6f6e744170692e70726f746f2e41747472696275746512180a106d657461" . + "5f6465736372697074696f6e18162001280912140a0c6d6574615f6b6579" . + "776f726418172001280912120a0a6d6574615f7469746c65181820012809" . + "12120a0a63617465676f7269657318192003280912180a10726571756972" . + "65645f6f7074696f6e7318462001280912120a0a637265617465645f696e" . + "184a2001280912120a0a757064617465645f696e184b2001280912210a19" . + "7175616e746974795f616e645f73746f636b5f737461747573184c200128" . + "0912190a116f7074696f6e735f636f6e7461696e6572184d200128091226" . + "0a1e6d7372705f646973706c61795f61637475616c5f70726963655f7479" . + "7065184e2001280912150a0d69735f72657475726e61626c65184f200128" . + "0912120a0a75726c5f737566666978185020012809123b0a076f7074696f" . + "6e7318512003280b322a2e6d6167656e746f2e636174616c6f6753746f72" . + "6566726f6e744170692e70726f746f2e4f7074696f6e12440a0c75726c5f" . + "726577726974657318522003280b322e2e6d6167656e746f2e636174616c" . + "6f6753746f726566726f6e744170692e70726f746f2e55726c5265777269" . + "7465121e0a16636f756e7472795f6f665f6d616e75666163747572651855" . + "2001280912150a0d7370656369616c5f707269636518572001280212190a" . + "117370656369616c5f66726f6d5f6461746518582001280912170a0f7370" . + "656369616c5f746f5f6461746518592001280912370a056c696e6b73185a" . + "2003280b32282e6d6167656e746f2e636174616c6f6753746f726566726f" . + "6e744170692e70726f746f2e4c696e6b12150a0d63616e6f6e6963616c5f" . + "75726c185b2001280912120a0a70726963655f7669657718602001280912" . + "220a1a6c696e6b735f7075726368617365645f73657061726174656c7918" . + "6220012808121c0a146f6e6c795f785f6c6566745f696e5f73746f636b18" . + "6620012802124b0a0f70726f647563745f6f7074696f6e7318c701200328" . "0b32312e6d6167656e746f2e636174616c6f6753746f726566726f6e7441" . - "70692e70726f746f2e4d656469615265736f7572636512120a0a736f7274" . - "5f6f72646572180220012809229d010a05566964656f12420a0770726576" . - "69657718012001280b32312e6d6167656e746f2e636174616c6f6753746f" . - "726566726f6e744170692e70726f746f2e4d656469615265736f75726365" . - "123c0a05766964656f18022001280b322d2e6d6167656e746f2e63617461" . - "6c6f6753746f726566726f6e744170692e70726f746f2e566964656f4974" . - "656d12120a0a736f72745f6f726465721803200128092292010a09566964" . - "656f4974656d12160a0e766964656f5f70726f7669646572180120012809" . - "12110a09766964656f5f75726c18022001280912130a0b766964656f5f74" . - "69746c6518032001280912190a11766964656f5f6465736372697074696f" . - "6e18042001280912160a0e766964656f5f6d657461646174611805200128" . - "0912120a0a6d656469615f7479706518062001280922490a1250726f6475" . - "63747347657452657175657374120b0a03696473180120032809120d0a05" . - "73746f726518022001280912170a0f6174747269627574655f636f646573" . - "180320032809224f0a1150726f6475637473476574526573756c74123a0a" . - "056974656d7318012003280b322b2e6d6167656e746f2e636174616c6f67" . - "53746f726566726f6e744170692e70726f746f2e50726f6475637422b401" . - "0a15496d706f727450726f647563747352657175657374124e0a0870726f" . - "647563747318012003280b323c2e6d6167656e746f2e636174616c6f6753" . - "746f726566726f6e744170692e70726f746f2e496d706f727450726f6475" . - "63744461746152657175657374120d0a0573746f7265180220012809123c" . - "0a06706172616d7318062001280b322c2e6d6167656e746f2e636174616c" . - "6f6753746f726566726f6e744170692e70726f746f2e4b657956616c7565" . - "226c0a18496d706f727450726f647563744461746152657175657374123c" . - "0a0770726f6475637418012001280b322b2e6d6167656e746f2e63617461" . - "6c6f6753746f726566726f6e744170692e70726f746f2e50726f64756374" . - "12120a0a61747472696275746573180220032809223a0a1544656c657465" . - "50726f64756374735265717565737412120a0a70726f6475637449647318" . - "0120032809120d0a0573746f7265180220012809223d0a1744656c657465" . - "43617465676f726965735265717565737412130a0b63617465676f727949" . - "6473180120032809120d0a0573746f7265180220012809223b0a1844656c" . - "65746543617465676f72696573526573706f6e7365120e0a067374617475" . - "73180120012808120f0a076d65737361676518022001280922390a16496d" . - "706f727450726f6475637473526573706f6e7365120e0a06737461747573" . - "180120012808120f0a076d65737361676518022001280922390a1644656c" . - "65746550726f6475637473526573706f6e7365120e0a0673746174757318" . - "0120012808120f0a076d65737361676518022001280922b9010a17496d70" . - "6f727443617465676f726965735265717565737412510a0a63617465676f" . - "7269657318012003280b323d2e6d6167656e746f2e636174616c6f675374" . - "6f726566726f6e744170692e70726f746f2e496d706f727443617465676f" . - "72794461746152657175657374120d0a0573746f7265180220012809123c" . - "0a06706172616d7318062001280b322c2e6d6167656e746f2e636174616c" . - "6f6753746f726566726f6e744170692e70726f746f2e4b657956616c7565" . - "226f0a19496d706f727443617465676f7279446174615265717565737412" . - "3e0a0863617465676f727918012001280b322c2e6d6167656e746f2e6361" . - "74616c6f6753746f726566726f6e744170692e70726f746f2e4361746567" . - "6f727912120a0a61747472696275746573180220032809223b0a18496d70" . - "6f727443617465676f72696573526573706f6e7365120e0a067374617475" . - "73180120012808120f0a076d65737361676518022001280922ef040a0843" . - "617465676f7279120a0a026964180120012809120c0a0470617468180220" . - "01280912100a08706f736974696f6e180320012805120d0a056c6576656c" . - "18042001280512160a0e6368696c6472656e5f636f756e74180520012805" . - "120c0a046e616d6518062001280912140a0c646973706c61795f6d6f6465" . - "18072001280912170a0f64656661756c745f736f72745f62791808200128" . - "09120f0a0775726c5f6b657918092001280912100a0875726c5f70617468" . - "180a2001280912110a0969735f616374697665180b2001280812110a0969" . - "735f616e63686f72180c2001280812170a0f696e636c7564655f696e5f6d" . - "656e75180d2001280812190a11617661696c61626c655f736f72745f6279" . - "180e2003280912430a0b62726561646372756d6273180f2003280b322e2e" . + "70692e70726f746f2e50726f647563744f7074696f6e125d0a1573686f70" . + "7065725f696e7075745f6f7074696f6e7318c8012003280b323d2e6d6167" . + "656e746f2e636174616c6f6753746f726566726f6e744170692e70726f74" . + "6f2e50726f6475637453686f70706572496e7075744f7074696f6e22470a" . + "0e50726f6475637456617269616e74120a0a02696418012001280912150a" . + "0d6f7074696f6e5f76616c75657318022003280912120a0a70726f647563" . + "745f696418032001280922390a1450726f6475637456617269616e74496d" . + "706f7274120a0a02696418012001280912150a0d6f7074696f6e5f76616c" . + "75657318022003280922420a05507269636512150a0d726567756c61725f" . + "707269636518012001280212130a0b66696e616c5f707269636518022001" . + "2802120d0a0573636f706518032001280922ad010a1250726f647563744f" . + "7074696f6e56616c7565120a0a026964180120012809120d0a056c616265" . + "6c18022001280912120a0a736f72745f6f72646572180320012809120f0a" . + "0764656661756c7418042001280812110a09696d6167655f75726c180520" . + "01280912160a0e7174795f6d75746162696c697479180620012808120b0a" . + "0371747918072001280212100a08696e666f5f75726c180820012809120d" . + "0a05707269636518092001280222bb010a0d50726f647563744f7074696f" . + "6e120a0a026964180120012809120d0a056c6162656c1802200128091212" . + "0a0a736f72745f6f7264657218032001280512100a087265717569726564" . + "18042001280812130a0b72656e6465725f74797065180520012809120c0a" . + "047479706518062001280912460a0676616c75657318072003280b32362e" . "6d6167656e746f2e636174616c6f6753746f726566726f6e744170692e70" . - "726f746f2e42726561646372756d6212130a0b6465736372697074696f6e" . - "18102001280912150a0d63616e6f6e6963616c5f75726c18112001280912" . - "150a0d70726f647563745f636f756e7418122001280312100a086368696c" . - "6472656e181320032809120d0a05696d61676518142001280912110a0970" . - "6172656e745f696418152001280912120a0a6d6574615f7469746c651816" . - "2001280912180a106d6574615f6465736372697074696f6e181720012809" . - "12150a0d6d6574615f6b6579776f72647318182001280912550a1264796e" . - "616d69635f6174747269627574657318322003280b32392e6d6167656e74" . - "6f2e636174616c6f6753746f726566726f6e744170692e70726f746f2e44" . - "796e616d696341747472696275746556616c75652285010a0a4272656164" . - "6372756d6212130a0b63617465676f72795f696418012001280912150a0d" . - "63617465676f72795f6e616d6518022001280912160a0e63617465676f72" . - "795f6c6576656c18032001280512180a1063617465676f72795f75726c5f" . - "6b657918042001280912190a1163617465676f72795f75726c5f70617468" . - "180520012809225a0a1443617465676f7269657347657452657175657374" . - "120b0a03696473180120032809120d0a056c6576656c180220012805120d" . - "0a0573746f726518032001280912170a0f6174747269627574655f636f64" . - "657318042003280922540a1543617465676f72696573476574526573706f" . - "6e7365123b0a056974656d7318012003280b322c2e6d6167656e746f2e63" . - "6174616c6f6753746f726566726f6e744170692e70726f746f2e43617465" . - "676f727922660a1650726f6475637456617269616e74526573706f6e7365" . - "124c0a106d6174636865645f76617269616e747318032003280b32322e6d" . + "726f746f2e50726f647563744f7074696f6e56616c756522ae020a195072" . + "6f6475637453686f70706572496e7075744f7074696f6e120a0a02696418" . + "0120012809120d0a056c6162656c18022001280912120a0a736f72745f6f" . + "7264657218032001280512100a0872657175697265641804200128081213" . + "0a0b72656e6465725f7479706518052001280912380a0570726963651806" . + "2003280b32292e6d6167656e746f2e636174616c6f6753746f726566726f" . + "6e744170692e70726f746f2e507269636512160a0e66696c655f65787465" . + "6e73696f6e180720032809123d0a0572616e676518082001280b322e2e6d" . + "6167656e746f2e636174616c6f6753746f726566726f6e744170692e7072" . + "6f746f2e56616c756552616e676512140a0c696d6167655f73697a655f78" . + "18092001280512140a0c696d6167655f73697a655f79180a200128052226" . + "0a0a56616c756552616e6765120c0a0466726f6d180120012802120a0a02" . + "746f18022001280222470a044c696e6b12120a0a70726f647563745f6964" . + "18012001280912100a08706f736974696f6e180220012805120c0a047479" . + "7065180320012809120b0a0371747918042001280222f5030a064f707469" . + "6f6e12110a096f7074696f6e5f696418012001280912120a0a70726f6475" . + "63745f6964180220012809120c0a047479706518032001280912120a0a69" . + "735f72657175697265180420012809120b0a03736b751805200128091216" . + "0a0e6d61785f6368617261637465727318062001280912160a0e66696c65" . + "5f657874656e73696f6e18072001280912140a0c696d6167655f73697a65" . + "5f7818082001280912140a0c696d6167655f73697a655f79180920012809" . + "12120a0a736f72745f6f72646572180a2001280912150a0d64656661756c" . + "745f7469746c65180b2001280912130a0b73746f72655f7469746c65180c" . + "20012809120d0a057469746c65180d2001280912150a0d64656661756c74" . + "5f7072696365180e20012809121a0a1264656661756c745f70726963655f" . + "74797065180f2001280912130a0b73746f72655f70726963651810200128" . + "0912180a1073746f72655f70726963655f74797065181120012809120d0a" . + "05707269636518122001280912120a0a70726963655f7479706518132001" . + "280912100a08726571756972656418142001280912130a0b70726f647563" . + "745f736b75181520012809123e0a0576616c756518162003280b322f2e6d" . "6167656e746f2e636174616c6f6753746f726566726f6e744170692e7072" . - "6f746f2e50726f6475637456617269616e74223a0a1550726f6475637456" . - "617269616e745265717565737412120a0a70726f647563745f4964180120" . - "012809120d0a0573746f726518022001280922630a15496d706f72745661" . - "7269616e747352657175657374124a0a0876617269616e74731801200328" . - "0b32382e6d6167656e746f2e636174616c6f6753746f726566726f6e7441" . - "70692e70726f746f2e50726f6475637456617269616e74496d706f727422" . - "390a16496d706f727456617269616e7473526573706f6e7365120e0a0673" . - "7461747573180120012808120f0a076d6573736167651802200128092223" . - "0a1544656c65746556617269616e747352657175657374120a0a02696418" . - "012003280922390a1644656c65746556617269616e7473526573706f6e73" . - "65120e0a06737461747573180120012808120f0a076d6573736167651802" . - "2001280922370a164f7074696f6e53656c656374696f6e52657175657374" . - "120d0a0573746f7265180120012809120e0a0676616c7565731802200328" . - "0932ce060a07436174616c6f67127e0a0b67657450726f64756374731236" . + "6f746f2e4f7074696f6e56616c756522ab030a0b4f7074696f6e56616c75" . + "6512110a096f7074696f6e5f696418012001280912120a0a70726f647563" . + "745f6964180220012809120c0a047479706518032001280912120a0a6973" . + "5f72657175697265180420012809120b0a03736b7518052001280912160a" . + "0e6d61785f6368617261637465727318062001280912160a0e66696c655f" . + "657874656e73696f6e18072001280912140a0c696d6167655f73697a655f" . + "7818082001280912140a0c696d6167655f73697a655f7918092001280912" . + "120a0a736f72745f6f72646572180a2001280912150a0d64656661756c74" . + "5f7469746c65180b2001280912130a0b73746f72655f7469746c65180c20" . + "012809120d0a057469746c65180d2001280912150a0d64656661756c745f" . + "7072696365180e20012809121a0a1264656661756c745f70726963655f74" . + "797065180f2001280912130a0b73746f72655f7072696365181020012809" . + "12180a1073746f72655f70726963655f74797065181120012809120d0a05" . + "707269636518122001280912120a0a70726963655f747970651813200128" . + "0912160a0e6f7074696f6e5f747970655f696418142001280922660a0a55" . + "726c52657772697465120b0a0375726c180120012809124b0a0a70617261" . + "6d657465727318022003280b32372e6d6167656e746f2e636174616c6f67" . + "53746f726566726f6e744170692e70726f746f2e55726c52657772697465" . + "506172616d6574657222320a1355726c52657772697465506172616d6574" . + "6572120c0a046e616d65180120012809120d0a0576616c75651802200128" . + "0922260a084b657956616c7565120b0a036b6579180120012809120d0a05" . + "76616c756518022001280922370a09417474726962757465120c0a04636f" . + "6465180120012809120c0a0474797065180220012809120e0a0676616c75" . + "6573180320032809223a0a0d4d656469615265736f75726365120b0a0375" . + "726c180120012809120d0a056c6162656c180220012809120d0a05726f6c" . + "657318032003280922600a05496d61676512430a087265736f7572636518" . + "012001280b32312e6d6167656e746f2e636174616c6f6753746f72656672" . + "6f6e744170692e70726f746f2e4d656469615265736f7572636512120a0a" . + "736f72745f6f7264657218022001280922610a0653616d706c6512430a08" . + "7265736f7572636518012001280b32312e6d6167656e746f2e636174616c" . + "6f6753746f726566726f6e744170692e70726f746f2e4d65646961526573" . + "6f7572636512120a0a736f72745f6f72646572180220012809229d010a05" . + "566964656f12420a077072657669657718012001280b32312e6d6167656e" . + "746f2e636174616c6f6753746f726566726f6e744170692e70726f746f2e" . + "4d656469615265736f75726365123c0a05766964656f18022001280b322d" . "2e6d6167656e746f2e636174616c6f6753746f726566726f6e744170692e" . - "70726f746f2e50726f6475637473476574526571756573741a352e6d6167" . + "70726f746f2e566964656f4974656d12120a0a736f72745f6f7264657218" . + "03200128092292010a09566964656f4974656d12160a0e766964656f5f70" . + "726f766964657218012001280912110a09766964656f5f75726c18022001" . + "280912130a0b766964656f5f7469746c6518032001280912190a11766964" . + "656f5f6465736372697074696f6e18042001280912160a0e766964656f5f" . + "6d6574616461746118052001280912120a0a6d656469615f747970651806" . + "2001280922490a1250726f647563747347657452657175657374120b0a03" . + "696473180120032809120d0a0573746f726518022001280912170a0f6174" . + "747269627574655f636f646573180320032809224f0a1150726f64756374" . + "73476574526573756c74123a0a056974656d7318012003280b322b2e6d61" . + "67656e746f2e636174616c6f6753746f726566726f6e744170692e70726f" . + "746f2e50726f6475637422b4010a15496d706f727450726f647563747352" . + "657175657374124e0a0870726f647563747318012003280b323c2e6d6167" . "656e746f2e636174616c6f6753746f726566726f6e744170692e70726f74" . - "6f2e50726f6475637473476574526573756c7422001289010a0e696d706f" . - "727450726f647563747312392e6d6167656e746f2e636174616c6f675374" . - "6f726566726f6e744170692e70726f746f2e496d706f727450726f647563" . - "7473526571756573741a3a2e6d6167656e746f2e636174616c6f6753746f" . - "726566726f6e744170692e70726f746f2e496d706f727450726f64756374" . - "73526573706f6e736522001289010a0e64656c65746550726f6475637473" . - "12392e6d6167656e746f2e636174616c6f6753746f726566726f6e744170" . - "692e70726f746f2e44656c65746550726f6475637473526571756573741a" . - "3a2e6d6167656e746f2e636174616c6f6753746f726566726f6e74417069" . - "2e70726f746f2e44656c65746550726f6475637473526573706f6e736522" . - "00128f010a1064656c65746543617465676f72696573123b2e6d6167656e" . - "746f2e636174616c6f6753746f726566726f6e744170692e70726f746f2e" . - "44656c65746543617465676f72696573526571756573741a3c2e6d616765" . + "6f2e496d706f727450726f647563744461746152657175657374120d0a05" . + "73746f7265180220012809123c0a06706172616d7318062001280b322c2e" . + "6d6167656e746f2e636174616c6f6753746f726566726f6e744170692e70" . + "726f746f2e4b657956616c7565226c0a18496d706f727450726f64756374" . + "4461746152657175657374123c0a0770726f6475637418012001280b322b" . + "2e6d6167656e746f2e636174616c6f6753746f726566726f6e744170692e" . + "70726f746f2e50726f6475637412120a0a61747472696275746573180220" . + "032809223a0a1544656c65746550726f6475637473526571756573741212" . + "0a0a70726f64756374496473180120032809120d0a0573746f7265180220" . + "012809223d0a1744656c65746543617465676f7269657352657175657374" . + "12130a0b63617465676f7279496473180120032809120d0a0573746f7265" . + "180220012809223b0a1844656c65746543617465676f7269657352657370" . + "6f6e7365120e0a06737461747573180120012808120f0a076d6573736167" . + "6518022001280922390a16496d706f727450726f6475637473526573706f" . + "6e7365120e0a06737461747573180120012808120f0a076d657373616765" . + "18022001280922390a1644656c65746550726f6475637473526573706f6e" . + "7365120e0a06737461747573180120012808120f0a076d65737361676518" . + "022001280922b9010a17496d706f727443617465676f7269657352657175" . + "65737412510a0a63617465676f7269657318012003280b323d2e6d616765" . "6e746f2e636174616c6f6753746f726566726f6e744170692e70726f746f" . - "2e44656c65746543617465676f72696573526573706f6e73652200128f01" . - "0a10696d706f727443617465676f72696573123b2e6d6167656e746f2e63" . - "6174616c6f6753746f726566726f6e744170692e70726f746f2e496d706f" . - "727443617465676f72696573526571756573741a3c2e6d6167656e746f2e" . - "636174616c6f6753746f726566726f6e744170692e70726f746f2e496d70" . - "6f727443617465676f72696573526573706f6e736522001286010a0d6765" . - "7443617465676f7269657312382e6d6167656e746f2e636174616c6f6753" . - "746f726566726f6e744170692e70726f746f2e43617465676f7269657347" . - "6574526571756573741a392e6d6167656e746f2e636174616c6f6753746f" . - "726566726f6e744170692e70726f746f2e43617465676f72696573476574" . - "526573706f6e7365220032d5040a0e56617269616e745365727669636512" . - "90010a15496d706f727450726f6475637456617269616e747312392e6d61" . - "67656e746f2e636174616c6f6753746f726566726f6e744170692e70726f" . - "746f2e496d706f727456617269616e7473526571756573741a3a2e6d6167" . + "2e496d706f727443617465676f72794461746152657175657374120d0a05" . + "73746f7265180220012809123c0a06706172616d7318062001280b322c2e" . + "6d6167656e746f2e636174616c6f6753746f726566726f6e744170692e70" . + "726f746f2e4b657956616c7565226f0a19496d706f727443617465676f72" . + "794461746152657175657374123e0a0863617465676f727918012001280b" . + "322c2e6d6167656e746f2e636174616c6f6753746f726566726f6e744170" . + "692e70726f746f2e43617465676f727912120a0a61747472696275746573" . + "180220032809223b0a18496d706f727443617465676f7269657352657370" . + "6f6e7365120e0a06737461747573180120012808120f0a076d6573736167" . + "6518022001280922db040a0843617465676f7279120a0a02696418012001" . + "2809120c0a047061746818022001280912100a08706f736974696f6e1803" . + "20012805120d0a056c6576656c18042001280512160a0e6368696c647265" . + "6e5f636f756e74180520012805120c0a046e616d6518062001280912140a" . + "0c646973706c61795f6d6f646518072001280912170a0f64656661756c74" . + "5f736f72745f6279180820012809120f0a0775726c5f6b65791809200128" . + "0912100a0875726c5f70617468180a2001280912110a0969735f61637469" . + "7665180b2001280812110a0969735f616e63686f72180c2001280812170a" . + "0f696e636c7564655f696e5f6d656e75180d2001280812190a1161766169" . + "6c61626c655f736f72745f6279180e2003280912430a0b62726561646372" . + "756d6273180f2003280b322e2e6d6167656e746f2e636174616c6f675374" . + "6f726566726f6e744170692e70726f746f2e42726561646372756d621213" . + "0a0b6465736372697074696f6e18102001280912150a0d63616e6f6e6963" . + "616c5f75726c18112001280912150a0d70726f647563745f636f756e7418" . + "122001280312100a086368696c6472656e181320032809120d0a05696d61" . + "676518142001280912110a09706172656e745f696418152001280912120a" . + "0a6d6574615f7469746c6518162001280912180a106d6574615f64657363" . + "72697074696f6e18172001280912150a0d6d6574615f6b6579776f726473" . + "18182001280912410a0a6174747269627574657318322003280b322d2e6d" . + "6167656e746f2e636174616c6f6753746f726566726f6e744170692e7072" . + "6f746f2e4174747269627574652285010a0a42726561646372756d621213" . + "0a0b63617465676f72795f696418012001280912150a0d63617465676f72" . + "795f6e616d6518022001280912160a0e63617465676f72795f6c6576656c" . + "18032001280512180a1063617465676f72795f75726c5f6b657918042001" . + "280912190a1163617465676f72795f75726c5f7061746818052001280922" . + "5a0a1443617465676f7269657347657452657175657374120b0a03696473" . + "180120032809120d0a056c6576656c180220012805120d0a0573746f7265" . + "18032001280912170a0f6174747269627574655f636f6465731804200328" . + "0922540a1543617465676f72696573476574526573706f6e7365123b0a05" . + "6974656d7318012003280b322c2e6d6167656e746f2e636174616c6f6753" . + "746f726566726f6e744170692e70726f746f2e43617465676f727922660a" . + "1650726f6475637456617269616e74526573706f6e7365124c0a106d6174" . + "636865645f76617269616e747318032003280b32322e6d6167656e746f2e" . + "636174616c6f6753746f726566726f6e744170692e70726f746f2e50726f" . + "6475637456617269616e74223a0a1550726f6475637456617269616e7452" . + "65717565737412120a0a70726f647563745f4964180120012809120d0a05" . + "73746f726518022001280922630a15496d706f727456617269616e747352" . + "657175657374124a0a0876617269616e747318012003280b32382e6d6167" . "656e746f2e636174616c6f6753746f726566726f6e744170692e70726f74" . - "6f2e496d706f727456617269616e7473526573706f6e736522001290010a" . - "1544656c65746550726f6475637456617269616e747312392e6d6167656e" . + "6f2e50726f6475637456617269616e74496d706f727422390a16496d706f" . + "727456617269616e7473526573706f6e7365120e0a067374617475731801" . + "20012808120f0a076d65737361676518022001280922230a1544656c6574" . + "6556617269616e747352657175657374120a0a0269641801200328092239" . + "0a1644656c65746556617269616e7473526573706f6e7365120e0a067374" . + "61747573180120012808120f0a076d65737361676518022001280922370a" . + "164f7074696f6e53656c656374696f6e52657175657374120d0a0573746f" . + "7265180120012809120e0a0676616c75657318022003280932ce060a0743" . + "6174616c6f67127e0a0b67657450726f647563747312362e6d6167656e74" . + "6f2e636174616c6f6753746f726566726f6e744170692e70726f746f2e50" . + "726f6475637473476574526571756573741a352e6d6167656e746f2e6361" . + "74616c6f6753746f726566726f6e744170692e70726f746f2e50726f6475" . + "637473476574526573756c7422001289010a0e696d706f727450726f6475" . + "63747312392e6d6167656e746f2e636174616c6f6753746f726566726f6e" . + "744170692e70726f746f2e496d706f727450726f64756374735265717565" . + "73741a3a2e6d6167656e746f2e636174616c6f6753746f726566726f6e74" . + "4170692e70726f746f2e496d706f727450726f6475637473526573706f6e" . + "736522001289010a0e64656c65746550726f647563747312392e6d616765" . + "6e746f2e636174616c6f6753746f726566726f6e744170692e70726f746f" . + "2e44656c65746550726f6475637473526571756573741a3a2e6d6167656e" . "746f2e636174616c6f6753746f726566726f6e744170692e70726f746f2e" . - "44656c65746556617269616e7473526571756573741a3a2e6d6167656e74" . - "6f2e636174616c6f6753746f726566726f6e744170692e70726f746f2e44" . - "656c65746556617269616e7473526573706f6e73652200128d010a124765" . - "7450726f6475637456617269616e747312392e6d6167656e746f2e636174" . - "616c6f6753746f726566726f6e744170692e70726f746f2e50726f647563" . - "7456617269616e74526571756573741a3a2e6d6167656e746f2e63617461" . - "6c6f6753746f726566726f6e744170692e70726f746f2e50726f64756374" . - "56617269616e74526573706f6e73652200128c010a104765745661726961" . - "6e74734d61746368123a2e6d6167656e746f2e636174616c6f6753746f72" . - "6566726f6e744170692e70726f746f2e4f7074696f6e53656c656374696f" . - "6e526571756573741a3a2e6d6167656e746f2e636174616c6f6753746f72" . + "44656c65746550726f6475637473526573706f6e73652200128f010a1064" . + "656c65746543617465676f72696573123b2e6d6167656e746f2e63617461" . + "6c6f6753746f726566726f6e744170692e70726f746f2e44656c65746543" . + "617465676f72696573526571756573741a3c2e6d6167656e746f2e636174" . + "616c6f6753746f726566726f6e744170692e70726f746f2e44656c657465" . + "43617465676f72696573526573706f6e73652200128f010a10696d706f72" . + "7443617465676f72696573123b2e6d6167656e746f2e636174616c6f6753" . + "746f726566726f6e744170692e70726f746f2e496d706f72744361746567" . + "6f72696573526571756573741a3c2e6d6167656e746f2e636174616c6f67" . + "53746f726566726f6e744170692e70726f746f2e496d706f727443617465" . + "676f72696573526573706f6e736522001286010a0d67657443617465676f" . + "7269657312382e6d6167656e746f2e636174616c6f6753746f726566726f" . + "6e744170692e70726f746f2e43617465676f726965734765745265717565" . + "73741a392e6d6167656e746f2e636174616c6f6753746f726566726f6e74" . + "4170692e70726f746f2e43617465676f72696573476574526573706f6e73" . + "65220032d5040a0e56617269616e74536572766963651290010a15496d70" . + "6f727450726f6475637456617269616e747312392e6d6167656e746f2e63" . + "6174616c6f6753746f726566726f6e744170692e70726f746f2e496d706f" . + "727456617269616e7473526571756573741a3a2e6d6167656e746f2e6361" . + "74616c6f6753746f726566726f6e744170692e70726f746f2e496d706f72" . + "7456617269616e7473526573706f6e736522001290010a1544656c657465" . + "50726f6475637456617269616e747312392e6d6167656e746f2e63617461" . + "6c6f6753746f726566726f6e744170692e70726f746f2e44656c65746556" . + "617269616e7473526571756573741a3a2e6d6167656e746f2e636174616c" . + "6f6753746f726566726f6e744170692e70726f746f2e44656c6574655661" . + "7269616e7473526573706f6e73652200128d010a1247657450726f647563" . + "7456617269616e747312392e6d6167656e746f2e636174616c6f6753746f" . + "726566726f6e744170692e70726f746f2e50726f6475637456617269616e" . + "74526571756573741a3a2e6d6167656e746f2e636174616c6f6753746f72" . "6566726f6e744170692e70726f746f2e50726f6475637456617269616e74" . - "526573706f6e736522004228e202254d6167656e746f5c436174616c6f67" . - "53746f726566726f6e744170695c4d65746164617461620670726f746f33" + "526573706f6e73652200128c010a1047657456617269616e74734d617463" . + "68123a2e6d6167656e746f2e636174616c6f6753746f726566726f6e7441" . + "70692e70726f746f2e4f7074696f6e53656c656374696f6e526571756573" . + "741a3a2e6d6167656e746f2e636174616c6f6753746f726566726f6e7441" . + "70692e70726f746f2e50726f6475637456617269616e74526573706f6e73" . + "6522004228e202254d6167656e746f5c436174616c6f6753746f72656672" . + "6f6e744170695c4d65746164617461620670726f746f33" ), true); static::$is_initialized = true; diff --git a/app/code/Magento/CatalogStorefrontApi/Proto/DynamicAttributeValue.php b/app/code/Magento/CatalogStorefrontApi/Proto/Attribute.php similarity index 53% rename from app/code/Magento/CatalogStorefrontApi/Proto/DynamicAttributeValue.php rename to app/code/Magento/CatalogStorefrontApi/Proto/Attribute.php index 4a4b5980d..890fee5aa 100644 --- a/app/code/Magento/CatalogStorefrontApi/Proto/DynamicAttributeValue.php +++ b/app/code/Magento/CatalogStorefrontApi/Proto/Attribute.php @@ -9,18 +9,22 @@ use Google\Protobuf\Internal\GPBUtil; /** - * Generated from protobuf message magento.catalogStorefrontApi.proto.DynamicAttributeValue + * Generated from protobuf message magento.catalogStorefrontApi.proto.Attribute */ -class DynamicAttributeValue extends \Google\Protobuf\Internal\Message +class Attribute extends \Google\Protobuf\Internal\Message { /** * Generated from protobuf field string code = 1; */ protected $code = ''; /** - * Generated from protobuf field string value = 2; + * Generated from protobuf field string type = 2; */ - protected $value = ''; + protected $type = ''; + /** + * Generated from protobuf field repeated string values = 3; + */ + private $values; /** * Constructor. @@ -29,7 +33,8 @@ class DynamicAttributeValue extends \Google\Protobuf\Internal\Message * Optional. Data for populating the Message object. * * @type string $code - * @type string $value + * @type string $type + * @type string[]|\Google\Protobuf\Internal\RepeatedField $values * } */ public function __construct($data = null) @@ -61,23 +66,45 @@ public function setCode($var) } /** - * Generated from protobuf field string value = 2; + * Generated from protobuf field string type = 2; * @return string */ - public function getValue() + public function getType() { - return $this->value; + return $this->type; } /** - * Generated from protobuf field string value = 2; + * Generated from protobuf field string type = 2; * @param string $var * @return $this */ - public function setValue($var) + public function setType($var) { GPBUtil::checkString($var, true); - $this->value = $var; + $this->type = $var; + + return $this; + } + + /** + * Generated from protobuf field repeated string values = 3; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getValues() + { + return $this->values; + } + + /** + * Generated from protobuf field repeated string values = 3; + * @param string[]|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setValues($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->values = $arr; return $this; } diff --git a/app/code/Magento/CatalogStorefrontApi/Proto/CatalogClient.php b/app/code/Magento/CatalogStorefrontApi/Proto/CatalogClient.php index 6674cd1b4..ca196b55c 100644 --- a/app/code/Magento/CatalogStorefrontApi/Proto/CatalogClient.php +++ b/app/code/Magento/CatalogStorefrontApi/Proto/CatalogClient.php @@ -26,6 +26,7 @@ public function __construct($hostname, $opts, $channel = null) * @param \Magento\CatalogStorefrontApi\Proto\ProductsGetRequest $argument input argument * @param array $metadata metadata * @param array $options call options + * @return \Magento\CatalogStorefrontApi\Proto\ProductsGetResult */ public function getProducts( \Magento\CatalogStorefrontApi\Proto\ProductsGetRequest $argument, @@ -46,6 +47,7 @@ public function getProducts( * @param \Magento\CatalogStorefrontApi\Proto\ImportProductsRequest $argument input argument * @param array $metadata metadata * @param array $options call options + * @return \Magento\CatalogStorefrontApi\Proto\ImportProductsResponse */ public function importProducts( \Magento\CatalogStorefrontApi\Proto\ImportProductsRequest $argument, @@ -66,6 +68,7 @@ public function importProducts( * @param \Magento\CatalogStorefrontApi\Proto\DeleteProductsRequest $argument input argument * @param array $metadata metadata * @param array $options call options + * @return \Magento\CatalogStorefrontApi\Proto\DeleteProductsResponse */ public function deleteProducts( \Magento\CatalogStorefrontApi\Proto\DeleteProductsRequest $argument, @@ -86,6 +89,7 @@ public function deleteProducts( * @param \Magento\CatalogStorefrontApi\Proto\DeleteCategoriesRequest $argument input argument * @param array $metadata metadata * @param array $options call options + * @return \Magento\CatalogStorefrontApi\Proto\DeleteCategoriesResponse */ public function deleteCategories( \Magento\CatalogStorefrontApi\Proto\DeleteCategoriesRequest $argument, @@ -106,6 +110,7 @@ public function deleteCategories( * @param \Magento\CatalogStorefrontApi\Proto\ImportCategoriesRequest $argument input argument * @param array $metadata metadata * @param array $options call options + * @return \Magento\CatalogStorefrontApi\Proto\ImportCategoriesResponse */ public function importCategories( \Magento\CatalogStorefrontApi\Proto\ImportCategoriesRequest $argument, @@ -126,6 +131,7 @@ public function importCategories( * @param \Magento\CatalogStorefrontApi\Proto\CategoriesGetRequest $argument input argument * @param array $metadata metadata * @param array $options call options + * @return \Magento\CatalogStorefrontApi\Proto\CategoriesGetResponse */ public function getCategories( \Magento\CatalogStorefrontApi\Proto\CategoriesGetRequest $argument, diff --git a/app/code/Magento/CatalogStorefrontApi/Proto/Category.php b/app/code/Magento/CatalogStorefrontApi/Proto/Category.php index dea48dbaa..03f3024ff 100644 --- a/app/code/Magento/CatalogStorefrontApi/Proto/Category.php +++ b/app/code/Magento/CatalogStorefrontApi/Proto/Category.php @@ -110,9 +110,9 @@ class Category extends \Google\Protobuf\Internal\Message */ protected $meta_keywords = ''; /** - * Generated from protobuf field repeated .magento.catalogStorefrontApi.proto.DynamicAttributeValue dynamic_attributes = 50; + * Generated from protobuf field repeated .magento.catalogStorefrontApi.proto.Attribute attributes = 50; */ - private $dynamic_attributes; + private $attributes; /** * Constructor. @@ -144,7 +144,7 @@ class Category extends \Google\Protobuf\Internal\Message * @type string $meta_title * @type string $meta_description * @type string $meta_keywords - * @type \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue[]|\Google\Protobuf\Internal\RepeatedField $dynamic_attributes + * @type \Magento\CatalogStorefrontApi\Proto\Attribute[]|\Google\Protobuf\Internal\RepeatedField $attributes * } */ public function __construct($data = null) @@ -682,23 +682,23 @@ public function setMetaKeywords($var) } /** - * Generated from protobuf field repeated .magento.catalogStorefrontApi.proto.DynamicAttributeValue dynamic_attributes = 50; + * Generated from protobuf field repeated .magento.catalogStorefrontApi.proto.Attribute attributes = 50; * @return \Google\Protobuf\Internal\RepeatedField */ - public function getDynamicAttributes() + public function getAttributes() { - return $this->dynamic_attributes; + return $this->attributes; } /** - * Generated from protobuf field repeated .magento.catalogStorefrontApi.proto.DynamicAttributeValue dynamic_attributes = 50; - * @param \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue[]|\Google\Protobuf\Internal\RepeatedField $var + * Generated from protobuf field repeated .magento.catalogStorefrontApi.proto.Attribute attributes = 50; + * @param \Magento\CatalogStorefrontApi\Proto\Attribute[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ - public function setDynamicAttributes($var) + public function setAttributes($var) { - $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue::class); - $this->dynamic_attributes = $arr; + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Magento\CatalogStorefrontApi\Proto\Attribute::class); + $this->attributes = $arr; return $this; } diff --git a/app/code/Magento/CatalogStorefrontApi/Proto/Product.php b/app/code/Magento/CatalogStorefrontApi/Proto/Product.php index bc9b115a9..7c5a3de36 100644 --- a/app/code/Magento/CatalogStorefrontApi/Proto/Product.php +++ b/app/code/Magento/CatalogStorefrontApi/Proto/Product.php @@ -117,9 +117,9 @@ class Product extends \Google\Protobuf\Internal\Message * TODO: Uncomment options * repeated Option options = 46; * - * Generated from protobuf field repeated .magento.catalogStorefrontApi.proto.DynamicAttributeValue dynamic_attributes = 50; + * Generated from protobuf field repeated .magento.catalogStorefrontApi.proto.Attribute attributes = 50; */ - private $dynamic_attributes; + private $attributes; /** * TODO: qty is missing for only-x-left-in-stock functionality * TODO: Meta fields not populated by catalog SF app @@ -271,7 +271,7 @@ class Product extends \Google\Protobuf\Internal\Message * @type \Magento\CatalogStorefrontApi\Proto\Sample[]|\Google\Protobuf\Internal\RepeatedField $samples * @type string $visibility * where to display product - * @type \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue[]|\Google\Protobuf\Internal\RepeatedField $dynamic_attributes + * @type \Magento\CatalogStorefrontApi\Proto\Attribute[]|\Google\Protobuf\Internal\RepeatedField $attributes * PriceRange prices = 44;//- * TODO: Uncomment options * repeated Option options = 46; @@ -812,12 +812,12 @@ public function setVisibility($var) * TODO: Uncomment options * repeated Option options = 46; * - * Generated from protobuf field repeated .magento.catalogStorefrontApi.proto.DynamicAttributeValue dynamic_attributes = 50; + * Generated from protobuf field repeated .magento.catalogStorefrontApi.proto.Attribute attributes = 50; * @return \Google\Protobuf\Internal\RepeatedField */ - public function getDynamicAttributes() + public function getAttributes() { - return $this->dynamic_attributes; + return $this->attributes; } /** @@ -825,14 +825,14 @@ public function getDynamicAttributes() * TODO: Uncomment options * repeated Option options = 46; * - * Generated from protobuf field repeated .magento.catalogStorefrontApi.proto.DynamicAttributeValue dynamic_attributes = 50; - * @param \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue[]|\Google\Protobuf\Internal\RepeatedField $var + * Generated from protobuf field repeated .magento.catalogStorefrontApi.proto.Attribute attributes = 50; + * @param \Magento\CatalogStorefrontApi\Proto\Attribute[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ - public function setDynamicAttributes($var) + public function setAttributes($var) { - $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Magento\CatalogStorefrontApi\Proto\DynamicAttributeValue::class); - $this->dynamic_attributes = $arr; + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Magento\CatalogStorefrontApi\Proto\Attribute::class); + $this->attributes = $arr; return $this; } diff --git a/app/code/Magento/CatalogStorefrontApi/Proto/VariantServiceClient.php b/app/code/Magento/CatalogStorefrontApi/Proto/VariantServiceClient.php index b697deb09..ca9a76934 100644 --- a/app/code/Magento/CatalogStorefrontApi/Proto/VariantServiceClient.php +++ b/app/code/Magento/CatalogStorefrontApi/Proto/VariantServiceClient.php @@ -26,6 +26,7 @@ public function __construct($hostname, $opts, $channel = null) * @param \Magento\CatalogStorefrontApi\Proto\ImportVariantsRequest $argument input argument * @param array $metadata metadata * @param array $options call options + * @return \Magento\CatalogStorefrontApi\Proto\ImportVariantsResponse */ public function ImportProductVariants( \Magento\CatalogStorefrontApi\Proto\ImportVariantsRequest $argument, @@ -46,6 +47,7 @@ public function ImportProductVariants( * @param \Magento\CatalogStorefrontApi\Proto\DeleteVariantsRequest $argument input argument * @param array $metadata metadata * @param array $options call options + * @return \Magento\CatalogStorefrontApi\Proto\DeleteVariantsResponse */ public function DeleteProductVariants( \Magento\CatalogStorefrontApi\Proto\DeleteVariantsRequest $argument, @@ -67,6 +69,7 @@ public function DeleteProductVariants( * @param \Magento\CatalogStorefrontApi\Proto\ProductVariantRequest $argument input argument * @param array $metadata metadata * @param array $options call options + * @return \Magento\CatalogStorefrontApi\Proto\ProductVariantResponse */ public function GetProductVariants( \Magento\CatalogStorefrontApi\Proto\ProductVariantRequest $argument, @@ -88,6 +91,7 @@ public function GetProductVariants( * @param \Magento\CatalogStorefrontApi\Proto\OptionSelectionRequest $argument input argument * @param array $metadata metadata * @param array $options call options + * @return \Magento\CatalogStorefrontApi\Proto\ProductVariantResponse */ public function GetVariantsMatch( \Magento\CatalogStorefrontApi\Proto\OptionSelectionRequest $argument, diff --git a/app/code/Magento/CatalogStorefrontApi/etc/di.xml b/app/code/Magento/CatalogStorefrontApi/etc/di.xml index 7452a5eaa..b8bc22305 100644 --- a/app/code/Magento/CatalogStorefrontApi/etc/di.xml +++ b/app/code/Magento/CatalogStorefrontApi/etc/di.xml @@ -25,7 +25,7 @@ Generated by the Magento PHP proto generator. DO NOT EDIT! - + diff --git a/magento.proto b/magento.proto index 15d92495f..3b5a80867 100755 --- a/magento.proto +++ b/magento.proto @@ -49,7 +49,7 @@ message Product { // PriceRange prices = 44;//- // TODO: Uncomment options // repeated Option options = 46; - repeated DynamicAttributeValue dynamic_attributes = 50; + repeated Attribute attributes = 50; // TODO: qty is missing for only-x-left-in-stock functionality // TODO: Meta fields not populated by catalog SF app @@ -225,10 +225,11 @@ message KeyValue { string value = 2; } -message DynamicAttributeValue +message Attribute { string code = 1; - string value = 2; + string type = 2; + repeated string values = 3; } message MediaResource { @@ -375,7 +376,7 @@ message Category { string meta_description = 23; string meta_keywords = 24; - repeated DynamicAttributeValue dynamic_attributes = 50; + repeated Attribute attributes = 50; } message Breadcrumb {