Автор Тема: Как удалить из БД не существующие комбинации товара?  (Прочитано 366 раз)

16 Октябрь 2020, 10:00:01
  • Фрилансер
  • *
  • Сообщений: 119
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем доброго дня. Заметил такую проблему. Есть некоторые товары, у них вообще нет комбинаций.
Для печати почтовых этикеток использую сервис, который подтягивает все данные о заказе, в т.ч. и название товара.
Если заходишь в заказ в админке престы (1.6.1.17), то все нормально, название продукта корректное. А из при поступлении в этот сервис к названию некоторых товаров добавляется вариант комбинации, которой вообще не должно быть в принципе. Разработчики модуля, сказали, что мне нужно почистить БД, возможно, у этого товара были комбинации, потом их удалили, а в БД они где-то остались. Вопрос, где именно это можно посмотреть, в какой таблице?
И еще один сопутствующий ньюанс. После замены фото в товаре, в заказе все же отображается старое фото. Чистка кэша не помогает. Как можно актуализировать данные?
16 Октябрь 2020, 11:32:33
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Данные о комбинациях хранятся в ps_product_attribute.
Но проблема не в этом, это модуль должен определять активна комбинация или нет.
Кроме кеширования в движке есть еще серверное кеширование. У вас скорее всего сервер кешируют стат контент, поэтому не сразу обновляет данные.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
05 Ноябрь 2020, 17:40:39
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 119
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Заметил тут, что берется комбинация, которой никогда и не было у данного товара. Но вообще она существуют в магазине.
Значит, дело в модуле, не правильно он что-то определяет?
Мне разработчики ответили, что в таблице psxl_product_attribute_combination у этого атрибута (который сам добавляется при импорте заказа) значение  id_product_attribute = 0, а этого не должно быть. Как это могло получиться и какое правильное должно быть значение, как узнать?
И как сделать чтобы данные обновлялись после редактирования? (На тот случай, когда комбинации были, но потом их удалили).
05 Ноябрь 2020, 22:38:29
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 1808
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Проблему в модуле ищите. В движке prestashop таких проблем нет.  Значение  id_product_attribute = 0 может присваиваться в комбинациях у атрибутов которых нет или когда скрипт не может определить атрибут. Так часто в модулях делают. Это чисто ошибка в модуле.
06 Ноябрь 2020, 18:00:03
Ответ #4
  • Фрилансер
  • *
  • Сообщений: 119
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Не совсем понял "в комбинациях у атрибутов которых нет".
Атрибут такой существует в магазине. Значение в БД ноль. Это единственное значение ноль в таблице.
06 Ноябрь 2020, 18:05:19
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
ps_product_attribute 0 не существует.
Это в вашем модуле для ps_product_attribute присвоено 0.
Смотрите в таблице ps_product_attribute там ид начинаются с 1.
0 значит не определен, модуль не может определить товар с такой комбинацией.
06 Ноябрь 2020, 18:21:23
Ответ #6
  • Фрилансер
  • *
  • Сообщений: 119
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В том то и дело, что 0 есть в таблице, см. на скриншоте.
06 Ноябрь 2020, 20:05:12
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В том то и дело, что 0 есть в таблице, см. на скриншоте.
Это ошибка в модуле. Только в модуле можно исправить такие ошибки.
Если в prestashop нет такого значения, то от куда модуль его взял?
Задайте этот вопрос разработчику модуля.
06 Ноябрь 2020, 20:45:08
Ответ #8
  • Фрилансер
  • *
  • Сообщений: 119
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Скрин с базы данных, не с модуля. Сказали, с Prestashop берет, и в нем исправить нужно.
19 Февраль 2021, 19:40:40
Ответ #9
  • Фрилансер
  • *
  • Сообщений: 119
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В прошлый раз временно решил проблему, заменил 0 на 1, ошибка прекратилась при импорте данных.
Теперь опять в БД в таблице psxl_product_attribute_combination почему-то обнулились значения id_product_attribute.
Атрибуты действующие, не удалялись. В чем может быть причина?

20 Февраль 2021, 11:44:22
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Обновление товаров через импорт, массовое редактирование товаров или интеграция с 1С, вот это может быть причиной.