2015-03-06 1 views
2

Я создал новый продукт с основными классами preashop с сценарием импорта. Теперь я должен программно создавать комбинации этих продуктов со стандартным набором атрибутов. Какие основные функции ядра можно использовать?Программируемое создание комбинаций-Prestashop 1.6

ответ

1

Я также сделал сценарий импорта и я сделал эти два цикла в одном из моего метода

$iDefaultLangId = Configuration::get('PS_LANG_DEFAULT'); 
     foreach($aAttributeValues as $sValue) { 

      if(!Attribute::isAttribute($iAttributeId, $sValue, $iDefaultLangId)) { 
       $oAttribute = new Attribute(); 
       $oAttribute->id_attribute_group = $iAttributeId; 
       $oAttribute->name = array(); 

       $oAttribute->name[3] = $sValue; //this is the is of your lang 

       $oAttribute->add(); 

       echo "create attribute <br>"; 

      } 
     } 

     foreach(AttributeGroup::getAttributes($iDefaultLangId, $iAttributeId) as $aAttribute) { 
      if(in_array($aAttribute['name'], $aAttributeValues)) { 



       if(!$oProduct->productAttributeExists(array($aAttribute['id_attribute']))) { 

        echo "add combination with quantity " . $combQty ." e valore " . $aAttributeValues[0] . " <br>"; 

        if ($ref != false){ 

         $id_product_attribute = $oProduct->addCombinationEntity($oProduct->price, 0, 0, 0, 0, 1, array(), $ref, 0, $combEan, false); 

        } else { 

         $id_product_attribute = $oProduct->addCombinationEntity($oProduct->price, 0, 0, 0, 0, 1, array(), $aAttribute['name'], 0, $combEan, false); 

        } 



        $combination = new Combination((int)$id_product_attribute); 

        $combination->setAttributes(array($aAttribute['id_attribute'])); 

        $this->_setQuantity($oProduct->id, $combination->id, $combQty); 

       } else { 


       }