/**
  * Returns the shipping rate for an item
  * Going through this helper enables product-specific flat rates in the future...
  *
  * @param int $shipping_method_id
  * @param int $geozone_id
  * @param int $product_id
  * @return object
  */
 public function getRate($shipping_method_id, $geozone_id, $product_id = '', $use_weight = '0', $weight = '0')
 {
     $this->includeJ2StoreTables();
     $this->includeCustomTables();
     $this->includeCustomModel('ShippingMethods');
     $this->includeCustomModel('ShippingRates');
     // TODO Give this better error reporting capabilities
     //JModelLegacy::addIncludePath( JPATH_ADMINISTRATOR.'/components/com_j2store/models' );
     $model = JModelLegacy::getInstance('ShippingRates', 'J2StoreModel');
     $model->setState('filter_shippingmethod', $shipping_method_id);
     $model->setState('filter_geozone', $geozone_id);
     $product = J2StorePrices::getJ2Product($product_id);
     if (empty($product->article_id)) {
         return JTable::getInstance('ShippingRates', 'Table');
     }
     if (empty($product->item_shipping)) {
         // product doesn't require shipping, therefore cannot impact shipping costs
         return JTable::getInstance('ShippingRates', 'Table');
     }
     if (!empty($use_weight) && $use_weight == '1') {
         $model->setState('filter_weight', $weight);
     }
     $items = $model->getList();
     if (empty($items)) {
         return JTable::getInstance('ShippingRates', 'Table');
     }
     return $items[0];
 }
Exemple #2
0
 public static function getItemInfo($id)
 {
     static $itemsets;
     if (!is_array($itemsets)) {
         $itemsets = array();
     }
     if (!isset($itemsets[$id])) {
         $row = J2StoreItem::getArticle($id);
         //create an object and return
         $item = J2StorePrices::getJ2Product($id);
         $item->product_id = $id;
         $item->product_name = $row->title;
         $item->short_description = $row->introtext;
         $item->long_description = $row->fulltext;
         $item->metakey = $row->metakey;
         $item->metadesc = $row->metadesc;
         $item->metadata = $row->metadata;
         $item->price = $item->item_price;
         $item->product_sku = $item->item_sku;
         $item->tax_profile_id = $item->item_tax;
         $store_config = J2StoreHelperCart::getStoreAddress();
         if ($item->use_store_config_min_out_qty > 0) {
             $item->min_out_qty = (double) $store_config->store_min_out_qty;
         }
         if ($item->use_store_config_min_sale_qty > 0) {
             $item->min_sale_qty = (double) $store_config->store_min_sale_qty;
         }
         if ($item->use_store_config_max_sale_qty > 0) {
             $item->max_sale_qty = (double) $store_config->store_max_sale_qty;
         }
         if ($item->use_store_config_notify_qty > 0) {
             $item->notify_qty = (double) $store_config->store_notify_qty;
         }
         $item->product = $row;
         //$item = $j2item;
         $itemsets[$id] = $item;
     }
     return $itemsets[$id];
 }
Exemple #3
0
 public static function getTaxProfileId($product_id)
 {
     $item = J2StorePrices::getJ2Product($product_id);
     return $item->item_tax;
 }
Exemple #4
0
 public static function getStock($product_id)
 {
     $stock = J2StorePrices::getJ2Product($product_id);
     if (!isset($stock) || J2STORE_PRO != 1) {
         $stock = JTable::getInstance('Prices', 'Table');
     }
     //prepare data. We may have some settings in the store global
     require_once JPATH_SITE . '/components/com_j2store/helpers/cart.php';
     $store_config = J2StoreHelperCart::getStoreAddress();
     if ($stock->use_store_config_min_out_qty > 0) {
         $stock->min_out_qty = (double) $store_config->store_min_out_qty;
     }
     if ($stock->use_store_config_min_sale_qty > 0) {
         $stock->min_sale_qty = (double) $store_config->store_min_sale_qty;
     }
     if ($stock->use_store_config_max_sale_qty > 0) {
         $stock->max_sale_qty = (double) $store_config->store_max_sale_qty;
     }
     if ($stock->use_store_config_notify_qty > 0) {
         $stock->notify_qty = (double) $store_config->store_notify_qty;
     }
     return $stock;
 }