示例#1
0
 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;
 }
示例#2
0
 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();
 }
示例#3
0
 public function getTiresCategoryId()
 {
     $ariActivityId = Vikont_Fitment_Helper_Data::getTmsActivity($this->getTmsActivityId(), 'ari_activity');
     return Mage::helper('fitment')->getTiresCategoryId($ariActivityId);
 }
示例#4
0
 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;
 }