public function getProducts() { $result = array(); try { $tmsActivityId = $this->getTmsActivityId(); $ariActivityId = Vikont_Fitment_Helper_Data::getTmsActivity($tmsActivityId, 'ari_activity'); $ariProductId = $this->getAriProductId(); $fitmentId = $this->getFitmentId(); $fitmentNotes = Mage::helper('fitment/api')->preventErrorReporting()->request('fitmentnotes', array('productID' => $ariProductId, 'fitmentID' => $fitmentId)); if (!$fitmentNotes) { Mage::log(sprintf('Unable to get fitment notes from ARI API: ARI product ID = %d, ARI fitment ID = %d', $ariProductId, $fitmentId)); } $skuInfo = Mage::helper('fitment/api')->request('skuinfo', array('activityID' => $ariActivityId, 'productID' => $ariProductId), array('fitmentID' => $fitmentId)); if (!$skuInfo) { throw new Exception(sprintf('Unable to get SKU info from ARI API: ARI activity ID = %d, ARI product ID = %d, ARI fitment ID = %d', $ariActivityId, $ariProductId, $fitmentId)); } $fitmentItems = array(); foreach ($skuInfo as $item) { $sku = (string) $item['Id']; $fitmentItems[$sku] = $item; } foreach ($fitmentNotes as $item) { $sku = (string) $item['SkuId']; if (isset($fitmentItems[$sku])) { $fitmentItems[$sku]['Applications'] = $item['Applications']; $fitmentItems[$sku]['Note'] = $item['Note']; } } foreach ($fitmentItems as &$item) { if (!isset($item['Applications'])) { $item['Applications'] = array(); $item['Note'] = ''; } } unset($item); $collection = Mage::getResourceModel('catalog/product_collection')->addAttributeToSelect('name')->addFinalPrice()->addFieldToFilter('sku', array('in' => array_keys($fitmentItems))); // put the check in here // so if an SKU hasn't been found in the Mage DB, then report about that $missingItems = $fitmentItems; foreach ($collection as $product) { $sku = $product->getSku(); if (isset($fitmentItems[$sku])) { $result[$sku] = array('item' => $fitmentItems[$sku], 'product' => $product); unset($missingItems[$sku]); } } if (count($missingItems)) { Mage::log('The following SKUs do not exist in Magento, although they were gathered from ARI API: ' . implode(', ', array_keys($missingItems))); } // borrow a code from Vikont_Wholesale_Helper_Email::notifyCustomer to send an email on this // or make a separate log file } catch (Exception $e) { Mage::logException($e); } return $result; }
public function getMakes($filter = array()) { $ariActivityId = Vikont_Fitment_Helper_Data::getTmsActivity($this->getTmsActivityId(), 'ari_activity'); if (count($filter)) { $params = array('subject' => 'makes', 'activity' => $ariActivityId); $params = array_merge($params, $filter); $result = Mage::helper('fitment')->getFitmentValues($params); } else { $result = Mage::helper('fitment')->getMakes($ariActivityId); } return is_array($result) ? $result : array(); }
public function getTiresCategoryId() { $ariActivityId = Vikont_Fitment_Helper_Data::getTmsActivity($this->getTmsActivityId(), 'ari_activity'); return Mage::helper('fitment')->getTiresCategoryId($ariActivityId); }
public function viewProductAction() { //Mage::register('vd', 1); $params = $this->getRequest()->getParams(); $ariActivityId = Vikont_Fitment_Helper_Data::getTmsActivity($params['activity'], 'ari_activity'); $tmsProductIds = Mage::helper('fitment')->detectProductIdInfo($params['product'], $ariActivityId, $params['fitment']); $params['productIds'] = $tmsProductIds; $response = array('params' => $params, 'errorMessage' => ''); try { $response['html'] = $this->getLayout()->createBlock('fitment/fitment_view')->setTmsActivity($params['activity'])->setAriActivity($ariActivityId)->setAriProductId($params['product'])->setFitmentId($params['fitment'])->setTmsProductIds($tmsProductIds)->setVehicle($params['vehicle'])->setElements($params['options']['elements'])->toHtml(); } catch (Exception $e) { $response['errorMessage'] = $e->getMessage(); Mage::logException($e); } echo json_encode($response); die; }