Example #1
0
 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);
 }
Example #2
0
         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();
Example #3
0
             $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('');
         }
     }
 }