/** * Load all of the supplied products into the database. This will update any * existing entries and add any new entries. It is up to the user to manage * the discontinuance of products. * @static : this is a static method * @return bool : True if the products were succssfully loaded. * @param $products DobaProducts */ function loadDobaProductsIntoDB($products) { if (is_a($products, 'DobaProducts')) { $sql_prod = 'replace into ' . TABLE_PRODUCTS . ' (products_id, products_quantity, products_model, products_image, products_price, products_last_modified, products_weight, products_status, products_tax_class_id, manufacturers_id) values '; $sql_cat = 'replace into ' . TABLE_PRODUCTS_TO_CATEGORIES . ' (products_id, categories_id) values'; $sql_descr = 'replace into ' . TABLE_PRODUCTS_DESCRIPTION . ' (products_id, language_id, products_name, products_description) values '; $can_insert = false; foreach ($products->products as $prod) { if ($can_insert) { $sql_prod .= ', '; $sql_cat .= ', '; $sql_descr .= ', '; } $can_insert = true; $products_id = $prod->item_id(); $products_quantity = intval($prod->quantity()); $products_model = $prod->product_sku(); $img_url = $prod->image_url(); if (empty($img_url)) { $img_url = $prod->thumb_url(); } $products_image = DobaInteraction::processImage($img_url, $products_id); $products_price = floatval($prod->price()); $products_last_modified = 'now()'; $products_weight = $prod->ship_weight(); $products_status = $prod->quantity() > 0 ? 1 : 0; $products_tax_class_id = 1; $manufacturers_id = DobaInteraction::setBrandName($prod->brand()); $categories_id = DobaInteraction::setCategoryName($prod->category_name()); $language_id = 1; $products_name = $prod->title(); $products_description = $prod->description(); $sql_prod .= '(' . $products_id . ', ' . $products_quantity . ', "' . addslashes(tep_db_prepare_input($products_model)) . '", "' . addslashes(tep_db_prepare_input($products_image)) . '", ' . $products_price . ', ' . $products_last_modified . ', ' . $products_weight . ', ' . $products_status . ', ' . $products_tax_class_id . ', ' . $manufacturers_id . ')'; $sql_cat .= '(' . $products_id . ', ' . $categories_id . ')'; $sql_descr .= '(' . $products_id . ', ' . $language_id . ', "' . addslashes(tep_db_prepare_input($products_name)) . '", "' . addslashes(tep_db_prepare_input($products_description)) . '")'; } if ($can_insert) { tep_db_query($sql_prod); tep_db_query($sql_cat); tep_db_query($sql_descr); $sql = 'update ' . TABLE_PRODUCTS . ' set products_date_added=now(), products_date_available=now() where products_date_added is NULL'; tep_db_query($sql); return true; } } return false; }