function uc_product_entity_bundle_field_info in Ubercart 8.4
Implements hook_entity_bundle_field_info().
File
- uc_product/
uc_product.module, line 439 - The product module for Ubercart.
Code
function uc_product_entity_bundle_field_info(EntityTypeInterface $entity_type, $bundle, array $base_field_definitions) {
if ($entity_type
->id() == 'node' && uc_product_is_product($bundle)) {
$fields['model'] = BaseFieldDefinition::create('string')
->setLabel(t('SKU'))
->setDescription(t('Product SKU/model.'))
->setRequired(TRUE)
->setCustomStorage(TRUE)
->setDefaultValue('')
->setSetting('max_length', 40)
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => 1,
'settings' => [
'size' => 32,
],
])
->setDisplayConfigurable('form', TRUE)
->setDisplayOptions('view', [
'type' => 'string',
'label' => 'inline',
'weight' => 1,
])
->setDisplayConfigurable('view', TRUE);
$fields['cost'] = BaseFieldDefinition::create('uc_price')
->setLabel(t('Cost'))
->setDescription(t("Your store's cost."))
->setRequired(TRUE)
->setCustomStorage(TRUE)
->setDefaultValue('0.00')
->setSetting('min', 0)
->setDisplayOptions('form', [
'region' => 'hidden',
])
->setDisplayConfigurable('form', TRUE)
->setDisplayOptions('view', [
'region' => 'hidden',
])
->setDisplayConfigurable('view', TRUE);
$fields['price'] = BaseFieldDefinition::create('uc_price')
->setLabel(t('Price'))
->setDescription(t('Customer purchase price.'))
->setRequired(TRUE)
->setCustomStorage(TRUE)
->setDefaultValue('0.00')
->setSetting('min', 0)
->setDisplayOptions('form', [
'type' => 'uc_price',
'weight' => 2,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayOptions('view', [
'type' => 'uc_price',
'label' => 'inline',
'weight' => 2,
])
->setDisplayConfigurable('view', TRUE);
$fields['shippable'] = BaseFieldDefinition::create('boolean')
->setLabel(t('Shippable'))
->setCustomStorage(TRUE)
->setDefaultValue(NodeType::load($bundle)
->getThirdPartySetting('uc_product', 'shippable', TRUE))
->setSetting('on_label', t('Product is shippable'))
->setSetting('off_label', t('Product is not shippable'))
->setDisplayOptions('form', [
'type' => 'boolean_checkbox',
'settings' => [
'display_label' => TRUE,
],
'weight' => 3,
])
->setDisplayConfigurable('form', TRUE);
$fields['weight'] = BaseFieldDefinition::create('uc_weight')
->setLabel(t('Weight'))
->setRequired(TRUE)
->setCustomStorage(TRUE)
->setDefaultValue([
'value' => 0,
'units' => \Drupal::config('uc_store.settings')
->get('weight.units'),
])
->setDisplayOptions('form', [
'type' => 'uc_weight',
'weight' => 4,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayOptions('view', [
'type' => 'uc_weight',
'label' => 'inline',
'weight' => 4,
])
->setDisplayConfigurable('view', TRUE);
$fields['dimensions'] = BaseFieldDefinition::create('uc_dimensions')
->setLabel(t('Dimensions'))
->setRequired(TRUE)
->setCustomStorage(TRUE)
->setDefaultValue([
'length' => 0,
'width' => 0,
'height' => 0,
'units' => \Drupal::config('uc_store.settings')
->get('length.units'),
])
->setDisplayOptions('form', [
'type' => 'uc_dimensions',
'weight' => 5,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayOptions('view', [
'type' => 'uc_dimensions',
'label' => 'inline',
'weight' => 5,
])
->setDisplayConfigurable('view', TRUE);
$fields['pkg_qty'] = BaseFieldDefinition::create('integer')
->setLabel(t('Maximum package quantity'))
->setDescription(t('At most, how many of these items can fit in your largest box? Orders that exceed this value will be split into multiple packages when retrieving shipping quotes.'))
->setRequired(TRUE)
->setCustomStorage(TRUE)
->setDefaultValue('1')
->setDisplayOptions('form', [
'region' => 'hidden',
])
->setDisplayConfigurable('form', TRUE);
$fields['default_qty'] = BaseFieldDefinition::create('integer')
->setLabel(t('Default quantity to add to cart'))
->setDescription(t('Use 0 to disable the quantity field next to the add to cart button.'))
->setRequired(TRUE)
->setCustomStorage(TRUE)
->setDefaultValue('1')
->setDisplayOptions('form', [
'region' => 'hidden',
])
->setDisplayConfigurable('form', TRUE);
return $fields;
}
}