Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/MAGETWO-75415' into PANDA-FIXES
Browse files Browse the repository at this point in the history
  • Loading branch information
RuslanKostiv1 committed Oct 5, 2017
2 parents 2e867be + 74b7105 commit eed8dfa
Show file tree
Hide file tree
Showing 2 changed files with 100 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
use Magento\Catalog\Api\ProductRepositoryInterface;
use Magento\Catalog\Model\Product;
use Magento\Catalog\Model\Product\Attribute\Source\Status;
use Magento\Catalog\Model\Product\Type;
use Magento\Catalog\Model\Product\Visibility;
use Magento\GroupedProduct\Model\Product\Type\Grouped;
use Magento\TestFramework\Helper\Bootstrap;

/** @var ProductRepositoryInterface $productRepository */
$productRepository = Bootstrap::getObjectManager()
->get(ProductRepositoryInterface::class);

$productLinkFactory = Bootstrap::getObjectManager()
->get(\Magento\Catalog\Api\Data\ProductLinkInterfaceFactory::class);
$productIds = ['11', '22'];

foreach ($productIds as $productId) {
/** @var $product Product */
$product = Bootstrap::getObjectManager()->create(Product::class);
$product->setTypeId(Type::TYPE_SIMPLE)
->setId($productId)
->setWebsiteIds([1])
->setAttributeSetId(4)
->setName('Simple ' . $productId)
->setSku('simple_' . $productId)
->setPrice(100)
->setVisibility(Visibility::VISIBILITY_BOTH)
->setStatus(Status::STATUS_ENABLED)
->setStockData(['use_config_manage_stock' => 1, 'qty' => 100, 'is_qty_decimal' => 0, 'is_in_stock' => 1]);

$linkedProducts[] = $productRepository->save($product);
}

/** @var $product Product */
$product = Bootstrap::getObjectManager()->create(Product::class);

$product->setTypeId(Grouped::TYPE_CODE)
->setId(1)
->setWebsiteIds([1])
->setAttributeSetId(4)
->setName('Grouped Product')
->setSku('grouped')
->setVisibility(Visibility::VISIBILITY_BOTH)
->setStatus(Status::STATUS_ENABLED)
->setStockData(['use_config_manage_stock' => 1, 'is_in_stock' => 1]);

foreach ($linkedProducts as $linkedProduct) {
/** @var \Magento\Catalog\Api\Data\ProductLinkInterface $productLink */
$productLink = $productLinkFactory->create();
$productLink->setSku($product->getSku())
->setLinkType('associated')
->setLinkedProductSku($linkedProduct->getSku())
->setLinkedProductType($linkedProduct->getTypeId())
->getExtensionAttributes()
->setQty(1);
$newLinks[] = $productLink;
}

$product->setProductLinks($newLinks);

$productRepository->save($product);
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();

/** @var \Magento\Framework\Registry $registry */
$registry = $objectManager->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);

$skuList = ['simple_11', 'simple_22', 'grouped'];
foreach ($skuList as $sku) {
try {
$product = $productRepository->get($sku, false, null, true);

$stockStatus = $objectManager->create(\Magento\CatalogInventory\Model\Stock\Status::class);
$stockStatus->load($product->getEntityId(), 'product_id');
$stockStatus->delete();

$productRepository->delete($product);
} catch (\Magento\Framework\Exception\NoSuchEntityException $e) {
//Product already removed
}
}

$registry->unregister('isSecureArea');
$registry->register('isSecureArea', false);

0 comments on commit eed8dfa

Please sign in to comment.