Как привести все товары к типу product_variant ?

Каким то образом в Товарах есть вот такие вот дубли разделения - отдельно product и отдельно variant - как на картинке  файла экспорта. Непотяно как оно появилось, видимо при импорте нужно было четко указывать "Тип строки" product_variant ?

Как  такие товары привести к типу "product_variant" как у остального большинства товаров ? Иначе при обработке файлов экспорта получается путаница из-за этих дублей в названиях. 

У нас у каждого товара по 1 артикулу , т.е.  product_variant - как раз самое походящий для нас тип строки поидее. 

21 ответ

  • 1
    Дмитрий К 27 октября 2022 07:25 #

    Другими словами - как эти две строки объединить в одну с типом строки product_variant? Пробовал в файле импорта задавать явно product_variant - как вместо product так и вместо variant , не меняется картина ... только потерялся код артикула , и также остались две строки при выгрузке, как выше на картинке.

  • 2
    replicant 27 октября 2022 10:49 #

    Чтобы избавиться от этого надо посмотреть как сделано в правильном товаре и сделать так же.

    Т.е. у вас вот так

    А надо сделать так

    Если совсем не получается, то удалите товар и введите его снова вручную. Потом его экспортируйте и добавьте в таблицу, чтобы сравнить как надо.

    Скорее всего у вас были одинаковые наименования товаров и они склеились.

    Если у вас все товары одноартикульные, то не трогайте артикулы лишний раз. Вводите только наименование и код артикула, цены и кол-во и всё. Ничего более не нужно. Также не добавляйте вторые артикулы (случайно), не используйте режим Выбор параметров и, самое главное, не вводите товары с таким же именем и наименованиями/кодами артикулов и всё будет в порядке. Тогда ничего не будет склеиваться в артикулы при импорте/экспорте и т.п.

    • +1
      Дмитрий К Дмитрий К 27 октября 2022 14:05 #

      Да в том то и дело что артикулов у всех товаров по одному, у всех вид  как у вас на втором скрине - просто товар выгружается, если у него  тип не "product_variant", в две строки отдельные - сам товар (product) и его артикул ( variant )... думал как импортом их слить в одну строку product_variant , но что-то задача нетривиальная и не ручная... таких товаров  около 600шт... придется мириться с таким положением и  стараться не создавать таких новых засад

  • 1
    Дмитрий К 27 октября 2022 15:36 #

    Посмотрели логи и файлы импорта. До 14/10 все было ровно - все товары имели тип строки "product_variant". Потом накатили очередное обновление Shop-script через Инсталлер и при следующем экспорте появилось это раздвоение для части товаров...

  • 1
    Дмитрий К 27 октября 2022 16:02 #

    Было



    Стало

  • 2
    replicant 27 октября 2022 17:05 #

    Значит всё же что-то не так. Иначе ничего бы не разделилось. У вас должен быть активен режим "Выбор параметров" и создан артикул с параметрами отличными от общих параметров товара. Артикул этот может быть действительно один, но это в чистом виде артикул в товаре, а не сам товар (как бы странно это не звучало).

    Разделение становится возможно тогда, когда в артикуле, пусть даже и в одном единственном, имеются какие-то свойства / параметры отличные от аналогичных общих свойств товара (масса, размеры, цвет или ещё что-то из набора характеристик, разрешенных для редактирования в свойствах артикулов).

    Обратите внимание на "Выбор параметров" и "Варианты покупки". Это разные режимы для артикулов. Проведите опыт с каким-нибудь товаром и всё встанет на свои места.

    Включаю Выбор параметров, выбираю параметр, артикул как и был остается один.

    Но в итоге при экспорте получаем и товар и артикул. Вот и всё.


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

    Возьмите один товар для опытов и прогоните его туда-сюда разными комбинациями несколько раз. Экспортировать можно один выбранный товар. Это проще, чем таскать всю базу. Для опытов хватит и одного. Запомните полученные зависимости и проблема уйдет. Да ёё собственно и нет на самом-то деле. Просто ваша комбинация при импорте порождает такие штуки, либо артикул в товаре имеет свои параметры, либо и то и другое. Проведите опыт с импортом таблицы в свободном формате без указания всяких product, variant и product_variant и со свободным размещением столбцов данных. Это полезно для общей практики.

  • 1
    Дмитрий К 27 октября 2022 20:22 #

    Замечено что если у артикула есть какие-либо характеристики - то имеем эффект раздвоения

    тут пусто и при импорте по товару 1 строка product_variant

     а тут есть характеристики у артикула и имеем две строки в файле экспорта по товару

    но дело в том что  до обновления магазина в октябре  - и тот и другой товары из примера выше  экспортировались как product_variant - в одну строку . Все таки разработчики что-то поправили и теперь это работает так - если есть характеристики у артикула в базе - то получи две строки по товару причем и для старых товаров тоже, а не для только вновь импортируемых

  • 2
    replicant 28 октября 2022 01:01 #

    Значит избавляйтесь от хар-к, доступных для редактирования в свойствах артикула (это в Магазин - Настройки - Типы и хар-ки). Поскольку товары одноартикульные, то всё эти значения характеристик переносите в товар. Для быстрой работы с характеристиками у себя использую плагин https://www.webasyst.ru/store/plugin/shop/productfeatures/ т.к. он позволяет, не открывая товар, всё отредактировать в два клика. А есть ещё плагин https://www.webasyst.ru/store/plugin/shop/etfeatures/, который позволяет в два клика редактировать артикульные и товарные хар-ки прямо из таблицы товаров, предварительно настроив таблицу на показ нужных хар-к.


    И далее видим хар-ку и её значение для товара (первое) и для единственного артикула (второе) и редактируем.

  • 1
    Дмитрий К 28 октября 2022 10:20 #

    Тут есть подводный камень, например характеристика GTIN - она если не ошибаюсь присваивается только артикулам и отказаться от нее нельзя , так как она используется в выгрузке плагина Яндекс маркета. Или можно задать ее как характеристику товара? 

    и раньше все характеристики и товара и артикула  "уживались" в одной строке "product_variant" . Вот и  в Справке по экспорту пишут 

    Если в столбце «Тип строки» указано значение «product_variant», то:
    свойства товара сохраняются в товар;
    свойства артикула сохраняются в артикул товара;
    значения характеристик сохраняются в артикул товара.

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

    • +2
      replicant replicant 28 октября 2022 10:57 #

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

      Незаполненная хар-ка артикула не создает проблем с возникновением product и variant на двух строках.

      Просто перенесите значения хар-к из артикула в товар. Опустошите эти поля в артикуле, а те, которые можно отключить, отключите. И всё будет в порядке.

      У меня, например, GTIN не используется вовсе. Я его просто отключил для всех типов товаров и не вижу ни в артикуле, ни в товаре, а вес нужен, но в артикуле его просто не заполняю (см. скриншот предыдущего ответа, где указан вес 1,65 кг), а заполняю значение только в товаре. В артикуле всё пусто.

  • 1
    Дмитрий К 28 октября 2022 11:48 #

    Да, спасибо! Все характеристики артикула можно продублировать в товаре , после этого получаем 1 строку а экспорте. 

    Причем поле вес на скрине тоже относится к артикулу , но размещено не в блоке его характеристик, и только после его удаления - получил строку product_variant

    Теперь как то  автоматизировать процесс нужно через файл импорта, а не в ручном режиме сводить две строки в одну. 

    И все же мы боремся с последствиями, а не с причиной. 

    Тип строки product_variant позволяет совмещать  характеристики товара и артикула - как на скрине файла экспорта из нашего архива от 01/2022 - тут все уживалось вместе и только ав октябре что-то пошло не так... и товары имеющие характеристики артикула изменили Тип строки на два product и variant.. Я склонен думать что это из-за последнего обновления магазина, так как до обновления все товары имели тип product_variant

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

    • +2
      replicant replicant 28 октября 2022 16:24 #

      Мне почему-то кажется, что именно сейчас мы имеем дело с каким-то исправленным багом, когда данные лучше пусть "удвоятся" в строках, но не потеряются. Связываю это с появлением редактора товаров и раздела товаров в новом интерфейсе. Возможно под это решались какие-то задачи и что-то поменялось. Мне несколько сложно сказать как оно было ДО, т.к. имея одноартикульные товары никогда ничего к артикулам не приписывал и всегда всё в одну строку выходило на товар. Мне всегда это виделось более правильным подходом для случая, когда артикулов нет, но есть товар.

      Допустим есть product_variant, который совмещает в себе хар-ки товара и его единственного артикула.

      Берем для примера хар-ку Вес. Вес исторически всегда стоял вне блока хар-к артикула, хотя был его хар-кой по-умолчанию как системный тип хар-к. В товаре указан вес 2 кг, а в артикуле 3 кг. Как это совместить без проблем и что главнее в одной строке для product_variant 2 кг или 3 кг? Оставить 2 или 3 кг? Или записать оба?

      Другой частный случай, когда в товаре вес не указан вовсе, а в артикуле стоит 3 кг. Это как бы совместить можно наверное, но вылезает проблема контроля того какие хар-ки где именно вводить, чтобы случайно не задублировать артикульные в товаре и т.п. Потому что можно и так и сяк, и совместить, и частями, и вообще запутаться. Пасти этот зоопарк сложно т.к. данные лежат в двух местах и обязательно что-то где-то пролезет. Оптимально при единственном артикуле, сам артикул не трогать никак и всё скидывать на товар. Принять это как закон и выполнять. Начнется появление артикулов, тогда и разницу с товаром отражать в артикуле, но не всё подряд, а строго только то, что отличается от товара. Эта разница сформирует вторую строку данных.

      Поэтому и сделано так, что как только возникает хар-ка чисто для артикула, то тут же создается variant для product.

      Автоматизировать это все можно, но для этого вам надо обнулить хар-ки артикулов массово через импорт и заполнить правильными данными хар-ки товара. Придется поколдовать с таблицей и импортом не один раз наверное, т.к. такие вещи лучше делать пошагово.

  • 1
    Дмитрий К 28 октября 2022 18:10 #

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

    И непонятно когда часть характеристик попала на артикул , специально ее туда не вносили -  импортировали файлом. Тут видимо зависимость от того что использовать для идентификации товаров - наименование или артикул - и по этому признаку видимо характеристика приписывается к артикулу или товару. Нужно будет проверить . И сразу вопрос - если использовать идентификацию по  наименованию и артикулу одновременно  то куда запишутся характеристики ? Только опытным путем наверное можно выяснить.  

  • 1
    Vaslav24 12 декабря 2022 14:42 #

    Аналогичная ситуация. У множества товаров появились "variant", хотя всегда было без артикулов. При внимательном рассмотрении, такое появилось у тех товаров, у которых заполнен GTIN. Конечно приятно было почитать обсуждение проблемы двумя умными людьми, но что в итоге то? Как массово убрать gtin из значения для артикула (куда оно видимо пишется по умолчанию) в значение для товара? В старом интерфейсе я даже возможности такой не нашел, даже увидеть нельзя, не то что исправить! Но отлично видно в новом интерфейсе — прямо в таблице товаров, даже понятие новое для этого введено, выглядит как "1 модификация в 1 артикуле". И легко исправляется. Поле gtin для модификации очищаешь, оставив значение в gtin товара, потом переключатель "Товар состоит из нескольких артикулов или модификаций" выключаешь и готово! Но только вручную!!! А товаров таких много. Как это исправить массово?

  • 1
    Vaslav24 13 декабря 2022 10:00 #

    Кроме того, что приходится исправлять вручную, некоторые товары иногда опять превращаются в модификации! В очень редких случаях, закономерности пока не нашел.

    Дмитрий К, вам удалось решить проблему полностью?

    • +2
      Дмитрий К Дмитрий К 20 декабря 2022 12:48 #

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

      Логика должна быть такая 

      
      Вот в справке по импорту
      
      Если в столбце «Тип строки» указано значение «product_variant», то:
      свойства товара сохраняются в товар;
      свойства артикула сохраняются в артикул товара;
      значения характеристик сохраняются в артикул товара.
      
      

      На что ответили 

      Нам удалось воспроизвести ошибку, она связана с логикой нового раздела "Товары".  в новой версии импортировать новый товар с product_variant так, чтобы характеристики оказались заполненными в свойствах модификации, а не в свойствах товара, не удается. Это ошибка, о ней сообщили разработчикам, чтобы они либо привели логику импорта к той, что описана в инструкции, либо исправили саму инструкцию. Если понадобится уточнение, мы сами ещё раз вам напишем. Или просто выпустим обновление с исправлением.

      и позже 

      Если вам не нужно потом импортировать экспортированный файл, то для экспорта можно
       выбрать настройку "Представление товаров в строках файла: артикул как товар". 
      В этом случае описанный здесь товар экспортируется в виде 1 строки с product_variant.

      но мы экспортируем как раз для того чтобы после обработки снова импортировать .


      Очистить все характеристики артикула как то нужно и залить их снова в товар , тогда проблемы не будет. Как массово это сделать - это другой вопрос . Пока не пробовал. Планирую позже заняться вплотную. 

  • 2
    Дмитрий К 9 января 2023 19:47 #

    Как мы решили вопрос: 

    выгрузили все товары, отфильтровали эти двойные строки,

    потом из артикула копируем все его характеристики в строку товара 

    после этого очищаем содержимое ячеек у характеристик артикула. 

    Готовый файл импортируем в базу. При импорте выбираем идентификацию по наименованию и артикулу.

    получаем в итоге то что хотели ) 

    посмотрим будет ли в дальнейшем новые разделения. 

    *на скриншотах часть не нужных для этого процесса столбцов удалена после выгрузки , чтобы картинка получилась читаемая 

    картинки скриншотов куда то пропали ((

    • +1
      Гречаный Антон Гречаный Антон 18 ноября 2023 17:10 #

      Круто!  Я платил за плагин - Удаление дублей артикулов. То все артикул сливались в один . Но потом пришлось цены переделывать. 

  • 2
    Дмитрий К 9 января 2023 20:06 #

    Все характеристики в товаре , в таком виде импортируем 

    Получаем после новой выгрузки уже одну строку 

  • -1
    nomoredrugs 20 апреля 2023 13:21 #

    Таблица shop_product_params

    Параметр multiple_sku за это отвечает

    Установите все их в 0

    • +1
      Кумуков Алан Кумуков Алан 22 апреля 2023 15:07 #

      В таблице shop_product_params нет параметров:

      | shop_product_params | CREATE TABLE `shop_product_params` (  `product_id` int(11) NOT NULL,  `name` varchar(255) NOT NULL,  `value` text NOT NULL,  PRIMARY KEY (`product_id`,`name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 |

      Кроме того, она пустая..

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите