'product_option', 'primary' => 'id_product_option', 'multilang' => true, 'fields' => array( 'id_product' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'), 'price_impact' => array('type' => self::TYPE_FLOAT, 'validate' => 'isFloat', 'required' => true), 'date_add' => array('type' => self::TYPE_DATE, 'validate' => 'isDate'), 'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDate'), 'name' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'lang' => true, 'required' => true), ) ); public static function productHasOptions($idProduct, $idProductOption = false) { $sql = 'SELECT po.`id_product_option` FROM `'._DB_PREFIX_.'product_option` po WHERE po.`id_product` = '.(int)$idProduct; if ($idProductOption) { $sql .= ' AND po.`id_product_option` = '.(int)$idProductOption; } return (bool)Db::getInstance()->getValue($sql); } public function getProductOptions($idProduct, $idProductOption = false, $idLang = false) { if (!$idLang) { $idLang = Context::getContext()->language->id; } $sql = 'SELECT po.`id_product_option`, po.`id_product`, pol.`id_lang`, pol.`name`, po.`price_impact` FROM `'._DB_PREFIX_.'product_option` po INNER JOIN `'._DB_PREFIX_.'product_option_lang` pol ON (po.`id_product_option` = pol.`id_product_option`) WHERE po.`id_product` = '.(int)$idProduct.' AND pol.`id_lang` = '.(int)$idLang; if ($idProductOption) { $sql .= ' AND po.`id_product_option` = '.(int)$idProductOption; return Db::getInstance()->getRow($sql); } else { return Db::getInstance()->executeS($sql); } } }