public function __construct($controller, $name = "VariationForm")
{
parent::__construct($controller, $name);
$product = $controller->data();
$farray = array();
$requiredfields = array();
$attributes = $product->VariationAttributeTypes();
foreach ($attributes as $attribute) {
$farray[] = $attribute->getDropDownField("Choose {$attribute->Label} ...", $product->possibleValuesForAttributeType($attribute));
$requiredfields[] = "ProductAttributes[{$attribute->ID}]";
}
$fields = new FieldList($farray);
if (self::$include_json) {
$vararray = array();
if ($vars = $product->Variations()) {
foreach ($vars as $var) {
$vararray[$var->ID] = $var->AttributeValues()->map('ID', 'ID');
}
}
$fields->push(new HiddenField('VariationOptions', 'VariationOptions', json_encode($vararray)));
}
$fields->merge($this->Fields());
$this->setFields($fields);
$requiredfields[] = 'Quantity';
$this->setValidator(new VariationFormValidator($requiredfields));
$this->extend('updateVariationForm');
}