Announcement

Collapse
No announcement yet.

Setcom and Actinic

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Setcom and Actinic

    Hi

    Does anyone know if the Setcom (www.setcom.com) checkout buttons can be used with Actinic?

    They are the cheapest super merchants that I can find and they operate in 200 countries including the UK.

    Open an Account - Free
    Send Money - Free
    Add Funds - Free
    Monthly Fees - None
    Checkout Buttons - Free

    Receive Funds
    4.9% + $0.35 for US Dollars
    4.9% + €0.30 for Euro
    4.9% + £0.20 for Pound Sterling
    4.9% + R4.00 for South African Rand

    Withdraw Funds
    $2.50 for US Dollars
    €2.00 for Euro
    £1.50 for Pound Sterling
    R8.00 for South African Rand

    I expect to receive "A module needs to be written..." answer but am posting anyway just in case someone got it working.

    I have attached the implementation guide so that those with more knowledge may put me on the correct path.
    Attached Files
    "Opportunities multiply as they are seized." - Sun Tzu

    #2
    "A module needs to be written..."

    I think the developers kit for a grand is the only way.

    Comment


      #3
      Thanks Lee,

      I believe it would most definitely be worth Actinic's while to have a module developed.

      A single gateway solution that operates in so many countries and requires only one module to be written. The module will open up many more (maybe new) markets to Actinic.

      Just a thought.
      "Opportunities multiply as they are seized." - Sun Tzu

      Comment


        #4
        Jonathan,

        I will add this to the wish-list for you.

        Kind regards,
        Bruce King
        SellerDeck

        Comment


          #5
          Thanks Bruce

          Setcom have informed me that I could pass the information to them in the form of a url (https://....?LIDSKU=...&LIDDESC=...&...=...&LIDDESC1=...)

          More or less like an affiliate link described in the AUG but with a little more info.

          I am busy trying different solutions found in this forum in order to achieve what I need and so far have found two possibilities:

          1. Implement the script posted in http://community.actinic.com/showthread.php?t21216
          but when I do:

          a. I get a 500 Internal Server Error. I'm using Actinic ver 8.5 HBKA.
          b. Once it is working, how do I extract that info to be included in a URL?

          2. Implement the java posted in http://community.actinic.com/showthread.php?t=25439
          but when I do:

          a. I can modify the java to extract all the info I require except for the product price. How do I get the price?
          b. Once I get the price. How do I get this info into a URL?

          Any assistance would be greatly appreciated.
          "Opportunities multiply as they are seized." - Sun Tzu

          Comment


            #6
            For completeness, the following is the java that I am implementing and the source code generated in the reciept page:

            JAVA

            Code:
            <!-- Initialise the Array for Storing Details -->
            	<script type="text/javascript" >
            		var i;
            		i=0;
            		var myProdRefs = new Array();
            		var myProdDesc = new Array();
            		var myPrices = new Array();
            		var myQuantities = new Array();
            	</script>
            <!-- End Initialisation -->
            
            
            <script type="text/javascript" >
            	myProdRefs[i] = '<actinic:variable name="ProdRef" />';
            	myProdDesc[i] = '<actinic:variable name="ProductNameOnline" />';
            	myPrices[i] = '<actinic:variable name="Cost" />';
            	myQuantities[i] = '<actinic:variable name="Quantity" />';
            	i=i+1;
            </script>
            
            
            <script type="text/javascript" >
            	var Products='';
            	for (i=0;i<myProdRefs.length;i++)
            	{
            	if (myProdRefs[i] == '&nbsp;'){
            	//alert('Product with no reference');
            	}
            	else{
            	Products = Products + myProdRefs[i]+','+myProdDesc[i]+','+myPrices[i]+','+myQuantities[i]+';';
            	}
            	}
            	var OrderID = '<actinic:variable name="OrderNumberOnlineXML" />';
            </script>
            Source (Note: I have added 3 of item 1, 15 of item 2 and 10 of item 3 to the shopping cart)

            Code:
            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Receipt</title><BASE HREF="http://localhost/acatalog/"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta http-equiv="MSThemeCompatible" content="yes" /><link href="actinic.css" rel="stylesheet" type="text/css"><script language="javascript" type="text/javascript" src="actiniccore.js"></script><script language="javascript" type="text/javascript" src="actinicextras.js"></script><script language="javascript" type="text/javascript">
            <!-- 
            saveReferrer();
            // -->
            </script></head><body><br><div align="center"><img src="progress_bar_3.gif" title="Progress Bar" alt="Progress Bar" width="314" height="53" border="0"></div><br><form method="post" action="http://localhost/cgi-bin/os000001.pl"><input type="hidden" name="RANDOM" value="0.853851318359375" />  <INPUT TYPE=HIDDEN NAME=REFPAGE VALUE="http://localhost/acatalog/Pentax_Digital_SLR.html">
            <table border="0" cellpadding="5" cellspacing="2" width="600" align="center"><tr><td class="cartheading"> <table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td><strong>This is your receipt</strong></td><td align="right"><strong>This is not a tax invoice</strong></td></tr></table></td></tr><tr><td> Print this page and keep it for your records. If you need to contact us, refer to the "Order Number" below. Your order has been recorded.  Please fill in your credit card details below.  Then take this page and fax  or email it to:<br /><br /> <br /><table border="0" cellpadding="2" cellspacing="0"><tr><td valign="top"> Mr.&nbsp;Jonathan&nbsp;Snow<BR> Managing&nbsp;Member<BR> JLSS&nbsp;Print&nbsp;Media&nbsp;CC<BR> 69&nbsp;Winterberg,&nbsp;Vlottenberg&nbsp;Street<BR> Equestria&nbsp;Estate<BR> Equestria<BR> Pretoria<BR> 0041<BR> South&nbsp;Africa<BR></td><td valign="top"> &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Phone&nbsp;082&nbsp;499&nbsp;2319<BR> &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Fax&nbsp;086&nbsp;604&nbsp;3270<BR> &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Email: <A HREF="MAILTO:jsnow@webmail.co.za">jsnow@webmail.co.za</A><BR> &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp URL: <A HREF="http://www.splab.co.za">www.splab.co.za</A><BR></td></tr></table><br /><br /><table border="0" cellpadding="5" cellspacing="2" width="570"><tr><th width="50%" class="cartheading">Invoice Address:</th><th width="50%" class="cartheading">Deliver To:</th></tr><tr><td valign="top" class="cart">Mr Jonathan Snow<BR>
            
              JLSS&nbsp;Print&nbsp;Media&nbsp;CC<BR> P.O.Box&nbsp;71927<BR> The&nbsp;Willows<BR> Pretoria<BR> Gauteng<BR> 0041<BR> South&nbsp;Africa<BR> Phone:&nbsp;0824992319<BR>  Email:&nbsp;jsnow@webmail.co.za<BR> </td><td valign="top" class="cart">Mr Jonathan Snow<BR>
            
              JLSS&nbsp;Print&nbsp;Media&nbsp;CC<BR> P.O.Box&nbsp;71927<BR> The&nbsp;Willows<BR> Pretoria<BR> Gauteng<BR> 0041<BR> South&nbsp;Africa<BR> Phone:&nbsp;0824992319<BR>  Email:&nbsp;jsnow@webmail.co.za<BR> </td></tr> </table><br /><table border="0" cellpadding="2" cellspacing="2" width="570"><tr><td class="cartheading"><b>Date:</b></td><td colspan="2" class="cart"> 27 June 2007</td></tr><tr><td class="cartheading"><b>Order Number:</b></td><td colspan="2" class="cart"> S100026</td></tr>   <tr><td class="cartheading"><b>Payment method:</b></td><td colspan="2" class="cart"> Credit Card Details Sent Separately</td></tr> <tr><td class="cartheading"><b>Acceptable Credit Cards:</b></td><td class="cart"> Mastercard, Visa, Diners Club</td><td class="cart"> &lt;&lt;&lt;choose one</td></tr><tr><td class="cartheading"><b>Credit Card Number:</b></td><td colspan="2" nowrap class="cart"><br />______________________________________</td></tr><tr><td class="cartheading"><b>Credit Card Issue Number:</b></td><td colspan="2" class="cart"><br />_________</td></tr><tr><td class="cartheading"><b>Last three digits on Signature Strip::</b></td><td colspan="2" class="cart"><br />_________</td></tr><tr><td class="cartheading"><b>Credit Card Expiration Date:</b></td><td colspan="2" class="cart"><br />____________</td></tr><tr><td class="cartheading"><b>Credit Card Start Date:</b></td><td colspan="2" class="cart"><br />____________</td></tr><tr><td class="cartheading"><b>Signature:</b></td><td nowrap colspan="2" valign="bottom" class="cart"><br />X______________________________________</td></tr>   <tr><td class="cartheading"><b>Terms and Conditions:</b></td><td colspan="2" class="cart"> Accepted</td></tr></table><br /><b>Shopping Cart</b><table><tr><td><table width="580" border="0" cellpadding="3" cellspacing="2"><tr><th align="left" width="300" class="cartheading">DESCRIPTION</th><th align="right" width="80" class="cartheading">QUANTITY</th><th align="right" width="60" class="cartheading">PRICE</th><th align="right" width="60" class="cartheading">COST</th></tr><script type="text/javascript" >
            var i;
            i=0;
            var myProdRefs = new Array();
            var myProdDesc = new Array();
            var myPrices = new Array();
            var myQuantities = new Array();
            
            </script><tr><td colspan="2" class="cart"><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><script type="text/javascript" >
            myProdRefs[i] = '21';
            myProdDesc[i] = 'Pentax K10D Digital SLR';
            myPrices[i] = 'NETQUOTEVAR:COST';
            myQuantities[i] = '3';
            i=i+1;
            </script><td width="280"> Pentax K10D Digital SLR</td><td width="60"  align="right"> 3</td></tr></table></td><td align="right" class="cart"> R&nbsp;4,980.00</td><td align="right" class="cart"> R&nbsp;14,940.00</td></tr><tr><td colspan="2" class="cart"><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><script type="text/javascript" >
            myProdRefs[i] = '4';
            myProdDesc[i] = 'Pentax K100D Digital SLR Camera';
            myPrices[i] = 'NETQUOTEVAR:COST';
            myQuantities[i] = '15';
            i=i+1;
            
            </script><td width="280"> Pentax K100D Digital SLR Camera</td><td width="60"  align="right"> 15</td></tr></table></td><td align="right" class="cart"> R&nbsp;6,500.00</td><td align="right" class="cart"> R&nbsp;97,500.00</td></tr><tr><td colspan="2" class="cart"><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><script type="text/javascript" >
            myProdRefs[i] = '7';
            myProdDesc[i] = 'Pentax K110D Digital SLR Camera';
            myPrices[i] = 'NETQUOTEVAR:COST';
            myQuantities[i] = '10';
            i=i+1;
            
            </script><td width="280"> Pentax K110D Digital SLR Camera</td><td width="60"  align="right"> 10</td></tr></table></td><td align="right" class="cart"> R&nbsp;6,000.00</td><td align="right" class="cart"> R&nbsp;60,000.00</td></tr> <tr><td align="right" colspan="3"><b>Subtotal</b></td><td align="right" class="cart">R 172,440.00</td>  </tr> <tr><td align="right" colspan="3"><b>VAT</b></td><td align="right" class="cart">R 24,141.60</td></tr><tr><td align="right" colspan="3"><b>Total</b></td><td align="right" class="cartheading"><b>R 196,581.60</b></td></tr></table></td></tr></table></td></tr></table><br /><div align="center"><input type="hidden" name="HOME" value="shop.html" /><input type="submit" name="ACTION" value="Done" /><br><br><action="https://www.setcom.com/secure/index.cfm" method="post"><input type="hidden" name="buttonaction" value="checkout"><input type="hidden" name="merchantidentifier" value="52GRF82FRP"><input type="hidden" name="CurrencyAlphaCode" value="ZAR"><input type="hidden" name="MerchCustom" value="52GRF82FRP"><input type="hidden" name="LIDSKU" value=""><input type="hidden" name="LIDDesc" value=""><input type="hidden" name="LIDPrice" value=""><input type="hidden" name="LIDQty" value="1"><input type="hidden" name="ShippingRequired" value="0"><input type="hidden" name="IsVoucher" value="0"><input type="image" src="https://www.setcom.com/www/graphics/cartbuttons/co1.gif"></div></form><script type="text/javascript" >
            var Products='';
            for (i=0;i<myProdRefs.length;i++)
            {
            if (myProdRefs[i] == '&nbsp;'){
            //alert('Product with no reference');
            }
            else{
            Products = Products + myProdRefs[i]+','+myProdDesc[i]+','+myPrices[i]+','+myQuantities[i]+';';
            }
            }
            var OrderID = 'S100026';
            
            </script></body></html>
            "Opportunities multiply as they are seized." - Sun Tzu

            Comment


              #7
              I have asked internally, it may take some time for a response.

              Kind regards,
              Bruce King
              SellerDeck

              Comment


                #8
                I really appreciate that.

                Thanks Bruce
                "Opportunities multiply as they are seized." - Sun Tzu

                Comment


                  #9
                  Hi,

                  I have an update from development on this one...

                  Probably you will need to customise the format of the output produced by 'sub GetAffiliateData'. Near the bottom of 'sub GetAffiliateData' is a line with:-

                  sprintf("%s&f1=%s&f2=%s&f3=%1.2f"

                  Trade Doubler uses f1, f2 and f3 for the product reference, product name and product price respectively. Replce f1, f2 and f3 with whatever Setcom requires.

                  Each order line is separated by the character '|', change '|' in the line...

                  $sAffiliateData eq "" ? "" : "|",

                  to whatever Setcom requires.

                  Add NETQUOTEVAR:AFFILIATEDATA to the 'Receipt' to add the cart affiliate data after NETQUOTEVAR:THEORDERNUMBER and NETQUOTEVAR:NUMERICORDERTOTALCGI.

                  The script assumes that the currency has 2dp and that the untaxed
                  undiscounted values are to be passed to the affiliate script.

                  I have attached a corrected OrderScript for v 8.5.1

                  Kind regards,
                  Attached Files
                  Bruce King
                  SellerDeck

                  Comment


                    #10
                    AWESOME!!!

                    Thanks Bruce. I'll test the script today and give feedback.
                    "Opportunities multiply as they are seized." - Sun Tzu

                    Comment


                      #11
                      Thanks again Bruce and the development guys. I have the script passing the info as required.

                      The getaffiliatedata code is as follows (additions/changes are in bold):

                      Code:
                      sub GetAffiliateData
                      	{
                      	my ($pCartList) = @_;
                      	my $pCartObject = $::Session->GetCartObject($::TRUE);
                      	my $sAffiliateData = "";
                      	my @Response;
                      	my ($LIDCount);
                      	$LIDCount = 0;						# count for each LID item
                      	foreach my $pOrderDetail (@$pCartList)			# for each item in the cart
                      		{
                      		my %CurrentItem = %$pOrderDetail;			# get the next item
                      		#
                      		# Locate the section blob
                      		#
                      		@Response = ACTINIC::GetSectionBlobName($CurrentItem{SID}); # retrieve the blob name
                      		if ($Response[0] != $::SUCCESS)
                      			{
                      			return (@Response);
                      			}
                      		my $sSectionBlobName = $Response[2];
                      		#
                      		# locate this product's object
                      		#
                      		@Response = ACTINIC::GetProduct($CurrentItem{"PRODUCT_REFERENCE"},  $sSectionBlobName, ACTINIC::GetPath());
                      		if ($Response[0] != $::SUCCESS)
                      			{
                      			next;
                      			}
                      		my ($pProduct) = $Response[2];
                      		my $nPrice;
                      		#
                      		# Get the product price 
                      		#
                      		my $nProductPrice;
                      		my @aProductTax;
                      		my ($nStatus, $sMessage);
                      		my ($sTax1Band, $sTax2Band);
                      
                      		($nStatus, $sMessage, $nProductPrice, 	$nPrice, $sTax1Band,	$sTax2Band,	@aProductTax) = 
                      			$pCartObject->GetCartItemPrice($pOrderDetail);
                      		if ($nStatus == $::FAILURE)					# general error
                      			{
                      			return ($nStatus, $sMessage);				# return error
                      			}		
                      		
                      		if ($LIDCount == 0)
                      			{
                      			$sAffiliateData .= sprintf("%sLIDSKU=%s&LIDDesc=%s&LIDPrice=%1.2f&LIDQty=%s",
                      				$sAffiliateData eq "" ? "" : "&",
                      				$CurrentItem{"PRODUCT_REFERENCE"},
                      				$pProduct->{"NAME"},
                      				$nProductPrice/$CurrentItem{"QUANTITY"}*1.06/100,
                      				$CurrentItem{"QUANTITY"});
                      			}
                      		else
                      			{
                      			$sAffiliateData .= 			sprintf("%sLIDSKU$LIDCount=%s&LIDDesc$LIDCount=%s&LIDPrice$LIDCount=%1.2f&LIDQty$LIDCount=%s",
                      				$sAffiliateData eq "" ? "" : "&",
                      				$CurrentItem{"PRODUCT_REFERENCE"},
                      				$pProduct->{"NAME"},
                      				$nProductPrice/$CurrentItem{"QUANTITY"}*1.06/100,
                      				$CurrentItem{"QUANTITY"});
                      			}
                      		$LIDCount++;			
                      		}
                      	return ($::SUCCESS, '', $sAffiliateData);
                      	}
                      This will result in the following info being made available to be attached to a url:
                      Code:
                      &LIDSKU=prodref&LIDDesc=product short description&LIDPrice=unit price excl VAT + 6% surcharge&LIDQty=quantity ordered&LIDSKU1=...&LIDDesc1=...&LIDPrice1=...&LIDQty1=...&LIDSKU2=...&LIDDesc2=...&LIDPrice2=...&LIDQty2=...
                      Explanation:
                      The code will loop through the checkout basket creating an info line for each product. The unit price is calculated by taking the line total and dividing it by the quantity. A 6% credit card surcharge is then added to each item.
                      I have two prices listed, cash & credit card giving the customers the choice. Credit card prices are 6% higher than cash prices but the basket only lists the cash prices and the script does not include the surcharge. Therefore, the 6% must be added when passing the info.

                      The other fixed info that Setcom requires is hardcoded into the link that is placed on the Receipt page:
                      Code:
                      <a href="https://www.setcom.com/secure/index.cfm?buttonaction=checkout&merchantidentifier=***&CurrencyAlphaCode=ZAR
                      By adding &NETQUOTEVAR:AFFILIATEDATA to the end of the above link, you are able to create a link that can pass all the required info to Setcom.

                      I intend passing the info to Setcom in the form of a "Pay Now" button that will be displayed on the Receipt page. This button should only be visible/enabled if the customer has selected to pay with a credit card (credit card details sent seperately that has been modified to "mimick" paying with a credit card). And the "Done" button should be hidden/disabled.

                      I'll post here if I get it right.
                      "Opportunities multiply as they are seized." - Sun Tzu

                      Comment


                        #12
                        Nice one, thanks for posting back.

                        Kind regards,
                        Bruce King
                        SellerDeck

                        Comment

                        Working...
                        X