public function update($id, $params) { $data = array(); $status = Response::STATUS_BAD_REQUEST; $lang_code = $this->safeGet($params, 'lang_code', DEFAULT_LANGUAGE); $this->prepareFeature($params); $this->prepareImages($params, $id); $product_id = fn_update_product($params, $id, $lang_code); if ($product_id) { $status = Response::STATUS_OK; $data = array('product_id' => $product_id); } return array('status' => $status, 'data' => $data); }
if (!fn_twg_check_permissions('orders', 'update_status', $auth) && isset($data['status'])) { unset($data['status']); } TwigmoOrder::apiUpdateOrder($data, $response); } elseif ($action == 'update_status' && !empty($data['status'])) { TwigmoOrder::apiUpdateOrder(array('order_id' => $data['order_id'], 'status' => $data['status']), $response); } elseif ($action == 'update_info') { $order_data = array('order_id' => $data['order_id'], 'details' => $data['details'], 'notes' => $data['notes']); TwigmoOrder::apiUpdateOrder($order_data, $response); } fn_set_notification('N', '', fn_twg_get_lang_var('twgadmin_saved')); } elseif ($object == 'products' && $action == 'update') { foreach ($data as $product) { if (!empty($product['product_id'])) { $_REQUEST['update_all_vendors'] = $product['update_all_vendors']; fn_update_product($product, $product['product_id'], $lang_code); fn_set_notification('N', '', fn_twg_get_lang_var('twgadmin_saved')); } else { $response->addError('ERROR_WRONG_OBJECT_DATA', str_replace('[object]', 'products', __('twgadmin_wrong_api_object_data'))); } } } elseif ($object == 'images' && $action == 'delete') { foreach ($data as $image) { if (empty($image['pair_id'])) { $response->addError('ERROR_WRONG_OBJECT_DATA', str_replace('[object]', 'images', __('twgadmin_wrong_api_object_data'))); continue; } fn_delete_image_pair($image['pair_id'], 'product'); } } $response->returnResponse();
$product_data['avail_since'] = fn_parse_date($product_data['avail_since']); } if (isset($product_data['timestamp'])) { $product_data['timestamp'] = fn_parse_date($product_data['timestamp']); } if (fn_allowed_for('ULTIMATE,MULTIVENDOR') && Registry::get('runtime.company_id')) { unset($product_data['company_id']); } fn_define('KEEP_UPLOADED_FILES', true); fn_companies_filter_company_product_categories($_REQUEST, $product_data); if (!empty($product_data['category_ids'])) { $product_data['category_ids'] = explode(',', $product_data['category_ids']); } foreach ($_SESSION['product_ids'] as $_o => $p_id) { // Update product fn_update_product($product_data, $p_id, DESCR_SL); } } } // // Processing deleting of multiple product elements // if ($mode == 'm_delete') { if (isset($_REQUEST['product_ids'])) { foreach ($_REQUEST['product_ids'] as $v) { fn_delete_product($v); } } unset($_SESSION['product_ids']); fn_set_notification('N', __('notice'), __('text_products_have_been_deleted')); $suffix = ".manage";
public static function importProductsFile($data_products, $import_params) { $cml = self::$cml; $type_import_products = self::$s_commerceml['exim_1c_import_products']; $allow_import_features = self::$s_commerceml['exim_1c_allow_import_features']; $add_tax = self::$s_commerceml['exim_1c_add_tax']; $schema_version = self::$s_commerceml['exim_1c_schema_version']; $type_link = self::$s_commerceml['exim_1c_import_type']; if (!empty(self::$features_commerceml)) { $features_commerceml = self::$features_commerceml; } if (!empty(self::$categories_commerceml)) { $categories_commerceml = self::$categories_commerceml; } else { $categories_commerceml = db_get_hash_single_array("SELECT external_id, category_id FROM ?:categories WHERE external_id <> ''", array('external_id', 'category_id')); } foreach ($data_products->{$cml}['product'] as $_product) { if (empty($_product->{$cml}['name'])) { self::addMessageLog('Name is not set for product with id: ' . $_product->{$cml}['id']); continue; } $ids = fn_explode('#', $_product->{$cml}['id']); $guid_product = array_shift($ids); $combination_id = 0; if (!empty($ids)) { $combination_id = reset($ids); } $article = strval($_product->{$cml}['article']); $barcode = strval($_product->{$cml}['bar']); $product_data = array(); if ($type_link == 'article') { $product_data = db_get_row("SELECT product_id, update_1c FROM ?:products WHERE product_code = ?s", $article); } elseif ($type_link == 'barcode') { $product_data = db_get_row("SELECT product_id, update_1c FROM ?:products WHERE product_code = ?s", $barcode); } else { $product_data = db_get_row("SELECT product_id, update_1c FROM ?:products WHERE external_id = ?s", $guid_product); } $product_update = !empty($product_data['update_1c']) ? $product_data['update_1c'] : 'Y'; $product_id = !empty($product_data['product_id']) ? $product_data['product_id'] : 0; if (!empty($_product->attributes()->{$cml}['status']) && strval($_product->attributes()->{$cml}['status']) == 'Удален') { if ($product_id != 0) { fn_delete_product($product_id); self::addMessageLog('Deleted product: ' . strval($_product->{$cml}['name'])); } continue; } if (!empty($_product->{$cml}['status']) && strval($_product->{$cml}['status']) == 'Удален') { if ($product_id != 0) { fn_delete_product($product_id); self::addMessageLog('Deleted product: ' . strval($_product->{$cml}['name'])); } continue; } if ($type_import_products == 'all_products' || ($type_import_products == 'new_products' || $type_import_products == 'new_update_products') && $product_id == 0 || $type_import_products == 'update_products' && $product_id != 0) { if ($product_update == 'Y' || $product_id == 0) { $product = self::dataProductFile($_product, $product_id, $guid_product, $categories_commerceml, $import_params); if ($product_id == 0) { self::newDataProductFile($product, $import_params); } if ((isset($_product->{$cml}['properties_values']->{$cml}['property_values']) || isset($_product->{$cml}['manufacturer'])) && $allow_import_features == 'Y' && !empty(self::$features_commerceml)) { self::dataProductFeatures($_product, $product, $import_params); } if (isset($_product->{$cml}['taxes_rates']) && $add_tax == 'Y') { $product['tax_ids'] = self::addProductTaxes($_product->{$cml}['taxes_rates'], $product_id, $import_params['lang_code']); } $product_id = fn_update_product($product, $product_id, $import_params['lang_code']); self::addMessageLog('Added product: ' . $product['product'] . ' commerceml_id: ' . strval($_product->{$cml}['id'])); // Import product features if (!empty($product['features'])) { $variants_data['product_id'] = $product_id; $variants_data['lang_code'] = $import_params['lang_code']; $variants_data['category_id'] = $product['category_id']; self::addProductFeatures($product['features'], $variants_data, $import_params); } // Import images $image_main = true; if (isset($_product->{$cml}['image'])) { foreach ($_product->{$cml}['image'] as $image) { $filename = fn_basename(strval($image)); self::addProductImage($filename, $image_main, $product_id, $import_params); $image_main = false; } } // Import combinations if (isset($_product->{$cml}['product_features']->{$cml}['product_feature']) && $schema_version == '2.07') { self::addProductCombinationsNewSchema($_product->{$cml}['product_features']->{$cml}['product_feature'], $product_id, $import_params, $combination_id); } } } if (empty($import_params['service_exchange'])) { fn_echo(' '); } else { fn_echo(''); } } }