Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Tax Class aller Produkte ändern
 
bernie
Jr. Member
 
Total Posts:  19
Joined:  2007-09-02
 

Hallo,

Ich muss für ca. 500 Produkte die Tax Gruppe ändern. Nun wollte ich das direkt über phpmyadmin (export, bearbeiten, impor) machen. Aber leider finde ich die Table nicht, wo die Tax Gruppe dem Produkt zugeordnet ist. Bin ich blind?

Wäre sehr froh, wenn mir da jemand helfen könnte.

Vielen Dank.

Gruss
Bernie

 
Magento Community Magento Community
Magento Community
Magento Community
 
Dscho
Sr. Member
 
Avatar
Total Posts:  236
Joined:  2007-10-05
Singen, Germany
 

Hi,

das kannst Du über das Backend recht einfach machen.

1. Katalog|Produkte verwalten
2. View auf Maximum stellen
3. Klicke auf Alle wählen
3. Aktion Attribute aktualisieren auswählen und Absenden klicken
4. Unter Attribute Steuerrklasse ändern und speichern

Das ganze für alle Seiten bis 500 Produkte geändert sind.

Das wars schon.

Alternativ: Ãœber die api via PHP-Script. http://www.magentocommerce.com/wiki/doc/webservices-api/api/catalog_product

Gruß
Dscho

 
Magento Community Magento Community
Magento Community
Magento Community
 
bernie
Jr. Member
 
Total Posts:  19
Joined:  2007-09-02
 

Hey, sensationell. Vielen Dank!

 
Magento Community Magento Community
Magento Community
Magento Community
 
cMichi
Jr. Member
 
Total Posts:  4
Joined:  2009-01-27
Ulm, Germany
 

Hallo zusammen,

wir haben das ganze gerade per API-Anbindung realisiert,
bei der “Attribute aktualisieren"-Funktion hat der Server schlappgemacht.

Es waren 1400 Produkte, bei denen die Steuerklasse geändert werden musste,
das Skript lief mehrere Stunden durch.

Hier der Code-Snippet:

This script will change the Tax-Class of ALL your products in the $storeId!!<br />
Be careful to use!<br /><br />

<
pre>
<?php 
$host 
'myShop.de';
$proxy = new SoapClient('http://'.$host.'/index.php/api/soap/?wsdl=1');
 
// Can be added in Magento-Admin -> Web Services
$apiUser '....';
$apiKey  '....';

// the id of the store, which products you want to update
$storeId 1;

// the new TaxId, which you want to assign to ALL products
$newTaxId 9;

try 
{

  $sessionId 
$proxy->login($apiUser$apiKey);
  
$productList $proxy->call($sessionId'product.list', array());

  foreach (
$productList as $product):
    
$productInfo $proxy->call($sessionId'product.info', array($product['sku']$storeId));
      
print_r($productInfo);

    
// just to be sure: check if the product belongs to the store which i want to update
    
if (in_array($storeId$productInfo['websites']))
        
$proxy->call($sessionId'product.update', array($product['sku'], array('tax_class_id' => $newTaxId), $storeId));
        
    echo 
'<br /><br /><hr /><br /><br />';
  endforeach;

catch (Exception $e{
  
echo "==> Error: ".$e->getMessage();
  exit();
}
?>
</pre>
 
Magento Community Magento Community
Magento Community
Magento Community
 
ds_1984
Mentor
 
Avatar
Total Posts:  3116
Joined:  2008-12-09
Potsdam, Germany
 

Hi, mal so ein allgemeiner Tipp wenn der Server schlapp macht & es um Datenbankbindung geht.
Refresh der Seite dann wird das Script fortgesetzt wo er zuvor schlapp gemacht hat, etwa bei Artikel
1.127 - im 2.Rutsch sollte er es schaffen.  LOL

LG - Daniel

 
Magento Community Magento Community
Magento Community
Magento Community
 
nickweisser
Sr. Member
 
Avatar
Total Posts:  218
Joined:  2007-09-03
Zurich, Switzerland
 

Ich muss gerade auch einen Shop auf Mehrwertsteuer umstellen und scheitere bereits beim Aktualisieren von 20 Produkten gleichzeitig via Magento Admin auf einem Nginx Server mit 60 Sekunden Timeout.

Wie habt ihr das bei euch gelöst?

 
Magento Community Magento Community
Magento Community
Magento Community
 
cMichi
Jr. Member
 
Total Posts:  4
Joined:  2009-01-27
Ulm, Germany
 

Am Besten wirst du fahren, wenn du das wie in dem Skript oben machst - sprich Magento-API, SOAP & PHP.
Wir hatten auch einige Probleme mit dem Timeout des Servers, da es sich um einen Managed Server handelte hatten wir darauf auch keinen Einfluss.

Dein Vorredner hat zwar Recht, wenn er sagt, dass du Aktionen im Adminbereich durch Reload einfach fortführen kannst.
Bei Timeouts ist es aber - gerade bei aufwändigen Skripten - nicht so einfach.
Wenn es bei komplexen Aktionen oft zu Timeouts kommt ist es einfacher kurz ein Skript zu schreiben und das über Nacht laufen zu lassen,
als einen Mitarbeiter 3 Stunden lang eine Seite reloaden zu lassen.

 
Magento Community Magento Community
Magento Community
Magento Community
 
nickweisser
Sr. Member
 
Avatar
Total Posts:  218
Joined:  2007-09-03
Zurich, Switzerland
 

Danke für das Feedback! Ich habe das Skript mit angepassten Parametern durchlaufen lassen als ich realisierte, dass der Kunde keine SKUs erfasst hat. Es wurde deshalb nur ein einziges Produkt aktualisiert rasberry

 
Magento Community Magento Community
Magento Community
Magento Community
 
nickweisser
Sr. Member
 
Avatar
Total Posts:  218
Joined:  2007-09-03
Zurich, Switzerland
 

I did a small change to the product.update line to make it use the product_id instead of the SKU which seems to do the trick:

This script will change the Tax-Class of ALL your products in the $storeId!!<br />
Be careful to use!<br /><br />

<
pre>
<?php 
$host 
'me.com';
$proxy = new SoapClient('http://'.$host.'/index.php/api/soap/?wsdl=1');
 
// Can be added in Magento-Admin -> Web Services
$apiUser '***';
$apiKey  '***';

// the id of the store, which products you want to update
$storeId 0;

// the new TaxId, which you want to assign to ALL products
$newTaxId 2;

try 
{

  $sessionId 
$proxy->login($apiUser$apiKey);
  
$productList $proxy->call($sessionId'product.list', array());

  foreach (
$productList as $product):
    
$productInfo $proxy->call($sessionId'product.info', array($product['product_id']$storeId));
      
print_r($productInfo);

    
// just to be sure: check if the product belongs to the store which i want to update
    
if (in_array($storeId$productInfo['websites']))
        
$proxy->call($sessionId'product.update', array($product['product_id'], array('tax_class_id' => $newTaxId), $storeId));
        
    echo 
'<br /><br /><hr /><br /><br />';
  endforeach;

catch (Exception $e{
  
echo "==> Error: ".$e->getMessage();
  exit();
}
?>
</pre>
 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top