только комментарий, но так как я читатель долгое время, но никогда не настроить учетную запись и не может оставлять комментарий напрямую без комментариев. Я знаю, что это старый пост, но я только что нашел его и использовал код AlexVegas выше (спасибо!). Работала почти нормально для меня, но в моем случае я все еще хотел, чтобы категории полностью сбросились только на то, что было в моем импорте Magmi, но я хотел, чтобы позиции оставались нетронутыми. Как указано выше, категории добавляются только к существующим, если вы не используете столбец category_reset при импорте, и если вы это сделаете, он также сбрасывает позицию.
Если вы похожи на меня и хотят только положение, чтобы остаться нетронутыми, но позволяют Magmi перезаписать категорий каждый раз, используйте код Алекса выше, но настроить его немного
Где он говорит, чтобы изменить
if (!isset($item["category_reset"]) || $item["category_reset"] == 1) {...}
в
if (isset($item["category_reset"]) && $item["category_reset"] == 1)
{
$sql = "DELETE $ccpt.*
FROM $ccpt
JOIN $cce ON $cce.entity_id=$ccpt.category_id
WHERE product_id=?";
$this->delete($sql, $pid);
$currentPositions = array();
}
не меняйте его. Это так просто. В своем коде он предотвращает сброс категории, если не указан столбец, поэтому оператор if изменяется. Если столбец существует, он также уничтожает массив currentPositions, который хранит текущие позиции в категориях, чтобы те также были сброшены.
Если вы хотите добавить к категориям, если category_reset не находится в процессе импорта, но не хотите, чтобы перезаписать позиционирование, используйте код Алекса, как это выше в своем ответе, но оставить из
$currentPositions = array();
Таким образом, он не будет перезаписывать массив, который хранит позиции в категориях
Это немного сложно. формат позволяет установить положение позиции в категории, используя синтаксис позиции. я могу дифференцировать поведение, если не установлено & продукт существует vs not set & new product (который заставил бы 0). thx для отчетности. – dweeves
Немного больше объяснений на месте. Я импортирую одни и те же продукты в той же категории. Таким образом, они существуют.Я также заполнил позицию перед импортом, например, 1,2,3 и т. Д. После импорта позиция сбрасывается до 0. –
вот что я говорил. для magmi no position = position 0.so при выполнении обновления он перезаписывает позицию. я должен добавить дифференциальный тест или получить быстрое исправление, использовать синтаксис позиционирования в вашем файле импорта. – dweeves