![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/dev/tests/integration/testsuite/Magento/Catalog/_files/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ use Magento\Catalog\Api\Data\ProductTierPriceExtensionFactory; use Magento\Catalog\Api\Data\ProductExtensionInterfaceFactory; \Magento\TestFramework\Helper\Bootstrap::getInstance()->reinitialize(); /** @var \Magento\TestFramework\ObjectManager $objectManager */ $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); /** @var \Magento\Catalog\Api\CategoryLinkManagementInterface $categoryLinkManagement */ $categoryLinkManagement = $objectManager->get(\Magento\Catalog\Api\CategoryLinkManagementInterface::class); $tierPrices = []; /** @var \Magento\Catalog\Api\Data\ProductTierPriceInterfaceFactory $tierPriceFactory */ $tierPriceFactory = $objectManager->get(\Magento\Catalog\Api\Data\ProductTierPriceInterfaceFactory::class); /** @var $tpExtensionAttributes */ $tpExtensionAttributesFactory = $objectManager->get(ProductTierPriceExtensionFactory::class); /** @var $productExtensionAttributes */ $productExtensionAttributesFactory = $objectManager->get(ProductExtensionInterfaceFactory::class); $adminWebsite = $objectManager->get(\Magento\Store\Api\WebsiteRepositoryInterface::class)->get('admin'); $tierPriceExtensionAttributes1 = $tpExtensionAttributesFactory->create() ->setWebsiteId($adminWebsite->getId()); $productExtensionAttributesWebsiteIds = $productExtensionAttributesFactory->create( ['website_ids' => $adminWebsite->getId()] ); $tierPrices[] = $tierPriceFactory->create( [ 'data' => [ 'customer_group_id' => \Magento\Customer\Model\Group::CUST_GROUP_ALL, 'qty' => 2, 'value' => 8 ] ] )->setExtensionAttributes($tierPriceExtensionAttributes1); $tierPrices[] = $tierPriceFactory->create( [ 'data' => [ 'customer_group_id' => \Magento\Customer\Model\Group::CUST_GROUP_ALL, 'qty' => 5, 'value' => 5 ] ] )->setExtensionAttributes($tierPriceExtensionAttributes1); $tierPrices[] = $tierPriceFactory->create( [ 'data' => [ 'customer_group_id' => \Magento\Customer\Model\Group::NOT_LOGGED_IN_ID, 'qty' => 3, 'value' => 5 ] ] )->setExtensionAttributes($tierPriceExtensionAttributes1); $tierPrices[] = $tierPriceFactory->create( [ 'data' => [ 'customer_group_id' => \Magento\Customer\Model\Group::NOT_LOGGED_IN_ID, 'qty' => 3.2, 'value' => 6, ] ] )->setExtensionAttributes($tierPriceExtensionAttributes1); $tierPriceExtensionAttributes2 = $tpExtensionAttributesFactory->create() ->setWebsiteId($adminWebsite->getId()) ->setPercentageValue(50); $tierPrices[] = $tierPriceFactory->create( [ 'data' => [ 'customer_group_id' => \Magento\Customer\Model\Group::NOT_LOGGED_IN_ID, 'qty' => 10 ] ] )->setExtensionAttributes($tierPriceExtensionAttributes2); /** @var $product \Magento\Catalog\Model\Product */ $product = $objectManager->create(\Magento\Catalog\Model\Product::class); $product->isObjectNew(true); $product->setTypeId(\Magento\Catalog\Model\Product\Type::TYPE_SIMPLE) ->setId(1) ->setAttributeSetId(4) ->setWebsiteIds([1]) ->setName('Simple Product') ->setSku('simple') ->setPrice(10) ->setWeight(1) ->setShortDescription("Short description") ->setTaxClassId(2) ->setTierPrices($tierPrices) ->setDescription('Description with <b>html tag</b>') ->setExtensionAttributes($productExtensionAttributesWebsiteIds) ->setMetaTitle('meta title') ->setMetaKeyword('meta keyword') ->setMetaDescription('meta description') ->setVisibility(\Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH) ->setStatus(\Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED) ->setStockData( [ 'use_config_manage_stock' => 1, 'qty' => 100, 'is_qty_decimal' => 0, 'is_in_stock' => 1, ] )->setCanSaveCustomOptions(true) ->setHasOptions(true); $oldOptions = [ [ 'previous_group' => 'text', 'title' => 'Test Field', 'type' => 'field', 'is_require' => 1, 'sort_order' => 0, 'price' => 1, 'price_type' => 'fixed', 'sku' => '1-text', 'max_characters' => 100, ], [ 'previous_group' => 'date', 'title' => 'Test Date and Time', 'type' => 'date_time', 'is_require' => 1, 'sort_order' => 0, 'price' => 2, 'price_type' => 'fixed', 'sku' => '2-date', ], [ 'previous_group' => 'select', 'title' => 'Test Select', 'type' => 'drop_down', 'is_require' => 1, 'sort_order' => 0, 'values' => [ [ 'option_type_id' => null, 'title' => 'Option 1', 'price' => 3, 'price_type' => 'fixed', 'sku' => '3-1-select', ], [ 'option_type_id' => null, 'title' => 'Option 2', 'price' => 3, 'price_type' => 'fixed', 'sku' => '3-2-select', ], ] ], [ 'previous_group' => 'select', 'title' => 'Test Radio', 'type' => 'radio', 'is_require' => 1, 'sort_order' => 0, 'values' => [ [ 'option_type_id' => null, 'title' => 'Option 1', 'price' => 3, 'price_type' => 'fixed', 'sku' => '4-1-radio', ], [ 'option_type_id' => null, 'title' => 'Option 2', 'price' => 3, 'price_type' => 'fixed', 'sku' => '4-2-radio', ], ] ] ]; $options = []; /** @var \Magento\Catalog\Api\Data\ProductCustomOptionInterfaceFactory $customOptionFactory */ $customOptionFactory = $objectManager->create(\Magento\Catalog\Api\Data\ProductCustomOptionInterfaceFactory::class); foreach ($oldOptions as $option) { /** @var \Magento\Catalog\Api\Data\ProductCustomOptionInterface $option */ $option = $customOptionFactory->create(['data' => $option]); $option->setProductSku($product->getSku()); $options[] = $option; } $product->setOptions($options); /** @var \Magento\Catalog\Api\ProductRepositoryInterface $productRepository */ $productRepository = $objectManager->create(\Magento\Catalog\Api\ProductRepositoryInterface::class); $productRepository->save($product); $categoryLinkManagement->assignProductToCategories( $product->getSku(), [2] );