public static function addProductOptions($data, $product) { StoreProductOptionGroup::removeOptionGroupsForProduct($product, $data['pogID']); StoreProductOptionItem::removeOptionItemsForProduct($product, $data['poiID']); $count = count($data['pogSort']); $ii = 0; //set counter for items if ($count > 0) { for ($i = 0; $i < count($data['pogSort']); $i++) { if (isset($data['pogID'][$i])) { $optionGroup = StoreProductOptionGroup::getByID($data['pogID'][$i]); if ($optionGroup) { $optionGroup->update($product, $data['pogName'][$i], $data['pogSort'][$i]); } } if (!$optionGroup) { if ($data['pogName'][$i]) { $optionGroup = StoreProductOptionGroup::add($product, $data['pogName'][$i], $data['pogSort'][$i]); } } if ($optionGroup) { $pogID = $optionGroup->getID(); //add option items $itemsInGroup = count($data['optGroup' . $i]); if ($itemsInGroup > 0) { for ($gi = 0; $gi < $itemsInGroup; $gi++, $ii++) { if ($data['poiID'][$ii] > 0) { $option = StoreProductOptionItem::getByID($data['poiID'][$ii]); if ($option) { $option->update($product, $data['poiName'][$ii], $data['poiSort'][$ii], $data['poiHidden'][$ii]); } } else { if ($data['poiName'][$ii]) { StoreProductOptionItem::add($product, $pogID, $data['poiName'][$ii], $data['poiSort'][$ii], $data['poiHidden'][$ii]); } } } } } } } }
public function remove() { StoreProductImage::removeImagesForProduct($this); StoreProductOptionGroup::removeOptionGroupsForProduct($this); StoreProductOptionItem::removeOptionItemsForProduct($this); StoreProductFile::removeFilesForProduct($this); StoreProductGroup::removeGroupsForProduct($this); StoreProductLocation::removeLocationsForProduct($this); StoreProductUserGroup::removeUserGroupsForProduct($this); StoreProductVariation::removeVariationsForProduct($this); $em = Database::get()->getEntityManager(); $em->remove($this); $em->flush(); $page = Page::getByID($this->cID); if (is_object($page)) { $page->delete(); } }