Jupiters
Archived-
Posts
55 -
Joined
-
Last visited
Everything posted by Jupiters
-
yeah got a suggestion: make it php4 compatbile, cause MANY use highly modified shops with a lot of contris which depend on php4. greets
-
Hi Olof, tried to make your contri php4 compatibel. php doesnt know things like "public" or "private". Thats why you can find a version of the thumbnail.inc for php4 on the original website of the thumbnailer. i compared it with winmerge as described before. what else needs to be changed? you mentionend something, but i dont know what you mean... another thing was written on the page " IMPORTANT PHP 4 NOTE You must remember to call the destruct() function at then end of your scripts in order to deallocate the memory used for the image manipulation, similar to the way you must always call fclose() when you use fopen(). The PHP 5 class does this automatically, so there is no need to explicitly call this function (it doesn’t exist as a matter of fact!)." perhaps this has something to do with the problem on php4? http://www.gen-x-design.com/projects/php-thumbnailer-class/ thx for helping ! greets jupiters
-
same problem here, sometimes carousell appears, but only in 1 of 10 times
-
hmm found this: http://rochakchauhan.com/blog/2007/09/12/h...-work-in-php-4/ so i took the php4 version of thumbnail.inc.php and it didnt work either. so i think it is incompatible. php4 based servers wont work with your contribution.
-
Hi Olof, this one is the error message: Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /hp/ae/aa/ma/www/fruitster/includes/classes/thumbnail.inc.php on line 21 Line 21 is this one: public $errmsg; thx for youe help!
-
Nice contri. But as you sad, problems with php4. i followed your instructions, but anway, products dont show up... i just changed one filem thumbnail.inc.php. heres the modified code, did that with winmerge...do we have to change something else? Best Regards, Jupiters <?php /** * thumbnail.inc.php * * @author Ian Selby ([email protected]) * @copyright Copyright 2006 * @version 1.1 (PHP4) * */ /** * PHP class for dynamically resizing, cropping, and rotating images for thumbnail purposes and either displaying them on-the-fly or saving them. * */ class Thumbnail { /** * Error message to display, if any * * @var string */ public $errmsg; /** * Whether or not there is an error * * @var boolean */ public $error; /** * Format of the image file * * @var string */ public $format; /** * File name and path of the image file * * @var string */ public $fileName; /** * Image meta data if any is available (jpeg/tiff) via the exif library * * @var array */ public $imageMeta; /** * Current dimensions of working image * * @var array */ public $currentDimensions; /** * New dimensions of working image * * @var array */ public $newDimensions; /** * Image resource for newly manipulated image * * @var resource */ public $newImage; /** * Image resource for image before previous manipulation * * @var resource */ public $oldImage; /** * Image resource for image being currently manipulated * * @var resource */ public $workingImage; /** * Percentage to resize image by * * @var int */ public $percent; /** * Maximum width of image during resize * * @var int */ public $maxWidth; /** * Maximum height of image during resize * * @var int */ public $maxHeight; /** * Class constructor * * @param string $fileName * @return Thumbnail */ public function __construct($fileName) { //make sure the GD library is installed if(!function_exists("gd_info")) { echo 'You do not have the GD Library installed. This class requires the GD library to function properly.' . "\n"; echo 'visit http://us2.php.net/manual/en/ref.image.php for more information'; exit; } //initialize variables $this->errmsg = ''; $this->error = false; $this->currentDimensions = array(); $this->newDimensions = array(); $this->fileName = $fileName; $this->imageMeta = array(); $this->percent = 100; $this->maxWidth = 0; $this->maxHeight = 0; //check to see if file exists if(!file_exists($this->fileName)) { $this->errmsg = 'File not found'; $this->error = true; } //check to see if file is readable elseif(!is_readable($this->fileName)) { $this->errmsg = 'File is not readable'; $this->error = true; } //if there are no errors, determine the file format if($this->error == false) { //check if gif if(stristr(strtolower($this->fileName),'.gif')) $this->format = 'GIF'; //check if jpg elseif(stristr(strtolower($this->fileName),'.jpg') || stristr(strtolower($this->fileName),'.jpeg')) $this->format = 'JPG'; //check if png elseif(stristr(strtolower($this->fileName),'.png')) $this->format = 'PNG'; //unknown file format else { $this->errmsg = 'Unknown file format'; $this->error = true; } } //initialize resources if no errors if($this->error == false) { switch($this->format) { case 'GIF': $this->oldImage = ImageCreateFromGif($this->fileName); break; case 'JPG': $this->oldImage = ImageCreateFromJpeg($this->fileName); break; case 'PNG': $this->oldImage = ImageCreateFromPng($this->fileName); break; } $size = GetImageSize($this->fileName); $this->currentDimensions = array('width'=>$size[0],'height'=>$size[1]); $this->newImage = $this->oldImage; $this->gatherImageMeta(); } if($this->error == true) { $this->showErrorImage(); break; } } /** * Must be called to free up allocated memory after all manipulations are done * */ public function __destruct() { if(is_resource($this->newImage)) @ImageDestroy($this->newImage); if(is_resource($this->oldImage)) @ImageDestroy($this->oldImage); if(is_resource($this->workingImage)) @ImageDestroy($this->workingImage); } /** * Returns the current width of the image * * @return int */ public function getCurrentWidth() { return $this->currentDimensions['width']; } /** * Returns the current height of the image * * @return int */ public function getCurrentHeight() { return $this->currentDimensions['height']; } /** * Calculates new image width * * @param int $width * @param int $height * @return array */ public function calcWidth($width,$height) { $newWp = (100 * $this->maxWidth) / $width; $newHeight = ($height * $newWp) / 100; return array('newWidth'=>intval($this->maxWidth),'newHeight'=>intval($newHeight)); } /** * Calculates new image height * * @param int $width * @param int $height * @return array */ public function calcHeight($width,$height) { $newHp = (100 * $this->maxHeight) / $height; $newWidth = ($width * $newHp) / 100; return array('newWidth'=>intval($newWidth),'newHeight'=>intval($this->maxHeight)); } /** * Calculates new image size based on percentage * * @param int $width * @param int $height * @return array */ public function calcPercent($width,$height) { $newWidth = ($width * $this->percent) / 100; $newHeight = ($height * $this->percent) / 100; return array('newWidth'=>intval($newWidth),'newHeight'=>intval($newHeight)); } /** * Calculates new image size based on width and height, while constraining to maxWidth and maxHeight * * @param int $width * @param int $height */ public function calcImageSize($width,$height) { $newSize = array('newWidth'=>$width,'newHeight'=>$height); if($this->maxWidth > 0) { $newSize = $this->calcWidth($width,$height); if($this->maxHeight > 0 && $newSize['newHeight'] > $this->maxHeight) { $newSize = $this->calcHeight($newSize['newWidth'],$newSize['newHeight']); } //$this->newDimensions = $newSize; } if($this->maxHeight > 0) { $newSize = $this->calcHeight($width,$height); if($this->maxWidth > 0 && $newSize['newWidth'] > $this->maxWidth) { $newSize = $this->calcWidth($newSize['newWidth'],$newSize['newHeight']); } //$this->newDimensions = $newSize; } $this->newDimensions = $newSize; } /** * Calculates new image size based percentage * * @param int $width * @param int $height */ public function calcImageSizePercent($width,$height) { if($this->percent > 0) { $this->newDimensions = $this->calcPercent($width,$height); } } /** * Displays error image * */ public function showErrorImage() { header('Content-type: image/png'); $errImg = ImageCreate(220,25); $bgColor = imagecolorallocate($errImg,0,0,0); $fgColor1 = imagecolorallocate($errImg,255,255,255); $fgColor2 = imagecolorallocate($errImg,255,0,0); imagestring($errImg,3,6,6,'Error:',$fgColor2); imagestring($errImg,3,55,6,$this->errmsg,$fgColor1); imagepng($errImg); imagedestroy($errImg); } /** * Resizes image to maxWidth x maxHeight * * @param int $maxWidth * @param int $maxHeight */ public function resize($maxWidth = 0, $maxHeight = 0) { $this->maxWidth = $maxWidth; $this->maxHeight = $maxHeight; $this->calcImageSize($this->currentDimensions['width'],$this->currentDimensions['height']); if(function_exists("ImageCreateTrueColor")) { $this->workingImage = ImageCreateTrueColor($this->newDimensions['newWidth'],$this->newDimensions['newHeight']); } else { $this->workingImage = ImageCreate($this->newDimensions['newWidth'],$this->newDimensions['newHeight']); } ImageCopyResampled( $this->workingImage, $this->oldImage, 0, 0, 0, 0, $this->newDimensions['newWidth'], $this->newDimensions['newHeight'], $this->currentDimensions['width'], $this->currentDimensions['height'] ); $this->oldImage = $this->workingImage; $this->newImage = $this->workingImage; $this->currentDimensions['width'] = $this->newDimensions['newWidth']; $this->currentDimensions['height'] = $this->newDimensions['newHeight']; } /** * Resizes the image by $percent percent * * @param int $percent */ public function resizePercent($percent = 0) { $this->percent = $percent; $this->calcImageSizePercent($this->currentDimensions['width'],$this->currentDimensions['height']); if(function_exists("ImageCreateTrueColor")) { $this->workingImage = ImageCreateTrueColor($this->newDimensions['newWidth'],$this->newDimensions['newHeight']); } else { $this->workingImage = ImageCreate($this->newDimensions['newWidth'],$this->newDimensions['newHeight']); } ImageCopyResampled( $this->workingImage, $this->oldImage, 0, 0, 0, 0, $this->newDimensions['newWidth'], $this->newDimensions['newHeight'], $this->currentDimensions['width'], $this->currentDimensions['height'] ); $this->oldImage = $this->workingImage; $this->newImage = $this->workingImage; $this->currentDimensions['width'] = $this->newDimensions['newWidth']; $this->currentDimensions['height'] = $this->newDimensions['newHeight']; } /** * Crops the image from calculated center in a square of $cropSize pixels * * @param int $cropSize */ public function cropFromCenter($cropSize) { if($cropSize > $this->currentDimensions['width']) $cropSize = $this->currentDimensions['width']; if($cropSize > $this->currentDimensions['height']) $cropSize = $this->currentDimensions['height']; $cropX = intval(($this->currentDimensions['width'] - $cropSize) / 2); $cropY = intval(($this->currentDimensions['height'] - $cropSize) / 2); if(function_exists("ImageCreateTrueColor")) { $this->workingImage = ImageCreateTrueColor($cropSize,$cropSize); } else { $this->workingImage = ImageCreate($cropSize,$cropSize); } imagecopyresampled( $this->workingImage, $this->oldImage, 0, 0, $cropX, $cropY, $cropSize, $cropSize, $cropSize, $cropSize ); $this->oldImage = $this->workingImage; $this->newImage = $this->workingImage; $this->currentDimensions['width'] = $cropSize; $this->currentDimensions['height'] = $cropSize; } /** * Advanced cropping function that crops an image using $startX and $startY as the upper-left hand corner. * * @param int $startX * @param int $startY * @param int $width * @param int $height */ public function crop($startX,$startY,$width,$height) { //make sure the cropped area is not greater than the size of the image if($width > $this->currentDimensions['width']) $width = $this->currentDimensions['width']; if($height > $this->currentDimensions['height']) $height = $this->currentDimensions['height']; //make sure not starting outside the image if(($startX + $width) > $this->currentDimensions['width']) $startX = ($this->currentDimensions['width'] - $width); if(($startY + $height) > $this->currentDimensions['height']) $startY = ($this->currentDimensions['height'] - $height); if($startX < 0) $startX = 0; if($startY < 0) $startY = 0; if(function_exists("ImageCreateTrueColor")) { $this->workingImage = ImageCreateTrueColor($width,$height); } else { $this->workingImage = ImageCreate($width,$height); } imagecopyresampled( $this->workingImage, $this->oldImage, 0, 0, $startX, $startY, $width, $height, $width, $height ); $this->oldImage = $this->workingImage; $this->newImage = $this->workingImage; $this->currentDimensions['width'] = $width; $this->currentDimensions['height'] = $height; } /** * Outputs the image to the screen, or saves to $name if supplied. Quality of JPEG images can be controlled with the $quality variable * * @param int $quality * @param string $name */ public function show($quality=100,$name = '') { switch($this->format) { case 'GIF': if($name != '') { ImageGif($this->newImage,$name); } else { header('Content-type: image/gif'); ImageGif($this->newImage); } break; case 'JPG': if($name != '') { ImageJpeg($this->newImage,$name,$quality); } else { header('Content-type: image/jpeg'); ImageJpeg($this->newImage,'',$quality); } break; case 'PNG': if($name != '') { ImagePng($this->newImage,$name); } else { header('Content-type: image/png'); ImagePng($this->newImage); } break; } } /** * Saves image as $name (can include file path), with quality of # percent if file is a jpeg * * @param string $name * @param int $quality */ public function save($name,$quality=100) { $this->show($quality,$name); } /** * Creates Apple-style reflection under image, optionally adding a border to main image * * @param int $percent * @param int $reflection * @param int $white * @param bool $border * @param string $borderColor */ public function createReflection($percent,$reflection,$white,$border = true,$borderColor = '#a4a4a4') { $width = $this->currentDimensions['width']; $height = $this->currentDimensions['height']; $reflectionHeight = intval($height * ($reflection / 100)); $newHeight = $height + $reflectionHeight; $reflectedPart = $height * ($percent / 100); $this->workingImage = ImageCreateTrueColor($width,$newHeight); ImageAlphaBlending($this->workingImage,true); $colorToPaint = ImageColorAllocateAlpha($this->workingImage,255,255,255,0); ImageFilledRectangle($this->workingImage,0,0,$width,$newHeight,$colorToPaint); imagecopyresampled( $this->workingImage, $this->newImage, 0, 0, 0, $reflectedPart, $width, $reflectionHeight, $width, ($height - $reflectedPart)); $this->imageFlipVertical(); imagecopy($this->workingImage,$this->newImage,0,0,0,0,$width,$height); imagealphablending($this->workingImage,true); for($i=0;$i<$reflectionHeight;$i++) { $colorToPaint = imagecolorallocatealpha($this->workingImage,255,255,255,($i/$reflectionHeight*-1+1)*$white); imagefilledrectangle($this->workingImage,0,$height+$i,$width,$height+$i,$colorToPaint); } if($border == true) { $rgb = $this->hex2rgb($borderColor,false); $colorToPaint = imagecolorallocate($this->workingImage,$rgb[0],$rgb[1],$rgb[2]); imageline($this->workingImage,0,0,$width,0,$colorToPaint); //top line imageline($this->workingImage,0,$height,$width,$height,$colorToPaint); //bottom line imageline($this->workingImage,0,0,0,$height,$colorToPaint); //left line imageline($this->workingImage,$width-1,0,$width-1,$height,$colorToPaint); //right line } $this->oldImage = $this->workingImage; $this->newImage = $this->workingImage; $this->currentDimensions['width'] = $width; $this->currentDimensions['height'] = $newHeight; } /** * Inverts working image, used by reflection function * */ public function imageFlipVertical() { $x_i = imagesx($this->workingImage); $y_i = imagesy($this->workingImage); for($x = 0; $x < $x_i; $x++) { for($y = 0; $y < $y_i; $y++) { imagecopy($this->workingImage,$this->workingImage,$x,$y_i - $y - 1, $x, $y, 1, 1); } } } /** * Converts hexidecimal color value to rgb values and returns as array/string * * @param string $hex * @param bool $asString * @return array|string */ public function hex2rgb($hex, $asString = false) { // strip off any leading # if (0 === strpos($hex, '#')) { $hex = substr($hex, 1); } else if (0 === strpos($hex, '&H')) { $hex = substr($hex, 2); } // break into hex 3-tuple $cutpoint = ceil(strlen($hex) / 2)-1; $rgb = explode(':', wordwrap($hex, $cutpoint, ':', $cutpoint), 3); // convert each tuple to decimal $rgb[0] = (isset($rgb[0]) ? hexdec($rgb[0]) : 0); $rgb[1] = (isset($rgb[1]) ? hexdec($rgb[1]) : 0); $rgb[2] = (isset($rgb[2]) ? hexdec($rgb[2]) : 0); return ($asString ? "{$rgb[0]} {$rgb[1]} {$rgb[2]}" : $rgb); } /** * Reads selected exif meta data from jpg images and populates $this->imageMeta with appropriate values if found * */ public function gatherImageMeta() { //only attempt to retrieve info if exif exists if(function_exists("exif_read_data") && $this->format == 'JPG') { $imageData = exif_read_data($this->fileName); if(isset($imageData['Make'])) $this->imageMeta['make'] = ucwords(strtolower($imageData['Make'])); if(isset($imageData['Model'])) $this->imageMeta['model'] = $imageData['Model']; if(isset($imageData['COMPUTED']['ApertureFNumber'])) { $this->imageMeta['aperture'] = $imageData['COMPUTED']['ApertureFNumber']; $this->imageMeta['aperture'] = str_replace('/','',$this->imageMeta['aperture']); } if(isset($imageData['ExposureTime'])) { $exposure = explode('/',$imageData['ExposureTime']); $exposure = round($exposure[1]/$exposure[0],-1); $this->imageMeta['exposure'] = '1/' . $exposure . ' second'; } if(isset($imageData['Flash'])) { if($imageData['Flash'] > 0) { $this->imageMeta['flash'] = 'Yes'; } else { $this->imageMeta['flash'] = 'No'; } } if(isset($imageData['FocalLength'])) { $focus = explode('/',$imageData['FocalLength']); $this->imageMeta['focalLength'] = round($focus[0]/$focus[1],2) . ' mm'; } if(isset($imageData['DateTime'])) { $date = $imageData['DateTime']; $date = explode(' ',$date); $date = str_replace(':','-',$date[0]) . ' ' . $date[1]; $this->imageMeta['dateTaken'] = date('m/d/Y g:i A',strtotime($date)); } } } /** * Rotates image either 90 degrees clockwise or counter-clockwise * * @param string $direction */ public function rotateImage($direction = 'CW') { if($direction == 'CW') { $this->workingImage = imagerotate($this->workingImage,-90,0); } else { $this->workingImage = imagerotate($this->workingImage,90,0); } $newWidth = $this->currentDimensions['height']; $newHeight = $this->currentDimensions['width']; $this->oldImage = $this->workingImage; $this->newImage = $this->workingImage; $this->currentDimensions['width'] = $newWidth; $this->currentDimensions['height'] = $newHeight; } } ?>
-
do have exactly the same problem like psdealer!
-
i copied the hole admin directory in the admin direc. i followed the update doc. afterwards the test page showed the errors as described. anyone else who updated from 3.04 had these problems?
-
same problems here. test page says this: TEST_RESULTS_HEADING ERROR_HEADING_PERMISSIONS Permissions settings for the /hp/ae/includes/header_tags.php file appear to be incorrect. Change to 755 ERROR_HEADING_MISSING_FILE ERROR_MISSING_FILE ERROR_MISSING_FILE ERROR_MISSING_FILE ERROR_MISSING_FILE ERROR_MISSING_FILE ERROR_MISSING_FILE i have set to 755, nut error message keeps comin header_tags_fill_tags.php seems to work great, tested everything but header_tags_seo.php - page control - doenst seem to work that nice a better documentation would be nice....Keyword(s): Logo Text: Include: Default Title: Default Description Default Keywords: Default Logo: Category: Manufacturer: Product: OPTION_INCL_ROOT what are these for`? how can i set a revisit for these pages like in the standard ones on the right side?
-
Great contribution. Works out of the box. Suggestion: make the products shown in the carousel selectable via the admin interface! perhaps this contribution can help, cause much of the code can be reused for the selection: http://addons.oscommerce.com/info/651 greets
-
Hi toyicebear, THAT did the trick. really cool. thanks a lot. i did some heavy testing the last 2 hours an everything works. from your point of view, are there any negative things coming up using this (security, missing parameters and therefore missing functionality and so on?) now every .php from the frontend file is rewritten to .html correct? cool thing, ask myself why that isnt in the standard Ultimate SEO contri, dont u?
-
ah okay, i didnt know it was encrypted. okay than i will not buy it. i tried to use the htacces respectivly to rewrite it....i didnt work. tried these to variants: RewriteRule ^contact_us\.html$ contact_us.php RewriteRule /contact_us\.html$ contact_us.php none worked. is there something else to do? any suggestions? thx
-
Hi toyicebear, thx for your answer. really no way to make that with ultimate SEO? i wonder, cause thats the most adviced / promoted contribution for SEO. I would like to use that. especially after reading your comparism. it works quite find with header tags controller, besides. what is your opinion about this one: http://www.magic-seo-url.com/oscommerce/features.html sounds good, especially the duplicate content handling "story". costs 89 Euro, but perhaps i pay that, especially regarding duplicate content.
-
I noticed that some of my links still use the .php and not .html. My index page still loads as php. Also some of my other links such as the specials.php still load as php or all links in the information box. okay heres why: That's normal because these pages don't need URL rewriting. They never carry parameters like product-info.php. Your homepage is index.php and that's fine, because when that index.php carries parameters (such as /index.php?param1=A¶m2=cool.gif then it's rewritten to something like /blabhblah-1A-2B.html). No need to worry. anyway: i want to have all urls end with .html . i dont want to irritate my customers. how is that possible?
-
[CONTRIBUTION] Ultimate SEO URLs v2.1 - by Chemo
Jupiters replied to spidometrs's topic in General Add-Ons Support
i did some more research and it must be possible to have all sites with one URL structure.... i mean all files end with *.html contact_us.php -> contact_us.html etc.... see here: http://www.magic-seo-url.com/oscommerce/features.html and a demo shop: http://www.magic-seo-url.com/oscommerce/demo.html this one should also handle "duplicate content", but it costs money. how can we have the same structure as described above with Ultimate SEO? from my oint of view this is critical, some customers could think because of permanent URL changing that something is wrong. an sceptism is bad in ebusiness. -
[CONTRIBUTION] Ultimate SEO URLs v2.1 - by Chemo
Jupiters replied to spidometrs's topic in General Add-Ons Support
Hello, nice contribution. how do you handle the other pages like the contact.php, or everything else for example of the information box. there the url still is /catalog/contact.php for example. so you accept a mixed url structure? thx jupiters -
Hello Jack, i installed your contribution and it works and i like it. One thing: if i select "Missing Files" under "Page Control" i get a timeout message from php. THe same if i select "YES" on "Fill keywords for all added pages from derived keywords on actual pages?" under "Fill Tags". i use it on my WAMP System (using XAMPP) thx a lot greetings, jupiters
-
Hello Jack, what exactly is being optimized`? Jupiters
-
Hello, i read several threats and looked into some contributions. i think the problem could be solved with a good comunication. so my thought: cant we integrate the paypal site via an iframe. or the better in a lightbox or popup. after having paid the customer closes the popup or the lightbox and he immidiatly sees the shop page an can finish the order. now need for pressing the back button of the browser. your thoughts? greetings
-
another question: how do you use SPPC in combination with caching? i mean the generall caching system in osc doesnt cache the individual prices, so it can happen that person A sees a cached version with a wrong price, for example the price of person B. how do u handle the problem? i searched the contributions and i think this could be a good solution: http://www.oscommerce.com/community/contributions,5029 caching on the client side. your opinion?
-
Hello Jan, i know there are that many. but only some are ported to work with SPPC, all the others work in general cause they dont have to handle prices. but i think for many it is interesting to which VERSIONS do work together. for example it was said that X-sell and SPPC work together...but which versions? the last ones definitivly not. i tried them for more than 12 hours with fixing etc an it didnt work. i think others could spend their time if they knew there would be some compatibility issues. just me 2 cents greetings
-
Hello everybody, i would like to collect some compatibility issues: okay we know there are several contributions around SPPC. So which one does really work seamlessly with the latest version of SPPC 4.2.1b. lets collect. i can say that the latest X-Sell X-sell 2.4 optimized with cache Phocea 25 Jun 2008 doesnt work fully with SPPC 4.2.1b Fault: If products do not have their own seperate Price, they are NOT shown in the X-sell box in the fronted. they should be shown with the retail price. what about the Quantity Price break and so on...? greetings
-
Hi... Amazon.com has introduced a lot of new features, especially on the USA site. take a closer look for them directly on their site or here in this nice article... http://www.readwriteweb.com/archives/amazo...plogs_wikis.php so what contributions exist for osc to compete with this new trend? which one would be nice? or do you think web 2.0 isnt interesting? i begin to list some nice web2.0 features that already exist: 1. forum 2. ajax advanced search like google suggest 3. customers who bought this purchased also.... 4. your personal history didnt found something like tagging or tagclouds... what are your suggestions?
-
Connect OScommerce with Ebay and Ebay.Express
Jupiters replied to Jupiters's topic in Add-Ons Development
i installed it on a blank osc version and it seemed to work quite nice. i havent listed items on ebay, cause i dont have an account there yet. i think translation is no problem...can be done quite fast. as far as i have read on the german osc forum there are problems with the contribution. so for a productive system its perhaps not made in this stage. perhaps the community likes it and improves it. to have an impression get the pdfs...iveposted the link and there are a lot of screenshots... -
Connect OScommerce with Ebay and Ebay.Express
Jupiters replied to Jupiters's topic in Add-Ons Development
dont have to apologize for that. ;) yes you are right. it lists your auctions automatically, and if someone buys your product he gets an email with the confirmation. inside that mail is a link to confirm the order and the buyer is automatically routed to your store, where he can checkout...actually its an open source project which does the same like a commercial like this one (i hope i dont miss the forum rules if i post this link here): <yep>