0

I'm looking for a way to set a minimum quantity per product in a Drupal Commerce store.

I found this module which claims to do just this, but I can't get it working and the project seems abandoned:

I found this one which is useful if you need to set a minimum in the order but it doesn't help to set a minimum in products.

Is there any other way to do this?

5
  • A possible solution would be to add a custom validation for the field that checks if the minimum has been set. Example hook to use for a contenttype: mytype_node_form_validate() (and similarly mytype_node_form_submit() for the submit function). Commented Feb 16, 2015 at 18:55
  • Ok, but will this validation works in the cart as well? The quantity can be changed in the cart too.
    – chefnelone
    Commented Feb 17, 2015 at 7:31
  • The cart is also a form right so you can also add the validation there. Correct me if i'm wrong. You could also check the UC code to get inspired on how to add this for commerce (drupal.org/project/uc_product_minmax) Commented Feb 17, 2015 at 7:37
  • Problem is that this validation will be applied to all products. I need to set restriction per product.
    – chefnelone
    Commented Feb 17, 2015 at 8:00
  • You'll probably have to create a field per product that sets the minimum amount of products and then use this dynamically in your validation. Commented Feb 17, 2015 at 8:09

1 Answer 1

0

I believe there's a quiet simple solution using rules. More specific based on the existing commerce_stock by default enabled rules : - Stock: validate add to cart - Stock: validate checkout These rules have both an action "Set the state of the checkout process (called once per item)", preventing add to cart or checkout when the stock conditions are not met.

In order to check line item quantity with on product level defined minimum order quantities, you can clone these rules and alter the rule conditions. There's a way to implement a custom rule condition using hook_rules_condition_info().

Example implementation could be :

/**
* Implements hook_rules_condition_info().
**/
function my_custommodule_rules_condition_info() {
  return array(
    'minimum_product_qty_applied' => array(
      'group' => t('Commerce Line item'),
      'label' => t('Min. product qty selected'),
      'parameter' => array(
        'commerce_line_item' => array(
          'type' => 'commerce_line_item',
          'label' => t('Commerce line item'),
        )
      ),
    ),
  );
}

function minimum_product_qty_applied($line_item) {
    return _check_minimum_product_qty($line_item); //returns TRUE or FALSE
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.