/** * 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]; }
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]; }
public static function getTaxProfileId($product_id) { $item = J2StorePrices::getJ2Product($product_id); return $item->item_tax; }
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; }