Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Улучшение модуля импорт/экспорт


udjin

Recommended Posts

Добрый день!

Обновил свой магазин до версии ocStore 0.2.2 и был приятно удивлен тем что в админке наконец-то появилась возможность задать title и заголовок для каждого товара. Но в модуле импорта из Excel нет этих столбцов, и если делать каталог в Excel, то потом надо вручную их добавлять. Но после обновления каталога все добавленные в ручную данные опять исчезают :blink: . Подскажите как изменить модуль импорта, чтобы добавить туда эти столбцы??

С уважением Евгений.

Надіслати
Поділитися на інших сайтах


Добрый день!

Обновил свой магазин до версии ocStore 0.2.2 и был приятно удивлен тем что в админке наконец-то появилась возможность задать title и заголовок для каждого товара. Но в модуле импорта из Excel нет этих столбцов, и если делать каталог в Excel, то потом надо вручную их добавлять. Но после обновления каталога все добавленные в ручную данные опять исчезают :blink: . Подскажите как изменить модуль импорта, чтобы добавить туда эти столбцы??

С уважением Евгений.

ну что ни кто не подскажет, мне кажется ответ на этот вопрос будет полезен не только мне ? :blink: :blink:

Надіслати
Поділитися на інших сайтах


ну что ни кто не подскажет, мне кажется ответ на этот вопрос будет полезен не только мне ? :blink: :blink:

я так понимаю что надо добавить новые поля в функцию

function uploadProducts( &$reader, &$database ) {
		// find the default language id and default units
		$languageId = $this->getDefaultLanguageId($database);
		$defaultWeightUnit = $this->getDefaultWeightUnit();
		$defaultMeasurementUnit = $this->getDefaultMeasurementUnit();
		$defaultStockStatusId = $this->config->get('config_stock_status_id');
		
		$data = $reader->sheets[1];
		$products = array();
		$product = array();
		$isFirstRow = TRUE;
		foreach ($data['cells'] as $row) {
			if ($isFirstRow) {
				$isFirstRow = FALSE;
				continue;
			}
			$productId = trim(isset($row[1]) ? $row[1] : "");
			if ($productId=="") {
				continue;
			}
			$name = isset($row[2]) ? $row[2] : "";
			$name = htmlentities( $name, ENT_QUOTES, $this->detect_encoding($name) );
			$categories = isset($row[3]) ? $row[3] : "";
			$sku = isset($row[4]) ? $row[4] : "0";
			$location = isset($row[5]) ? $row[5] : "0";
			$quantity = isset($row[6]) ? $row[6] : "0";
			$model = isset($row[7]) ? $row[7] : "   ";
			$manufacturer = isset($row[8]) ? $row[8] : "";
			$imageName = isset($row[9]) ? $row[9] : "";
			$shipping = isset($row[10]) ? $row[10] : "yes";
			$price = isset($row[11]) ? $row[11] : "0.00";
			$dateAdded = (isset($row[12]) && (is_string($row[12])) && (strlen($row[12])>0)) ? $row[12] : "NOW()";
			$dateModified = (isset($row[13]) && (is_string($row[13])) && (strlen($row[13])>0)) ? $row[13] : "NOW()";
			$dateAvailable = (isset($row[14]) && (is_string($row[14])) && (strlen($row[14])>0)) ? $row[14] : "NOW()";
			$weight = isset($row[15]) ? $row[15] : "0";
			$unit = isset($row[16]) ? $row[16] : $defaultWeightUnit;
			$length = isset($row[17]) ? $row[17] : "0";
			$width = isset($row[18]) ? $row[18] : "0";
			$height = isset($row[19]) ? $row[19] : "0";
			$measurementUnit = isset($row[20]) ? $row[20] : $defaultMeasurementUnit;
			$status = isset($row[21]) ? $row[21] : "true";
			$taxClassId = isset($row[22]) ? $row[22] : "0";
			$viewed = isset($row[23]) ? $row[23] : "0";
			$langId = isset($row[24]) ? $row[24] : "1";
			if ($langId!=$languageId) {
				continue;
			}
			$keyword = isset($row[25]) ? $row[25] : "";
			$description = isset($row[26]) ? $row[26] : "";
			$description = htmlentities( $description, ENT_QUOTES, $this->detect_encoding($description) );
			$meta_description = isset($row[27]) ? $row[27] : "";
			$meta_description = htmlentities( $meta_description, ENT_QUOTES, $this->detect_encoding($meta_description) );
			$meta_keywords = isset($row[28]) ? $row[28] : "";
			$meta_keywords = htmlentities( $meta_keywords, ENT_QUOTES, $this->detect_encoding($meta_keywords) );
			$additionalImageNames = isset($row[29]) ? $row[29] : "";
			$stockStatusId = isset($row[30]) ? $row[30] : $defaultStockStatusId;
			$storeIds = isset($row[31]) ? $row[31] : "";
			$related = isset($row[32]) ? $row[32] : "";
			$tags = isset($row[33]) ? $row[33] : "";
			$sort_order = isset($row[34]) ? $row[34] : "0";
			$subtract = isset($row[35]) ? $row[35] : "true";
			$minimum = isset($row[36]) ? $row[36] : "1";
			$cost = isset($row[37]) ? $row[37] : "0.00";
			$product = array();
			$product[0] = $productId;
			$product[1] = $name;
			$categories = trim( $this->clean($categories, FALSE) );
			$product[2] = ($categories=="") ? array() : explode( ",", $categories );
			if ($product[2]===FALSE) {
				$product[2] = array();
			}
			$product[3] = $quantity;
			$product[5] = $model;
			$product[6] = $manufacturer;
			$product[7] = $imageName;
			$product[9] = $shipping;
			$product[10] = $price;
			$product[12] = $dateAdded;
			$product[13] = $dateModified;
			$product[14] = $dateAvailable;
			$product[15] = $weight;
			$product[16] = $unit;
			$product[17] = $status;
			$product[20] = $taxClassId;
			$product[21] = $viewed;
			$product[22] = $languageId;
			$product[23] = $description;
			$product[24] = $stockStatusId;
			$product[25] = $meta_description;
			$product[26] = $length;
			$product[27] = $width;
			$product[28] = $height;
			$product[29] = $keyword;
			$product[30] = $measurementUnit;
			$product[31] = $sku;
			$product[32] = $location;
			$storeIds = trim( $this->clean($storeIds, FALSE) );
			$product[33] = ($storeIds=="") ? array() : explode( ",", $storeIds );
			if ($product[33]===FALSE) {
				$product[33] = array();
			}
			$product[34] = ($related=="") ? array() : explode( ",", $related );
			if ($product[34]===FALSE) {
				$product[34] = array();
			}
			$product[35] = ($tags=="") ? array() : explode( ",", $tags );
			if ($product[35]===FALSE) {
				$product[35] = array();
			}
			$product[36] = $subtract;
			$product[37] = $minimum;
			$product[38] = $cost;
			$product[39] = $meta_keywords;
			$product[40] = $sort_order;
			$products[$productId] = $product;
		}
		return $this->storeProductsIntoDatabase( $database, $products );
	}

как и куда надо прописать ?

Надіслати
Поділитися на інших сайтах


Тоже столкнулся с этом проблемой, после нескольких дней на форуме так никто не ответил. В итоге сам нашел решение. Правил файл admin/model/tool/export.php вот как он у меня выглядит сейчас (сборка ocstore 0.2). Ногами не пинайте, в php я ноль.

export.php

  • +1 2
Надіслати
Поділитися на інших сайтах


Тоже столкнулся с этом проблемой, после нескольких дней на форуме так никто не ответил. В итоге сам нашел решение. Правил файл admin/model/tool/export.php вот как он у меня выглядит сейчас (сборка ocstore 0.2). Ногами не пинайте, в php я ноль.

работает и на импорт и на экспорт?

Надіслати
Поділитися на інших сайтах


да, там добавились два столбца в конце таблицы (у категорий и у товара). Попробуй потести.

Человек ты крут :rolleyes: :rolleyes:

Спасибо большое, все работает... :lol:

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

Тоже столкнулся с этом проблемой, после нескольких дней на форуме так никто не ответил. В итоге сам нашел решение. Правил файл admin/model/tool/export.php вот как он у меня выглядит сейчас (сборка ocstore 0.2). Ногами не пинайте, в php я ноль.

Спасибо, действительно работает, но с версии 0.2 кроме новых полей title и h1 появилось и еще одно новое поле main_category_id. Добавила его к вашей версии по инструкции отсюда https://opencartforum.com/topic/2581-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0-%D1%81-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5%D0%BC-exportimport/

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

Спасибо, действительно работает, но с версии 0.2 кроме новых полей title и h1 появилось и еще одно новое поле main_category_id. Добавила его к вашей версии по инструкции отсюда https://opencartforum.com/topic/2581-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0-%D1%81-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5%D0%BC-exportimport/

поделитесь пожалуйста файликом. а то я совсем ничего не понимаю (к своему стыду)
Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

поделитесь пожалуйста файликом. а то я совсем ничего не понимаю (к своему стыду)

хм, на даче был, параллельно с вами сделал : export/import title-h1-rus
Надіслати
Поділитися на інших сайтах


Помогите в файл xml добавить еще одно значение. Поставил себе данный модуль: Добавление подписи к доп картинкам, очень удобно. Но при экспорте и обратном импорте все поля стираются. Логично, так как их просто нет в самом файле. Подскажите, как мне правильно вставить туда переменную image_desc. Что бы оно работало. А то я все перепробовал и все равно ничего не получается. И есть еще один вопрос. Может кто то видел модуль, там где под основной картинкой есть маленькие. И когда нажимаешь на любую из маленьких она появляется в поле большой.

Надіслати
Поділитися на інших сайтах


  • 2 years later...

Дабы не плодить новые темы, попробую для начала задать вопрос в этой :)

Делал ли кто-то, что бы модуль Export/Import Tool не дропал всю забу перез импортом, а добавлял позиции?

 

Например в экселе несколько новых товаров, при импорте, если товар есть то UPDATE, если нету то INSERT, с проверкой по ключевому полю, например product_id.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.