Example #1
0
 public function gbasefeed($data)
 {
     $producthelper = new producthelper();
     $stockroomhelper = new rsstockroomhelper();
     $shippinghelper = new shipping();
     $unpublished_data = $data['unpublished_data'];
     $cid = $data['cid'];
     $url = JURI::root();
     $currency = new CurrencyHelper();
     $product_img_url = $url . 'components/com_redshop/assets/images/product/';
     $file_path = JPATH_COMPONENT_SITE . "/assets/document/gbase";
     $file_name = $file_path . "/product.xml";
     if (count($cid)) {
         $cids = implode(',', $cid);
         if ($unpublished_data == 1) {
             $query = "SELECT p.*,m.manufacturer_name FROM " . $this->_table_prefix . "product AS p " . " LEFT JOIN " . $this->_table_prefix . "manufacturer AS m" . " ON p.manufacturer_id = m.manufacturer_id" . " WHERE p.product_id IN (" . $cids . ")";
         } else {
             $query = "SELECT p.*,m.manufacturer_name FROM " . $this->_table_prefix . "product AS p " . " LEFT JOIN " . $this->_table_prefix . "manufacturer AS m" . " ON p.manufacturer_id = m.manufacturer_id" . " WHERE p.product_id IN (" . $cids . ") and p.published =1";
         }
         $this->_db->setQuery($query);
         $rs = $this->_db->loadObjectlist();
         // For shipping information
         $shippingArr = $shippinghelper->getShopperGroupDefaultShipping();
         $default_shipping = 0.0;
         $shipping_rate = $currency->convert(number_format($shippingArr['shipping_rate'], PRICE_DECIMAL, PRICE_SEPERATOR, THOUSAND_SEPERATOR), '', CURRENCY_CODE);
         $default_shipping = count($shippingArr) > 0 ? $shipping_rate : number_format($default_shipping, PRICE_DECIMAL, PRICE_SEPERATOR, THOUSAND_SEPERATOR);
         $default_shipping_country = DEFAULT_SHIPPING_COUNTRY;
         $xml_code = '<?xml version="1.0" encoding="UTF-8" ';
         $xml_code .= '<rss version ="2.0" xmlns:g="http://base.google.com/ns/1.0" xmlns:c="http://base.google.com/cns/1.0">';
         $xml_code .= "<channel>";
         for ($i = 0; $i < count($rs); $i++) {
             // For additional images
             $additional_images = $producthelper->getAdditionMediaImage($rs[$i]->product_id, $section = "product", $mediaType = "images");
             $add_image = "";
             for ($ad = 0; $ad < 10; $ad++) {
                 if (trim($additional_images[$ad]->product_full_image) != trim($additional_images[$ad]->media_name) && trim($additional_images[$ad]->media_name) != "") {
                     $add_image .= "<g:additional_image_link>" . $product_img_url . htmlspecialchars($additional_images[$ad]->media_name, ENT_NOQUOTES, "UTF-8") . "</g:additional_image_link>";
                 }
             }
             // For getting product Category
             $category_name = $producthelper->getCategoryNameByProductId($rs[$i]->product_id);
             if (USE_STOCKROOM == 1) {
                 // For c**t attributes
                 $attributes_set = array();
                 if ($rs[$i]->attribute_set_id > 0) {
                     $attributes_set = $producthelper->getProductAttribute(0, $rs[$i]->attribute_set_id, 0, 1);
                 }
                 $attributes = $producthelper->getProductAttribute($rs[$i]->product_id);
                 $attributes = array_merge($attributes, $attributes_set);
                 $totalatt = count($attributes);
                 // Get stock details
                 $isStockExists = $stockroomhelper->isStockExists($rs[$i]->product_id);
                 if ($totalatt > 0 && !$isStockExists) {
                     $isStockExists = $stockroomhelper->isAttributeStockExists($product_id);
                 }
                 $isPreorderStockExists = $stockroomhelper->isPreorderStockExists($product_id);
                 if ($totalatt > 0 && !$isPreorderStockExists) {
                     $isPreorderStockExists = $stockroomhelper->isAttributePreorderStockExists($product_id);
                 }
                 if (!$isStockExists) {
                     $product_preorder = $rs[$i]->preorder;
                     if ($product_preorder == "global" && ALLOW_PRE_ORDER || $product_preorder == "yes" || $product_preorder == "" && ALLOW_PRE_ORDER) {
                         if (!$isPreorderStockExists) {
                             $product_status = JText::_('COM_REDSHOP_OUT_OF_STOCK');
                         } else {
                             $product_status = JText::_('COM_REDSHOP_PREORDER');
                         }
                     } else {
                         $product_status = JText::_('COM_REDSHOP_OUT_OF_STOCK');
                     }
                 } else {
                     $product_status = JText::_('COM_REDSHOP_AVAILABLE_FOR_ORDER');
                 }
             } else {
                 $product_status = JText::_('COM_REDSHOP_AVAILABLE_FOR_ORDER');
             }
             $product_on_sale = 0;
             if ($rs[$i]->product_on_sale == 1 && ($rs[$i]->discount_stratdate == 0 && $rs[$i]->discount_enddate == 0 || $rs[$i]->discount_stratdate <= time() && $rs[$i]->discount_enddate >= time())) {
                 $product_on_sale = 1;
             }
             // For price and vat settings
             $product_price = $rs[$i]->product_price;
             $discount_price = $rs[$i]->discount_price;
             $sale_price = $product_on_sale == 1 ? $discount_price : $product_price;
             $price_vat = $producthelper->getGoogleVatRates($rs[$i]->product_id, $product_price, USE_TAX_EXEMPT);
             $sale_price_vat = $producthelper->getGoogleVatRates($rs[$i]->product_id, $sale_price, USE_TAX_EXEMPT);
             if (DEFAULT_VAT_COUNTRY != "USA") {
                 $product_price = $rs[$i]->product_price + $price_vat;
                 $sale_price = $sale_price + $sale_price_vat;
             }
             $product_price = $currency->convert(number_format($product_price, PRICE_DECIMAL, PRICE_SEPERATOR, THOUSAND_SEPERATOR), '', CURRENCY_CODE);
             $discount_price = $currency->convert(number_format($discount_price, PRICE_DECIMAL, PRICE_SEPERATOR, THOUSAND_SEPERATOR), '', CURRENCY_CODE);
             $sale_price = $currency->convert(number_format($sale_price, PRICE_DECIMAL, PRICE_SEPERATOR, THOUSAND_SEPERATOR), '', CURRENCY_CODE);
             $price_vat = $currency->convert(number_format($price_vat, PRICE_DECIMAL, PRICE_SEPERATOR, THOUSAND_SEPERATOR), '', CURRENCY_CODE);
             $product_url = $url . "index.php?option=com_redshop&amp;view=product&amp;pid=" . $rs[$i]->product_id;
             $xml_code .= "\n<item>";
             $xml_code .= "\n<g:id>" . htmlspecialchars($rs[$i]->product_id, ENT_NOQUOTES, "UTF-8") . "</g:id>";
             $xml_code .= "\n<title>" . htmlspecialchars($rs[$i]->product_name, ENT_NOQUOTES, "UTF-8") . "</title>";
             $xml_code .= "\n<description>'" . htmlspecialchars($rs[$i]->product_s_desc, ENT_NOQUOTES, "UTF-8") . "'</description>";
             $xml_code .= "\n<g:product_type>'" . htmlspecialchars($category_name, ENT_NOQUOTES, "UTF-8") . "'</g:product_type>";
             $xml_code .= "\n<link>" . htmlspecialchars($product_url, ENT_NOQUOTES, "UTF-8") . "</link>";
             $xml_code .= "\n<g:image_link>" . $product_img_url . htmlspecialchars($rs[$i]->product_full_image, ENT_NOQUOTES, "UTF-8") . "</g:image_link>";
             $xml_code .= "\n<g:brand>" . htmlspecialchars($rs[$i]->manufacturer_name, ENT_NOQUOTES, "UTF-8") . "</g:brand>";
             $xml_code .= "\n<g:condition>New</g:condition>";
             $xml_code .= "\n<g:availability>" . $product_status . "</g:availability>";
             $xml_code .= "\n<g:price>" . $product_price . " " . CURRENCY_CODE . "</g:price>";
             $xml_code .= "\n<g:sale_price>" . $sale_price . " " . CURRENCY_CODE . "</g:sale_price>";
             if ($product_on_sale == 1) {
                 $discount_start_date = date("c", $rs[$i]->discount_stratdate);
                 $discount_end_date = date("c", $rs[$i]->discount_enddate);
                 $xml_code .= "\n<g:sale_price_effective_date>" . $discount_start_date . "/" . $discount_end_date . "</g:sale_price_effective_date>";
             }
             $xml_code .= "\n<g:mpn>" . htmlspecialchars($rs[$i]->product_number, ENT_NOQUOTES, "UTF-8") . "</g:mpn>";
             if (DEFAULT_VAT_COUNTRY == "USA" || DEFAULT_VAT_COUNTRY == "GBR") {
                 $xml_code .= "\n<g:delivery>\r\n\t\t\t\t\t\t<g:country>" . DEFAULT_SHIPPING_COUNTRY . "</g:country>\r\n\t\t\t\t\t    <g:price>" . $default_shipping . " " . CURRENCY_CODE . "</g:price>\r\n\t\t\t\t\t</g:delivery>";
                 if ($rs[$i]->weight != 0) {
                     $xml_code .= "\n<g:delivery_weight>" . $rs[$i]->weight . " " . DEFAULT_WEIGHT_UNIT . "</g:delivery_weight>";
                 }
             } else {
                 $xml_code .= "\n<g:shipping>\r\n\t\t\t\t\t\t<g:country>" . DEFAULT_SHIPPING_COUNTRY . "</g:country>\r\n\t\t\t\t\t    <g:price>" . $default_shipping . " " . CURRENCY_CODE . "</g:price>\r\n\t\t\t\t\t</g:shipping>";
                 if ($rs[$i]->weight != 0) {
                     $xml_code .= "\n<g:shipping_weight>" . $rs[$i]->weight . " " . DEFAULT_WEIGHT_UNIT . "</g:shipping_weight>";
                 }
             }
             if (DEFAULT_VAT_COUNTRY == "USA") {
                 $xml_code .= "\n<g:tax>\r\n\t\t\t\t\t\t\t\t   <g:country>US</g:country>\r\n\t\t\t\t\t\t\t\t   <g:rate>" . $price_vat . "</g:rate>\r\n\t\t\t\t\t\t\t  </g:tax>";
             }
             $xml_code .= "\n" . $add_image;
             $xml_code .= "\n</item>";
         }
         $xml_code .= '</channel>';
         $xml_code .= '</rss>';
         $fp = fopen($file_name, "w");
         fwrite($fp, $xml_code);
         fclose($fp);
         if (!file_exists($file_name)) {
             return false;
         } else {
             return true;
         }
     }
     return false;
 }
Example #2
0
 /**
  * Format Product Price
  *
  * @param   float    $product_price    Product price
  * @param   boolean  $convert          Decide to conver price in Multi Currency
  * @param   float    $currency_symbol  Product Formatted Price
  *
  * @return  float                      Formatted Product Price
  */
 public function getProductFormattedPrice($product_price, $convert = true, $currency_symbol = REDCURRENCY_SYMBOL)
 {
     // Get Current Currency of SHOP
     $session = JFactory::getSession('product_currency');
     /*
      * if convert set true than use conversation
      */
     if ($convert && $session->get('product_currency')) {
         $CurrencyHelper = new CurrencyHelper();
         $product_price = $CurrencyHelper->convert($product_price);
         if (CURRENCY_SYMBOL_POSITION == 'behind') {
             $currency_symbol = " " . $session->get('product_currency');
         } else {
             $currency_symbol = $session->get('product_currency') . " ";
         }
     }
     $price = '';
     if (is_numeric($product_price)) {
         if (CURRENCY_SYMBOL_POSITION == 'front') {
             $price = $currency_symbol . number_format((double) $product_price, PRICE_DECIMAL, PRICE_SEPERATOR, THOUSAND_SEPERATOR);
         } elseif (CURRENCY_SYMBOL_POSITION == 'behind') {
             $price = number_format((double) $product_price, PRICE_DECIMAL, PRICE_SEPERATOR, THOUSAND_SEPERATOR) . $currency_symbol;
         } elseif (CURRENCY_SYMBOL_POSITION == 'none') {
             $price = number_format((double) $product_price, PRICE_DECIMAL, PRICE_SEPERATOR, THOUSAND_SEPERATOR);
         } else {
             $price = $currency_symbol . number_format((double) $product_price, PRICE_DECIMAL, PRICE_SEPERATOR, THOUSAND_SEPERATOR);
         }
     }
     return $price;
 }
Example #3
0
    if (CURRENCY_CODE != "") {
        $currency_main = CURRENCY_CODE;
    } else {
        $currency_main = "USD";
    }
}
$sql = "SELECT op.*,o.order_total,o.user_id,o.order_tax,o.order_subtotal,o.order_shipping,o.order_number,o.payment_discount FROM " . $this->_table_prefix . "order_payment AS op LEFT JOIN " . $this->_table_prefix . "orders AS o ON op.order_id = o.order_id  WHERE o.order_id='" . $data['order_id'] . "'";
$db->setQuery($sql);
$order_details = $db->loadObjectList();
if ($this->_params->get("sandbox") == '1') {
    $paypalurl = "https://www.sandbox.paypal.com/cgi-bin/webscr";
} else {
    $paypalurl = "https://www.paypal.com/cgi-bin/webscr";
}
$currencyClass = new CurrencyHelper();
$order->order_subtotal = $currencyClass->convert($order_details[0]->order_total, '', $currency_main);
$returnUrl = JURI::base() . "index.php?tmpl=component&option=com_redshop&view=order_detail&controller=order_detail&task=notify_payment&payment_plugin=rs_payment_paypal&Itemid={$Itemid}&orderid=" . $data['order_id'];
if ($this->_params->get("auto_return") == '1') {
    $returnUrl = $this->_params->get("auto_return_url");
}
$post_variables = array("cmd" => "_cart", "upload" => "1", "business" => $this->_params->get("merchant_email"), "receiver_email" => $this->_params->get("merchant_email"), "item_name" => JText::_('COM_REDSHOP_ORDER_ID_LBL') . ":" . $data['order_id'], "first_name" => $data['billinginfo']->firstname, "last_name" => $data['billinginfo']->lastname, "address1" => $data['billinginfo']->address, "city" => $data['billinginfo']->city, "country" => $data['billinginfo']->country_2_code, "zip" => $data['billinginfo']->zipcode, "email" => $data['billinginfo']->user_email, "rm" => '2', "item_number" => $data['order_id'], "invoice" => $order_details[0]->order_number, "amount" => $order->order_subtotal, "return" => $returnUrl, "notify_url" => JURI::base() . "index.php?tmpl=component&option=com_redshop&view=order_detail&controller=order_detail&task=notify_payment&payment_plugin=rs_payment_paypal&Itemid={$Itemid}&orderid=" . $data['order_id'], "night_phone_b" => substr($data['billinginfo']->phone, 0, 25), "cancel_return" => JURI::base() . "index.php?tmpl=component&option=com_redshop&view=order_detail&controller=order_detail&task=notify_payment&payment_plugin=rs_payment_paypal&Itemid={$Itemid}&orderid=" . $data['order_id'], "undefined_quantity" => "0", "test_ipn" => $this->_params->get("is_test"), "pal" => "NRUBJXESJTY24", "no_shipping" => "0", "no_note" => "1", "tax_cart" => $order_details[0]->order_tax, "currency_code" => $currency_main);
if (SHIPPING_METHOD_ENABLE) {
    $shipping_variables = array("address1" => $shipping_address->address, "city" => $shipping_address->city, "country" => $CountryCode2, "first_name" => $shipping_address->firstname, "last_name" => $shipping_address->lastname, "state" => $shipping_address->state_code, "zip" => $shipping_address->zipcode);
}
$payment_price = $this->_params->get("payment_price");
$post_variables['discount_amount_cart'] = round($currencyClass->convert($data['odiscount'], '', $currency_main), 2);
$post_variables['discount_amount_cart'] += round($currencyClass->convert($data['special_discount'], '', $currency_main), 2);
if ($this->_params->get("payment_oprand") == '-') {
    $discount_payment_price = $payment_price;
    $post_variables['discount_amount_cart'] += round($currencyClass->convert($order_details[0]->payment_discount, '', $currency_main), 2);
} else {