function setColorPattern($products_id, $color_pattern_id) { use_class('products_family'); $class_pf = new products_family(); $is_family_locked = $class_pf->productIsFamilyLocked($products_id); if (!$is_family_locked) { $sda = array(); $sda['products_id'] = $products_id; if (is_array($color_pattern_id)) { tep_db_query("DELETE FROM products_to_color_pattern WHERE products_id={$products_id}"); foreach ($color_pattern_id as $cpid) { $sda['color_pattern_id'] = $cpid; tep_db_perform('products_to_color_pattern', $sda); } } else { $q = tep_db_query("SELECT products_id FROM products_to_color_pattern WHERE products_id={$products_id} AND color_pattern_id={$color_pattern_id}"); if (tep_db_num_rows($q) == 0) { $sda['color_pattern_id'] = $color_pattern_id; tep_db_perform('products_to_color_pattern', $sda); } } $this->autoUpdateSalesPartnerCatalog($products_id); } }
/** * Set brand of a specific product. This fnction will update brand for all families of the given products. * However, it will return only total successful products from the give products (updated familes are not included). * Updated products will also be automatically included in next catalog upload. * @param Int $products_id Product ID * @param Int $brand_id Brand ID * @return Int Total products updated */ function updateProductBrand($products_id, $brand_id) { use_class('products_family'); $pids = explode(',', $products_id); $n_pid = count($pids); $n_pid_success = 0; $break_the_rules = true; foreach ($pids as $products_id) { $obj_family = new products_family(null, $products_id); $is_family_locked = $obj_family->productIsFamilyLocked($products_id); if (!$is_family_locked || $break_the_rules) { $mother_is_locked = $obj_family->mother > 0 ? $obj_family->productIsFamilyLocked($obj_family->mother) : false; if (!$mother_is_locked || $break_the_rules) { $members = $obj_family->retrieveMembers(); $sda = array('products_brand_id' => $brand_id); $products_ids = is_array($members) && count($members) > 0 ? implode(',', $members) : $products_id; tep_db_perform('products', $sda, 'update', "products_id IN ({$products_ids})"); //refresh family search key to all members //we stop it since brand is already excluded from family search key // $pids_m = explode(',', $products_ids); // foreach($pids_m as $pid_m) $obj_family->refreshFamilyMatchKey($pid_m); use_class('products_minierp'); $class_pm = new products_minierp(); $class_pm->autoUpdateSalesPartnerCatalog($products_id); $n_pid_success++; } } } return $n_pid_success; }
} if ($pid > 0) { $obj_product = new product($pid); $p_data = $class_pm->retrieveDetail($pid, 'p,pd'); if ($p_data['p'] !== false) { use_class('element'); $prid = $pid; $family_id = $p_data['p']['family_id']; $stars = $p_data['p']['stars']; $obj_family = new products_family(null, $pid); $family_name = $obj_family->name; $prinfo = constructProductDetailInfo($pid, $p_data, true, true); if ($family_id != '') { $fm = $obj_family->retrieveMembers(); foreach ($fm as $fpid) { $family_is_locked = (int) $obj_family->productIsFamilyLocked($fpid); $family_members[] = "#box-pids-family|{$fpid}||{$family_is_locked}"; } } //$primage = webImageWithDetailLinkStars($p_data['p']['products_image'], $image_size_w, $image_size_h, 'Product '.$pid, 'img-border', "Product $pid (Reference product)", '500', '500', $stars); $primage = $obj_product->displayImage($image_size_w, $image_size_h, '(Reference Product)'); /* Moved this as function to object class products_family $family_searchkey = $p_data['p']['family_searchkey']; $q = "SELECT products_id, family_id FROM products"; $q .= " WHERE products_id != $pid AND family_searchkey = '$family_searchkey'"; if ($family_id != '') { $q .= " AND (family_id != '$family_id' OR IFNULL(family_id,'') = '')"; } $q .= " UNION"; $q .= " SELECT p.products_id, p.family_id FROM products_articles pa";