Удаление категорий из продукта программно

Я попытался удалить категорию из продукта, но не смог. Он по-прежнему остается продуктом этой категории.

Это код, который я использую:

    $categories = array();
    $categories[] = $this->erp['mastercat'];
    if(isset($this->erp['article']['all_categories'])){
        if(is_array($this->erp['article']['all_categories']) && count($this->erp['shop']['all_categories'])>0){
            foreach($this->erp['article']['all_categories'] as $category){
                if(!in_array($category,$categories)){
                    $categories[] = $category;
                }
            }
        }else if(!empty($this->erp['article']['all_categories'])){
            if(!in_array($this->erp['article']['all_categories'], $categories)){
                $categories[] = $this->erp['article']['all_categories'];
            }
        }
    }
    $this->product->setCategoryIds($categories);

Я использую пустой массив и помещаю в него только те категории, которые мне нужны.

Я не понимаю, почему выбрана ранее выбранная категория и новая (я переместил ее в своем erp из одной в другую категорию).


person Chris West    schedule 24.02.2014    source источник
comment
stackoverflow.com/questions/17798615/   -  person Dushyant Joshi    schedule 24.02.2014


Ответы (2)


Вам также необходимо сохранить свой продукт:

$this->product->save();
person imso077    schedule 24.02.2014

Мне помогла ссылка от Keyur Shah. У меня возникла проблема с пониманием того, как система сохраняет категории. Если вы хотите удалить одну из списка, вам нужно загрузить все и отменить ненужные категории и добавить новые с их собственным ключом. Тогда это работает. ^^

Большое спасибо за помощь

person Chris West    schedule 25.02.2014