4

I want to get:

  • Order ID for the current user;
  • All product variation ID from the current users cart;
  • Prices for product variations;
  • Images;
  • Titles;

I have the following:

$store_id = 1;
    $order_type = 'default';
    $entity_manager = \Drupal::entityManager();
    $cart_manager = \Drupal::service('commerce_cart.cart_manager');
    $cart_provider = \Drupal::service('commerce_cart.cart_provider');
    $store = $entity_manager->getStorage('commerce_store')->load($store_id);

    $cart = $cart_provider->getCart($order_type, $store);

    if(isset($cart)){
        $itemNum = count($cart->getItems());
        ($itemNum > 0) ? $variables['items_in_cart'] = $itemNum : '';
    }

        $cart .= 'Subtotal: '.$cart->getSubtotalPrice();
        $cart .= '<br>Total price: '.$cart->getTotalPrice();
        $cart .= '<br>Created: '.$cart->getCreatedTime();
        $cart .= '<br>Customer id: '.$cart->getCustomerId();
        $cart .= '<br>Email: '.$cart->getEmail();
        $cart .= '<br>IP address: '.$cart->getIpAddress();
        $cart .= '<br>Item num. in cart: '.$itemNum;
Santo Boldizar
  • 1,255
  • 14
  • 17

1 Answers1

3

You need to load Product store, cart and variation entity, You need to get Product variation ids from loaded product and then extract Order ID for the current user, All product variation ID from the current users cart, Prices for Product variations, Images, Titles.

$product_variation = $event->getEntity();
$current_store = \Drupal::service('commerce_store.current_store');
$store = $current_store->getStore();
$cart_provider = \Drupal::service('commerce_cart.cart_provider');
$cart = $cart_provider->getCart("default", $store);

    foreach ($cart->getItems() as $order_item) {
        $productType = $order_item->getPurchasedEntity()->get('type')[0]->get('target_id')->getValue();
           // ksm("Order Item", $order_item);
           // For getting custom and variation field value.
           //$field_custom_value = $product_variation->get('field_custom_value')[0]->get('target_id')->getValue();
              $order_no = $order_item->get('purchased_entity')[0]->get('target_id')->getValue();
               ksm("Order No", $order_no);
              $order_no_id = $order_item->get('order_item_id')[0]->get('value')->getValue();
               ksm("Order No Id", $order_no_id);

    }