public function edit() { $shippingService = ShippingService::getInstanceByID($this->request->get('id'), true); $spec = $shippingService->getSpecification(); $form = $this->createShippingServiceForm(); $form->setData($shippingService->toArray()); $response = new ActionResponse(); $spec->setFormResponse($response, $form); $response->set('form', $form); $response->set('service', $shippingService->toArray()); $response->set('shippingRates', $shippingService->getRates()->toArray()); $response->set('newRate', array('ShippingService' => $shippingService->toArray())); $response->set('defaultCurrencyCode', $this->application->getDefaultCurrency()->getID()); $response->set('shippingClasses', $this->getSelectOptionsFromSet(ShippingClass::getAllClasses())); return $response; }
/** * List all system currencies * @return ActionResponse */ public function index() { $response = new ActionResponse(); $classesForms = array(); $classes = array(); foreach (ShippingClass::getAllClasses() as $class) { $classes[] = $class->toArray(); $classesForms[] = $this->createClassForm($class); } $response->set("classesForms", $classesForms); $response->set("classes", $classes); $newClass = ShippingClass::getNewInstance(''); $response->set("newClassForm", $this->createClassForm($newClass)); $response->set("newClass", $newClass->toArray()); return $response; }
private function productForm(Product $product) { $productFormData = $product->toArray(); if ($product->isLoaded()) { $product->loadSpecification(); $productFormData = array_merge($productFormData, $product->getSpecification()->getFormData()); if (isset($productFormData['Manufacturer']['name'])) { $productFormData['manufacturer'] = $productFormData['Manufacturer']['name']; } } else { $product->load(ActiveRecord::LOAD_REFERENCES); } $product->loadPricing(); $form = $this->buildForm($product); $pricing = $product->getPricingHandler(); $pricesData = $product->toArray(); $listPrices = $pricing->toArray(ProductPricing::DEFINED, ProductPricing::LIST_PRICE); $pricesData['shippingHiUnit'] = (int) $pricesData['shippingWeight']; $pricesData['shippingLoUnit'] = ($pricesData['shippingWeight'] - $pricesData['shippingHiUnit']) * 1000; if (array_key_exists('defined', $pricesData)) { foreach ($pricesData['calculated'] as $currency => $price) { $pricesData['price_' . $currency] = isset($pricesData['defined'][$currency]) ? $pricesData['defined'][$currency] : ''; $productFormData['price_' . $currency] = $pricesData['price_' . $currency]; } } foreach ($listPrices as $currency => $price) { $pricesData['listPrice_' . $currency] = $price; } $form->setData($productFormData); // status values $status = array(0 => $this->translate('_disabled'), 1 => $this->translate('_enabled')); // product types $types = array(Product::TYPE_TANGIBLE => $this->translate('_tangible'), Product::TYPE_DOWNLOADABLE => $this->translate('_intangible'), Product::TYPE_BUNDLE => $this->translate('_bundle')); // default product type if (!$product->isLoaded()) { $product->type->set(substr($this->config->get('DEFAULT_PRODUCT_TYPE'), -1)); $form->set('type', $product->type->get()); } $response = new ActionResponse(); $product->getSpecification()->setFormResponse($response, $form); $response->set("cat", $product->getCategory()->getID()); $response->set("hideFeedbackMessage", $this->request->get("afterAdding") == 'on'); $response->set("productForm", $form); $response->set("path", $product->getCategory()->getPathNodeArray(true)); $response->set("productTypes", $types); $response->set("productStatuses", $status); $response->set("baseCurrency", $this->application->getDefaultCurrency()->getID()); $response->set("otherCurrencies", $this->application->getCurrencyArray(LiveCart::EXCLUDE_DEFAULT_CURRENCY)); $response->set("shippingClasses", $this->getSelectOptionsFromSet(ShippingClass::getAllClasses())); $response->set("taxClasses", $this->getSelectOptionsFromSet(TaxClass::getAllClasses())); $productData = $product->toArray(); if (empty($productData['ID'])) { $productData['ID'] = 0; } $response->set("product", $productData); return $response; }
private function productForm($isExisting) { ClassLoader::import('application.LiveCartRenderer'); ClassLoader::import('application.model.presentation.CategoryPresentation'); $response = new BlockResponse(); $response->set('themes', array_merge(array(''), LiveCartRenderer::getThemeList())); $form = $this->buildForm($isExisting); // status values $status = array(0 => $this->translate('_disabled'), 1 => $this->translate('_enabled')); // product types $types = array(Product::TYPE_TANGIBLE => $this->translate('_tangible'), Product::TYPE_DOWNLOADABLE => $this->translate('_intangible'), Product::TYPE_BUNDLE => $this->translate('_bundle'), Product::TYPE_RECURRING => $this->translate('_recurring')); //$product->type->set(substr($this->config->get('DEFAULT_PRODUCT_TYPE'), -1)); $response->set("productForm", $form); $response->set("productTypes", $types); $response->set("productStatuses", $status); $response->set("baseCurrency", $this->application->getDefaultCurrency()->getID()); $response->set("otherCurrencies", $this->application->getCurrencyArray(LiveCart::EXCLUDE_DEFAULT_CURRENCY)); $response->set("shippingClasses", $this->getSelectOptionsFromSet(ShippingClass::getAllClasses())); $response->set("taxClasses", $this->getSelectOptionsFromSet(TaxClass::getAllClasses())); // get user groups $f = new ARSelectFilter(); $f->setOrder(new ARFieldHandle('UserGroup', 'name')); $groups[0] = $this->translate('_all_customers'); foreach (ActiveRecordModel::getRecordSetArray('UserGroup', $f) as $group) { $groups[$group['ID']] = $group['name']; } $groups[''] = ''; $response->set('userGroups', $groups); return $response; }