Ubercartfunktion löscht Nodereferenz
am 30.03.2010 - 10:59 Uhr in
Ich habe folgendes Problem.
Wenn ich die Ubercartfunktion uc_cart_add_item anwende, wird in einer Referenznode A die Referenz zu dem Produkt gelöscht, dass ich gerade durch die Funktion dem Einkaufwagen hinzugefügt habe und ich verstehe nicht warum.
Ein paar mehr Details:
Wenn ein Mitglied die Node x vom CCK-Content-Type A erstellt, wird per Rules Modul neuer Inhalt und zwar eine Produktnode y, nennen wir es Typ B erstellt.
Ebenfalls durch Rules werden in beiden Nodes Referenzen zu einander erstellt. Das klappt auch alles wunderbar, doch sobald ich ebenfalls per Rules die erstellte
Produktnode dem Einkaufswagen hinzufüge, ist die Referenz in Node x auf einmal futsch.
Ich habe bereits versucht, die Referenz einfach wieder herzustellen in dem ich Node x über das Referenzfeld in der Produktnode y wieder lade, aber auch das funktioniert nicht und im Debugmode von Rules bekomme ich nur die Nachricht: unable to load argument 0.
Es scheint also, als wäre da etwas verloren gegangen, oder was mache ich falsch?
Ich habe das Zufügen der Produktnode bisher mit den folgenden Snippets versucht, die beide erfolgreich die Produktnode zum Warenkorb hinzufügen.
<?php
$nid = $node->nid;
$qty = 1;
$nid = $node->nid;
uc_cart_add_item($nid, $qty);
uc_cart_get_contents($cart_id, 'rebuild');
drupal_set_message('Your cart has been updated!');
?>
oder
<?php
$nid = $node->nid;
$form_state = array(
'values' => array(
'nid' => $nid,
'qty' => 1,
),
);
$node = node_load($nid);
drupal_execute("uc_product_add_to_cart_form", $form_state, $node);
?>
Was mir ausserdem auffällt ist, dass Rules, sobald ich die Snippets dort anwende, keinen anderen Code mehr ausführt. Sobald ich die Funktionen lösche,
arbeitet Rules wieder wie erwartet.
Ich bin dankbar für jeden Hinweis, denn ich sitze da nun seit einigen Tage immer wieder mal dran und komme nicht weiter.
- Anmelden oder Registrieren um Kommentare zu schreiben
Gelöst
am 31.03.2010 - 12:23 Uhr
So nach nun zwei Wochen, habe ich das Problem endlich gelöst. Es lag offensichtlich an einer Kombi an zusätzlich benötigten "Save Content" Befehlen und einigen Konflikten bei der Erstellung programmatischer Nodes. Zu letzerem Thema gibt es die deutlich besten Hinweise
hier.