Codeschnipsel: Beziehungen zwischen Simple und Configurable Products

Bei der Arbeit mit Produkten kann es passieren, dass man zu einem Simple-Product wissen möchte, ob es Teil eine Configurable Products ist. Auch der Weg umgekehrt kann vorkommen. Ausgehend vom Configurable Product sollen die Simple Products ermittelt werden.

Teil 1: Configurable Product ermitteln

$sku = "A1234";
$product = Mage::getModel('catalog/product');
$id = $product->getIdBySku($sku);
$product->load($id);
$parentProductIds = $product->loadParentProductIds()->getParentProductIds();

var_dump($parentProductIds);

array
  0 => string '142' (length=3)
  1 => string '143' (length=3)

Somit hat man an dieser Stelle die Info, das das Simple Product Teil eines Configurables ist. Umgekehrt kann es z.B. auch sinnvoll sein zu schauen, ob das Configurable Product Simple Products hat.

Teil 2: Simple Products ermitteln

$sku = "A1234";
$product = Mage::getModel('catalog/product');
$id = $product->getIdBySku($sku);
$product->load($id);
$childProducts = Mage::getModel('catalog/product_type_configurable')->getUsedProducts(null, $product);

$activeChildProducts = false;
foreach ($childProducts as $child) {
    $sku = $child->getSku();
    $status = $child->getStatus();
    if ($child->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED) {
        $activeChildProducts = true;
        break;
    }
}
if (!$activeChildProducts) {
    $product->setStatus(Mage_Catalog_Model_Product_Status::STATUS_DISABLED);
}
$product->save();

In diesem Beispiel werden alle Simple-Products eines Configurable Products ermitteln und per Schleife geprüft, ob diese noch den Status „enabled“ besitzen. Falls keines dieser Produkt aktiv ist, wird auch das Hauptprodukt auf „disabled“ gesetzt.

Tags: ,

3 Antworten zu “Codeschnipsel: Beziehungen zwischen Simple und Configurable Products”

  1. Tobias Vogt 25. November 2010 at 14:45 #

    Ein Doppelpost? http://www.webguys.de/magento/codeschnipsel-von-simple-zum-configurable-product/

    Aber wir waren einen Tag schneller – dafür ist dein Beitrag ausführlicher. Dennoch ein cooler Zufall 😀

  2. Ralf Siepker 25. November 2010 at 14:52 #

    Dein Post war meine Inspiration, tobi 🙂 Das ist ein Auszug aus einem Script, dass schon seit längerem fertig ist und jede Menge Simple/Configurable Products ein- und ausschaltet. Das ganze dann bei 10.000 Produkten in vier StoreViews. 🙂

  3. Tobias Vogt 25. November 2010 at 23:14 #

    Oh das freut mich 🙂 Ich bin doch gerne eine Muse 😀

Kommentar schreiben

You must be logged in to post a comment.