Magento: массовое изменение идентификатора магазина товаров - PullRequest
4 голосов
/ 20 декабря 2011

Я только что импортировал ~ 800 товаров в Magento, прежде чем понял, что для store_id установлено значение 0, когда это должно было быть 1.

Кто-нибудь знает простой способ обновить это? Я попытался изменить store_id на 1 в электронной таблице и импортировать его снова, чтобы обновить их, но это не сработало.

Я нашел этот SQL на http://www.magentocommerce.com/boards/viewthread/1798/, но я получаю синтаксические ошибки и неизвестные ошибки столбцов, так что я не пошел дальше с ним.

REPLACE INTO catalog_product_store (store_id, product_id) SELECT 1,entity_id from catalog_product_entity
update catalog_category_entity set store_id = 1 where store_id = 0;
update catalog_product_entity set store_id = 1 where store_id = 0;
update catalog_product_entity_datetime set store_id = 1 where store_id = 0;
update catalog_product_entity_decimal set store_id = 1 where store_id = 0;
update catalog_product_entity_gallery set store_id = 1 where store_id = 0;
update catalog_product_entity_int set store_id = 1 where store_id = 0;
update catalog_product_entity_text set store_id = 1 where store_id = 0;
update catalog_product_entity_tier_price set store_id = 1 where store_id = 0;
update catalog_product_entity_varchar set store_id = 1 where store_id = 0;

1 Ответ

3 голосов
/ 21 декабря 2011

Хранилище с идентификатором 0 является хранилищем администратора - обычно этот параметр задается при выполнении пользовательского импорта.Это не проблема, если вы не работаете с несколькими магазинами.

Самый быстрый способ обновить ваши продукты - перейти в меню «Каталог» -> «Управление продуктами», выбрать все продукты, а затем выбрать «Обновить статус» и отправить.,Затем вы можете назначить ассоциацию веб-сайтов на вкладке «Веб-сайты» в появившемся меню.

Массовое редактирование всех продуктов: Product Bulk Edit

Чтобы сделать это с кодом, вместо этого вы захотите выполнить циклКоллекция продуктов и установить там веб-сайт или идентификатор магазина.Пример:

$products = Mage::getModel('catalog/product')->getCollection();

foreach( $products as $product) {
    $product->setStoreId($storeId);
    try {
        $product->save();
    } catch(Exception $e) {
        echo $e->getMessage();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...