. * */ namespace Vvveb\System\Cart; trait ProductOptionTrait { protected $product_options = []; public function addProductOption($name, $price, $product_optionTypeId) { if ($price && $product_optionTypeId) { $this->product_options[$name] = ['price' => $price, 'product_option_type_id' => $product_optionTypeId]; } } public function removeProductOption($name) { unset($this->product_options[$name]); } public function getProductOptions() { $product_options = []; $products = $this->products; foreach ($products as $key => $product) { if (isset($product['option_value']) && $product['option_value']) { $product_options[$key] = $product['option_value']; } } return $product_options; } function addProductOptionTotal() { $product_options = $this->getProductOptions(); foreach ($product_options as $product_option) { $this->addTotal('product_option.' . $product_option['product_option_rate_id'], $product_option['name'], $product_option['value']); } } }