it-swarm-eu.dev

Jak přidám produkt do košíku programově v Ubercart?

Vytvářím část mého webu, kde si uživatelé musí zakoupit jednotlivé uzly určitého typu obsahu. Ve snaze zvýšit použitelnost umožňuji uživateli vytvořit uzel bez placení, ale poté jej uložím jako „Nepublikováno“, takže na webu ještě není vidět. Poté, co uživatel zaplatí, zveřejníme jeho uzel. Takže kdykoli uživatel vytvoří uzel určitého typu, měl by přidat produkt (který představuje právo zaúčtovat tento konkrétní uzel) do košíku uživatele.

Vím, že mohu implementovat hook_nodeapi() pro připojení k události vytvoření uzlu, ale jak mohu přidat produkt do svého košíku?

6
Chaulky

Je uzel, který uživatelé vytvářejí, platným uzlem typu produktu? V každém případě to můžete zkusit - http://api.lullabot.com/uc_cart_add_item

uc_cart_add_item($nid, $qty = 1, $data = NULL, $cid = NULL, $msg = TRUE, $check_redirect = TRUE, $rebuild = TRUE)

Zde $ nid = nid produktu, $ cid = id košíku (také id uživatele) - podívejte se na http://api.lullabot.com/uc_cart_get_id

Snad to pomůže.

9
Dipen

Můžete použít následující kód, kde $ nid je id vašeho uzlu produktu:

Drupal 7

  $nid = 4844;
  $form_state = array(
    'values' => array(
      'nid' => $nid,
      'qty' => 1,
    ),
  );
  $node = node_load($nid);
  drupal_form_submit("uc_product_add_to_cart_form", $form_state, $node);

Drupal 6

  $nid = 4844;
  $form_state = array(
    'values' => array(
      'nid' => $nid,
      'qty' => 1,
    ),
  );
  $node = node_load($nid);
  drupal_execute("uc_product_add_to_cart_form", $form_state, $node);
2
kenorb

Pro kohokoli jiného, ​​kdo přijde na tento ... bsenftnerův komentář je nesprávný. Nodecheckout umožňuje zákazníkům vytvořit uzel před zaplacením.

"Takže když uživatel vytvoří uzel určitého typu, měl by do košíku uživatele přidat Produkt (který představuje právo zaúčtovat tento konkrétní uzel)."

... je přesně to, co Nodecheckout dělá.

Mám funkční inzerátový systém, díky kterému si uživatel vytvoří svůj inzerát. Při ukládání Nodecheckout přidá do svého košíku uzel (produkt) s názvem "Klasifikovaný inzerát - 6 měsíců". Platba za tento produkt publikuje jejich uzel.

Inzerát mohou vytvořit i anonymní uživatelé a poté si nechat účet vytvořit jako součást procesu placení.

0
griz