' +
- this.options.metaData.data.uploader +
- ''
- );
+ uploaderLinkUrl = 'https://youtube.com/channel/' + this.options.metaData.data.uploaderUrl;
} else if (this.options.videoProvider === 'vimeo') {
- this.element.find(this.options.metaData.DOM.uploader).html(
- '
' + this.options.metaData.data.uploader +
- '');
+ uploaderLinkUrl = this.options.metaData.data.uploaderUrl;
}
+ uploaderLink = document.createElement('a');
+ uploaderLink.setAttribute('href', uploaderLinkUrl);
+ uploaderLink.setAttribute('target', '_blank');
+ uploaderLink.innerText = this.options.metaData.data.uploader;
+ this.element.find(this.options.metaData.DOM.uploader)[0].appendChild(uploaderLink);
this.element.find('.' + this.options.videoClass).productVideoLoader();
},
diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/View/Tab/History.php b/app/code/Magento/Sales/Block/Adminhtml/Order/View/Tab/History.php
index 64b53d10d4af6..0972d74314246 100644
--- a/app/code/Magento/Sales/Block/Adminhtml/Order/View/Tab/History.php
+++ b/app/code/Magento/Sales/Block/Adminhtml/Order/View/Tab/History.php
@@ -61,6 +61,7 @@ public function getOrder()
/**
* Compose and get order full history.
+ *
* Consists of the status history comments as well as of invoices, shipments and creditmemos creations
*
* @TODO This method requires refactoring. Need to create separate model for comment history handling
@@ -218,7 +219,7 @@ protected function _prepareHistoryItem($label, $notified, $created, $comment = '
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function getTabLabel()
{
@@ -226,7 +227,7 @@ public function getTabLabel()
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function getTabTitle()
{
@@ -264,7 +265,7 @@ public function getTabUrl()
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function canShowTab()
{
@@ -272,7 +273,7 @@ public function canShowTab()
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function isHidden()
{
@@ -303,11 +304,7 @@ public static function sortHistoryByTimestamp($a, $b)
$createdAtA = $a['created_at'];
$createdAtB = $b['created_at'];
- /** @var $createdAtA \DateTime */
- if ($createdAtA->getTimestamp() == $createdAtB->getTimestamp()) {
- return 0;
- }
- return $createdAtA->getTimestamp() < $createdAtB->getTimestamp() ? -1 : 1;
+ return $createdAtA->getTimestamp() <=> $createdAtB->getTimestamp();
}
/**
diff --git a/app/code/Magento/Sales/Model/Order/Pdf/AbstractPdf.php b/app/code/Magento/Sales/Model/Order/Pdf/AbstractPdf.php
index 401fdcd2b04ac..85e34f560bb7b 100644
--- a/app/code/Magento/Sales/Model/Order/Pdf/AbstractPdf.php
+++ b/app/code/Magento/Sales/Model/Order/Pdf/AbstractPdf.php
@@ -158,8 +158,7 @@ public function __construct(
}
/**
- * Returns the total width in points of the string using the specified font and
- * size.
+ * Returns the total width in points of the string using the specified font and size.
*
* This is not the most efficient way to perform this calculation. I'm
* concentrating optimization efforts on the upcoming layout manager class.
@@ -230,7 +229,7 @@ public function getAlignCenter($string, $x, $columnWidth, \Zend_Pdf_Resource_Fon
* Insert logo to pdf page
*
* @param \Zend_Pdf_Page &$page
- * @param null $store
+ * @param string|null $store
* @return void
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
@@ -285,7 +284,7 @@ protected function insertLogo(&$page, $store = null)
* Insert address to pdf page
*
* @param \Zend_Pdf_Page &$page
- * @param null $store
+ * @param string|null $store
* @return void
*/
protected function insertAddress(&$page, $store = null)
@@ -641,11 +640,7 @@ protected function _sortTotalsList($a, $b)
return 0;
}
- if ($a['sort_order'] == $b['sort_order']) {
- return 0;
- }
-
- return $a['sort_order'] > $b['sort_order'] ? 1 : -1;
+ return $a['sort_order'] <=> $b['sort_order'];
}
/**
diff --git a/app/code/Magento/Sales/Test/Mftf/Section/AdminInvoicesFiltersSection.xml b/app/code/Magento/Sales/Test/Mftf/Section/AdminInvoicesFiltersSection.xml
index 8fb45295bd26e..78b9c853ff6a2 100644
--- a/app/code/Magento/Sales/Test/Mftf/Section/AdminInvoicesFiltersSection.xml
+++ b/app/code/Magento/Sales/Test/Mftf/Section/AdminInvoicesFiltersSection.xml
@@ -10,5 +10,6 @@
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
diff --git a/app/code/Magento/Sales/Test/Mftf/Test/AdminCreateInvoiceTest.xml b/app/code/Magento/Sales/Test/Mftf/Test/AdminCreateInvoiceTest.xml
index 05f20371851bc..82f5b515eb967 100644
--- a/app/code/Magento/Sales/Test/Mftf/Test/AdminCreateInvoiceTest.xml
+++ b/app/code/Magento/Sales/Test/Mftf/Test/AdminCreateInvoiceTest.xml
@@ -78,8 +78,10 @@
+
+
diff --git a/app/code/Magento/Tax/Test/Mftf/ActionGroup/AdminTaxActionGroup.xml b/app/code/Magento/Tax/Test/Mftf/ActionGroup/AdminTaxActionGroup.xml
index d6e5f4b693c19..1a95bf0282b40 100644
--- a/app/code/Magento/Tax/Test/Mftf/ActionGroup/AdminTaxActionGroup.xml
+++ b/app/code/Magento/Tax/Test/Mftf/ActionGroup/AdminTaxActionGroup.xml
@@ -16,14 +16,18 @@
+
+
+
+
@@ -33,7 +37,9 @@
+
+
@@ -54,13 +60,17 @@
+
+
+
+
@@ -69,7 +79,9 @@
+
+
diff --git a/app/code/Magento/Tax/Test/Mftf/Test/StorefrontTaxInformationInShoppingCartForGuestPhysicalQuoteTest.xml b/app/code/Magento/Tax/Test/Mftf/Test/StorefrontTaxInformationInShoppingCartForGuestPhysicalQuoteTest.xml
index 47161001219e8..9bc44dec0b5b8 100644
--- a/app/code/Magento/Tax/Test/Mftf/Test/StorefrontTaxInformationInShoppingCartForGuestPhysicalQuoteTest.xml
+++ b/app/code/Magento/Tax/Test/Mftf/Test/StorefrontTaxInformationInShoppingCartForGuestPhysicalQuoteTest.xml
@@ -16,10 +16,11 @@
-
-
+
+
+
diff --git a/app/code/Magento/Tax/Test/Mftf/Test/StorefrontTaxInformationInShoppingCartForGuestVirtualQuoteTest.xml b/app/code/Magento/Tax/Test/Mftf/Test/StorefrontTaxInformationInShoppingCartForGuestVirtualQuoteTest.xml
index 88496b8e2cd27..a0eac56e4db09 100644
--- a/app/code/Magento/Tax/Test/Mftf/Test/StorefrontTaxInformationInShoppingCartForGuestVirtualQuoteTest.xml
+++ b/app/code/Magento/Tax/Test/Mftf/Test/StorefrontTaxInformationInShoppingCartForGuestVirtualQuoteTest.xml
@@ -16,10 +16,11 @@
-
-
+
+
+
diff --git a/app/code/Magento/Theme/Model/Wysiwyg/Storage.php b/app/code/Magento/Theme/Model/Wysiwyg/Storage.php
index 82206b8eb1c65..2c3350e695a85 100644
--- a/app/code/Magento/Theme/Model/Wysiwyg/Storage.php
+++ b/app/code/Magento/Theme/Model/Wysiwyg/Storage.php
@@ -11,6 +11,11 @@
use Magento\Framework\App\Filesystem\DirectoryList;
+/**
+ * Class Storage
+ *
+ * @package Magento\Theme\Model\Wysiwyg
+ */
class Storage
{
/**
@@ -127,14 +132,6 @@ public function uploadFile($targetPath)
$this->_createThumbnail($targetPath . '/' . $uploader->getUploadedFileName());
- $result['cookie'] = [
- 'name' => $this->_helper->getSession()->getName(),
- 'value' => $this->_helper->getSession()->getSessionId(),
- 'lifetime' => $this->_helper->getSession()->getCookieLifetime(),
- 'path' => $this->_helper->getSession()->getCookiePath(),
- 'domain' => $this->_helper->getSession()->getCookieDomain()
- ];
-
return $result;
}
diff --git a/app/code/Magento/Theme/Test/Unit/Model/Wysiwyg/StorageTest.php b/app/code/Magento/Theme/Test/Unit/Model/Wysiwyg/StorageTest.php
index 0951f7b50f289..ddd6ebc43ce83 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Wysiwyg/StorageTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Wysiwyg/StorageTest.php
@@ -152,8 +152,7 @@ public function testUploadFile()
$this->_helperStorage->expects($this->any())->method('getSession')->will($this->returnValue($session));
$expectedResult = [
- 'not_empty',
- 'cookie' => ['name' => null, 'value' => null, 'lifetime' => null, 'path' => null, 'domain' => null],
+ 'not_empty'
];
$this->assertEquals($expectedResult, $this->_storageModel->uploadFile($this->_storageRoot));
diff --git a/app/code/Magento/Ui/DataProvider/Modifier/Pool.php b/app/code/Magento/Ui/DataProvider/Modifier/Pool.php
index 34a24499834d2..882f97d57e9fb 100644
--- a/app/code/Magento/Ui/DataProvider/Modifier/Pool.php
+++ b/app/code/Magento/Ui/DataProvider/Modifier/Pool.php
@@ -88,14 +88,7 @@ public function getModifiersInstances()
protected function sort(array $data)
{
usort($data, function (array $a, array $b) {
- $a['sortOrder'] = $this->getSortOrder($a);
- $b['sortOrder'] = $this->getSortOrder($b);
-
- if ($a['sortOrder'] == $b['sortOrder']) {
- return 0;
- }
-
- return ($a['sortOrder'] < $b['sortOrder']) ? -1 : 1;
+ return $this->getSortOrder($a) <=> $this->getSortOrder($b);
});
return $data;
diff --git a/app/code/Magento/WebapiAsync/Controller/Rest/Asynchronous/InputParamsResolver.php b/app/code/Magento/WebapiAsync/Controller/Rest/Asynchronous/InputParamsResolver.php
index e6df38c563ed1..e74db459808ce 100644
--- a/app/code/Magento/WebapiAsync/Controller/Rest/Asynchronous/InputParamsResolver.php
+++ b/app/code/Magento/WebapiAsync/Controller/Rest/Asynchronous/InputParamsResolver.php
@@ -95,6 +95,13 @@ public function resolve()
$this->requestValidator->validate();
$webapiResolvedParams = [];
$inputData = $this->request->getRequestData();
+
+ $httpMethod = $this->request->getHttpMethod();
+ if ($httpMethod == \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_DELETE) {
+ $requestBodyParams = $this->request->getBodyParams();
+ $inputData = array_merge($requestBodyParams, $inputData);
+ }
+
foreach ($inputData as $key => $singleEntityParams) {
$webapiResolvedParams[$key] = $this->resolveBulkItemParams($singleEntityParams);
}
@@ -103,6 +110,8 @@ public function resolve()
}
/**
+ * Returns route.
+ *
* @return \Magento\Webapi\Controller\Rest\Router\Route
*/
public function getRoute()
@@ -111,8 +120,7 @@ public function getRoute()
}
/**
- * Convert the input array from key-value format to a list of parameters
- * suitable for the specified class / method.
+ * Convert the input array from key-value format to a list of parameters suitable for the specified class / method.
*
* Instead of \Magento\Webapi\Controller\Rest\InputParamsResolver
* we don't need to merge body params with url params and use only body params
diff --git a/app/code/Magento/Wishlist/Test/Mftf/Test/StorefrontAddMultipleStoreProductsToWishlistTest.xml b/app/code/Magento/Wishlist/Test/Mftf/Test/StorefrontAddMultipleStoreProductsToWishlistTest.xml
index 145fb94f356f7..c9a0c0cc0f8bc 100644
--- a/app/code/Magento/Wishlist/Test/Mftf/Test/StorefrontAddMultipleStoreProductsToWishlistTest.xml
+++ b/app/code/Magento/Wishlist/Test/Mftf/Test/StorefrontAddMultipleStoreProductsToWishlistTest.xml
@@ -13,10 +13,11 @@
-
-
+
+
+
diff --git a/app/code/Magento/Wishlist/Test/Mftf/Test/StorefrontDeletePersistedWishlistTest.xml b/app/code/Magento/Wishlist/Test/Mftf/Test/StorefrontDeletePersistedWishlistTest.xml
index 0ae2b6af804bd..0001bd9d6db75 100644
--- a/app/code/Magento/Wishlist/Test/Mftf/Test/StorefrontDeletePersistedWishlistTest.xml
+++ b/app/code/Magento/Wishlist/Test/Mftf/Test/StorefrontDeletePersistedWishlistTest.xml
@@ -13,12 +13,12 @@
+
-
+
-
diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/CategoryTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/CategoryTest.php
index 8841fab75790c..eff2e96f4b112 100644
--- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/CategoryTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/CategoryTest.php
@@ -225,7 +225,9 @@ public function testCategoryProducts()
}
short_description
sku
- small_image
+ small_image {
+ path
+ }
small_image_label
special_from_date
special_price
diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/MediaGalleryTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/MediaGalleryTest.php
new file mode 100644
index 0000000000000..8da2702917af0
--- /dev/null
+++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/MediaGalleryTest.php
@@ -0,0 +1,63 @@
+objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
+ }
+
+ /**
+ * @magentoApiDataFixture Magento/Catalog/_files/product_with_image.php
+ */
+ public function testProductSmallImageUrlWithExistingImage()
+ {
+ $productSku = 'simple';
+ $query = <<graphQlQuery($query);
+
+ self::assertArrayHasKey('url', $response['products']['items'][0]['small_image']);
+ self::assertContains('magento_image.jpg', $response['products']['items'][0]['small_image']['url']);
+ self::assertTrue($this->checkImageExists($response['products']['items'][0]['small_image']['url']));
+ }
+
+ /**
+ * @param string $url
+ * @return bool
+ */
+ private function checkImageExists(string $url): bool
+ {
+ $connection = curl_init($url);
+ curl_setopt($connection, CURLOPT_HEADER, true);
+ curl_setopt($connection, CURLOPT_NOBODY, true);
+ curl_setopt($connection, CURLOPT_RETURNTRANSFER, 1);
+ curl_exec($connection);
+ $responseStatus = curl_getinfo($connection, CURLINFO_HTTP_CODE);
+
+ return $responseStatus === 200 ? true : false;
+ }
+}
diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductViewTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductViewTest.php
index 34cebde64d03a..7c2cda3a4551b 100644
--- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductViewTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductViewTest.php
@@ -205,7 +205,9 @@ public function testQueryAllFieldsSimpleProduct()
}
short_description
sku
- small_image
+ small_image {
+ path
+ }
small_image_label
special_from_date
special_price
@@ -484,7 +486,7 @@ public function testQueryMediaGalleryEntryFieldsSimpleProduct()
QUERY;
$response = $this->graphQlQuery($query);
-
+
/**
* @var ProductRepositoryInterface $productRepository
*/
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.xml
index 7c4824c604e29..460cc29b183e0 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/ProductTypeSwitchingOnCreationTest.xml
@@ -77,6 +77,7 @@
downloadable
configurableProduct::not_virtual_for_type_switching
clearDownloadableData
+ MSI-1624
diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertDownloadableDuplicateForm.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertDownloadableDuplicateForm.php
index e5d97e1511e71..2033189214e12 100644
--- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertDownloadableDuplicateForm.php
+++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Constraint/AssertDownloadableDuplicateForm.php
@@ -32,11 +32,7 @@ protected function sortDownloadableArray(array $fields)
usort(
$fields,
function ($row1, $row2) {
- if ($row1['sort_order'] == $row2['sort_order']) {
- return 0;
- }
-
- return ($row1['sort_order'] < $row2['sort_order']) ? -1 : 1;
+ return $row1['sort_order'] <=> $row2['sort_order'];
}
);
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/_files/product_simple_with_wrong_url_key.php b/dev/tests/integration/testsuite/Magento/Catalog/_files/product_simple_with_wrong_url_key.php
new file mode 100644
index 0000000000000..5012bc947211b
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Catalog/_files/product_simple_with_wrong_url_key.php
@@ -0,0 +1,38 @@
+create(\Magento\Catalog\Model\Product::class);
+$product->setTypeId(\Magento\Catalog\Model\Product\Type::TYPE_SIMPLE)
+ ->setAttributeSetId(4)
+ ->setWebsiteIds([1])
+ ->setName('Simple Product')
+ ->setSku('simple1')
+ ->setPrice(10)
+ ->setDescription('Description with html tag')
+ ->setVisibility(\Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH)
+ ->setStatus(\Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED)
+ ->setCategoryIds([2])
+ ->setStockData(['use_config_manage_stock' => 1, 'qty' => 100, 'is_qty_decimal' => 0, 'is_in_stock' => 1])
+ ->setUrlKey('cuvee-merlot-cabernet-igp-pays-d-oc-frankrijk')
+ ->save();
+
+/** @var $product \Magento\Catalog\Model\Product */
+$product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(\Magento\Catalog\Model\Product::class);
+$product->setTypeId(\Magento\Catalog\Model\Product\Type::TYPE_SIMPLE)
+ ->setAttributeSetId(4)
+ ->setWebsiteIds([1])
+ ->setName('Simple Product 2')
+ ->setSku('simple2')
+ ->setPrice(10)
+ ->setDescription('Description with html tag')
+ ->setVisibility(\Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH)
+ ->setStatus(\Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED)
+ ->setCategoryIds([2])
+ ->setStockData(['use_config_manage_stock' => 1, 'qty' => 100, 'is_qty_decimal' => 0, 'is_in_stock' => 1])
+ ->setUrlKey('normal-url')
+ ->save();
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/_files/product_simple_with_wrong_url_key_rollback.php b/dev/tests/integration/testsuite/Magento/Catalog/_files/product_simple_with_wrong_url_key_rollback.php
new file mode 100644
index 0000000000000..778fa7b15df3e
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Catalog/_files/product_simple_with_wrong_url_key_rollback.php
@@ -0,0 +1,29 @@
+getInstance()->reinitialize();
+
+/** @var \Magento\Framework\Registry $registry */
+$registry = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(\Magento\Framework\Registry::class);
+
+$registry->unregister('isSecureArea');
+$registry->register('isSecureArea', true);
+
+/** @var \Magento\Catalog\Api\ProductRepositoryInterface $productRepository */
+$productRepository = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+ ->get(\Magento\Catalog\Api\ProductRepositoryInterface::class);
+try {
+ $product = $productRepository->get('simple1', false, null, true);
+ $productRepository->delete($product);
+ $product = $productRepository->get('simple2', false, null, true);
+ $productRepository->delete($product);
+} catch (NoSuchEntityException $e) {
+}
+$registry->unregister('isSecureArea');
+$registry->register('isSecureArea', false);
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
index c5e704c2434b5..237d7660da9bd 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
@@ -1566,6 +1566,46 @@ public function testExistingProductWithUrlKeys()
}
}
+ /**
+ * @magentoDataFixture Magento/Catalog/_files/product_simple_with_wrong_url_key.php
+ * @magentoDbIsolation disabled
+ * @magentoAppIsolation enabled
+ */
+ public function testAddUpdateProductWithInvalidUrlKeys() : void
+ {
+ $products = [
+ 'simple1' => 'cuvee-merlot-cabernet-igp-pays-d-oc-frankrijk',
+ 'simple2' => 'normal-url',
+ 'simple3' => 'some-wrong-url'
+ ];
+ $filesystem = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+ ->create(\Magento\Framework\Filesystem::class);
+ $directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
+ $source = $this->objectManager->create(
+ \Magento\ImportExport\Model\Import\Source\Csv::class,
+ [
+ 'file' => __DIR__ . '/_files/products_to_import_with_invalid_url_keys.csv',
+ 'directory' => $directory
+ ]
+ );
+
+ $errors = $this->_model->setParameters(
+ ['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_ADD_UPDATE, 'entity' => 'catalog_product']
+ )->setSource(
+ $source
+ )->validateData();
+
+ $this->assertTrue($errors->getErrorsCount() == 0);
+ $this->_model->importData();
+
+ $productRepository = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+ \Magento\Catalog\Api\ProductRepositoryInterface::class
+ );
+ foreach ($products as $productSku => $productUrlKey) {
+ $this->assertEquals($productUrlKey, $productRepository->get($productSku)->getUrlKey());
+ }
+ }
+
/**
* @magentoDataFixture Magento/Catalog/_files/product_simple_with_url_key.php
* @magentoDbIsolation disabled
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import_with_invalid_url_keys.csv b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import_with_invalid_url_keys.csv
new file mode 100644
index 0000000000000..25bb95ab9e0fd
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/products_to_import_with_invalid_url_keys.csv
@@ -0,0 +1,4 @@
+sku,product_type,store_view_code,name,price,attribute_set_code,url_key
+simple1,simple,,"simple 1",25,Default,cuvée merlot-cabernet igp pays d'oc frankrijk
+simple2,simple,,"simple 2",34,Default,normal-url
+simple3,simple,,"simple 3",58,Default,some!wrong'url
diff --git a/dev/tests/integration/testsuite/Magento/CatalogInventory/Model/Quote/Item/QuantityValidatorTest.php b/dev/tests/integration/testsuite/Magento/CatalogInventory/Model/Quote/Item/QuantityValidatorTest.php
index 0ac6eb3c0405b..6105aba9201e2 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogInventory/Model/Quote/Item/QuantityValidatorTest.php
+++ b/dev/tests/integration/testsuite/Magento/CatalogInventory/Model/Quote/Item/QuantityValidatorTest.php
@@ -170,7 +170,7 @@ private function setMockStockStateResultToQuoteItemOptions($quoteItem, $resultMo
* Tests quantity verifications for configurable product.
*
* @param int $quantity - quantity of configurable option.
- * @param string $errorMessage - expected error message.
+ * @param string $errorMessageRegexp - expected error message regexp.
* @return void
* @throws CouldNotSaveException
* @throws LocalizedException
@@ -179,7 +179,7 @@ private function setMockStockStateResultToQuoteItemOptions($quoteItem, $resultMo
* @magentoDbIsolation enabled
* @magentoAppIsolation enabled
*/
- public function testConfigurableWithOptions(int $quantity, string $errorMessage): void
+ public function testConfigurableWithOptions(int $quantity, string $errorMessageRegexp): void
{
/** @var ProductRepositoryInterface $productRepository */
$productRepository = $this->objectManager->create(ProductRepositoryInterface::class);
@@ -217,17 +217,16 @@ public function testConfigurableWithOptions(int $quantity, string $errorMessage)
]
);
- if (!empty($errorMessage)) {
- $this->expectException(LocalizedException::class);
- $this->expectExceptionMessage($errorMessage);
- }
-
- /** @var Quote $cart */
- $cart = $this->objectManager->create(CartInterface::class);
- $result = $cart->addProduct($product, $request);
+ try {
+ /** @var Quote $cart */
+ $cart = $this->objectManager->create(CartInterface::class);
+ $result = $cart->addProduct($product, $request);
- if (empty($errorMessage)) {
- self::assertEquals('Configurable Product', $result->getName());
+ if (empty($errorMessageRegexp)) {
+ self::assertEquals('Configurable Product', $result->getName());
+ }
+ } catch (LocalizedException $e) {
+ self::assertEquals(1, preg_match($errorMessageRegexp, $e->getMessage()));
}
}
@@ -239,18 +238,20 @@ public function testConfigurableWithOptions(int $quantity, string $errorMessage)
*/
public function quantityDataProvider(): array
{
+ $qtyRegexp = '/You can buy (this product|Configurable OptionOption 1) only in quantities of 500 at a time/';
+
return [
[
'quantity' => 1,
- 'error' => 'The fewest you may purchase is 500.'
+ 'error_regexp' => '/The fewest you may purchase is 500/'
],
[
'quantity' => 501,
- 'error' => 'You can buy Configurable OptionOption 1 only in quantities of 500 at a time'
+ 'error_regexp' => $qtyRegexp
],
[
'quantity' => 1000,
- 'error' => ''
+ 'error_regexp' => ''
],
];
diff --git a/dev/tests/integration/testsuite/Magento/Cms/Block/Widget/BlockTest.php b/dev/tests/integration/testsuite/Magento/Cms/Block/Widget/BlockTest.php
index 7ee1f569180a2..266fd66bc3db9 100644
--- a/dev/tests/integration/testsuite/Magento/Cms/Block/Widget/BlockTest.php
+++ b/dev/tests/integration/testsuite/Magento/Cms/Block/Widget/BlockTest.php
@@ -31,5 +31,6 @@ public function testToHtml()
$this->assertContains('', $result);
$this->assertContains('Custom variable: "HTML Value".
', $result);
+ $this->assertSame($cmsBlock->getIdentities(), $block->getIdentities());
}
}
diff --git a/dev/tests/integration/testsuite/Magento/Downloadable/Controller/Adminhtml/Downloadable/FileTest.php b/dev/tests/integration/testsuite/Magento/Downloadable/Controller/Adminhtml/Downloadable/FileTest.php
index 3f13ce7f41ed6..60c2a41fae49f 100644
--- a/dev/tests/integration/testsuite/Magento/Downloadable/Controller/Adminhtml/Downloadable/FileTest.php
+++ b/dev/tests/integration/testsuite/Magento/Downloadable/Controller/Adminhtml/Downloadable/FileTest.php
@@ -37,6 +37,7 @@ public function testUploadAction()
],
];
+ $this->getRequest()->setMethod('POST');
$this->dispatch('backend/admin/downloadable_file/upload/type/samples');
$body = $this->getResponse()->getBody();
$result = Bootstrap::getObjectManager()->get(Json::class)->unserialize($body);
@@ -64,6 +65,7 @@ public function testUploadProhibitedExtensions($fileName)
],
];
+ $this->getRequest()->setMethod('POST');
$this->dispatch('backend/admin/downloadable_file/upload/type/samples');
$body = $this->getResponse()->getBody();
$result = Bootstrap::getObjectManager()->get(Json::class)->unserialize($body);
diff --git a/dev/tests/setup-integration/etc/install-config-mysql.php.dist b/dev/tests/setup-integration/etc/install-config-mysql.php.dist
index c5757b0011060..d355100c446be 100644
--- a/dev/tests/setup-integration/etc/install-config-mysql.php.dist
+++ b/dev/tests/setup-integration/etc/install-config-mysql.php.dist
@@ -17,8 +17,8 @@ return [
'admin-email' => \Magento\TestFramework\Bootstrap::ADMIN_EMAIL,
'admin-firstname' => \Magento\TestFramework\Bootstrap::ADMIN_FIRSTNAME,
'admin-lastname' => \Magento\TestFramework\Bootstrap::ADMIN_LASTNAME,
- 'enable_modules' => 'Magento_TestSetupModule2,Magento_TestSetupModule1,Magento_Backend',
- 'disable_modules' => 'all'
+ 'enable-modules' => 'Magento_TestSetupModule2,Magento_TestSetupModule1,Magento_Backend',
+ 'disable-modules' => 'all'
],
'checkout' => [
'host' => '{{db-host}}',
diff --git a/dev/tests/static/framework/Magento/ruleset.xml b/dev/tests/static/framework/Magento/ruleset.xml
index cc0a5f43e084a..d0f0d38f8fa03 100644
--- a/dev/tests/static/framework/Magento/ruleset.xml
+++ b/dev/tests/static/framework/Magento/ruleset.xml
@@ -10,6 +10,10 @@
+
+ *.phtml
+
+
@@ -26,18 +30,21 @@
*/_files/*
*/Test/*
*Test.php
+ */Magento/Inventory*/*
*\.(php)
*/Test/*
*Test.php
*/_files/*
+ */Magento/Inventory*/*
*\.(php)
*/Test/*
*Test.php
*/_files/*
+ */Magento/Inventory*/*
*/(app/code|vendor|setup/src|lib/internal/Magento)/*
diff --git a/dev/tests/static/testsuite/Magento/Test/Php/_files/phpcpd/blacklist/common.txt b/dev/tests/static/testsuite/Magento/Test/Php/_files/phpcpd/blacklist/common.txt
index fd8c09907e0ed..8fa70be004fa9 100644
--- a/dev/tests/static/testsuite/Magento/Test/Php/_files/phpcpd/blacklist/common.txt
+++ b/dev/tests/static/testsuite/Magento/Test/Php/_files/phpcpd/blacklist/common.txt
@@ -202,3 +202,6 @@ setup/performance-toolkit/aggregate-report
Magento/MessageQueue/Setup
Magento/Elasticsearch/Elasticsearch5
Test/_files
+Magento/InventoryCatalogAdminUi/Controller/Adminhtml
+Magento/InventoryConfigurableProductIndexer/Indexer
+Magento/InventoryGroupedProductIndexer/Indexer
diff --git a/lib/internal/Magento/Framework/Communication/Config/CompositeReader.php b/lib/internal/Magento/Framework/Communication/Config/CompositeReader.php
index f3af691426919..2ca64bf14d33b 100644
--- a/lib/internal/Magento/Framework/Communication/Config/CompositeReader.php
+++ b/lib/internal/Magento/Framework/Communication/Config/CompositeReader.php
@@ -27,12 +27,10 @@ public function __construct(array $readers)
usort(
$readers,
function ($firstItem, $secondItem) {
- if (!isset($firstItem['sortOrder']) || !isset($secondItem['sortOrder'])
- || $firstItem['sortOrder'] == $secondItem['sortOrder']
- ) {
+ if (!isset($firstItem['sortOrder']) || !isset($secondItem['sortOrder'])) {
return 0;
}
- return $firstItem['sortOrder'] < $secondItem['sortOrder'] ? -1 : 1;
+ return $firstItem['sortOrder'] <=> $secondItem['sortOrder'];
}
);
$this->readers = [];
diff --git a/lib/internal/Magento/Framework/DB/Adapter/Pdo/Mysql.php b/lib/internal/Magento/Framework/DB/Adapter/Pdo/Mysql.php
index 441da10253a14..86266ec23fe47 100644
--- a/lib/internal/Magento/Framework/DB/Adapter/Pdo/Mysql.php
+++ b/lib/internal/Magento/Framework/DB/Adapter/Pdo/Mysql.php
@@ -515,6 +515,7 @@ protected function _checkDdlTransaction($sql)
/**
* Special handling for PDO query().
+ *
* All bind parameter names must begin with ':'.
*
* @param string|\Magento\Framework\DB\Select $sql The SQL statement with placeholders.
@@ -595,6 +596,7 @@ protected function _query($sql, $bind = [])
/**
* Special handling for PDO query().
+ *
* All bind parameter names must begin with ':'.
*
* @param string|\Magento\Framework\DB\Select $sql The SQL statement with placeholders.
@@ -615,9 +617,10 @@ public function query($sql, $bind = [])
}
/**
+ * Allows multiple queries
+ *
* Allows multiple queries -- to safeguard against SQL injection, USE CAUTION and verify that input
* cannot be tampered with.
- *
* Special handling for PDO query().
* All bind parameter names must begin with ':'.
*
@@ -1278,6 +1281,7 @@ public function getForeignKeysTree()
/**
* Modify tables, used for upgrade process
+ *
* Change columns definitions, reset foreign keys, change tables comments and engines.
*
* The value of each array element is an associative array
@@ -1469,9 +1473,9 @@ public function select()
*
* Method revrited for handle empty arrays in value param
*
- * @param string $text The text with a placeholder.
- * @param mixed $value The value to quote.
- * @param string $type OPTIONAL SQL datatype
+ * @param string $text The text with a placeholder.
+ * @param mixed $value The value to quote.
+ * @param string $type OPTIONAL SQL datatype
* @param integer $count OPTIONAL count of placeholders to replace
* @return string An SQL-safe quoted value placed into the orignal text.
*/
@@ -1514,6 +1518,7 @@ protected function _getCacheId($tableKey, $ddlType)
/**
* Load DDL data from cache
+ *
* Return false if cache does not exists
*
* @param string $tableCacheKey the table cache key
@@ -1568,7 +1573,8 @@ public function saveDdlCache($tableCacheKey, $ddlType, $data)
/**
* Reset cached DDL data from cache
- * if table name is null - reset all cached DDL data
+ *
+ * If table name is null - reset all cached DDL data
*
* @param string $tableName
* @param string $schemaName OPTIONAL
@@ -1605,6 +1611,7 @@ public function resetDdlCache($tableName = null, $schemaName = null)
/**
* Disallow DDL caching
+ *
* @return $this
*/
public function disallowDdlCache()
@@ -1615,6 +1622,7 @@ public function disallowDdlCache()
/**
* Allow DDL caching
+ *
* @return $this
*/
public function allowDdlCache()
@@ -1675,9 +1683,10 @@ public function describeTable($tableName, $schemaName = null)
/**
* Format described column to definition, ready to be added to ddl table.
+ *
* Return array with keys: name, type, length, options, comment
*
- * @param array $columnData
+ * @param array $columnData
* @return array
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
* @SuppressWarnings(PHPMD.NPathComplexity)
@@ -1892,6 +1901,7 @@ public function changeTableComment($tableName, $comment, $schemaName = null)
/**
* Inserts a table row with specified data
+ *
* Special for Zero values to identity column
*
* @param string $table
@@ -2782,6 +2792,7 @@ public function dropIndex($tableName, $keyName, $schemaName = null)
/**
* Add new Foreign Key to table
+ *
* If Foreign Key with same name is exist - it will be deleted
*
* @param string $fkName
@@ -3016,6 +3027,7 @@ protected function _transformStringSqlCondition($conditionKey, $value)
/**
* Prepare value for save in column
+ *
* Return converted to column data type value
*
* @param array $column the column describe array
@@ -3139,6 +3151,8 @@ public function getIfNullSql($expression, $value = 0)
}
/**
+ * Generates case SQL fragment
+ *
* Generate fragment of SQL, that check value against multiple condition cases
* and return different result depends on them
*
@@ -3163,6 +3177,7 @@ public function getCaseSql($valueName, $casesResults, $defaultValue = null)
/**
* Generate fragment of SQL, that combine together (concatenate) the results from data array
+ *
* All arguments in data must be quoted
*
* @param string[] $data
@@ -3177,6 +3192,7 @@ public function getConcatSql(array $data, $separator = null)
/**
* Generate fragment of SQL that returns length of character string
+ *
* The string argument must be quoted
*
* @param string $string
@@ -3188,6 +3204,8 @@ public function getLengthSql($string)
}
/**
+ * Generate least SQL fragment
+ *
* Generate fragment of SQL, that compare with two or more arguments, and returns the smallest
* (minimum-valued) argument
* All arguments in data must be quoted
@@ -3201,6 +3219,8 @@ public function getLeastSql(array $data)
}
/**
+ * Generate greatest SQL fragment
+ *
* Generate fragment of SQL, that compare with two or more arguments, and returns the largest
* (maximum-valued) argument
* All arguments in data must be quoted
@@ -3371,6 +3391,7 @@ public function getTriggerName($tableName, $time, $event)
/**
* Retrieve valid index name
+ *
* Check index name length and allowed symbols
*
* @param string $tableName
@@ -3400,6 +3421,7 @@ public function getIndexName($tableName, $fields, $indexType = '')
/**
* Retrieve valid foreign key name
+ *
* Check foreign key name length and allowed symbols
*
* @param string $priTableName
@@ -3668,6 +3690,7 @@ public function supportStraightJoin()
/**
* Adds order by random to select object
+ *
* Possible using integer field for optimization
*
* @param Select $select
@@ -3845,6 +3868,7 @@ public function getPrimaryKeyName($tableName, $schemaName = null)
/**
* Parse text size
+ *
* Returns max allowed size if value great it
*
* @param string|int $size
@@ -3857,13 +3881,13 @@ protected function _parseTextSize($size)
switch ($last) {
case 'k':
- $size = intval($size) * 1024;
+ $size = (int)$size * 1024;
break;
case 'm':
- $size = intval($size) * 1024 * 1024;
+ $size = (int)$size * 1024 * 1024;
break;
case 'g':
- $size = intval($size) * 1024 * 1024 * 1024;
+ $size = (int)$size * 1024 * 1024 * 1024;
break;
}
@@ -3874,11 +3898,12 @@ protected function _parseTextSize($size)
return Table::MAX_TEXT_SIZE;
}
- return intval($size);
+ return (int)$size;
}
/**
* Converts fetched blob into raw binary PHP data.
+ *
* The MySQL drivers do it nice, no processing required.
*
* @param mixed $value
diff --git a/lib/internal/Magento/Framework/DB/Helper.php b/lib/internal/Magento/Framework/DB/Helper.php
index 4cb8304cdedf8..4d4eac62978ca 100644
--- a/lib/internal/Magento/Framework/DB/Helper.php
+++ b/lib/internal/Magento/Framework/DB/Helper.php
@@ -8,6 +8,9 @@
namespace Magento\Framework\DB;
+/**
+ * DataBase Helper
+ */
class Helper extends \Magento\Framework\DB\Helper\AbstractHelper
{
/**
@@ -52,7 +55,7 @@ protected function _prepareOrder(\Magento\Framework\DB\Select $select, $autoRese
* Field can be with 'dot' delimiter.
*
* @param string $field
- * @param bool $reverse OPTIONAL
+ * @param bool $reverse OPTIONAL
* @return string
*/
protected function _truncateAliasName($field, $reverse = false)
@@ -143,6 +146,7 @@ protected function _prepareHaving(\Magento\Framework\DB\Select $select, $autoRes
}
/**
+ * Assemble limit
*
* @param string $query
* @param int $limitCount
@@ -153,12 +157,12 @@ protected function _prepareHaving(\Magento\Framework\DB\Select $select, $autoRes
protected function _assembleLimit($query, $limitCount, $limitOffset, $columnList = [])
{
if ($limitCount !== null) {
- $limitCount = intval($limitCount);
+ $limitCount = (int)$limitCount;
if ($limitCount <= 0) {
//throw new \Exception("LIMIT argument count={$limitCount} is not valid");
}
- $limitOffset = intval($limitOffset);
+ $limitOffset = (int)$limitOffset;
if ($limitOffset < 0) {
//throw new \Exception("LIMIT argument offset={$limitOffset} is not valid");
}
diff --git a/lib/internal/Magento/Framework/DB/Query.php b/lib/internal/Magento/Framework/DB/Query.php
index 04ac2006b5e1f..36aab54df3925 100644
--- a/lib/internal/Magento/Framework/DB/Query.php
+++ b/lib/internal/Magento/Framework/DB/Query.php
@@ -142,7 +142,7 @@ public function getSize()
$sql = $this->getSelectCountSql();
$this->totalRecords = $this->getConnection()->fetchOne($sql, $this->bindParams);
}
- return intval($this->totalRecords);
+ return (int)$this->totalRecords;
}
/**
diff --git a/lib/internal/Magento/Framework/DB/Query/BatchIterator.php b/lib/internal/Magento/Framework/DB/Query/BatchIterator.php
index 7b4406fd9adb4..6485973ec359d 100644
--- a/lib/internal/Magento/Framework/DB/Query/BatchIterator.php
+++ b/lib/internal/Magento/Framework/DB/Query/BatchIterator.php
@@ -88,6 +88,8 @@ public function __construct(
}
/**
+ * Returns current select
+ *
* @return Select
*/
public function current()
@@ -101,6 +103,8 @@ public function current()
}
/**
+ * Returns next select
+ *
* @return Select
*/
public function next()
@@ -121,6 +125,8 @@ public function next()
}
/**
+ * Returns key
+ *
* @return int
*/
public function key()
@@ -129,6 +135,8 @@ public function key()
}
/**
+ * Returns is valid
+ *
* @return bool
*/
public function valid()
@@ -137,6 +145,8 @@ public function valid()
}
/**
+ * Rewind
+ *
* @return void
*/
public function rewind()
@@ -165,7 +175,7 @@ private function calculateBatchSize(Select $select)
);
$row = $this->connection->fetchRow($wrapperSelect);
$this->minValue = $row['max'];
- return intval($row['cnt']);
+ return (int)$row['cnt'];
}
/**
diff --git a/lib/internal/Magento/Framework/DB/Query/BatchRangeIterator.php b/lib/internal/Magento/Framework/DB/Query/BatchRangeIterator.php
index 5176c85cfa702..e2ef4ae530a9d 100644
--- a/lib/internal/Magento/Framework/DB/Query/BatchRangeIterator.php
+++ b/lib/internal/Magento/Framework/DB/Query/BatchRangeIterator.php
@@ -201,7 +201,7 @@ private function initSelectObject()
);
$row = $this->connection->fetchRow($wrapperSelect);
- $this->totalItemCount = intval($row['cnt']);
+ $this->totalItemCount = (int)$row['cnt'];
}
$rangeField = is_array($this->rangeField) ? $this->rangeField : [$this->rangeField];
diff --git a/lib/internal/Magento/Framework/DB/Sql/LimitExpression.php b/lib/internal/Magento/Framework/DB/Sql/LimitExpression.php
index 9e875e485c67e..3c5cb65e898f3 100644
--- a/lib/internal/Magento/Framework/DB/Sql/LimitExpression.php
+++ b/lib/internal/Magento/Framework/DB/Sql/LimitExpression.php
@@ -41,19 +41,19 @@ public function __construct(
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function __toString()
{
$sql = $this->sql;
- $count = intval($this->count);
+ $count = (int)$this->count;
if ($count <= 0) {
/** @see Zend_Db_Adapter_Exception */
#require_once 'Zend/Db/Adapter/Exception.php';
throw new \Zend_Db_Adapter_Exception("LIMIT argument count=$count is not valid");
}
- $offset = intval($this->offset);
+ $offset = (int)$this->offset;
if ($offset < 0) {
/** @see Zend_Db_Adapter_Exception */
#require_once 'Zend/Db/Adapter/Exception.php';
diff --git a/lib/internal/Magento/Framework/Data/Argument/Interpreter/ArrayType.php b/lib/internal/Magento/Framework/Data/Argument/Interpreter/ArrayType.php
index b6426a8d26382..9a881ccf515ab 100644
--- a/lib/internal/Magento/Framework/Data/Argument/Interpreter/ArrayType.php
+++ b/lib/internal/Magento/Framework/Data/Argument/Interpreter/ArrayType.php
@@ -28,7 +28,7 @@ public function __construct(InterpreterInterface $itemInterpreter)
}
/**
- * {@inheritdoc}
+ * @inheritdoc
* @return array
* @throws \InvalidArgumentException
*/
@@ -90,11 +90,11 @@ private function compareItems($firstItemKey, $secondItemKey, $indexedItems)
$firstValue = 0;
$secondValue = 0;
if (isset($firstItem['sortOrder'])) {
- $firstValue = intval($firstItem['sortOrder']);
+ $firstValue = (int)$firstItem['sortOrder'];
}
if (isset($secondItem['sortOrder'])) {
- $secondValue = intval($secondItem['sortOrder']);
+ $secondValue = (int)$secondItem['sortOrder'];
}
if ($firstValue == $secondValue) {
diff --git a/lib/internal/Magento/Framework/Data/Collection.php b/lib/internal/Magento/Framework/Data/Collection.php
index 71ec8c1aa8379..9c789e81913c4 100644
--- a/lib/internal/Magento/Framework/Data/Collection.php
+++ b/lib/internal/Magento/Framework/Data/Collection.php
@@ -285,7 +285,7 @@ public function getSize()
if ($this->_totalRecords === null) {
$this->_totalRecords = count($this->getItems());
}
- return intval($this->_totalRecords);
+ return (int)$this->_totalRecords;
}
/**
@@ -487,8 +487,7 @@ public function clear()
}
/**
- * Walk through the collection and run model method or external callback
- * with optional arguments
+ * Walk through the collection and run model method or external callback with optional arguments
*
* Returns array with results of callback for each item
*
@@ -743,7 +742,7 @@ public function toArray($arrRequiredFields = [])
/**
* Convert items array to array for select options
*
- * return items array
+ * Return items array
* array(
* $index => array(
* 'value' => mixed
@@ -772,6 +771,8 @@ protected function _toOptionArray($valueField = 'id', $labelField = 'name', $add
}
/**
+ * Returns option array
+ *
* @return array
*/
public function toOptionArray()
@@ -780,6 +781,8 @@ public function toOptionArray()
}
/**
+ * Returns options hash
+ *
* @return array
*/
public function toOptionHash()
@@ -790,12 +793,12 @@ public function toOptionHash()
/**
* Convert items array to hash for select options
*
- * return items hash
+ * Return items hash
* array($value => $label)
*
- * @param string $valueField
- * @param string $labelField
- * @return array
+ * @param string $valueField
+ * @param string $labelField
+ * @return array
*/
protected function _toOptionHash($valueField = 'id', $labelField = 'name')
{
@@ -809,8 +812,8 @@ protected function _toOptionHash($valueField = 'id', $labelField = 'name')
/**
* Retrieve item by id
*
- * @param mixed $idValue
- * @return \Magento\Framework\DataObject
+ * @param mixed $idValue
+ * @return \Magento\Framework\DataObject
*/
public function getItemById($idValue)
{
@@ -879,6 +882,8 @@ public function hasFlag($flag)
}
/**
+ * Sleep handler
+ *
* @return string[]
* @since 100.0.11
*/
diff --git a/lib/internal/Magento/Framework/Exception/LocalizedException.php b/lib/internal/Magento/Framework/Exception/LocalizedException.php
index 0b1d5f1998bfb..977c69db77bbc 100644
--- a/lib/internal/Magento/Framework/Exception/LocalizedException.php
+++ b/lib/internal/Magento/Framework/Exception/LocalizedException.php
@@ -11,6 +11,8 @@
use Magento\Framework\Phrase\Renderer\Placeholder;
/**
+ * Localized exception
+ *
* @api
*/
class LocalizedException extends \Exception
@@ -33,7 +35,7 @@ class LocalizedException extends \Exception
public function __construct(Phrase $phrase, \Exception $cause = null, $code = 0)
{
$this->phrase = $phrase;
- parent::__construct($phrase->render(), intval($code), $cause);
+ parent::__construct($phrase->render(), (int)$code, $cause);
}
/**
diff --git a/lib/internal/Magento/Framework/HTTP/Client/Curl.php b/lib/internal/Magento/Framework/HTTP/Client/Curl.php
index 788439aa4ff0d..d1dfafdeb2adb 100644
--- a/lib/internal/Magento/Framework/HTTP/Client/Curl.php
+++ b/lib/internal/Magento/Framework/HTTP/Client/Curl.php
@@ -161,6 +161,7 @@ public function removeHeader($name)
/**
* Authorization: Basic header
+ *
* Login credentials support
*
* @param string $login username
@@ -209,6 +210,7 @@ public function setCookies($cookies)
/**
* Clear cookies
+ *
* @return void
*/
public function removeCookies()
@@ -293,6 +295,7 @@ public function getCookies()
/**
* Get cookies array with details
* (domain, expire time etc)
+ *
* @return array
*/
public function getCookiesFull()
@@ -327,6 +330,7 @@ public function getCookiesFull()
/**
* Get response status code
+ *
* @see lib\Magento\Framework\HTTP\Client#getStatus()
*
* @return int
@@ -345,6 +349,7 @@ public function getStatus()
* @param string $method
* @param string $uri
* @param array|string $params - use $params as a string in case of JSON or XML POST request.
+ *
* @return void
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
* @SuppressWarnings(PHPMD.NPathComplexity)
@@ -410,6 +415,7 @@ protected function makeRequest($method, $uri, $params = [])
/**
* Throw error exception
+ *
* @param string $string
* @return void
* @throws \Exception
@@ -435,7 +441,7 @@ protected function parseHeaders($ch, $data)
if (count($line) != 3) {
$this->doError("Invalid response line returned from server: " . $data);
}
- $this->_responseStatus = intval($line[1]);
+ $this->_responseStatus = (int)$line[1];
} else {
$name = $value = '';
$out = explode(": ", trim($data), 2);
@@ -474,6 +480,7 @@ protected function curlOption($name, $value)
/**
* Set curl options array directly
+ *
* @param array $arr
* @return void
*/
@@ -484,6 +491,7 @@ protected function curlOptions($arr)
/**
* Set CURL options overrides array
+ *
* @param array $arr
* @return void
*/
diff --git a/lib/internal/Magento/Framework/HTTP/Client/Socket.php b/lib/internal/Magento/Framework/HTTP/Client/Socket.php
index d229baa5dd476..eba182b98b93e 100644
--- a/lib/internal/Magento/Framework/HTTP/Client/Socket.php
+++ b/lib/internal/Magento/Framework/HTTP/Client/Socket.php
@@ -12,9 +12,8 @@
namespace Magento\Framework\HTTP\Client;
/**
- * @SuppressWarnings(PHPMD.UnusedPrivateField)
- */
-/**
+ * Socket client
+ *
* @SuppressWarnings(PHPMD.UnusedPrivateField)
*/
class Socket implements \Magento\Framework\HTTP\ClientInterface
@@ -134,6 +133,7 @@ public function disconnect()
/**
* Set headers from hash
+ *
* @param array $headers
* @return void
*/
@@ -167,6 +167,7 @@ public function removeHeader($name)
/**
* Authorization: Basic header
+ *
* Login credentials support
*
* @param string $login username
@@ -235,8 +236,7 @@ public function get($uri)
}
/**
- * Set host, port from full url
- * and return relative url
+ * Set host, port from full url and return relative url
*
* @param string $uri ex. http://google.com/index.php?a=b
* @return string ex. /index.php?a=b
@@ -330,6 +330,7 @@ public function getCookies()
/**
* Get cookies array with details
* (domain, expire time etc)
+ *
* @return array
*/
public function getCookiesFull()
@@ -424,7 +425,7 @@ protected function processResponse()
if (count($line) != 3) {
return $this->doError("Invalid response line returned from server: " . $responseLine);
}
- $this->_responseStatus = intval($line[1]);
+ $this->_responseStatus = (int)$line[1];
$this->processResponseHeaders();
$this->processRedirect();
@@ -444,6 +445,7 @@ protected function processRedirect()
/**
* Get response status code
+ *
* @see \Magento\Framework\HTTP\Client#getStatus()
*
* @return int
@@ -494,6 +496,7 @@ protected function makeRequest($method, $uri, $params = [])
/**
* Throw error exception
+ *
* @param string $string
* @return void
* @throws \Exception
@@ -505,6 +508,7 @@ public function doError($string)
/**
* Convert headers hash to string
+ *
* @param array $append
* @return string
*/
diff --git a/lib/internal/Magento/Framework/Image.php b/lib/internal/Magento/Framework/Image.php
index 5dc1969559fdd..b3867c0197b79 100644
--- a/lib/internal/Magento/Framework/Image.php
+++ b/lib/internal/Magento/Framework/Image.php
@@ -262,7 +262,7 @@ public function instruction()
public function setImageBackgroundColor($color)
{
/** @noinspection PhpUndefinedFieldInspection */
- $this->_adapter->imageBackgroundColor = intval($color);
+ $this->_adapter->imageBackgroundColor = (int)$color;
}
/**
diff --git a/lib/internal/Magento/Framework/Mail/Test/Unit/Template/TransportBuilderTest.php b/lib/internal/Magento/Framework/Mail/Test/Unit/Template/TransportBuilderTest.php
index 731db30bada06..596640480c823 100644
--- a/lib/internal/Magento/Framework/Mail/Test/Unit/Template/TransportBuilderTest.php
+++ b/lib/internal/Magento/Framework/Mail/Test/Unit/Template/TransportBuilderTest.php
@@ -120,12 +120,12 @@ public function testGetTransport($templateType, $messageType, $bodyText, $templa
->with($this->equalTo('Email Subject'))
->willReturnSelf();
- $this->messageMock->expects($this->exactly(intval($messageType == MessageInterface::TYPE_TEXT)))
+ $this->messageMock->expects($this->exactly((int)($messageType == MessageInterface::TYPE_TEXT)))
->method('setBodyText')
->with($this->equalTo($bodyText))
->willReturnSelf();
- $this->messageMock->expects($this->exactly(intval($messageType == MessageInterface::TYPE_HTML)))
+ $this->messageMock->expects($this->exactly((int)($messageType == MessageInterface::TYPE_HTML)))
->method('setBodyHtml')
->with($this->equalTo($bodyText))
->willReturnSelf();
diff --git a/lib/internal/Magento/Framework/MessageQueue/Config/CompositeReader.php b/lib/internal/Magento/Framework/MessageQueue/Config/CompositeReader.php
index 10e0a6f601979..86e83d678c0b0 100644
--- a/lib/internal/Magento/Framework/MessageQueue/Config/CompositeReader.php
+++ b/lib/internal/Magento/Framework/MessageQueue/Config/CompositeReader.php
@@ -69,10 +69,10 @@ function ($firstItem, $secondItem) {
$firstValue = 0;
$secondValue = 0;
if (isset($firstItem['sortOrder'])) {
- $firstValue = intval($firstItem['sortOrder']);
+ $firstValue = (int)$firstItem['sortOrder'];
}
if (isset($secondItem['sortOrder'])) {
- $secondValue = intval($secondItem['sortOrder']);
+ $secondValue = (int)$secondItem['sortOrder'];
}
return $firstValue <=> $secondValue;
}
diff --git a/lib/internal/Magento/Framework/MessageQueue/Config/Reader/Xml/CompositeConverter.php b/lib/internal/Magento/Framework/MessageQueue/Config/Reader/Xml/CompositeConverter.php
index b8286c33dca0a..0184f720b3b4e 100644
--- a/lib/internal/Magento/Framework/MessageQueue/Config/Reader/Xml/CompositeConverter.php
+++ b/lib/internal/Magento/Framework/MessageQueue/Config/Reader/Xml/CompositeConverter.php
@@ -43,7 +43,7 @@ public function __construct(array $converters)
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function convert($source)
{
@@ -68,10 +68,10 @@ function ($firstItem, $secondItem) {
$firstValue = 0;
$secondValue = 0;
if (isset($firstItem['sortOrder'])) {
- $firstValue = intval($firstItem['sortOrder']);
+ $firstValue = (int)$firstItem['sortOrder'];
}
if (isset($secondItem['sortOrder'])) {
- $secondValue = intval($secondItem['sortOrder']);
+ $secondValue = (int)$secondItem['sortOrder'];
}
return $firstValue <=> $secondValue;
}
diff --git a/lib/internal/Magento/Framework/Setup/Declaration/Schema/Db/MySQL/Definition/Columns/Integer.php b/lib/internal/Magento/Framework/Setup/Declaration/Schema/Db/MySQL/Definition/Columns/Integer.php
index 07ba03d033106..1d08c5bea4eb0 100644
--- a/lib/internal/Magento/Framework/Setup/Declaration/Schema/Db/MySQL/Definition/Columns/Integer.php
+++ b/lib/internal/Magento/Framework/Setup/Declaration/Schema/Db/MySQL/Definition/Columns/Integer.php
@@ -76,8 +76,8 @@ public function __construct(
}
/**
- * @param \Magento\Framework\Setup\Declaration\Schema\Dto\Columns\Integer $column
* @inheritdoc
+ * @param \Magento\Framework\Setup\Declaration\Schema\Dto\Columns\Integer $column
*/
public function toDefinition(ElementInterface $column)
{
@@ -89,7 +89,7 @@ public function toDefinition(ElementInterface $column)
$this->unsigned->toDefinition($column),
$this->nullable->toDefinition($column),
$column->getDefault() !== null ?
- sprintf('DEFAULT %s', (string) intval($column->getDefault())) : '',
+ sprintf('DEFAULT %s', (string) (int)$column->getDefault()) : '',
$this->identity->toDefinition($column),
$this->comment->toDefinition($column)
);
diff --git a/lib/internal/Magento/Framework/Setup/Declaration/Schema/Diff/DiffInterface.php b/lib/internal/Magento/Framework/Setup/Declaration/Schema/Diff/DiffInterface.php
index 4b6e3555256fb..139e9b902684a 100644
--- a/lib/internal/Magento/Framework/Setup/Declaration/Schema/Diff/DiffInterface.php
+++ b/lib/internal/Magento/Framework/Setup/Declaration/Schema/Diff/DiffInterface.php
@@ -7,9 +7,6 @@
namespace Magento\Framework\Setup\Declaration\Schema\Diff;
use Magento\Framework\Setup\Declaration\Schema\Dto\ElementInterface;
-use Magento\Framework\Setup\Declaration\Schema\Dto\Schema;
-use Magento\Framework\Setup\Declaration\Schema\ElementHistory;
-use Magento\Framework\Setup\Declaration\Schema\Request;
/**
* DiffInterface is type of classes, that holds all information
@@ -39,9 +36,9 @@ public function getAll();
/**
* Register operation.
*
- * @param ElementInterface|object $dtoObject
- * @param string $operation
- * @param ElementInterface $oldDtoObject
+ * @param ElementInterface|object $dtoObject
+ * @param string $operation
+ * @param ElementInterface $oldDtoObject
* @return void
*/
public function register(
diff --git a/lib/internal/Magento/Framework/Setup/Declaration/Schema/Request.php b/lib/internal/Magento/Framework/Setup/Declaration/Schema/Request.php
deleted file mode 100644
index 2ffe29cc76962..0000000000000
--- a/lib/internal/Magento/Framework/Setup/Declaration/Schema/Request.php
+++ /dev/null
@@ -1,45 +0,0 @@
-dumpEnable = (bool) $request[static::DUMP_ENABLE_OPTIONS];
- }
- }
-
- /**
- * Check whether dump is enabled.
- *
- * @return boolean
- */
- public function isDumpEnabled()
- {
- return $this->dumpEnable;
- }
-}
diff --git a/lib/internal/Magento/Framework/Setup/Declaration/Schema/RequestFactory.php b/lib/internal/Magento/Framework/Setup/Declaration/Schema/RequestFactory.php
deleted file mode 100644
index 8f76815d4dc12..0000000000000
--- a/lib/internal/Magento/Framework/Setup/Declaration/Schema/RequestFactory.php
+++ /dev/null
@@ -1,49 +0,0 @@
-zendDi = $zendDi;
- }
-
- /**
- * Create request object with requestOptions params.
- *
- * @param array $requestOptions
- * @return Request
- */
- public function create(array $requestOptions = [])
- {
- return $this->zendDi->newInstance(
- self::$instanceName,
- ['request' => $requestOptions]
- );
- }
-}
diff --git a/lib/internal/Magento/Framework/Setup/SchemaListenerDefinition/TextBlobDefinition.php b/lib/internal/Magento/Framework/Setup/SchemaListenerDefinition/TextBlobDefinition.php
index 10e3b70e61be1..9e8d63b26cfca 100644
--- a/lib/internal/Magento/Framework/Setup/SchemaListenerDefinition/TextBlobDefinition.php
+++ b/lib/internal/Magento/Framework/Setup/SchemaListenerDefinition/TextBlobDefinition.php
@@ -15,6 +15,7 @@ class TextBlobDefinition implements DefinitionConverterInterface
{
/**
* Parse text size.
+ *
* Returns max allowed size if value great it.
*
* @param string|int $size
@@ -27,13 +28,13 @@ private function parseTextSize($size)
switch ($last) {
case 'k':
- $size = intval($size) * 1024;
+ $size = (int)$size * 1024;
break;
case 'm':
- $size = intval($size) * 1024 * 1024;
+ $size = (int)$size * 1024 * 1024;
break;
case 'g':
- $size = intval($size) * 1024 * 1024 * 1024;
+ $size = (int)$size * 1024 * 1024 * 1024;
break;
}
@@ -44,7 +45,7 @@ private function parseTextSize($size)
return Table::MAX_TEXT_SIZE;
}
- return intval($size);
+ return (int)$size;
}
/**
diff --git a/lib/internal/Magento/Framework/System/Ftp.php b/lib/internal/Magento/Framework/System/Ftp.php
index 8bf898965cbc3..ad0673ff5d7d3 100644
--- a/lib/internal/Magento/Framework/System/Ftp.php
+++ b/lib/internal/Magento/Framework/System/Ftp.php
@@ -32,7 +32,7 @@ protected function checkConnected()
}
/**
- * ftp_mkdir wrapper
+ * Wrapper for ftp_mkdir
*
* @param string $name
* @return string the newly created directory name on success or FALSE on error.
@@ -127,7 +127,7 @@ public function validateConnectionString($string)
public function connect($string, $timeout = 900)
{
$params = $this->validateConnectionString($string);
- $port = isset($params['port']) ? intval($params['port']) : 21;
+ $port = isset($params['port']) ? (int)$params['port'] : 21;
$this->_conn = ftp_connect($params['host'], $port, $timeout);
@@ -147,7 +147,7 @@ public function connect($string, $timeout = 900)
}
/**
- * ftp_fput wrapper
+ * Wrapper for ftp_fput
*
* @param string $remoteFile
* @param resource $handle
@@ -162,7 +162,7 @@ public function fput($remoteFile, $handle, $mode = FTP_BINARY, $startPos = 0)
}
/**
- * ftp_put wrapper
+ * Wrapper for ftp_put
*
* @param string $remoteFile
* @param string $localFile
@@ -188,7 +188,7 @@ public function getcwd()
if (empty($data[1])) {
return false;
}
- if (intval($data[0]) != 257) {
+ if ((int)$data[0] != 257) {
return false;
}
$out = trim($data[1], '"');
@@ -199,7 +199,7 @@ public function getcwd()
}
/**
- * ftp_raw wrapper
+ * Wrapper for ftp_raw
*
* @param string $cmd
* @return array The server's response as an array of strings.
@@ -272,7 +272,7 @@ public function download($remote, $local, $ftpMode = FTP_BINARY)
}
/**
- * ftp_pasv wrapper
+ * Wrapper for ftp_pasv
*
* @param bool $pasv
* @return bool
@@ -296,7 +296,7 @@ public function close()
}
/**
- * ftp_chmod wrapper
+ * Wrapper for ftp_chmod
*
* @param int $mode
* @param string $remoteFile
@@ -309,7 +309,7 @@ public function chmod($mode, $remoteFile)
}
/**
- * ftp_chdir wrapper
+ * Wrapper for ftp_chdir
*
* @param string $dir
* @return bool
@@ -321,7 +321,7 @@ public function chdir($dir)
}
/**
- * ftp_cdup wrapper
+ * Wrapper for ftp_cdup
*
* @return bool
*/
@@ -332,7 +332,7 @@ public function cdup()
}
/**
- * ftp_get wrapper
+ * Wrapper for ftp_get
*
* @param string $localFile
* @param string $remoteFile
@@ -349,7 +349,7 @@ public function get($localFile, $remoteFile, $fileMode = FTP_BINARY, $resumeOffs
}
/**
- * ftp_nlist wrapper
+ * Wrapper for ftp_nlist
*
* @param string $dir
* @return bool
@@ -362,7 +362,7 @@ public function nlist($dir = "/")
}
/**
- * ftp_rawlist wrapper
+ * Wrapper for ftp_rawlist
*
* @param string $dir
* @param bool $recursive
diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/Context.php b/lib/internal/Magento/Framework/View/Element/UiComponent/Context.php
index 48a66b429ebd5..e472a9c9effb1 100644
--- a/lib/internal/Magento/Framework/View/Element/UiComponent/Context.php
+++ b/lib/internal/Magento/Framework/View/Element/UiComponent/Context.php
@@ -104,7 +104,7 @@ class Context implements ContextInterface
* @param Processor $processor
* @param UiComponentFactory $uiComponentFactory
* @param DataProviderInterface|null $dataProvider
- * @param null $namespace
+ * @param string|null $namespace
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
*/
public function __construct(
@@ -152,7 +152,7 @@ public function addComponentDefinition($name, array $config)
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function getComponentsDefinitions()
{
@@ -160,7 +160,7 @@ public function getComponentsDefinitions()
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function getRenderEngine()
{
@@ -168,7 +168,7 @@ public function getRenderEngine()
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function getNamespace()
{
@@ -176,7 +176,7 @@ public function getNamespace()
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function getAcceptType()
{
@@ -184,7 +184,7 @@ public function getAcceptType()
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function getRequestParams()
{
@@ -192,7 +192,7 @@ public function getRequestParams()
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function getRequestParam($key, $defaultValue = null)
{
@@ -200,7 +200,7 @@ public function getRequestParam($key, $defaultValue = null)
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function getFiltersParams()
{
@@ -208,7 +208,7 @@ public function getFiltersParams()
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function getFilterParam($key, $defaultValue = null)
{
@@ -217,7 +217,7 @@ public function getFilterParam($key, $defaultValue = null)
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function getDataProvider()
{
@@ -225,7 +225,7 @@ public function getDataProvider()
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function getDataSourceData(UiComponentInterface $component)
{
@@ -250,7 +250,7 @@ public function getDataSourceData(UiComponentInterface $component)
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function getPageLayout()
{
@@ -258,7 +258,7 @@ public function getPageLayout()
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function addButtons(array $buttons, UiComponentInterface $component)
{
@@ -297,14 +297,14 @@ public function addButtons(array $buttons, UiComponentInterface $component)
*/
public function sortButtons(array $itemA, array $itemB)
{
- $sortOrderA = isset($itemA['sort_order']) ? intval($itemA['sort_order']) : 0;
- $sortOrderB = isset($itemB['sort_order']) ? intval($itemB['sort_order']) : 0;
+ $sortOrderA = isset($itemA['sort_order']) ? (int)$itemA['sort_order'] : 0;
+ $sortOrderB = isset($itemB['sort_order']) ? (int)$itemB['sort_order'] : 0;
return $sortOrderA - $sortOrderB;
}
/**
- * {@inheritdoc}
+ * @inheritdoc
* @SuppressWarnings(PHPMD.UnusedLocalVariable)
*/
public function addHtmlBlocks(array $htmlBlocks, UiComponentInterface $component)
@@ -336,7 +336,7 @@ protected function setAcceptType()
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function setDataProvider(DataProviderInterface $dataProvider)
{
@@ -344,7 +344,7 @@ public function setDataProvider(DataProviderInterface $dataProvider)
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function getUrl($route = '', $params = [])
{
@@ -370,7 +370,7 @@ protected function prepareDataSource(array & $data, UiComponentInterface $compon
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function getProcessor()
{
@@ -378,7 +378,7 @@ public function getProcessor()
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
public function getUiComponentFactory()
{
diff --git a/lib/internal/Magento/Framework/Webapi/ErrorProcessor.php b/lib/internal/Magento/Framework/Webapi/ErrorProcessor.php
index b124c417148d4..6fc5b284b7563 100644
--- a/lib/internal/Magento/Framework/Webapi/ErrorProcessor.php
+++ b/lib/internal/Magento/Framework/Webapi/ErrorProcessor.php
@@ -317,7 +317,7 @@ public function apiShutdownFunction()
protected function _saveFatalErrorReport($reportData)
{
$this->directoryWrite->create('report/api');
- $reportId = abs(intval(microtime(true) * random_int(100, 1000)));
+ $reportId = abs((int)(microtime(true) * random_int(100, 1000)));
$this->directoryWrite->writeFile('report/api/' . $reportId, $this->serializer->serialize($reportData));
return $reportId;
}
diff --git a/lib/web/mage/adminhtml/wysiwyg/tiny_mce/html5-schema.js b/lib/web/mage/adminhtml/wysiwyg/tiny_mce/html5-schema.js
index 48960ed3403c0..98ce6a005db04 100644
--- a/lib/web/mage/adminhtml/wysiwyg/tiny_mce/html5-schema.js
+++ b/lib/web/mage/adminhtml/wysiwyg/tiny_mce/html5-schema.js
@@ -186,11 +186,19 @@ define([
});
_.each(compiled, function (node, nodeName) {
- var attributes = node.attributes.join('|'),
- children = node.children.join('|');
+ var filteredAttributes = [];
- validElements.push(nodeName + '[' + attributes + ']');
- validChildren.push(nodeName + '[' + children + ']');
+ _.each(node.attributes, function (attribute) { //eslint-disable-line max-nested-callbacks
+ // Disallowing usage of 'on*' attributes.
+ if (!/^on/.test(attribute)) {
+ filteredAttributes.push(attribute);
+ }
+ });
+
+ node.attributes = filteredAttributes;
+
+ validElements.push(nodeName + '[' + node.attributes.join('|') + ']');
+ validChildren.push(nodeName + '[' + node.children.join('|') + ']');
});
return {
diff --git a/pub/static/.htaccess b/pub/static/.htaccess
index f49dce25d433e..a5aa6fb0d5cfd 100644
--- a/pub/static/.htaccess
+++ b/pub/static/.htaccess
@@ -22,6 +22,11 @@ Options -MultiViews
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* ../static.php?resource=$0 [L]
+ # Detects if moxieplayer request with uri params and redirects to uri without params
+
+ RewriteCond %{QUERY_STRING} !^$
+ RewriteRule ^(.*)$ %{REQUEST_URI}? [R=301,L]
+
############################################
diff --git a/setup/performance-toolkit/benchmark.jmx b/setup/performance-toolkit/benchmark.jmx
index 3b74af8a111d6..8b295c9f5fc46 100644
--- a/setup/performance-toolkit/benchmark.jmx
+++ b/setup/performance-toolkit/benchmark.jmx
@@ -40763,7 +40763,7 @@ vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNu
false
- {"query":"{\n products(\n filter: {\n price: {gt: \"10\"}\n or: {\n sku:{like:\"%Product%\"}\n name:{like:\"%Configurable Product%\"}\n }\n }\n pageSize: 200\n currentPage: 1\n sort: {\n price: ASC\n name:DESC\n }\n ) {\n total_count\n items {\n attribute_set_id\n country_of_manufacture\n created_at\n description\n gift_message_available\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n short_description\n sku\n small_image\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n \t... on PhysicalProductInterface {\n \tweight\n \t}\n }\n page_info {\n page_size\n current_page\n }\n }\n}\n","variables":null,"operationName":null}
+ {"query":"{\n products(\n filter: {\n price: {gt: \"10\"}\n or: {\n sku:{like:\"%Product%\"}\n name:{like:\"%Configurable Product%\"}\n }\n }\n pageSize: 200\n currentPage: 1\n sort: {\n price: ASC\n name:DESC\n }\n ) {\n total_count\n items {\n attribute_set_id\n country_of_manufacture\n created_at\n description\n gift_message_available\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n short_description\n sku\n small_image {\n url\n }\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n \t... on PhysicalProductInterface {\n \tweight\n \t}\n }\n page_info {\n page_size\n current_page\n }\n }\n}\n","variables":null,"operationName":null}
=
@@ -40820,7 +40820,7 @@ vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNu
false
- {"query":"{\n products(filter: {sku: { eq: \"${simple_product_sku}\" } })\n {\n total_count\n items {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on PhysicalProductInterface {\n \t\t\tweight\n \t\t }\n }\n }\n}\n","variables":null,"operationName":null}
+ {"query":"{\n products(filter: {sku: { eq: \"${simple_product_sku}\" } })\n {\n total_count\n items {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image {\n url\n }\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on PhysicalProductInterface {\n \t\t\tweight\n \t\t }\n }\n }\n}\n","variables":null,"operationName":null}
=
@@ -40896,7 +40896,7 @@ if (totalCount == null) {
false
- {"query":"{\n products(filter: {sku: {eq:\"${configurable_product_sku}\"} }) {\n total_count\n items {\n ... on PhysicalProductInterface {\n weight\n }\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on ConfigurableProduct {\n configurable_options {\n id\n attribute_id\n label\n position\n use_default\n attribute_code\n values {\n value_index\n label\n store_label\n default_label\n use_default_value\n }\n product_id\n }\n variants {\n product {\n ... on PhysicalProductInterface {\n weight\n }\n sku\n color\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n\n\n }\n attributes {\n label\n code\n value_index\n }\n }\n }\n }\n }\n}\n","variables":null,"operationName":null}
+ {"query":"{\n products(filter: {sku: {eq:\"${configurable_product_sku}\"} }) {\n total_count\n items {\n ... on PhysicalProductInterface {\n weight\n }\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image {\n url\n }\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on ConfigurableProduct {\n configurable_options {\n id\n attribute_id\n label\n position\n use_default\n attribute_code\n values {\n value_index\n label\n store_label\n default_label\n use_default_value\n }\n product_id\n }\n variants {\n product {\n ... on PhysicalProductInterface {\n weight\n }\n sku\n color\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image {\n url\n }\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n\n\n }\n attributes {\n label\n code\n value_index\n }\n }\n }\n }\n }\n}\n","variables":null,"operationName":null}
=
@@ -40965,7 +40965,7 @@ if (totalCount == null) {
false
- {"query":"{\n products(\n search: \"configurable\"\n filter: {price: {gteq: \"1\"} }\n ) {\n total_count\n items {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on PhysicalProductInterface {\n \t\t\tweight\n \t\t\t}\n ... on ConfigurableProduct {\n configurable_options {\n id\n attribute_id\n label\n position\n use_default\n attribute_code\n values {\n value_index\n label\n store_label\n default_label\n use_default_value\n }\n product_id\n }\n variants {\n product {\n ... on PhysicalProductInterface {\n weight\n }\n sku\n color\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n\n\n }\n attributes {\n label\n code\n value_index\n }\n }\n }\n }\n }\n}\n","variables":null,"operationName":null}
+ {"query":"{\n products(\n search: \"configurable\"\n filter: {price: {gteq: \"1\"} }\n ) {\n total_count\n items {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image {\n url\n }\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on PhysicalProductInterface {\n \t\t\tweight\n \t\t\t}\n ... on ConfigurableProduct {\n configurable_options {\n id\n attribute_id\n label\n position\n use_default\n attribute_code\n values {\n value_index\n label\n store_label\n default_label\n use_default_value\n }\n product_id\n }\n variants {\n product {\n ... on PhysicalProductInterface {\n weight\n }\n sku\n color\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image {\n url\n }\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n\n\n }\n attributes {\n label\n code\n value_index\n }\n }\n }\n }\n }\n}\n","variables":null,"operationName":null}
=
@@ -41025,7 +41025,7 @@ if (totalCount == null) {
false
- {"query":"{\n products(search: \"configurable\") {\n total_count\n items {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on PhysicalProductInterface {\n \t\t\tweight\n \t\t\t}\n ... on ConfigurableProduct {\n configurable_options {\n id\n attribute_id\n label\n position\n use_default\n attribute_code\n values {\n value_index\n label\n store_label\n default_label\n use_default_value\n }\n product_id\n }\n variants {\n product {\n ... on PhysicalProductInterface {\n weight\n }\n sku\n color\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n\n\n }\n attributes {\n label\n code\n value_index\n }\n }\n }\n }\n }\n}\n","variables":null,"operationName":null}
+ {"query":"{\n products(search: \"configurable\") {\n total_count\n items {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image {\n url\n }\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on PhysicalProductInterface {\n \t\t\tweight\n \t\t\t}\n ... on ConfigurableProduct {\n configurable_options {\n id\n attribute_id\n label\n position\n use_default\n attribute_code\n values {\n value_index\n label\n store_label\n default_label\n use_default_value\n }\n product_id\n }\n variants {\n product {\n ... on PhysicalProductInterface {\n weight\n }\n sku\n color\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image {\n url\n }\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n\n\n }\n attributes {\n label\n code\n value_index\n }\n }\n }\n }\n }\n}\n","variables":null,"operationName":null}
=
@@ -41085,7 +41085,7 @@ if (totalCount == null) {
false
- {"query":"{\n products(search: \"color\") {\n filters {\n name\n filter_items_count\n request_var\n filter_items {\n label\n value_string\n items_count\n ... on SwatchLayerFilterItemInterface {\n swatch_data {\n type\n value\n }\n }\n }\n }\n total_count\n items {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on PhysicalProductInterface {\n weight\n }\n ... on ConfigurableProduct {\n configurable_options {\n id\n attribute_id\n label\n position\n use_default\n attribute_code\n values {\n value_index\n label\n store_label\n default_label\n use_default_value\n }\n product_id\n }\n variants {\n product {\n ... on PhysicalProductInterface {\n weight\n }\n sku\n color\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n\n\n }\n attributes {\n label\n code\n value_index\n }\n }\n }\n }\n }\n}","variables":null,"operationName":null}
+ {"query":"{\n products(search: \"color\") {\n filters {\n name\n filter_items_count\n request_var\n filter_items {\n label\n value_string\n items_count\n ... on SwatchLayerFilterItemInterface {\n swatch_data {\n type\n value\n }\n }\n }\n }\n total_count\n items {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image {\n url\n }\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on PhysicalProductInterface {\n weight\n }\n ... on ConfigurableProduct {\n configurable_options {\n id\n attribute_id\n label\n position\n use_default\n attribute_code\n values {\n value_index\n label\n store_label\n default_label\n use_default_value\n }\n product_id\n }\n variants {\n product {\n ... on PhysicalProductInterface {\n weight\n }\n sku\n color\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image {\n url\n }\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n\n\n }\n attributes {\n label\n code\n value_index\n }\n }\n }\n }\n }\n}","variables":null,"operationName":null}
=
@@ -41145,7 +41145,7 @@ if (totalCount == null) {
false
- {"query":"{\nproducts(filter: {sku: {eq:\"${bundle_product_sku}\"} }) {\n total_count\n items {\n ... on PhysicalProductInterface {\n weight\n }\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on BundleProduct {\n weight\n price_view\n dynamic_price\n dynamic_sku\n ship_bundle_items\n dynamic_weight\n items {\n option_id\n title\n required\n type\n position\n sku\n options {\n id\n qty\n position\n is_default\n price\n price_type\n can_change_quantity\n product {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n }\n }\n }\n }\n }\n }\n}\n","variables":null,"operationName":null}
+ {"query":"{\nproducts(filter: {sku: {eq:\"${bundle_product_sku}\"} }) {\n total_count\n items {\n ... on PhysicalProductInterface {\n weight\n }\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image {\n url\n }\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on BundleProduct {\n weight\n price_view\n dynamic_price\n dynamic_sku\n ship_bundle_items\n dynamic_weight\n items {\n option_id\n title\n required\n type\n position\n sku\n options {\n id\n qty\n position\n is_default\n price\n price_type\n can_change_quantity\n product {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image {\n url\n }\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n }\n }\n }\n }\n }\n }\n}\n","variables":null,"operationName":null}
=
@@ -41214,7 +41214,7 @@ if (totalCount == null) {
false
- {"query":"{\n products(filter: {sku: { eq: \"${downloadable_product_sku}\" } })\n {\n total_count\n items {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on PhysicalProductInterface {\n \t\t\tweight\n \t\t }\n ... on DownloadableProduct {\n links_purchased_separately\n links_title\n downloadable_product_samples {\n id\n title\n sort_order\n sample_type\n sample_file\n sample_url\n }\n downloadable_product_links {\n id\n title\n sort_order\n is_shareable\n price\n number_of_downloads\n link_type\n sample_type\n sample_file\n sample_url\n }\n }\n }\n }\n}\n","variables":null,"operationName":null}
+ {"query":"{\n products(filter: {sku: { eq: \"${downloadable_product_sku}\" } })\n {\n total_count\n items {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image {\n url\n }\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on PhysicalProductInterface {\n \t\t\tweight\n \t\t }\n ... on DownloadableProduct {\n links_purchased_separately\n links_title\n downloadable_product_samples {\n id\n title\n sort_order\n sample_type\n sample_file\n sample_url\n }\n downloadable_product_links {\n id\n title\n sort_order\n is_shareable\n price\n number_of_downloads\n link_type\n sample_type\n sample_file\n sample_url\n }\n }\n }\n }\n}\n","variables":null,"operationName":null}
=
@@ -41301,7 +41301,7 @@ if (totalCount == null) {
false
- {"query":"{\n products(filter: {sku: { eq: \"${virtual_product_sku}\" } })\n {\n total_count\n items {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on PhysicalProductInterface {\n \t\t\tweight\n \t\t }\n }\n }\n}\n","variables":null,"operationName":null}
+ {"query":"{\n products(filter: {sku: { eq: \"${virtual_product_sku}\" } })\n {\n total_count\n items {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image {\n url\n }\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on PhysicalProductInterface {\n \t\t\tweight\n \t\t }\n }\n }\n}\n","variables":null,"operationName":null}
=
@@ -41368,7 +41368,7 @@ if (totalCount == null) {
false
- {"query":"{\nproducts(filter: {sku: {eq:\"${grouped_product_sku}\"} }) {\n total_count\n items {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on GroupedProduct {\n weight\n items {\n qty\n position\n product {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n }\n }\n }\n }\n }\n}\n","variables":null,"operationName":null}
+ {"query":"{\nproducts(filter: {sku: {eq:\"${grouped_product_sku}\"} }) {\n total_count\n items {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image {\n url\n }\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n ... on GroupedProduct {\n weight\n items {\n qty\n position\n product {\n attribute_set_id\n categories\n {\n id\n position\n }\n country_of_manufacture\n created_at\n description\n gift_message_available\n id\n image\n image_label\n meta_description\n meta_keyword\n meta_title\n media_gallery_entries\n {\n disabled\n file\n id\n label\n media_type\n position\n types\n content\n {\n base64_encoded_data\n type\n name\n }\n video_content\n {\n media_type\n video_description\n video_metadata\n video_provider\n video_title\n video_url\n }\n }\n name\n new_from_date\n new_to_date\n options_container\n ... on CustomizableProductInterface {\n options\n {\n title\n required\n sort_order\n }\n }\n \n price {\n minimalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n maximalPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n regularPrice {\n amount {\n value\n currency\n }\n adjustments {\n amount {\n value\n currency\n }\n code\n description\n }\n }\n }\n product_links\n {\n link_type\n linked_product_sku\n linked_product_type\n position\n sku\n }\n short_description\n sku\n small_image {\n url\n }\n small_image_label\n special_from_date\n special_price\n special_to_date\n swatch_image\n thumbnail\n thumbnail_label\n tier_price\n tier_prices\n {\n customer_group_id\n percentage_value\n qty\n value\n website_id\n }\n type_id\n updated_at\n url_key\n url_path\n websites { id name code sort_order default_group_id is_default }\n }\n }\n }\n }\n }\n}\n","variables":null,"operationName":null}
=
diff --git a/setup/src/Magento/Setup/Console/Command/InstallCommand.php b/setup/src/Magento/Setup/Console/Command/InstallCommand.php
index d94beff15b396..7e767292b36e8 100644
--- a/setup/src/Magento/Setup/Console/Command/InstallCommand.php
+++ b/setup/src/Magento/Setup/Console/Command/InstallCommand.php
@@ -3,12 +3,13 @@
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
+declare(strict_types=1);
+
namespace Magento\Setup\Console\Command;
use Magento\Deploy\Console\Command\App\ConfigImportCommand;
use Magento\Framework\Setup\Declaration\Schema\DryRunLogger;
use Magento\Framework\Setup\Declaration\Schema\OperationsExecutor;
-use Magento\Framework\Setup\Declaration\Schema\Request;
use Magento\Setup\Model\ConfigModel;
use Magento\Setup\Model\InstallerFactory;
use Magento\Framework\Setup\ConsoleLogger;
@@ -45,20 +46,20 @@ class InstallCommand extends AbstractSetupCommand
* List of comma-separated module names. That must be enabled during installation.
* Available magic param all.
*/
- const INPUT_KEY_ENABLE_MODULES = 'enable_modules';
+ const INPUT_KEY_ENABLE_MODULES = 'enable-modules';
/**
* List of comma-separated module names. That must be avoided during installation.
* List of comma-separated module names. That must be avoided during installation.
* Available magic param all.
*/
- const INPUT_KEY_DISABLE_MODULES = 'disable_modules';
+ const INPUT_KEY_DISABLE_MODULES = 'disable-modules';
/**
* If this flag is enabled, than all your old scripts with format:
* InstallSchema, UpgradeSchema will be converted to new db_schema.xml format.
*/
- const CONVERT_OLD_SCRIPTS_KEY = 'convert_old_scripts';
+ const CONVERT_OLD_SCRIPTS_KEY = 'convert-old-scripts';
/**
* Parameter indicating command for interactive setup
@@ -129,7 +130,7 @@ public function __construct(
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
protected function configure()
{
@@ -155,12 +156,6 @@ protected function configure()
InputOption::VALUE_NONE,
'Use sample data'
),
- new InputOption(
- Request::DUMP_ENABLE_OPTIONS,
- null,
- InputOption::VALUE_REQUIRED,
- 'Should removed columns be dumped or recovered columns data reverted.'
- ),
new InputOption(
self::INPUT_KEY_ENABLE_MODULES,
null,
@@ -215,7 +210,7 @@ protected function configure()
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
@@ -230,7 +225,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
}
/**
- * {@inheritdoc}
+ * @inheritdoc
*/
protected function initialize(InputInterface $input, OutputInterface $output)
{
@@ -277,11 +272,11 @@ protected function initialize(InputInterface $input, OutputInterface $output)
* @param InputInterface $input
* @return string[] Array of error messages
*/
- public function validate(InputInterface $input)
+ public function validate(InputInterface $input) : array
{
$errors = [];
$value = $input->getOption(self::INPUT_KEY_SALES_ORDER_INCREMENT_PREFIX);
- if (preg_match(self::SALES_ORDER_INCREMENT_PREFIX_RULE, $value) != 1) {
+ if (preg_match(self::SALES_ORDER_INCREMENT_PREFIX_RULE, (string) $value) != 1) {
$errors[] = 'Validation failed, ' . self::INPUT_KEY_SALES_ORDER_INCREMENT_PREFIX
. ' must be 20 characters or less';
}
@@ -297,7 +292,7 @@ public function validate(InputInterface $input)
* @param OutputInterface $output
* @return string[] Array of inputs
*/
- private function interactiveQuestions(InputInterface $input, OutputInterface $output)
+ private function interactiveQuestions(InputInterface $input, OutputInterface $output) : array
{
$helper = $this->getHelper('question');
$configOptionsToValidate = [];
diff --git a/setup/src/Magento/Setup/Console/Command/UpgradeCommand.php b/setup/src/Magento/Setup/Console/Command/UpgradeCommand.php
index bd7be01a0b2fe..2df8cde086553 100644
--- a/setup/src/Magento/Setup/Console/Command/UpgradeCommand.php
+++ b/setup/src/Magento/Setup/Console/Command/UpgradeCommand.php
@@ -47,10 +47,9 @@ class UpgradeCommand extends AbstractSetupCommand
private $appState;
/**
- * Constructor.
- *
* @param InstallerFactory $installerFactory
* @param DeploymentConfig $deploymentConfig
+ * @param AppState|null $appState
*/
public function __construct(
InstallerFactory $installerFactory,
@@ -102,7 +101,7 @@ protected function configure()
InputOption::VALUE_OPTIONAL,
'Magento Installation will be run in dry-run mode',
false
- ),
+ )
];
$this->setName('setup:upgrade')
->setDescription('Upgrades the Magento application, DB data, and schema')
diff --git a/setup/src/Magento/Setup/Model/DeclarationInstaller.php b/setup/src/Magento/Setup/Model/DeclarationInstaller.php
index 52c360251c25a..4313b031a1626 100644
--- a/setup/src/Magento/Setup/Model/DeclarationInstaller.php
+++ b/setup/src/Magento/Setup/Model/DeclarationInstaller.php
@@ -7,7 +7,6 @@
use Magento\Framework\Setup\Declaration\Schema\Diff\SchemaDiff;
use Magento\Framework\Setup\Declaration\Schema\OperationsExecutor;
-use Magento\Framework\Setup\Declaration\Schema\RequestFactory;
use Magento\Framework\Setup\Declaration\Schema\SchemaConfigInterface;
/**
@@ -25,11 +24,6 @@ class DeclarationInstaller
*/
private $schemaDiff;
- /**
- * @var RequestFactory
- */
- private $requestFactory;
-
/**
* @var SchemaConfigInterface
*/
@@ -41,16 +35,13 @@ class DeclarationInstaller
* @param SchemaConfigInterface $schemaConfig
* @param SchemaDiff $schemaDiff
* @param OperationsExecutor $operationsExecutor
- * @param RequestFactory $requestFactory
*/
public function __construct(
SchemaConfigInterface $schemaConfig,
SchemaDiff $schemaDiff,
- OperationsExecutor $operationsExecutor,
- RequestFactory $requestFactory
+ OperationsExecutor $operationsExecutor
) {
$this->operationsExecutor = $operationsExecutor;
- $this->requestFactory = $requestFactory;
$this->schemaConfig = $schemaConfig;
$this->schemaDiff = $schemaDiff;
}
diff --git a/setup/src/Magento/Setup/Model/Installer.php b/setup/src/Magento/Setup/Model/Installer.php
index a1a62dc594683..c7a84b0cf022e 100644
--- a/setup/src/Magento/Setup/Model/Installer.php
+++ b/setup/src/Magento/Setup/Model/Installer.php
@@ -56,8 +56,8 @@ class Installer
/**#@+
* Parameters for enabling/disabling modules
*/
- const ENABLE_MODULES = 'enable_modules';
- const DISABLE_MODULES = 'disable_modules';
+ const ENABLE_MODULES = 'enable-modules';
+ const DISABLE_MODULES = 'disable-modules';
/**#@- */
/**#@+
@@ -268,7 +268,6 @@ class Installer
* @param ComponentRegistrar $componentRegistrar
* @param PhpReadinessCheck $phpReadinessCheck
*
- * @param DeclarationInstaller|null $declarationInstaller
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
*/
public function __construct(
@@ -410,7 +409,7 @@ private function writeInstallationDate()
}
/**
- * Creates modules deployment configuration segment
+ * Create modules deployment configuration segment
*
* @param \ArrayObject|array $request
* @param bool $dryRun
@@ -423,8 +422,8 @@ private function createModulesConfig($request, $dryRun = false)
$deploymentConfig = $this->deploymentConfigReader->load();
$currentModules = isset($deploymentConfig[ConfigOptionsListConstants::KEY_MODULES])
? $deploymentConfig[ConfigOptionsListConstants::KEY_MODULES] : [];
- $enable = $this->readListOfModules($all, $request, self::ENABLE_MODULES);
- $disable = $this->readListOfModules($all, $request, self::DISABLE_MODULES);
+ $enable = $this->readListOfModules($all, $request, InstallCommand::INPUT_KEY_ENABLE_MODULES);
+ $disable = $this->readListOfModules($all, $request, InstallCommand::INPUT_KEY_DISABLE_MODULES);
$result = [];
foreach ($all as $module) {
if ((isset($currentModules[$module]) && !$currentModules[$module])) {
@@ -904,9 +903,9 @@ private function throwExceptionForNotWritablePaths(array $paths)
}
/**
- * Handles database schema and data (install/upgrade/backup/uninstall etc)
+ * Handle database schema and data (install/upgrade/backup/uninstall etc)
*
- * @param SchemaSetupInterface | ModuleDataSetupInterface $setup
+ * @param SchemaSetupInterface|ModuleDataSetupInterface $setup
* @param string $type
* @param array $request
* @return void
@@ -1027,6 +1026,8 @@ private function handleDBSchemaData($setup, $type, array $request)
}
/**
+ * Assert DbConfigExists
+ *
* @return void
* @throws \Magento\Setup\Exception
*/
@@ -1082,7 +1083,8 @@ public function installUserConfig($data)
}
/**
- * Creates data handler
+ * Create data handler
+ *
* @param string $className
* @param string $interfaceName
* @return mixed|null
@@ -1101,7 +1103,7 @@ protected function createSchemaDataHandler($className, $interfaceName)
}
/**
- * Creates store order increment prefix configuration
+ * Create store order increment prefix configuration
*
* @param string $orderIncrementPrefix Value to use for order increment prefix
* @return void
@@ -1145,7 +1147,7 @@ private function installOrderIncrementPrefix($orderIncrementPrefix)
}
/**
- * Creates admin account
+ * Create admin account
*
* @param \ArrayObject|array $data
* @return void
diff --git a/setup/src/Magento/Setup/Test/Unit/Console/Command/DbSchemaUpgradeCommandTest.php b/setup/src/Magento/Setup/Test/Unit/Console/Command/DbSchemaUpgradeCommandTest.php
index f36675e26fa02..61c004c2e0b5f 100644
--- a/setup/src/Magento/Setup/Test/Unit/Console/Command/DbSchemaUpgradeCommandTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Console/Command/DbSchemaUpgradeCommandTest.php
@@ -3,10 +3,10 @@
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
+declare(strict_types=1);
namespace Magento\Setup\Test\Unit\Console\Command;
-use Magento\Framework\Module\ModuleList;
use Magento\Setup\Console\Command\DbSchemaUpgradeCommand;
use Symfony\Component\Console\Tester\CommandTester;
@@ -58,10 +58,10 @@ public function executeDataProvider()
[
'options' => [
'--magento-init-params' => '',
- '--convert_old_scripts' => false
+ '--convert-old-scripts' => false
],
'expectedOptions' => [
- 'convert_old_scripts' => false,
+ 'convert-old-scripts' => false,
'magento-init-params' => '',
]
],
diff --git a/setup/src/Magento/Setup/Test/Unit/Console/Command/UpgradeCommandTest.php b/setup/src/Magento/Setup/Test/Unit/Console/Command/UpgradeCommandTest.php
index 6f32a68682606..3d46736e449c4 100644
--- a/setup/src/Magento/Setup/Test/Unit/Console/Command/UpgradeCommandTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Console/Command/UpgradeCommandTest.php
@@ -104,61 +104,61 @@ public function executeDataProvider()
[
'options' => [
'--magento-init-params' => '',
- '--convert_old_scripts' => false,
+ '--convert-old-scripts' => false,
],
'deployMode' => \Magento\Framework\App\State::MODE_PRODUCTION,
'expectedString' => 'Please re-run Magento compile command. Use the command "setup:di:compile"'
. PHP_EOL,
'expectedOptions' => [
'keep-generated' => false,
- 'convert_old_scripts' => false,
- 'magento-init-params' => '',
+ 'convert-old-scripts' => false,
'safe-mode' => false,
'data-restore' => false,
'dry-run' => false,
+ 'magento-init-params' => '',
]
],
[
'options' => [
'--magento-init-params' => '',
- '--convert_old_scripts' => false,
+ '--convert-old-scripts' => false,
'--keep-generated' => true,
],
'deployMode' => \Magento\Framework\App\State::MODE_PRODUCTION,
'expectedString' => '',
'expectedOptions' => [
'keep-generated' => true,
- 'convert_old_scripts' => false,
- 'magento-init-params' => '',
+ 'convert-old-scripts' => false,
'safe-mode' => false,
'data-restore' => false,
'dry-run' => false,
+ 'magento-init-params' => '',
]
],
[
- 'options' => ['--magento-init-params' => '', '--convert_old_scripts' => false],
+ 'options' => ['--magento-init-params' => '', '--convert-old-scripts' => false],
'deployMode' => \Magento\Framework\App\State::MODE_DEVELOPER,
'expectedString' => '',
'expectedOptions' => [
'keep-generated' => false,
- 'convert_old_scripts' => false,
- 'magento-init-params' => '',
+ 'convert-old-scripts' => false,
'safe-mode' => false,
'data-restore' => false,
'dry-run' => false,
+ 'magento-init-params' => '',
]
],
[
- 'options' => ['--magento-init-params' => '', '--convert_old_scripts' => false],
+ 'options' => ['--magento-init-params' => '', '--convert-old-scripts' => false],
'deployMode' => \Magento\Framework\App\State::MODE_DEFAULT,
'expectedString' => '',
'expectedOptions' => [
'keep-generated' => false,
- 'convert_old_scripts' => false,
- 'magento-init-params' => '',
+ 'convert-old-scripts' => false,
'safe-mode' => false,
'data-restore' => false,
'dry-run' => false,
+ 'magento-init-params' => '',
]
],
];