У клиента более 20000 товаров с 7 сайтами. Раньше у них было 4 веб-сайта, и большинство продуктов связано с 4 веб-сайтами. Каков наилучший и самый быстрый способ перебирать продукты и обновлять продукты для включения новых веб-сайтов.
У меня есть следующий код, однако он слишком медленный:
$ productCollection = Mage :: getModel ('catalog / product') -> getCollection () -> addFieldToFilter ('sku', array ('like' => '02% ')); foreach ($ productCollection как $ product) { echo $ product-> getSku (); $ Продукт-> setWebsiteIds (массив (1,2,3,4,5,6,7)); пытаться { $ Продукт-> Save (); эхо "- сохранено."; } catch (исключение $ e) { echo '-'. $ e-> getMessage (); } эхо "\ n"; }
Я думал об использовании метода итераторской прогулки, однако я понимаю, что магазин / веб-сайт не совсем атрибут, поэтому он не может быть легко обновлен сам по себе.
Если вы хотите добавить только продукты, которые назначены всем 4 ранее существующим веб-сайтам, используйте это:
Смотрите также: Отфильтруйте товары по сайту, используя AND
Это может быть скрипт установки Magento или одноразовый скрипт PHP (в этом случае добавьте
include 'app/Mage.php';
вверху и удалите его с сервера после использования)источник
Шаг 1: Получить все идентификаторы сайтов / создать массив идентификаторов сайтов
Шаг 2: Получить все идентификаторы продуктов
Шаг 3: Добавьте идентификаторы веб-сайтов ко всем продуктам
Примечание: если вы хотите удалить сайт из продукта. используйте удалить вместо того, чтобы добавить слово
источник
Другое решение, если ваша лень доходит до того, что вы не хотите создавать какие-либо файлы PHP:
Работал на меня.
источник