public function add_brand_purchase_shipping(Model_Brand_Purchase $brand_purchase) { if ($brand_purchase->shipping_country()) { if (!$brand_purchase->shipping) { $brand_purchase->build('shipping'); } else { $brand_purchase->shipping = $brand_purchase->shipping; } foreach ($brand_purchase->items(array('shippable' => TRUE)) as $purchase_item) { if (!$purchase_item->shipping_item) { $brand_purchase->shipping->build_item_from($purchase_item); } else { if (!$purchase_item->shipping_item->shipping_group) { $purchase_item->shipping_item->update_address($brand_purchase->shipping); } } } } }