Showing posts with label Drupal commerce. Show all posts
Showing posts with label Drupal commerce. Show all posts

Monday, July 6, 2015

Programmatically create view mode for product in Drupal Commerce

1. First create the view mode by using the following hook or Entity View Mode module. 

2. Then create the template file commerce-product--product--{view-mode}.tpl.php
3. Inside the template file, you can render what ever you want.
4. Then clear the cache.


Friday, June 26, 2015

Drupal commerce programmatically change the quantity of product in a cart by using product id

Programmatically change the quantity of product in a cart by using product id


function product_alter_quanity($product_id, $quantity, $param) {
  $line_item_id = product_in_cart($product_id); // product_in_cart() function - http://php-developer-informations.blogspot.co.uk/2015/06/drupal-commerce-add-line-item-delete.html
  if ($line_item_id != -1 && $line_item_id != -2) {
    if ($param == 'remove') {
      $product_quantity_in_cart = commerce_line_items_quantity(array($line_item_id));
      if ($quantity >= $product_quantity_in_cart) {
        product_delete_cart($product_id);
      }
      else {
        $line_item = commerce_line_item_load($line_item_id);
        $line_item->quantity = $line_item->quantity - $quantity;
        commerce_line_item_save($line_item);
      }
    }
    elseif ($param == 'add') {
      //$line_item_id = product_in_cart($product_id);
      $line_item = commerce_line_item_load($line_item_id);
      $line_item->quantity = $line_item->quantity + $quantity;
      commerce_line_item_save($line_item);
    }
  }
  else {
    return -1;
  }
}

Drupal commerce programmatically delete a line item from the cart by using product id

Programmatically delete a line item from the cart by using product id

function product_delete_cart($product_ids) {
  if (!is_array($product_ids)) {
    $line_item_id = product_in_cart($product_ids); // product_in_cart() function - http://php-developer-informations.blogspot.co.uk/2015/06/drupal-commerce-add-line-item-delete.html
    if ($line_item_id != -1 && $line_item_id != -2) {
      global $user;
      $current_order = commerce_cart_order_load($user->uid);
      commerce_cart_order_product_line_item_delete($current_order, $line_item_id);
    } else
      return -1;
  }
  else {
    $line_item_ids = product_in_cart($product_ids);
    if ($line_item_ids != -1 && $line_item_ids != -2) {
      global $user;
      $current_order = commerce_cart_order_load($user->uid);
      foreach ($line_item_ids as $line_item_id) {
        commerce_cart_order_product_line_item_delete($current_order, $line_item_id);
      }
    }
    else {
      return -1;
    }
  }
}

Drupal Commerce find the line item id by using product id

Programmatically find the line item id by using product id


function product_in_cart($product_id) {
  if (!is_array($product_id)) {
    global $user;
    $current_order = commerce_cart_order_load($user->uid);
    if (count($current_order->commerce_line_items) > 0) {
      $line_items = $current_order->commerce_line_items;
      foreach ($line_items['und'] as $key => $value) {
        $line_item = commerce_line_item_load($value['line_item_id']);
        $products = $line_item->commerce_product['und'];
        foreach ($products as $product_key => $product_value) {
          if ($product_id == $product_value['product_id']) {
            return $value['line_item_id'];
          }
        }
      }
      return -1;
    } else
      return -2;
  }
  else {
    global $user;
    $current_order = commerce_cart_order_load($user->uid);
    if (count($current_order->commerce_line_items) > 0) {
      $line_items = $current_order->commerce_line_items;
      foreach ($line_items['und'] as $key => $value) {
        $line_item = commerce_line_item_load($value['line_item_id']);
        $products = $line_item->commerce_product['und'][0]['product_id'];
        foreach ($product_id as $id) {
          if ($id == $products) {
            $line_item_ids[] = $value['line_item_id'];
          }
        }
      } if (isset($line_item_ids) >= 1) {
        return $line_item_ids;
      }
      else {
        return -1;
      }
    } else
      return -2;
  }
}

Drupal Commerce add line item

Function for programmatically add a product as line item by using product id

function product_cart_add($product_id, $quantity, $uid = NULL) {
  $line_item = NULL;
  if ($uid == NULL) {
    global $user;
    $uid = $user->uid;
  }
  if ($product = commerce_product_load($product_id)) {
    $line_item = commerce_product_line_item_new($product, $quantity);
    $line_item = commerce_cart_product_add($uid, $line_item);
  }
  return $line_item;
}