2012-08-29 33 views
1

我在我的magento商店有800個產品,我試圖更改所有SKU,但保留舊的到另一個文本字段。我發現一個腳本可以一次更改所有SKU,但問題在於首先我必須將屬性字段SKU的文本插入新屬性字段「old_sku」。magento update屬性1 =屬性2

我該如何更新old_sku = sku?

感謝您的幫助!

+0

剛剛標籤是否正確?你做這個的目的是什麼? – Gowri

回答

0

如果你想保持它非常簡單那麼解決的辦法是

一)添加「old_sku」 B中的屬性)出口的所有產品 二)改變CSV - 複製&粘貼「SKU」列的值在「old_sku」和 d)進口的所有產品

就是這樣

希望這有助於!

+1

導出所有產品,刪除所有產品,修改CSV,導入..以及爲什麼,只需克隆一個屬性值。 – Kalpesh

+0

無需刪除產品,就好像使用sku一樣,那麼它將在同一sku上更新,上述解決方案用於將sku保存到其他屬性並且不會更改當前的sku值。 –

+0

感謝所有人的幫助,我確實將所有產品導出爲@GreatIndianBrain表示,刪除除sku和old_sku以外的所有列,將所有數據從一列複製到另一列,並創建一個導入配置文件。我檢查了所有產品並更新了old_sku。 – GeorgeV

2

如果你確實有一些PHP的知識,你可以用它來創建一個運行一次的PHP腳本並替換所有的屬性值。例如,我會做到這一點,像這樣:

<?php 
// Magento initialization code; taken from here: http://www.ecomdev.org/2010/06/01/application-bootstrap-in-magento.html 
require 'app/Mage.php'; 

if (!Mage::isInstalled()) { 
    echo "Application is not installed yet, please complete install wizard first."; 
    exit; 
} 

$initializationCode = 'admin'; 
$initializationType = 'store'; 
$scope = 'frontend'; 
Mage::app($initializationCode, $initializationType); 
Mage::getConfig()->init(); 
Mage::getConfig()->loadEventObservers($scope); 
Mage::app()->addEventArea($scope); 

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

    foreach ($products as $product) { 
     $product->setOldSku($product->getSku())->save(); 
    } 
} catch (Exception $e) 
{ 
    echo "Something bad happened: {$e->getMessage()}. Shutting down..."; 
    exit; 
} 
?> 

只需創建,比方說,你的Magento設置(在index.php文件附近)的根目錄中的update_skus.php文件,用我提供的代碼填充它並將瀏覽器導航至該文件(例如http://magento.local/update_skus.php)。您應該將所有產品的old_sku屬性完全設置爲它們的sku屬性的值。

+0

我會嘗試一下。只是關於代碼的一個問題。昨天,我從管理員那裏逐一更新了30款產品的sku和oldsku。只有當字段中沒有值時,纔可以更新oldsku,所以我不會丟失30個產品的數據;謝謝 – GeorgeV

+0

當然!只需在$ product-> setOldSku($ product-> getSku()) - > save();前添加'if(empty($ product-> getOldSku()))'''''''''' – shybovycha

+0

' PHP文件,我得到一個白色的屏幕。此外,我在管理員檢查了一些產品和oldsku不更新,只是空的。 – GeorgeV