web-dev-qa-db-fra.com

Comment ajouter de l'article au panier Programmatiquement, avec des attributs à Ubercart

Je sais donc comment allusion à ajouter un élément au panier avec PHP comme ceci;

$product_nid = 2;
$some_data = NULL;

  uc_cart_empty(uc_cart_get_id());

  $data = serialize($some_data);

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

mais je suis incertain comment ajouter un produit avec un certain attribut/option telle que si j'ai le produit "A" avec des options "1" et "2" J'espérais pouvoir avoir un peu d'aide. Ceci est pour Drupal 7, Ubercart 3.

1
chris

Prenant la réponse de Chris une mise en place en format de réponse pour la lisibilité.

En figuré, peut-être que cela sera utile pour quelqu'un :)

$product_nid = 2;  
$some_data = array('attributes' => array( 
                   '1' => '1', 
                  ),
             );
uc_cart_empty(uc_cart_get_id());
$data = serialize($some_data);
uc_cart_add_item($product_nid, 
                 $qty = 1,
                 $data,
                 $cid = NULL,
                 $msg = TRUE,
                 $check_redirect = TRUE,
                 $rebuild = TRUE);
2
Robbert

j'utilise Ubercart In drupal 8

$ session =\drupal :: service (session ');

$ cart_manager =\drupal :: service ('uc_cart.manager');

$ anonymous_cart = $ cart_manager-> seid ($ session-> obtenir ('uc_cart_id'));

$ SQL = "Supprimer de uc_cart_products où cart_id = '". $ anonymous_cart. "";

db_query ($ SQL);

$ résultat = db_insert ('uc_cart_products')

        ->fields(array(
        'cart_id' => $anonymous_cart,
        'nid' => $nid,
        'qty' => $quantity,
        'changed' => strtotime(date('Y-m-d')),
        'data' => ($data),
        ))
        ->execute();
0
Ravinder Singh