Перемещение элементов категории или товаров в другую категорию занимает много времени в Magento 1.9.2 программным путем

Я хочу переместить продукты из одной категории в другую. Это работает, но занимает много времени, или вы можете сказать, что это отнимает много времени. Имейте в виду, что перемещение товаров означает удаление этого продукта из существующей категории. Перемещение 6 продуктов занимает 3,6 минуты, что не хорошо для любого разработчика. Если кто-то является экспертом в возобновлении сложности времени, пожалуйста, помогите.

**PHP CODE IS HERE...**
<?php
set_time_limit(0);
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
// Load Magento
require_once '../../app/Mage.php';
Mage::app();
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

if(isset($_POST['removeitems']))
{
    $categoryId = $_POST['catid']; 
    $movefromcat = $_POST['movefrom'];
    $items = $_POST['removeitems'];
    $items = explode(',',$items);

    foreach($items as $item){

         $product = Mage::getModel('catalog/product')->load($item);

         $product->setCategoryIds(
            array_merge($product->getCategoryIds(), array($categoryId))
         );

          $product->save();
         Mage::getSingleton('catalog/category_api')->removeProduct($movefromcat,$item);
    }

    echo json_encode(array('msg' => 'Products moved to category id: '.$categoryId.' successfully!'));
}
   exit;
?>

$(document).on("click","#movetoanothercategory",function(){

  $(".removecategoryproducts").hide();
   $("input.itemtomoveOrCopy").each(function(){
                $('.itemtomoveOrCopy').remove(); 
   });

   $(".hideme").hide();

  if(tipstatus.enable > 0){
   alert(tips.movecategoryitem);
  }
  if($("#categoryselect").val() == "" || $("#categoryselect").val() == "0"){
   alert("Load product from any category first");
   return false;
  }
  if ($('input#movetoanothercategory').prop('checked')) {
   $(".hideme").show(); 
   $(".copytocategory").hide();
   $(".submitmoveitems").show();
   
   $("#simpleList>.improduct").each(function(){
    var itid = $(this).attr('id');
    $(this).children('div.thumbnail').each(function(i){
                   // $(this).children(".checkbox"); 
     $(this).prepend("<input type='checkbox' class='itemtomoveOrCopy' attr-id='"+itid+"'>");
    });
   });
  }else{
   $(".hideme").hide();
   $(".submitmoveitems").hide();
   $("input.itemtomoveOrCopy").each(function(){
                $(this).remove(); 
   });
  }
  
 });

**AJAX FIRE HERE**

$.ajax({
            method: "post",
            url: "movetoanothercategory.php",
            data: "removeitems="+items+"&catid="+Movetocat+"&movefrom="+$.trim($("#categoryselect").val()),
            dataType:"json",
            cache:false,
            success:function(rt){
                alert(rt.msg);
                $.unblockUI();
                $(".loadcategoryitems").click();
            }
        });

    });

1 ответ

Почему бы вам не попробовать через CSV. Это быстро и просто: переместить продукты

Другие вопросы по тегам