2017-05-23 1 views
0

Je veux créer des produits à partir de leur code, et je souhaite ajouter des produits à des catégories.
Comment ajouter des produits à des catégories par code?
J'ai essayé d'ajouter une catégorie au produit \Magento\Catalog\Model\Product, mais il n'y a pas de méthode setCategory ou quelque chose comme ça.
Ensuite, j'ai essayé d'ajouter des produits à la catégorie Magento\Catalog\Model\Category, et il n'y a pas de méthode addProduct ou quelque chose comme ça. j'ai vu fonctionMagento 2 Ajouter le produit à la catégorie (code)

CategoryLinkManagementInterface -> assignProductToCategories(
$product->getSku(), 
$product->getCategoryIds() //but there is not categories yet 
) 

Répondre

0
/** 
    * @var \Magento\Catalog\Api\CategoryLinkManagementInterface 
    */ 
    protected $_categoryLinkManagement; 

$this->_categoryLinkManagement->assignProductToCategories($sku, $categoryIds); 
//where $sku is sku of product, and $categoryIds is array of real categories ids 
0

Vous devez obtenir la catégorie Ids et produit Id pour définir des données: impliment ceci:

$this->getCategoryLinkManagement()->assignProductToCategories(
       $product->getSku(), 
       $product->getCategoryIds() 
      ); 

also impliment this function : 

private function getCategoryLinkManagement() 
{ 
    if (null === $this->categoryLinkManagement) { 
     $this->categoryLinkManagement = \Magento\Framework\App\ObjectManager::getInstance() 
      ->get('Magento\Catalog\Api\CategoryLinkManagementInterface'); 
    } 
    return $this->categoryLinkManagement; 
} 

repos dépendance vous devez gérer pour:

Magento\Catalog\Api\CategoryLinkManagementInterface

intialize : protected $categoryLinkManagement;