it-swarm-es.com

¿Cómo agrego un producto al carrito mediante programación en Ubercart?

Estoy creando una sección de mi sitio donde los usuarios deben comprar nodos individuales de un determinado tipo de contenido. En un esfuerzo por mejorar la usabilidad, permito al usuario crear el nodo sin pagar, pero luego lo guardo como "No publicado" para que aún no sea visible en el sitio. Luego, una vez que el usuario paga, publicaremos su nodo. Por lo tanto, cada vez que un usuario crea un nodo de un tipo particular, debe agregar un Producto (que representa el derecho de publicar ese nodo en particular) al Carrito del usuario.

Sé que puedo implementar hook_nodeapi() para enganchar en el evento de creación del nodo, pero ¿cómo agrego el producto a su carrito?

5
Chaulky

¿El nodo que crean los usuarios es un nodo de tipo de producto válido? En cualquier caso, puede probar esto: 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)

Aquí $ nid = nid del producto, $ cid = identificación del carrito (también identificación del usuario) - mire http://api.lullabot.com/uc_cart_get_id

Espero que esto ayude.

9
Dipen

Puede usar el siguiente código, donde $ nid es su ID de nodo de producto:

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

Para cualquiera que venga a esto ... el comentario de bsenftner es incorrecto. Nodecheckout permite a los clientes crear un nodo antes de pagar.

"Por lo tanto, cada vez que un usuario crea un nodo de un tipo particular, debe agregar un Producto (que representa el derecho de publicar ese nodo en particular) al Carrito del usuario".

... es exactamente lo que hace Nodecheckout.

Tengo un sistema de anuncios clasificados en funcionamiento por el cual el usuario crea su anuncio. Al guardar, Nodecheckout agrega a su carrito un nodo (producto) llamado "Anuncio clasificado - 6 meses". Pagar por este producto publica su nodo.

Incluso los usuarios anónimos pueden crear un anuncio y luego crear su cuenta como parte del proceso de pago.

0
griz