Advertisement
Guest User

M2 Import

a guest
Jan 18th, 2018
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.81 KB | None | 0 0
  1. <?php
  2. use Magento\Framework\App\Bootstrap;
  3.  
  4. include( 'app/bootstrap.php' );
  5. $bootstrap = Bootstrap::create( BP, $_SERVER );
  6.  
  7. error_reporting( E_ALL );
  8. ini_set( 'display_errors', 'On' );
  9.  
  10. $objectManager = $bootstrap->getObjectManager();
  11.  
  12. $state = $objectManager->get( 'Magento\Framework\App\State' );
  13. $state->setAreaCode( 'adminhtml' );
  14.  
  15. $file        = dirname( __FILE__ ) . "/Produkty.xml";
  16. $xml_content = file_get_contents( $file );
  17. $xml_content = str_replace( array( "stk:", "lStk:", "rsp:", "typ:" ), array( "", "", "", "" ), $xml_content );
  18. $xml         = simplexml_load_string( $xml_content );
  19.  
  20. # Quick switch between interface method and model method
  21. $update_using_interface = true;
  22.  
  23. while ( @ob_end_flush() ) {
  24.     ;
  25. }
  26.  
  27. echo '<table style="max-width: 900px;min-width:900px;width:900px;font-size:13px;font-family:monospace;" border="1" cellpadding="5" cellspacing="5"><thead><tr><th>EAN</th><th>Nazov</th><th>Status</th></tr></thead><tbody>';
  28.  
  29. foreach ( $xml as $item ):
  30.  
  31.     $_internet = property_exists($item, "Internet") ? (intval($item->Internet->__toString()) == 1) : false;
  32.     $_ean    = property_exists($item, "EAN") ? $item->EAN : false;
  33.     $_price  = floatval( $item->KonecnaCena->__toString() );
  34.     $_name   = $item->Nazov->__toString();
  35.     $_status = "";
  36.     $_stock_qty = property_exists($item, "StavZasoby") ? floatval($item->StavZasoby->__toString()) : 0;
  37.  
  38.     if(!$_internet) {
  39.         continue;
  40.     }
  41.  
  42.     echo '<tr>';
  43.     echo '<td>' . $_ean . '</td>';
  44.     echo '<td>' . $_name . '</td>';
  45.  
  46.     if ( $_ean ):
  47.  
  48.         /** @var \Magento\Catalog\Model\ProductFactory $productFactory */
  49.         $productFactory = $objectManager->get( '\Magento\Catalog\Model\ProductFactory' );
  50.  
  51.         /** @var \Magento\Catalog\Model\Product $productModel */
  52.         $productModel = $productFactory->create();
  53.  
  54.         /** @var \Magento\Catalog\Model\Product $product */
  55.         $product = $productModel->loadByAttribute( "ean", $item->EAN->__toString() );
  56.  
  57.         if ( $product ):
  58.             /** @var \Magento\Catalog\Model\ProductRepository $productRepository */
  59.             $productRepository = $objectManager->get( '\Magento\Catalog\Model\ProductRepository' );
  60.             $product           = $productRepository->getById( $product->getId() );
  61.  
  62.             # Update name and price
  63.             $product->setName( $item->Nazov->__toString() );
  64.             $product->setPrice( floatval( $item->KonecnaCena->__toString() ) );
  65.             $product->setSpecialPrice(null); // Reset special price
  66.  
  67.             $product->setStockData(['qty' => $_stock_qty, 'is_in_stock' => true]);
  68.             $product->setQuantityAndStockStatus(['qty' => $_stock_qty, 'is_in_stock' => true]);
  69.  
  70.             # Save changes on product
  71.             $productRepository->save($product);
  72.  
  73.             $_status = "UPDATED";
  74.  
  75.         else:
  76.             $_status = "NOT FOUND";
  77.         endif;
  78.  
  79.     else:
  80.         $_status = "NO EAN";
  81.     endif;
  82.  
  83.     echo '<td>' . $_status . '</td>';
  84.     echo '</tr>';
  85.     @flush();
  86. endforeach;
  87.  
  88. echo '</tbody></table>';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement