2016-04-20 2 views
1

J'ai le problème suivant:Magento - Des options personnalisées sont ajoutées pour chaque magasin

Je veux ajouter des options personnalisées à mon produit magento par programmation. Cela fonctionne jusqu'à présent, MAIS les options sont ajoutées plusieurs fois, plus précis une fois pour chaque vue de magasin que j'ai, mais ils sont tous visibles dans chaque magasin. J'ai seulement besoin d'UNE option pour la vue par défaut. Voici le code que j'utilise:

$product = Mage::getModel('catalog/product')->loadByAttribute('sku', 1234); 

    if(!$product) { 
     $product = Mage::getModel('catalog/product'); 
    } else { 
     $product = Mage::getModel('catalog/product')->load($product->getId()); 
    } 
    $customOpt = array(
      'is_delete'   => 0, 
      'is_require'  => true, 
      'title'    => 'ProcessingImport', 
      'type'    => 'drop_down', 
      'price_type'  => 'fixed', 
      'price'    => 0, 
      'sort_order'  => 0, 
      'values'   => array(
        array(
          'is_delete'   => 0, 
          'title'    => 'Import ' . rand(10, 100), 
          'price_type'  => 'fixed', 
          'price'    => 0, 
          'sku'    => 'SKUImportOne', 
          'option_type_id' => -1 
        ), 
        array(
          'is_delete'   => 0, 
          'title'    => 'Import ' . rand(10, 100), 
          'price_type'  => 'fixed', 
          'price'    => 0, 
          'sku'    => 'SKUImportTwo', 
          'option_type_id' => -1 
        ) 
      ), 
    ); 
    $product->setCanSaveCustomOptions(true); 
    $product->setProductOptions(array($customOpt)); 
    $product->save(); 

Est-ce que quelqu'un a une idée pourquoi il est ajouté plusieurs fois pour chaque vue? Voici une image où vous pouvez voir mon problème:

enter image description here

Merci à l'avance!

Répondre

1

J'ai trouvé la solution dans mon code. Après le code affiché ci-dessus j'ai une boucle, où j'ai fixé plusieurs prix pour différents magasins. Et Magento est si "intelligent" qu'il enregistre à nouveau toutes les options pour chaque magasin. J'ai placé le code après cette boucle et l'option n'est créée qu'une seule fois.