Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Добавить новый атрибут всем товарам.


1Andrew1
 Поделиться

Рекомендованные сообщения

Добрый день.

 

Подскажите, а можно как-нибудь, без особых трудозатрат добавить всем товарам новый атрибут?

 

Например создать атрибут: "Цвет", добавить всем со значением "красный",  а потом "руками" паре товаров поменять, допустим на: белый, желтый и т.д.

 

Версия движка 1.5

Ссылка на комментарий
Поделиться на других сайтах


Написать небольшой скриптик.. я так делал

Полезный совет! Вот прям по полочкам все разложили)))))
Ссылка на комментарий
Поделиться на других сайтах


Хоть и косыльно, но что сразу пришло на ум:

 

1. Вывести все id товаров

2. Получить id атрибута

3. Загнать id товаров в excel

4. С помощью "СЦЕПИТЬ" создать полноценный запрос

5. Выполнить запрос

 

Минут 5.

Ссылка на комментарий
Поделиться на других сайтах


мАмА дорогая!!! :)

 

Где вас учили удалять гланды через задний проход?

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

мАмА дорогая!!! :)

 

Где вас учили удалять гланды через задний проход?

Кому как удобнее и быстрее. Привык работать с прайсами (с Excel), поэтому я бы так сделал) Я же сказал, что костыльно, но работает  :ugeek: А тем более атрибут 1 (процедура разовая)

Изменено пользователем n3bo
Ссылка на комментарий
Поделиться на других сайтах


Попробую показать не костыль

 

Но сам запрос - придется склеивать  самим

 

1.

insert into oc_product_attribute (product_id, attribute_id., language_id, `text1)
SELECT ...

2. Это чисто для проверки

SELECT distinct p.product_id, pa.*
FROM oc_product p
LEFT join `oc_product_attribute` pa on p.product_id = pa.product_id
WHERE pa.product_id is null

3.

SELECT distinct p.product_id, NNN_attribute_id, LANGUAGE_ID, 'значение аттрибута
FROM oc_product p
LEFT join `oc_product_attribute` pa on p.product_id = pa.product_id
WHERE pa.product_id is null

AND pa.attribute_id = NNN_attribute_id

AND pa.attribute_id = LANGUAGE_ID

 

 

4. бекап, бекап, бекап

Ссылка на комментарий
Поделиться на других сайтах

Эх ладно для 1,5,x

$products = $this->db->query('SELECT * FROM `oc_product`');
foreach($products->rows as $p){
  $this->db->query('INSERT INTO `oc_product_attribute` SET `product_id` = "'.$p['product_id'].'", `attribute_id` = "IDatribute", `language_id` = "id lang", "text" = "Red"');
}

IDatribute - смотриш в oc_attribute_description 

id lang - можеш взять тамже 

Изменено пользователем konorws
Ссылка на комментарий
Поделиться на других сайтах

ага, а если уже есть товары с таким атрибутом?

Ссылка на комментарий
Поделиться на других сайтах

Попробую показать не костыль

 

Но сам запрос - придется склеивать  самим

 

1.

insert into oc_product_attribute (product_id, attribute_id., language_id, `text1)
SELECT ...

2. Это чисто для проверки

SELECT distinct p.product_id, pa.*
FROM oc_product p
LEFT join `oc_product_attribute` pa on p.product_id = pa.product_id
WHERE pa.product_id is null

3.

SELECT distinct p.product_id, NNN_attribute_id, LANGUAGE_ID, 'значение аттрибута

FROM oc_product p

LEFT join `oc_product_attribute` pa on p.product_id = pa.product_id

WHERE pa.product_id is null

AND pa.attribute_id = NNN_attribute_id

AND pa.attribute_id = LANGUAGE_ID

 

 

4. бекап, бекап, бекап

зачем все так усложнять

Ссылка на комментарий
Поделиться на других сайтах

Это вам так кажется, что усложнено!

 

Изучите мой запрос

Изменено пользователем chukcha
Ссылка на комментарий
Поделиться на других сайтах

ага, а если уже есть товары с таким атрибутом?

Открою секрет атрибуты можно задавать одни и теже и это будет без ошибки

Ссылка на комментарий
Поделиться на других сайтах

Это вам так кажется, что усложнено!

 

Изучите мой запрос

Я понимаю то что ты написал но вот для новачков это будет сложно

Ссылка на комментарий
Поделиться на других сайтах

Спрячьте свой секрет в одно место

 

Потом у человека сломается магазин

Изменено пользователем chukcha
Ссылка на комментарий
Поделиться на других сайтах

Вьюноша! Я с тобой водку не пил, и в карты не играл, и баб не трахал чтобы мне тыкать.

Ссылка на комментарий
Поделиться на других сайтах

Спрячьте свой секрет в одно место

 

Потом у человека сломается магазин

ради интереса шас добавлю у себя в магазине один товар так и скажу

Ссылка на комментарий
Поделиться на других сайтах

а теперь внимательно смотрим как создана таблица

CREATE TABLE IF NOT EXISTS `oc_product_attribute` (
  `product_id` int(11) NOT NULL,
  `attribute_id` int(11) NOT NULL,
  `language_id` int(11) NOT NULL,
  `text` text NOT NULL,
  PRIMARY KEY (`product_id`,`attribute_id`,`language_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

 

Ссылка на комментарий
Поделиться на других сайтах

Спрячьте свой секрет в одно место

 

Потом у человека сломается магазин

 Не сломаетса оно просто ошибку выдаст что ключ занят уже.

Ссылка на комментарий
Поделиться на других сайтах

 

а теперь внимательно смотрим как создана таблица

CREATE TABLE IF NOT EXISTS `oc_product_attribute` (
  `product_id` int(11) NOT NULL,
  `attribute_id` int(11) NOT NULL,
  `language_id` int(11) NOT NULL,
  `text` text NOT NULL,
  PRIMARY KEY (`product_id`,`attribute_id`,`language_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Я уже увидил но суть вчтом что оно просто не запишет даные с таким ключом параметров в результате не приведет к поломке а зпрос будет пропущен

Ссылка на комментарий
Поделиться на других сайтах

Ссут в горшок

 

А суть в том что запрос должен быть составлен верно и не возникало ошибок.

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Где один день?

 

Я запрос написал за 2минуты.

 

То что ТС сделал/не сделал - неизвестно.

Ссылка на комментарий
Поделиться на других сайтах

Где один день?

 

Я запрос написал за 2минуты.

 

То что ТС сделал/не сделал - неизвестно.

 

Добрый день,

 

Вот я тут развёл дискуссию, своим простым вопросом.

Спасибо откликнувшимся.

Я бы воспользовался вашим вариантом. Но боюсь, так как знаний 0. А в вашем варианте стоит доп. условие - "Но сам запрос - придется склеивать  самим" как это сделать мне неизвестно, поэтому наверно проще без атрибута обойтись, чем "кривыми руками" сломать свой ИМ и попасть на большие проблемы.

 

Может за небольшое вознаграждение 100-200 руб. в личке решим вопрос(ценой обидеть не хотел, просто не знаю расценок. Но больше платить за данное действие не готов. Проще тогда без доп. атрибута)

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.