25.04.2010 10:36
Magento DataFlow намеренно спроектирован сохранять товары, отсутствующие в новом прайс-листе.
Таким образом разработчики приучают администраторов магазинов не перезаписывать весь товарный каталог, а вместо этого предлагают подумать над импортом только изменившейся информации.
Т.к. Magento предназначена для магазинов больших или с перспективой стать большими, то чем раньше администратор научится экономному импорту - тем лучше.
В простом случае алгоритм следующий:
1) Напишите скрипт, который будет сравнивать 2 ваших прайс-листа и выдавать их разницу:
1.1) список товаров, присутствующих в первом, но отсутствующих во втором
1.2) список товаров, присутствующих есть во втором, но отсутствует в первом
1.3) список товаров, присутствующих в обоих, но атрибуты которых в первом и втором не совпадают
Такой скрипт никак не связан с Magento: он работает с файлами, принятыми у ваших поставшиков для обмена данными: Excel, CSV, XML и т.п.
2) У товаров пункта 1.1 поставьте флаг Out Of Stock (для массовой простановке этого флага можно загрузить через DataFlow файл с двумя колонками: идентификатор товара и флаг Out Of Stock).
3) Товары пункта 1.2 загрузите целиком (на практике их вряд ли больше 1-5% от общего числа товаров)
4) Товары пункта 1.3 загрузите с актуальными значениями атрибутов
5) Обновите количество товара на складе для каждой товарной позиции.