Вход • Регистрация

Баг или фича

  • 01 ноября 2021 г.
  • Заметил, что идентификатор для импорта не является уникальной постоянной. На сайте может быть сколь угодно товаров с одинаковым идентификатором для импорта, при условии их размещения в разных категориях каталога. Вот и думаю, это так задумано, или в багтрекер писать..
    • 01 ноября 2021 г.
    • Баг - это когда есть проблема. То есть, что-то работает с ошибкой или не работает вовсе.

      Например, если будет два одинаковых id, нельзя отредактировать второй товар, так как система всегда будет совать первый.

      Соответственно, чтобы понять, является ли проблемой и багом одинаковые названия товаров, одинаковые цены, одинаковые артикулы или одинаковые идентификаторы импорта, надо обозначить проблему, которая из-за этого появляется. Что-то не так работает? Выходят какие-то ошибки? Где? При каких обстоятельствах?

      Сам факт неуникальности какого-то поля не является багом.
      • 01 ноября 2021 г. , редакция: 02 ноября 2021 г.
      • Хорошо. Я понял, уникальный идентификатор может быть не уникальным.
        Цитата
        является ли проблемой и багом одинаковые названия товаров, одинаковые цены, одинаковые артикулы

        Да, но они не называются уникальная цена, уникальный артикул
        Цитата
        надо обозначить проблему, которая из-за этого появляется

        Поскольку уникальный идентификатор импорта может быть не уникальным, то это как минимум приведёт к неконтролируемому увеличению одинакового товара при изменении структуры сайта, ведь именно этот параметр, как гласит его название, используется при импорте как привязка . А если в магазине +100К?
        • 01 ноября 2021 г.
        • Вы немного путаете теплое с мягким.
          Идентификатор - уникальное значение, нумерация каждой строки в базе данных. Оно не может повторяться.
          Идентификатор для импорта - свободное поле, сюда можно вписать что угодно. Вообще его просто так обозвали, отсюда и путаница.
          • 01 ноября 2021 г. , редакция: 02 ноября 2021 г.
          • Я не про идентификатор, а про уникальный идентификатор импорта. Скриншот убрал.
            Ладно, я понял, что это не баг. Тему можно закрывать
          • 02 ноября 2021 г. , редакция: 02 ноября 2021 г.
          • То есть по твоему "Мягкому" или "Теплому", не знаю что есть что, вот этот код адекватный?

            Код

            switch($this->field("id", "param_type"))
            {
            case "site":
            $type_id = 'id';
            break;

            case "article":
            $type_id = 'article';
            break;

            default:
            $type_id = 'import_id';
            break;
            }
            $this->oldrow = DB::query_fetch_array(
            "SELECT * FROM {".$this->import["table"]."} WHERE ".$type_id."='%s'"
            ." AND trash='0' AND site_id=%d"
            .($this->import["type"] != 'category' && $this->import["cat_id"] ? " AND cat_id IN (".implode(",", $this->import["cat_ids"]).")" : '')
            ." LIMIT 1",
            $this->field_value("id"), $this->import["site_id"]
            );


            Ну а если не знаешь о чем тут речь, то я рекомендовал бы не встревать в такие разговоры)

            Это если что файлик shop.express.import.php, строка 523. Версия диафан 6.0.13.3
            • 02 ноября 2021 г.
            • Я вам, Степан, про код ничего не писала.
              Ниже Виталий объяснил (перефразировал то, что я сказала)
              Цитата
              Это где такая фраза!?!? У нас есть наш "Уникальный id", и мы это обеспечиваем. И есть просто "идентификатор для импорта", безо всякой приставки "уникальный". Не надо нам приписывать того, чего нет. ;)
          • 02 ноября 2021 г.
          • Цитата
            Идентификатор для импорта - свободное поле, сюда можно вписать что угодно
            Серьезно?
            То есть если я беру выгрузку с сайта поставщика, там есть свои id (или я сам их сделал для удобства) залил товары к себе проставив эти id в import_id. Потом я получил новую выгрузку, но категории у товаров изменились. Связи у меня с товарами на сайте и товарами из этой выгрузки идут по import_id. И теперь получается при загрузке этого файла у меня не товар на сайте переместится из одной категории в другую, а просто создается дубль товара. Мне кажется так не было задумано)
  • 02 ноября 2021 г.
  • Цитата
    Хорошо. Я понял, уникальный идентификатор может быть не уникальным.

    Это где такая фраза!?!? У нас есть наш "Уникальный id", и мы это обеспечиваем. И есть просто "идентификатор для импорта", безо всякой приставки "уникальный". Не надо нам приписывать того, чего нет. ;)
    Цитата
    именно этот параметр, как гласит его название, используется при импорте как привязка
    Совершенно верно. И в данном случае мы переложили ответственность за контроль уникализации этих id на поставщика )
    Цитата
    залил товары к себе проставив эти id в import_id. Потом я получил новую выгрузку, но категории у товаров изменились

    Это у какого поставщика одинаковые id в разных категориях, между которыми поставщик их так легко перекидывает и у него самого при этом нет проблем? )))
    Цитата
    Ладно, я понял, что это не баг. Тему можно закрывать
    Я повторюсь, сам факт неуникальности поля багом не является. Я повторюсь ещё раз, для экономии собственных различных ресурсов мы не стали контролировать уникальность id поставщиков, оставив это в их зоне ответственности. Как в ПДД, ты держишь дистанцию впереди себя, а дистанцию сзади тебя обеспечить должен едущий сзади, это не твоя ответственность.
    И я ещё раз повторюсь, приведите пример ситуации, когда импорт работает некорректно. Без теоретических надумок, типа "а если я вручную поставлю два поля в админке. Иначе так можно вручную пойти и в phpmyadmin и там в базе тоже снять уникальность с id и воткнуть одинаковые id.
    Если таких ситуаций не было, и это всё и области "а что если предположить вдруг допустим может быть когда-нибудь у поставщика будут одинаковые id", то да, тему закрою )
    • 02 ноября 2021 г. , редакция: 02 ноября 2021 г.
    • Цитата
      Это у какого поставщика одинаковые id в разных категориях, между которыми поставщик их так легко перекидывает и у него самого при этом нет проблем? )))

      Это не у поставщика. А у клиента. Импортирует товар, но не в ту категорию, в которую импортировал ранее, а в другую. При этом, несмотря на идентификатор импорта, товар дублируется.
      Цитата
      Это где такая фраза!?!? У нас есть наш "Уникальный id", и мы это обеспечиваем. И есть просто "идентификатор для импорта", безо всякой приставки "уникальный". Не надо нам приписывать того, чего нет. ;)

      Вот (тип поля - уникальный код, и выбор)

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум