Перейти к содержанию
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 2

Поделиться сообщением


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

Прошел 1 день, мой вариант 5 минут и без мозговыноски :D

Поделиться сообщением


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

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

 

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

 

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

Поделиться сообщением


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

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

 

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

 

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

 

Добрый день,

 

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

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

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

 

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

Поделиться сообщением


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

Пишите.

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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