function get_products() { global $languages_id, $pfs; // PriceFormatterStore added; // BOF Separate Pricing Per Customer // global variable (session) $sppc_customer_group_id -> class variable cg_id global $sppc_customer_group_id; if (!tep_session_is_registered('sppc_customer_group_id')) { $this->cg_id = '0'; } else { $this->cg_id = $sppc_customer_group_id; } // EOF Separate Pricing Per Customer if (!is_array($this->contents)) { return false; } // BOF QPBPP for SPPC $discount_category_quantity = array(); foreach ($this->contents as $products_id => $contents_array) { if (tep_not_null($contents_array['discount_categories_id'])) { if (!isset($discount_category_quantity[$contents_array['discount_categories_id']])) { $discount_category_quantity[$contents_array['discount_categories_id']] = $contents_array['qty']; } else { $discount_category_quantity[$contents_array['discount_categories_id']] += $contents_array['qty']; } } } // end foreach $pf = new PriceFormatter(); // EOF QPBPP for SPPC $products_array = array(); reset($this->contents); while (list($products_id, ) = each($this->contents)) { // BOF QPBPP for SPPC $pf->loadProduct($products_id, $languages_id); // does query if necessary and adds to // PriceFormatterStore or gets info from it next if ($products = $pfs->getPriceFormatterData($products_id)) { if (tep_not_null($this->contents[$products_id]['discount_categories_id'])) { $nof_items_in_cart_same_cat = $discount_category_quantity[$this->contents[$products_id]['discount_categories_id']]; $nof_other_items_in_cart_same_cat = $nof_items_in_cart_same_cat - $this->contents[$products_id]['qty']; } else { $nof_other_items_in_cart_same_cat = 0; } $products_price = $pf->computePrice($this->contents[$products_id]['qty'], $nof_other_items_in_cart_same_cat); // EOF QPBPP for SPPC // BOF Attribute Product Codes $attribute_code_array = array(); $attribute_code_query_raw = ''; if (isset($this->contents[$products_id]['attributes']) && is_array($this->contents[$products_id]['attributes'])) { foreach ($this->contents[$products_id]['attributes'] as $option => $value) { if ($attribute_code_query_raw != '') { $attribute_code_query_raw .= ' or '; } $attribute_code_query_raw .= "(options_id = '" . (int) $option . "' and options_values_id = '" . (int) $value . "')"; } $attribute_code_query = tep_db_query("select code_suffix from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id = '" . (int) $products_id . "' and (" . $attribute_code_query_raw . ") order by suffix_sort_order ASC"); while ($attribute_code = tep_db_fetch_array($attribute_code_query)) { if (tep_not_null($attribute_code['code_suffix'])) { $attribute_code_array[] = $attribute_code['code_suffix']; } } // $separator = '-'; $products_code = $products['products_model'] . CODE_SUFFIX_SEPERATOR . implode(CODE_SUFFIX_SEPERATOR, $attribute_code_array); } else { $products_code = $products['products_model']; } // EOF Attribute Product Codes // BOF indvship 4.5 $products_shipping_query = tep_db_query("select products_ship_price, products_ship_price_two, products_ship_zip, products_ship_methods_id from " . TABLE_PRODUCTS_SHIPPING . " where products_id = '" . $products['products_id'] . "'"); $products_shipping = tep_db_fetch_array($products_shipping_query); // EOF indvship 4.5 // $products_array[] = array('id' => $products_id, $products_array[] = array('id' => tep_get_uprid($products_id, isset($this->contents[$products_id]['attributes']) ? $this->contents[$products_id]['attributes'] : ''), 'name' => isset($products['products_name']) ? $products['products_name'] : '', 'model' => isset($products['products_model']) ? $products['products_model'] : '', 'code' => $products_code, 'image' => isset($products['products_image']) ? $products['products_image'] : '', 'discount_categories_id' => $this->contents[$products_id]['discount_categories_id'], 'price' => $products_price, 'quantity' => $this->contents[$products_id]['qty'], 'weight' => isset($products['products_weight']) ? $products['products_weight'] : '', 'length' => isset($products['products_length']) ? $products['products_length'] : '', 'width' => isset($products['products_width']) ? $products['products_width'] : '', 'height' => isset($products['products_height']) ? $products['products_height'] : '', 'ready_to_ship' => isset($products['products_ready_to_ship']) ? $products['products_ready_to_ship'] : '', 'final_price' => $products_price + $this->attributes_price($products_id), 'tax_class_id' => isset($products['products_tax_class_id']) ? $products['products_tax_class_id'] : '', 'products_ship_price' => $products_shipping['products_ship_price'], 'products_ship_price_two' => $products_shipping['products_ship_price_two'], 'products_ship_zip' => $products_shipping['products_ship_zip'], 'attributes' => isset($this->contents[$products_id]['attributes']) ? $this->contents[$products_id]['attributes'] : ''); } } return $products_array; }