Jump to content
AlexStudio

[contribution] Super Download Store

Recommended Posts

I'll put this into my to-do list for the next SDS update and see what I can do about it. 100k items populated in one time maybe too much, but I think at least we can make it about 500-1000 item capability. I'm still working on a huge project and won't be coding for another 2-3 months.

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Share this post


Link to post
Share on other sites
HI

 

just a little question : how to actualise the download remaining in real time :

 

i mean, a customer have the permission to download 1 thing 1 time, and when he click on the download button, the download remaining does not actualise, so if he try to click a second time the download button, he is redirect to a blank page.

 

after, if he go backward, the download remaining is actualised : 0 download remaining, but it's not in real time..

 

did i make myself clear

 

thanx for any help

 

This can be achieved by adding some javascript to deduct download count on screen when the download link clicked, or to reload the page to update current download count onclick.

 

 

hi

 

any help?

 

i've tried many things, but still does'n works

 

thanx

Share this post


Link to post
Share on other sites

Hi, i have a problem with the downloads, the button doesnt show (i mean the button itself, not just the graphic; theres no link to download), the rest is there (link expires , download remaining, etc), but not the link.

the thing is, when i installed SDS, it worked ok. so it seems that at some point later i changed something and screwed it up, and i have no idea what it could be...

so the question: what could be wrong? in wich php should i look? or, is there an easy way to uninstall all the contribution so i can try to install it again? please help...

thanks

Share this post


Link to post
Share on other sites

Hi!

 

Alex, first of all thanx for great contribution! After a couple of small modifications your contribution is working with my shop now.

I had a few problems and i'd like to report them on this forum.

 

Because of the configuration of my server I had to enable downloads by redirect (big files, up to 500 mb). It works good but only if the customers are downloading the files with 'normal' download function of the browser, i.e. if this is 'one stream download'. But if the first customer downloads his file with download accelerator like dTaOneClick (Firefox) and at this time (when he is downloading) the second customer starts the download of another file, the first download (accelerated) will break after a while.

 

As you know all the 'old' symlinks are deleted before a new download by redirect starts. This is not a problem for a 'one stream download' but only for the accelerator. The problem seems the deleted path. My suspicion is that the accelerator sends a request for a new download stream and it knows only the deleted path, gets no correct response and breaks the download.

 

In my case the customer gets not the requested file but the index.php of the shop. Maybe because i have installed the Search Engine Friendly URLs contribution, i don't know. I had no time and possibility to check the described behaviour on a shop without the SEF contribution. My solution was to disable the deleting of the symlinks in the download.php. Now they are deleted by a cron job and the accelerated downloads are working fine.

 

-g.

Share this post


Link to post
Share on other sites

Hi there, im using the normal paypal ipn that came with oscommerce, everything works fine however once they've placed the order and paid via paypal, the order disappears, and they then cant go to my account and view the order.

 

however once they have paid the order they can view the download, but cant go back into my account as the order seems to disappear?

 

i tried your paypal ipn update but that seems to do the same thing, thanks for any ideas

Share this post


Link to post
Share on other sites

Hey Alex,

 

thanks for this great contribution!

i have a question:

 

a client has forgotten to download my product within 48 hours. now the download link is down.

when i set the order status to "update" manually, the order status "update" appears in the clients account, but without a new link.

 

my settings are:

 

Downloads Controller Update Status Value=12

Downloads Controller Order Status Value = 11

 

like in your manual...

 

i wonder what i´m missing?

 

thanks in advance!

Share this post


Link to post
Share on other sites
Check your orders status settings and your existing orders. If you have orders with orders status id not listed in the orders_status table, you get those orders absent in my account page.

 

Check those 'updated' orders and see what orders status they have. Make sure the orders status id is 12 as you set with Downloads Controller Update Status Value=12.

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Share this post


Link to post
Share on other sites

Thanks Alex, that really helped me, it works now!!!!!

 

One more question:

 

Is it possible that the download link is sent to the customer in the "order confirmation" mail?

 

i´ve seen that on other sites, but don´t have a clue how to get that work!

 

I really apriciate your help!

 

cheers :thumbsup:

Share this post


Link to post
Share on other sites

I installed this tonight - looks like everything installed...

 

but...

 

Can anyone tell me if the 'free of charge' module can be used in conjunction wtih this contrib to get downloads automatically?

 

I have a few files that are free, for stats sake (I have advertisers who want to know distribution) I want to know how often they're getting downloaded, what states/countries its most popular in, etc. so I don't want to just offer a link and have people download the items.

 

Obviously, once someone orders I want them to be able to get their product right away.

 

I am using paypal standard, paypal express, free of charge (only installed contrib for payments) and cash/money order.

 

I created the two new order statuses. I updated the numbers to 11 and 12 (we being the 'update'). I changed the order status in the 'free of charge' contrib to 'download now'

 

There is no auto download of these products - order status still shows as 'pending' on invoice. I have redirect turned off - should I try it turned on?

 

When I set status to 'download now' there is an active link to download the product at the bottom of their invoice. So it is making the connection to the file, I just need to figure out how, if at all, the download can be enabled right away instead of me manually changing the status.

 

 

Help?

Share this post


Link to post
Share on other sites

Hi Alex,

 

I have a problem with the download.php file... Everything has been working fine but I just tried to add a 3.5 GB file and I get this error:

 

Warning: filesize() [function.filesize]: Stat failed for /home/website/public_html/directory/directory/directory/filename.zip (errno=75 - Value too large for defined data type) in /home/fsdreams/public_html/directory/includes/modules/downloads.php on line 82

 

I'm not able to download the file because of the php error this generates... Do you have any changes to the code that will allow for file sizes over 1GB?

Share this post


Link to post
Share on other sites

ok here's the code:

 

		$file_size = filesize(DIR_FS_DOWNLOAD . $downloads['orders_products_filename']);


	if ($file_size > (1024*1024)) {
	  $factor = 1024*1024;
	  $symbol = 'Mb';

	} else if ($file_size > 1024 ){
	  $factor = 1024;
	  $symbol = 'Kb';
	} else {
	  $factor = 1;
	  $symbol = 'Bytes';
	}
	switch ($symbol) {
	  case 'Bytes' :
		$decimal = 0;
		break;
	  default :
		$decimal = 2;
		break;
	}

 

I was trying to figure out how to get it to read Gb but my reasoning seemed to fail... It won't read anything and throws up PHP errors once the file size reaches 1GB

Share this post


Link to post
Share on other sites

Anyone?

 

ok I got my programmer to also look at the code and we both came up with the exact same code to show GB but it seems that the file size error is somewhere else... Could it be something in the SQL database table?

 

I need help as I need to distribute large files...

Share this post


Link to post
Share on other sites
The download link is sent to the customer in the invoice email handled by checkout_process.php, SDS has nothing to do with it.

Super Download Shop, PayPal Express Checkout IPN, Selling Downloads, Visual Validation (preventing robotic flood), phpBB2 Integration

 

Yes, I'm willing to help, but please ask in the right place. Think twice before trying to PM me, it might be ignored.

Share this post


Link to post
Share on other sites

hi alexstudio,

 

i am using Super Download shop with paypal and moneybookrs..

Super Download Shop is just fine with paypal and i having prob with expire date with moneybookers

 

here is my checkout_moneybookersipn.php

<?php
/*
$Id: checkout_moneybookersipn.php

Copyright (c) 2007 Datalink UK t/a as Holbi

http://www.holbi.co.uk

Author: Vladislav B. Malyshev
e-mail: vmalyshev@holbi.co.uk

description:
the file for creating the order before go to moneybookers.
*/

include('includes/application_top.php');

// if the customer is not logged on, redirect them to the login page
 if (!tep_session_is_registered('customer_id')) {
$navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT));
tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
 }

 if (!tep_session_is_registered('sendto')) {
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
 }

 if ( (tep_not_null(MODULE_PAYMENT_INSTALLED)) && (!tep_session_is_registered('payment')) ) {
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
}

// avoid hack attempts during the checkout procedure by checking the internal cartID
 if (isset($cart->cartID) && tep_session_is_registered('cartID')) {
if ($cart->cartID != $cartID) {
  tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
}
 }

 include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PROCESS);

// load selected payment module
 require(DIR_WS_CLASSES . 'payment.php');
 $payment_modules = new payment($payment);

// load the selected shipping module
 require(DIR_WS_CLASSES . 'shipping.php');
 $shipping_modules = new shipping($shipping);

 require(DIR_WS_CLASSES . 'order.php');
 $order = new order;

// load the before_process function from the payment modules
 $payment_modules->before_process();

 require(DIR_WS_CLASSES . 'order_total.php');
 $order_total_modules = new order_total;

$order_totals = $order_total_modules->process();

$sql_data_array = array('customers_id' => $customer_id,
'customers_name' => $order->customer['firstname'] . ' ' . $order->customer['lastname'],
'customers_company' => $order->customer['company'],
'customers_street_address' => $order->customer['street_address'],
'customers_suburb' => $order->customer['suburb'],
'customers_city' => $order->customer['city'],
'customers_postcode' => $order->customer['postcode'],
'customers_state' => $order->customer['state'],
'customers_country' => $order->customer['country']['title'],
'customers_telephone' => $order->customer['telephone'],
'customers_email_address' => $order->customer['email_address'],
'customers_address_format_id' => $order->customer['format_id'],
'delivery_name' => $order->delivery['firstname'] . ' ' . $order->delivery['lastname'],
'delivery_company' => $order->delivery['company'],
'delivery_street_address' => $order->delivery['street_address'],
'delivery_suburb' => $order->delivery['suburb'],
'delivery_city' => $order->delivery['city'],
'delivery_postcode' => $order->delivery['postcode'],
'delivery_state' => $order->delivery['state'],
'delivery_country' => $order->delivery['country']['title'],
'delivery_address_format_id' => $order->delivery['format_id'],
'billing_name' => $order->billing['firstname'] . ' ' . $order->billing['lastname'],
'billing_company' => $order->billing['company'],
'billing_street_address' => $order->billing['street_address'],
'billing_suburb' => $order->billing['suburb'],
'billing_city' => $order->billing['city'],
'billing_postcode' => $order->billing['postcode'],
'billing_state' => $order->billing['state'],
'billing_country' => $order->billing['country']['title'],
'billing_address_format_id' => $order->billing['format_id'],
'payment_method' => $order->info['payment_method'],
'cc_type' => $order->info['cc_type'],
'cc_owner' => $order->info['cc_owner'],
'cc_number' => $order->info['cc_number'],
'cc_expires' => $order->info['cc_expires'],
'date_purchased' => 'now()',
'orders_status' => MODULE_PAYMENT_MONEYBOOKERS_IPN_ORDER_STATUS_ID_BEFORE,
'currency' => $order->info['currency'],
'currency_value' => $order->info['currency_value']);

tep_db_perform(TABLE_ORDERS, $sql_data_array);

$insert_id = tep_db_insert_id();

for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
	$sql_data_array = array('orders_id' => $insert_id,
	'title' => $order_totals[$i]['title'],
	'text' => $order_totals[$i]['text'],
	'value' => $order_totals[$i]['value'],
	'class' => $order_totals[$i]['code'],
	'sort_order' => $order_totals[$i]['sort_order']);

	tep_db_perform(TABLE_ORDERS_TOTAL, $sql_data_array);
}

$customer_notification = (SEND_EMAILS == 'true') ? '1' : '0';

$sql_data_array = array('orders_id' => $insert_id,
'orders_status_id' =>MODULE_PAYMENT_MONEYBOOKERS_IPN_ORDER_STATUS_ID_BEFORE,
'date_added' => 'now()',
'customer_notified' => $customer_notification,
'comments' => $order->info['comments']);

tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array);

// initialized for the email confirmation
$products_ordered = '';
$subtotal = 0;
$total_tax = 0;
$total_weight = 0;
$total_cost = 0;

for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
	// Stock Update - Joao Correia
	if (STOCK_LIMITED == 'true') {
			if (DOWNLOAD_ENABLED == 'true') {
					$stock_query_raw = "SELECT products_quantity, pad.products_attributes_filename
						FROM " . TABLE_PRODUCTS . " p
						LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES . " pa
						 ON p.products_id=pa.products_id
						LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
						 ON pa.products_attributes_id=pad.products_attributes_id
						WHERE p.products_id = '" . tep_get_prid($order->products[$i]['id']) . "'";
					// Will work with only one option for downloadable products
					// otherwise, we have to build the query dynamically with a loop
					$products_attributes = $order->products[$i]['attributes'];
					if (is_array($products_attributes)) {
							$stock_query_raw .= " AND pa.options_id = '" . $products_attributes[0]['option_id'] . "' AND pa.options_values_id = '" . $products_attributes[0]['value_id'] . "'";
					}
					$stock_query = tep_db_query($stock_query_raw);
			} else {
					$stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
			}
			if (tep_db_num_rows($stock_query) > 0) {
					$stock_values = tep_db_fetch_array($stock_query);
					// do not decrement quantities if products_attributes_filename exists
					if ((DOWNLOAD_ENABLED != 'true') || (!$stock_values['products_attributes_filename'])) {
							$stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'];
					} else {
							$stock_left = $stock_values['products_quantity'];
					}
					tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
					if ( ($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) {
							tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
					}
			}
	}

	// Update products_ordered (for bestsellers list)
	tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', $order->products[$i]['qty']) . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");

	$sql_data_array = array('orders_id' => $insert_id,
	'products_id' => tep_get_prid($order->products[$i]['id']),
	'products_model' => $order->products[$i]['model'],
	'products_name' => $order->products[$i]['name'],
	'products_price' => $order->products[$i]['price'],
	'final_price' => $order->products[$i]['final_price'],
	'products_tax' => $order->products[$i]['tax'],
	'products_quantity' => $order->products[$i]['qty']);
	tep_db_perform(TABLE_ORDERS_PRODUCTS, $sql_data_array);
	$order_products_id = tep_db_insert_id();

	//------insert customer choosen option to order--------
	$attributes_exist = '0';
	$products_ordered_attributes = '';
	if (isset($order->products[$i]['attributes'])) {
			$attributes_exist = '1';
			for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
					if (DOWNLOAD_ENABLED == 'true') {
							$attributes_query = "select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pad.products_attributes_maxdays, pad.products_attributes_maxcount , pad.products_attributes_filename
						   from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa
						   left join " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
							on pa.products_attributes_id=pad.products_attributes_id
						   where pa.products_id = '" . $order->products[$i]['id'] . "'
							and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "'
							and pa.options_id = popt.products_options_id
							and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "'
							and pa.options_values_id = poval.products_options_values_id
							and popt.language_id = '" . $languages_id . "'
							and poval.language_id = '" . $languages_id . "'";
							$attributes = tep_db_query($attributes_query);
					} else {
							$attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $languages_id . "' and poval.language_id = '" . $languages_id . "'");
					}
					$attributes_values = tep_db_fetch_array($attributes);

					$sql_data_array = array('orders_id' => $insert_id,
					'orders_products_id' => $order_products_id,
					'products_options' => $attributes_values['products_options_name'],
					'products_options_values' => $attributes_values['products_options_values_name'],
					'options_values_price' => $attributes_values['options_values_price'],
					'price_prefix' => $attributes_values['price_prefix']);
					tep_db_perform(TABLE_ORDERS_PRODUCTS_ATTRIBUTES, $sql_data_array);

					if ((DOWNLOAD_ENABLED == 'true') && isset($attributes_values['products_attributes_filename']) && tep_not_null($attributes_values['products_attributes_filename'])) {
							$sql_data_array = array('orders_id' => $insert_id,
							'orders_products_id' => $order_products_id,
							'orders_products_filename' => $attributes_values['products_attributes_filename'],
							'download_maxdays' => $attributes_values['products_attributes_maxdays'],
							'download_count' => $attributes_values['products_attributes_maxcount']);
							tep_db_perform(TABLE_ORDERS_PRODUCTS_DOWNLOAD, $sql_data_array);
					}
					$products_ordered_attributes .= "\n\t" . $attributes_values['products_options_name'] . ' ' . $attributes_values['products_options_values_name'];
			}
	}
	//------insert customer choosen option eof ----

	$total_weight += ($order->products[$i]['qty'] * $order->products[$i]['weight']);
	$total_tax += tep_calculate_tax($order->products[$i]['final_price'], $order->products[$i]['tax']) * $order->products[$i]['qty'];
	$total_cost += $order->products[$i]['final_price'];

	$products_ordered .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n";
}

// load the after_process function from the payment modules
$payment_modules->after_process();

//for moneybookers
if (MODULE_PAYMENT_MONEYBOOKERS_IPN_LANGUAGE == 'Selected Language') {
	$moneybookers_language = 'EN';
} else {
	$moneybookers_language = MODULE_PAYMENT_MONEYBOOKERS_IPN_LANGUAGE;
}

if (MODULE_PAYMENT_MONEYBOOKERS_IPN_CURRENCY == 'Selected Currency') {
	$moneybookers_currency = $currency;
//		echo "hehe1";
} else {
//		$moneybookers_currency = substr(MODULE_PAYMENT_MONEYBOOKERS_IPN_CURRENCY, 3);
	$moneybookers_currency = MODULE_PAYMENT_MONEYBOOKERS_IPN_CURRENCY;
//		echo MODULE_PAYMENT_MONEYBOOKERS_IPN_CURRENCY;
//		echo "hehe2";
}

//echo $moneybookers_currency . "zuzu<br>";

if (!in_array($moneybookers_currency, array('EUR', 'USD', 'GBP', 'HKD', 'SGD', 'JPY', 'CAD', 'AUD', 'CHF', 'DKK', 'SEK', 'NOK', 'ILS', 'MYR', 'NZD', 'TWD', 'THB', 'CZK', 'HUF', 'SKK', 'ISK', 'INR'))) {
	$moneybookers_currency = 'EUR';
}

//echo $moneybookers_currency . "zuzu2<br>";

//die();
$country_id = $order->billing['country']['id'];
$country_moneybookers_ipn_query = "select countries_moneybookers from " . TABLE_COUNTRIES . " where countries_id = '" . $country_id . "'";
$country_moneybookers_ipn_res = tep_db_query($country_moneybookers_ipn_query);
$country_moneybookers_ipn_data = tep_db_fetch_array($country_moneybookers_ipn_res);
$country_moneybookers = $country_moneybookers_ipn_data['countries_moneybookers'];

$trx_id = sprintf("%'820d", rand());

$update_order = "update " . TABLE_ORDERS . " set moneybookers_transaction_id = '" . $trx_id . "' where orders_id = '" . $insert_id . "'";
tep_db_query($update_order);

$process_button_string = 'pay_to_email=' . MODULE_PAYMENT_MONEYBOOKERS_IPN_ID .
'&language=' . $moneybookers_language.
'&amount=' . number_format($order->info['total'] * $currencies->get_value($moneybookers_currency), $currencies->get_decimal_places($moneybookers_currency)) .
'&amount2=' . number_format($order->info['shipping_cost'] * $currencies->get_value($moneybookers_currency), $currencies->get_decimal_places($moneybookers_currency)) .
'&amount2_description=' .  urlencode($order->info['shipping_method']) .
'&amount3=' . number_format($order->info['tax'] * $currencies->get_value($moneybookers_currency), $currencies->get_decimal_places($moneybookers_currency)) .
'&amount3_description=' .  urlencode($order->info['tax_groups'][0]) .
'&currency=' . $moneybookers_currency .
'&detail1_description=' . STORE_NAME .
'&detail1_text=' . urlencode('Order # ' . $insert_id).
'&transaction_id=' .  $trx_id .
'&firstname=' . $order->billing['firstname'] .
'&lastname=' . $order->billing['lastname'] .
'&address=' . $order->billing['street_address'] .
'&postal_code=' . $order->billing['postcode'] .
'&city=' . $order->billing['city'] .
'&state=' . $order->billing['billing_state'] .
'&country=' . $country_moneybookers .
'&merchant_fields=' . urlencode('softwareprovider,distributor') .  
'&softwareprovider=' . 'holbi' .
'&distributor=' . 'holbi' .
'&pay_from_email=' . $order->customer['email_address'] .
'&status_url=' . tep_href_link(FILENAME_MONEYBOOKERS_NOTIFY, '', 'SSL') .
'&return_url=' . tep_href_link(FILENAME_CHECKOUT_CHECKOUT_MONEYBOOKERSIPN_AFTER, '', 'NONSSL')  .
'&cancel_url=' . tep_href_link(FILENAME_CHECKOUT_MONEYBOOKERSIPN_CANCEL, 'order_id=' . $insert_id, 'SSL');

/*tep_draw_hidden_field('pay_from_email', $order->customer['email_address']) .*/

$moneybookersurl = 'https://www.moneybookers.com/app/payment.pl';
if  (strlen(MODULE_PAYMENT_MONEYBOOKERS_IPN_REFID) <= '5') {$moneybookersurl = $moneybookersurl . '?rid=3045110';}
else {$moneybookersurl = $moneybookersurl . '?rid=' . MODULE_PAYMENT_MONEYBOOKERS_IPN_REFID;}

//echo $moneybookersurl . "&" . $process_button_string;
tep_redirect($moneybookersurl . "&" . $process_button_string);
?>

 

 

and here is checkout_moneybookersipn_after.php

 

<?php
/*
$Id: moneybookers_ipn.php

Copyright (c) 2007 Datalink UK t/a as Holbi

http://www.holbi.co.uk

Author: Vladislav B. Malyshev
e-mail: vmalyshev@holbi.co.uk

description:

the suport file. When we returns from moneybookers ok we remove cart and other data in this file
*/

include('includes/application_top.php');

// if the customer is not logged on, redirect them to the login page
// if the customer is not logged on, redirect them to the shopping cart page
 if (!tep_session_is_registered('customer_id')) {
tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));
 }

if ($sendto != false) {
	tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
}

  if (defined('MODULE_PAYMENT_INSTALLED') && tep_not_null(MODULE_PAYMENT_INSTALLED)) {
	$this->modules = explode(';', MODULE_PAYMENT_INSTALLED);
}

// avoid hack attempts during the checkout procedure by checking the internal cartID
 if (isset($cart->cartID) && tep_session_is_registered('cartID')) {
if ($cart->cartID != $cartID) {
  tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
}
 }

include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PROCESS);

// load selected payment module
require(DIR_WS_CLASSES . 'payment.php');
$payment_modules = new payment($payment);

// load the selected shipping module
require(DIR_WS_CLASSES . 'shipping.php');
$shipping_modules = new shipping($shipping);

require(DIR_WS_CLASSES . 'order.php');
$order = new order;

// load the before_process function from the payment modules
$payment_modules->before_process();

require(DIR_WS_CLASSES . 'order_total.php');
$order_total_modules = new order_total;

$cart->reset(true);

// unregister session variables used during checkout
tep_session_unregister('sendto');
tep_session_unregister('billto');
tep_session_unregister('shipping');
tep_session_unregister('payment');
tep_session_unregister('comments');


tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'NONSSL'));
?>

 

please reply ASAP

Share this post


Link to post
Share on other sites

Hi Alex,

 

I am trying to add your application to my shop and failing on the first step... trying to run the sql scripts.

 

I can't give the database the name of the sql file, as there is a max length of 16 characters and underscores are not allowed in the name, so I called the databases I set up: GroupDownload and ShopDownload.

 

When trying to run the 2 sql scripts to populate them I get the reply of:

Error #1146 - Table 'GroupDownload.configuration' doesn't exist and

Error #1146 - Table 'ShopDownload.configuration' doesn't exist

 

I am using MySQL v5.

What can I do?

 

Thanks for your help.

Cheers Meike

Share this post


Link to post
Share on other sites

I installed the SDC last night and everything is working fine - EXCEPT - when I add the item in the Product Attributes and then do a test purchase I get two download links instead of one.

 

If I do a group download then there will be Two links for the last file I add.

 

Does anyone know how to stop it from providing two links for the same download item.

Share this post


Link to post
Share on other sites
Yes. The osCommerce PayPal IPN module takes over all the jobs in checkout_process.php, there for you need to apply the modification in checkout_process.php to your paypal_ipn.php, otherwise it won't work.

 

Which version of the osCommerce PayPal IPN you're using?

 

Hi,

I have installed Super Download Shop for OSC 2.2 MS2, which I am running, but at the end of the setup procedures, Step 5, there is this statement:

 

Some payment modules, such as osCommerce PayPal IPN module, bypass checkout_process.php, which causes the modification skipped and fails this contribution. Modification in checkout_process.php must be manually coded into such payment modules.

 

I am using the PP IPN that installed with OSC, I have tried to install the lastest IPN but it does not show on my admin page.

 

Everything appears to be working, I have read the instructions well, but when I make a purchase, I never get a download button to appear.

 

Can anyone give any advice, thanks to all

 

Lee

Share this post


Link to post
Share on other sites

Does this contrib allow one to change the default download folder to a ftp server in a different location?

 

If not would that be possible with some changes?

 

Ideally after payment, customers would be able to download files securely from an external ftp and would not be able to see the link / password information

 

Cheers

Share this post


Link to post
Share on other sites

I'm getting this same issue, and I searched the forums and no one ever mentions the solution...

 

 

I get this error how do I fix this:

 

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MAX_ROW_LISTS_OPTIONS' at line 1

 

select * from products_options where language_id = '1' order by products_options_id LIMIT 0, MAX_ROW_LISTS_OPTIONS

 

Warning: Division by zero in catalog/admin/products_attributes.php on line 283

>>

 

here is the code:

if ($num_rows <= $per_page) {

$num_pages = 1;

} else if (($num_rows % $per_page) == 0) {

$num_pages = ($num_rows / $per_page);<------- this is what causing the error to kick up

} else {

$num_pages = ($num_rows / $per_page) + 1;

}

$num_pages = (int) $num_pages;

Share this post


Link to post
Share on other sites

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MAX_ROW_LISTS_OPTIONS' at line 1

 

select * from products_options where language_id = '1' order by products_options_id LIMIT 0, MAX_ROW_LISTS_OPTIONS

 

[TEP STOP]

 

HEADING_TITLE_OPT

 

Warning: Division by zero in /home/content/f/r/e/freebkform/html/purchase/catalog/admin/products_attributes.php on line 452

>>

Share this post


Link to post
Share on other sites

Case 1. yes, 'updated' is for reseting the download counts and expiry, very useful if the customer's asking to re-activate the download.

 

Case 2. you set the same file group to the second attribute, so the download files are identical. Create a new file group with the different filenames and assign it to the second attribute, you'll get different download files. You can setup identical files in different groups.

 

 

Dear Alex,

I should have send this thank you note much earlier...

Thanks for the reply...

anyway... better late than ... much later!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×