Перейти к содержимому


Копирование готового товара (версия 3) new


  • Вы не можете ответить в тему
Сообщений в теме: 49

#21 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 11 April 2012 - 12:30 PM

Забыл написать! Теперь в копии к наименованию товара добавляется в конце слово " copy". А то часть ляпов из-за того и была, что скопированный товар вставал в таблице то ниже оригинала, то выше. Смотрю в копию - там все нормально скопировалось, значит, все работает, ну и зашибись. А я, оказывается, в оригинал смотрю :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#22 vassanni

    Новичок

  • Download User
  • Pip
  • 4 сообщений
Репутация: 0
Начинающий

Отправлено 13 April 2012 - 01:55 AM

badisoft, Отличный модуль, сильно выручает. А по возможности может копирование "сортировки по возрастанию" ещё пропишите?
  • 0

#23 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 13 April 2012 - 12:24 PM

А по возможности может копирование "сортировки по возрастанию" ещё пропишите?

Возможно. Если Вы объясните, о чем речь и что это такое :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#24 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 15 April 2012 - 12:27 AM

Понял. Глянул. Очень странно,что этого не сделал сам автор. Там в довеске есть три строки с NULL, их надо заменить на строки:
$copyProduct["sort_order"],
$copyProduct["eproduct_available_days"],
$copyProduct["eproduct_download_times"],
Собственно, вам нужна только первая строка, остальные уже до кучи, т.к. тоже странно, что не сделаны.
Напрочь не понимаю, зачем автор туда NULL прописал.
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#25 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 16 April 2012 - 02:59 PM

А чтобы копировались еще и "дополнителные категории", надо добавить

$data = db_query("SELECT categoryID FROM ".CATEGORIY_PRODUCT_TABLE." WHERE productID=$key");
while ($row = db_fetch_assoc($data))
db_query("INSERT ".CATEGORIY_PRODUCT_TABLE." SET productID=$copyProductID, categoryID=".$row['categoryID']."");


Поправил исходное мое письмо #20 с учетом этого и предыдущего изменений.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#26 Jeck2000

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 159 сообщений
Репутация: 8
Начинающий
  • ГородСанкт-Петербург

Отправлено 22 October 2012 - 09:01 PM

А нет ли возможности реализовать такую возможность, как копирование-вставка характеристик из одного товара в другой ?. Просто бывает необходимо вставить определенный ряд характеристик уже добавленным товарам по шаблону
  • 0

#27 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 22 October 2012 - 09:16 PM

ИМХО, это просто. А поскольку просто и лично мне не надо, то бесплатно - не интересно.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#28 Jeck2000

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 159 сообщений
Репутация: 8
Начинающий
  • ГородСанкт-Петербург

Отправлено 23 October 2012 - 06:48 AM

ИМХО, это просто. А поскольку просто и лично мне не надо, то бесплатно - не интересно.


Если это просто, озвучь тогда пожалуйста разумные пределы твоего интереса :)
  • 0

#29 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 23 October 2012 - 03:00 PM

Если это просто, озвучь тогда пожалуйста разумные пределы твоего интереса

Если достаточно нижеследующей функции, то бесплатно. Если надо делать еще и интерфейс (там тоже не особо сложно), то рублей пятьсот.

function prdCopyOptions($ProductID_from,$ProductID_to)
{
$tables = array(PRODUCT_OPTIONS_VALUES_TABLE,PRODUCTS_OPTIONS_SET_TABLE);
foreach ($tables as $table)
{
$data = mysql_query("DESC $table");
$desc = array();
while ($row = mysql_fetch_assoc($data)) $desc[] = $row;
$data = mysql_query("SELECT * FROM $table WHERE productID=$ProductID_from");
while ($row = mysql_fetch_assoc($data))
{
$row['productID'] = $ProductID_to;
$set = array();
foreach ($row as $key => $value)
{
if (isset($value))
{
foreach ($desc as $field) if(in_array($key,$field)) $type = $field['Type'];
switch ($type)
{
case 'int(11)':
$set[] = "$key=$value";
break;
case 'double':
$set[] = "$key=$value";
break;
case 'varchar(255)':
$set[] = "$key='$value'";
break;
}
}
}
mysql_query("REPLACE INTO $table SET ".implode(",",$set));
}
}
}

  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#30 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 11 December 2012 - 11:06 PM

Исправление к http://vsupport.club...dpost__p__18519

Возникала ошибка в SQL-запросе при не выставленном дефолтовом варианте характеристики у товара. Это приводило к сообщению об ошибке в "Статистике ошибок" и к тому, что эта характеристика товара не копировалась.

Заменяем строку

optionID=".$row['optionID'].",variantID=".$row['variantID'].",option_value='".$row['option_value']."',

на

optionID=".$row['optionID'].(isset($row['variantID'])?",variantID=".$row['variantID']:"").",option_value='".$row['option_value']."',

  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#31 Salp

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 218 сообщений
Репутация: 54
Продвинутый

Отправлено 09 March 2013 - 09:12 PM

Исправление к http://vsupport.club...dpost__p__18519

А файлы в первом посте перезалиты?
А то собирать правки через всю тему долговато...
  • 0

#32 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 09 March 2013 - 10:50 PM

А файлы в первом посте перезалиты? А то собирать правки через всю тему долговато...

А кто перезаливать-то будет?
Это могут сделать два человека - автор и админ.
Автор давно тут не появлялся, а админу оно надо?

PS. "через всю тему" в две страницы - да, это очень долговато :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#33 noid

    Новичок

  • Download User
  • Pip
  • 8 сообщений
Репутация: 2
Начинающий
  • ГородХарьков

Отправлено 10 March 2013 - 04:53 PM

Извините за глупый вопрос, а модуль только для группы assistant? Или я что-то не так делаю, просто скачать не получается, а модуль оч. нужный. Я находил аналоги, даже с копированием картинки, а вот с копированием доп.характеристик нигде нет. :unsure:

Сообщение отредактировал noid: 10 March 2013 - 05:00 PM

  • 0

#34 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 10 March 2013 - 04:57 PM

Да обратите внимание в каком разделе он находится. там видно для какой группы он доступен.
Но для DU тоже есть модуль копирования, уже не помню чем они отличаются.
  • 0

#35 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 11 March 2013 - 03:02 PM

Я находил аналоги, даже с копированием картинки

Думаю, Вы находили этот же модуль, но с самыми первыми исправлениями (доделка копирования картинок).
В #20 полностью представлен код с копированием картинок, доп.характеристик, доп.категорий и еще чего-то.
В #30 - исправление для этого кода.
В чем проблема?

PS. Это не говоря уже о том, что в архиве "с копированием картинки" лежит исправленный php со всеми переделками :).
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#36 Salp

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 218 сообщений
Репутация: 54
Продвинутый

Отправлено 11 March 2013 - 11:36 PM

А кто перезаливать-то будет?

Тем не менее, все собрано и перезалито кроме правки из поста #30.
Забрал эту версию копирования себе, только копирование фоток отключил.
  • 0

#37 Salp

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 218 сообщений
Репутация: 54
Продвинутый

Отправлено 12 March 2013 - 09:33 AM

для копирования рекомендуемых товаров
после:
$data = db_query("SELECT categoryID FROM ".CATEGORIY_PRODUCT_TABLE." WHERE productID=$key");
while ($row = db_fetch_assoc($data))
	db_query("INSERT ".CATEGORIY_PRODUCT_TABLE." SET productID=$copyProductID, categoryID=".$row['categoryID']."");
вставить:
$data = db_query("SELECT productID FROM ".RELATED_PRODUCTS_TABLE." WHERE Owner=$key");
while ($row = db_fetch_assoc($data))
	db_query("INSERT ".RELATED_PRODUCTS_TABLE." SET Owner=$copyProductID, productID=".$row['productID']."");

весь листинг второго блока с учетом всех правок:
//Вставка копирование товара
elseif ( $_POST["add_command"]=="prod_copy")
{
$copyProduct = GetProduct( (int)$key);
$copyProductID = AddProduct($copyProduct["categoryID"],
				$copyProduct["name"]." copy",
				$copyProduct["Price"],
				$copyProduct["description"],
				(int)$copyProduct["in_stock"],
				$copyProduct["brief_description"],
				(float)$copyProduct["list_price"],
				$copyProduct["product_code"],
			$copyProduct["sort_order"],
			$copyProduct["ProductIsProgram"],
				$copyProduct["eproduct_filename"],
			$copyProduct["eproduct_available_days"],
			$copyProduct["eproduct_download_times"],
				(float)$copyProduct["weight"],
				$copyProduct["meta_description"],
				$copyProduct["meta_keywords"],
				$copyProduct["free_shipping"],
				(int)$copyProduct["min_order_amount"],
				(float)$copyProduct["shipping_freight"],
				$copyProduct["tax_class"],
				$copyProduct["title"],
				0);
$data = db_query("SELECT photoID, filename, thumbnail, enlarged FROM ".PRODUCT_PICTURES." WHERE productID=$key");
while ($row = db_fetch_assoc($data))
		{
		if (isset($row['filename']) && is_file('data/small/'.$row['filename']))
				copy('data/small/'.$row['filename'], 'data/small/'.$copyProductID."_".$row['filename']);
		if (isset($row['thumbnail']) && is_file('data/medium/'.$row['thumbnail']))
				copy('data/medium/'.$row['thumbnail'], 'data/medium/'.$copyProductID."_".$row['thumbnail']);
		if (isset($row['enlarged']) && is_file('data/big/'.$row['enlarged']))
				copy('data/big/'.$row['enlarged'], 'data/big/'.$copyProductID."_".$row['enlarged']);
		db_query("INSERT ".PRODUCT_PICTURES." SET productID='$copyProductID',
																						  filename ='".$copyProductID."_".$row['filename' ]."',
																						  thumbnail='".$copyProductID."_".$row['thumbnail']."',
																						  enlarged ='".$copyProductID."_".$row['enlarged' ]."'");
		if ($row['photoID'] == $copyProduct['default_picture'])
				db_query("UPDATE ".PRODUCTS_TABLE." SET default_picture=".db_insert_id()." WHERE productID=$copyProductID");
		}
$data = db_query("SELECT optionID,variantID,option_value,option_type,option_show_times
								  FROM ".PRODUCT_OPTIONS_VALUES_TABLE." WHERE productID=$key");
while ($row = db_fetch_assoc($data))
		db_query("INSERT ".PRODUCT_OPTIONS_VALUES_TABLE." SET productID=$copyProductID,
						  optionID=".$row['optionID'].(isset($row['variantID'])?",variantID=".$row['variantID']:"").",option_value='".$row['option_value']."',
						  option_type=".$row['option_type'].",option_show_times=".$row['option_show_times']."");
$data = db_query("SELECT optionID,variantID,price_surplus
								  FROM ".PRODUCTS_OPTIONS_SET_TABLE." WHERE productID=$key");
while ($row = db_fetch_assoc($data))
		db_query("INSERT ".PRODUCTS_OPTIONS_SET_TABLE." SET productID=$copyProductID,
						  optionID=".$row['optionID'].",variantID=".$row['variantID'].",price_surplus=".$row['price_surplus']."");
$data = db_query("SELECT categoryID FROM ".CATEGORIY_PRODUCT_TABLE." WHERE productID=$key");
while ($row = db_fetch_assoc($data))
	db_query("INSERT ".CATEGORIY_PRODUCT_TABLE." SET productID=$copyProductID, categoryID=".$row['categoryID']."");

$data = db_query("SELECT productID FROM ".RELATED_PRODUCTS_TABLE." WHERE Owner=$key");
while ($row = db_fetch_assoc($data))
	db_query("INSERT ".RELATED_PRODUCTS_TABLE." SET Owner=$copyProductID, productID=".$row['productID']."");
}
//end

  • 1

#38 Niklon

    Пользователь

  • Пользователи
  • PipPip
  • 25 сообщений
Репутация: 0
Начинающий

Отправлено 04 April 2013 - 07:52 PM

С цифровым товаром похожая ситуация, что с фотографиями.
Думаю, что при добавлении нового товара нужно удалить
$copyProduct["eproduct_filename"],


И (после функции AddProduct) добавить следующий код:

<p>if (isset($copyProduct ['eproduct_filename']) &amp;&amp; is_file('core/files/'.$copyProduct ['eproduct_filename']))<br>&nbsp; &nbsp; if(copy('core/files/'.$copyProduct ['eproduct_filename'], 'core/files/'.$copyProductID."_".$copyProduct ['eproduct_filename']))</p><p><br></p><p>db_query("UPDATE ".PRODUCTS_TABLE." SET eproduct_filename='".$copyProductID."_".$copyProduct["eproduct_filename"]."' WHERE productID=$copyProductID");</p>

  • 0
ShopCMS модули, шаблоны, исходники, статьи на http://inshopcms.com. Разработка интернет-магазина под ключ.

#39 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 04 April 2013 - 08:18 PM

Эээ... Я один не понял, ни о чем это, ни что и зачем надо сделать? :)

И (после функции AddProduct) добавить следующий код:

Хм... Код тоже напоминает бред сумасшедшего... HTML вперемежку с PHP. Но тут, скорее, глюки движка форума.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#40 Niklon

    Пользователь

  • Пользователи
  • PipPip
  • 25 сообщений
Репутация: 0
Начинающий

Отправлено 04 April 2013 - 10:11 PM

При загрузке цифрового товара копируется файл в папку core/files. После копирования товара они оба будут ссылаться на один и тот же файл (т.е. иметь одинаковою запись в БД). Без моих изменений при удалении цифрового товара в карточке товара или удалении, например, исходного товара скопированный товар будет ссылаться на несуществующий файл. Нелогично. Это также, если б не делали копий фотографий и не присваивали им другие имена. По коду - стоял пустой абзац перед if. Видно за этого сбилась подсветка.


  • 0
ShopCMS модули, шаблоны, исходники, статьи на http://inshopcms.com. Разработка интернет-магазина под ключ.