В Ubercart для 8 Друпала, есть хук.
<?php
function hook_uc_add_to_cart($nid, $qty, $data) {
if ($qty > 1) {
$result[] = array(
'success' => FALSE,
'message' => t('Sorry, you can only add one of those at a time.'),
);
}
return $result;
}
?>
А как вытащить переменную $qty для этого товара из корзины.
Если она больше требуемого числа, то более не добавлять товар в корзину.
Когда я уже в корзине есть такое решение:
<?php
function mymodul_form_alter(&$form, \Drupal\Core\Form\FormStateInterface &$form_state, $form_id) {
if ($form_id == 'uc_cart_view_form') {
foreach ($form['items'] as $k => $item) {
if (is_array($item) && isset($item['qty'])) {
$form['items'][$k]['qty']['#type'] = 'value';
$form['items'][$k]['qty']['#value'] = 1;
}
}
unset($form['items']['#columns']['qty']);
}
}
?>