Page 2 of 2 FirstFirst 12
Results 11 to 19 of 19

Thread: Google Trusted Sites and ITEM_Product_Search_Id on non-product pages

  1. #11
    Join Date
    Jan 2010
    Posts
    63

    Exclamation BOUNTY of $50 For Solution Using Concept In This Post!

    Hi Charlie,

    Coming back to your question about how to implement "Google Trusted Stores" code on all pages. I believe the key lies in a post by don.irwin here (Link), with his solution to adding Google Analytics to ADNSF by using an XmlPackage

    Yesterday, I installed this package and realized the same type of XML package could be used for "Google trusted stores" implementation.

    So here is the Idea:
    (bare with me as I pulled the concept from a couple of posts here on the forum):

    We need to create an Xml Package (like don.irwin) and register it with the template.master in the skin template directory, so that the template can do all the heavy lifting on all the pages of your store.

    The key features of the XML Package:

    1- The main code of the don.irwin's analytics package is modified is below with the Google trusted store info. The code is a concept that I have been kicking around, and will not work at this time. The following would require two account codes provided by Google. First the Trusted Store id represented by 4 X's in the code (XXXX) and the Google merchant account ID, represented by 7 X's in the code (XXXXXXX). Also, you need to put in your domain, instead of mine in the code. The question marks in the code (???????) should contain the ProductId when landing on a product page, but are blank when not on a product page:

    PLEASE DO NOT USE CONCEPT CODE, IT WILL PRODUCE ERRORS AT THIS TIME:
    Code:
    <?xml version="1.0" standalone="yes" ?>
    <package version="2.1" displayname="TrustedStore" debug="false" includeentityhelper="false">
      <query name="Order" rowElementName="OrderInfo">
        <sql>
          <![CDATA[
          select o.*, (case when o.AffiliateID = 0
    then 'None' else (select a.Name from dbo.Affiliate a  with (NOLOCK) where a.AffiliateID = o.AffiliateID) end) as AffiliateName From dbo.orders o with (NOLOCK)
    where o.ordernumber = @ordernum
           ]]>
        </sql>
        <queryparam paramname="@ordernum" paramtype="request" requestparamname="ordernumber" defvalue="0" sqlDataType="int" validationpattern="^\d{1,9}$"/>
      </query>
      <query name="OrderItems" rowElementName="Item">
        <sql>
          <![CDATA[
              SELECT  s.ShoppingCartRecID, 
                      s.OrderNumber, 
                      s.ProductID, 
                      s.VariantID, 
                      s.Quantity, 
                      s.ChosenColor, 
                      s.ChosenSize, 
                      s.OrderedProductName, 
                      s.OrderedProductVariantName, 
                      s.OrderedProductSKU, 
                      s.OrderedProductPrice, 
                      s.OrderedProductRegularPrice, 
                      s.OrderedProductSalePrice, 
                      s.OrderedProductExtendedPrice, 
                      s.OrderedProductQuantityDiscountName, 
                      s.OrderedProductQuantityDiscountID, 
                      s.OrderedProductQuantityDiscountPercent, 
                      s.IsShipSeparately, 
                      s.IsDownload, 
                      s.FreeShipping, 
                      s.TextOption, 
                      s.ShippingMethod, 
                      s.Notes, 
                      s.ExtensionData, 
                      s.CustomerEntersPrice, 
                      s.GiftRegistryForCustomerID, 
                      s.ShippingAddressID, 
                      s.ShippingDetail, 
                      s.SizeOptionPrompt, 
                      s.ColorOptionPrompt, 
                      s.TextOptionPrompt, 
                      s.IsTaxable, 
                      s.TaxClassID, 
                      s.TaxRate,
                      ISNULL(s.IsAKit, 0) AS IsAKit, 
                      ISNULL(s.IsAPack, 0) AS IsAPack, 
                      ISNULL(s.IsSystem, 0) AS IsSystem
              FROM dbo.Orders_ShoppingCart s WITH (NOLOCK) 
              WHERE s.ordernumber = @ordernum
              ORDER by s.ShippingAddressID
                ]]>
        </sql>
        <queryparam paramname="@ordernum" paramtype="request" requestparamname="ordernumber" defvalue="0" sqlDataType="int" validationpattern="^\d{1,9}$"/>
      </query>
    
      <PackageTransform>
        <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:aspdnsf="urn:aspdnsf" exclude-result-prefixes="aspdnsf">
          <xsl:output method="html" omit-xml-declaration="yes"/>
          <xsl:variable name="OrderNumber" select="/root/Order/OrderInfo/OrderNumber" />
          <xsl:template match="/">
            <!-- BEGIN: Google Trusted Store -->
            <!-- the code below needs to be run on all pages -->
    		<script type="text/javascript">
    		  var gts = gts || [];
    		  gts.push(["id", "XXXX"]);
    		  gts.push(["google_base_offer_id", "???????"]);
      		  gts.push(["google_base_subaccount_id", "XXXXXXX"]);
      		  gts.push(["google_base_country", "US"]);
      		  gts.push(["google_base_language", "en"]);
      		  
      		    (function() {
    		    var scheme = (("https:" == document.location.protocol) ? "https://" : "http://");
    		    var gts = document.createElement("script");
    		    gts.type = "text/javascript";
    		    gts.async = true;
    		    gts.src = scheme + "www.googlecommerce.com/trustedstores/gtmp_compiled.js";
    		    var s = document.getElementsByTagName("script")[0];
    		    s.parentNode.insertBefore(gts, s);
    		  })();
            </script>
    		<!-- END: Google Trusted Store -->
      
      		<!-- START Trusted Stores Order -->
      		<!-- the code below needs to be run only when on the order confirmation page -->
      		
      		<xsl:if test="/root/Runtime/PageName = 'orderconfirmation.aspx'">
    		<div id="gts-order" style="display:none;">
    		
    		  <!-- start order and merchant information -->
    		  <span id="gts-o-id"><xsl:value-of select="$OrderNumber" /></span>
    		  <span id="gts-o-domain">www.revgenetics.com</span>
    		  <span id="gts-o-email"><xsl:value-of select="/root/Order/OrderInfo/Email" /></span>
    		  <span id="gts-o-country"><xsl:value-of select="/root/Order/OrderInfo/BillingCountry" /></span>
    		  <span id="gts-o-currency">USD</span>
    		  <span id="gts-o-total"><xsl:value-of select="format-number(/root/Order/OrderInfo/OrderTotal, '0.00')" /></span>
    		  <span id="gts-o-discounts">0.00</span>
    		  <span id="gts-o-shipping-total"><xsl:value-of select="format-number(/root/Order/OrderInfo/OrderShippingCosts, '0.00')" /></span>
    		  <span id="gts-o-tax-total"><xsl:value-of select="format-number(/root/Order/OrderInfo/OrderTax, '0.00')" /></span>
    		  <script type="text/javascript">
    		  	var d1=new Date();
    		  	dl.setDate(dl.getDate() + 7);
    		  	document.write("<span id="gts-o-est-ship-date">"+d1.toString('yyyy-MM-dd')+"</span>");
    		  //<span id="gts-o-est-ship-date">d1.toString('yyyy-MM-dd');</span>
              </script>
    		  <span id="gts-o-has-preorder">N</span>
    		  <span id="gts-o-has-digital">N</span>
    		  <!-- end order and merchant information -->
    		  
                <xsl:apply-templates select="/root/OrderItems/Item" />
              </xsl:if>
          </xsl:template>
    
     		 <!-- start repeated item specific information -->
          <xsl:template match="Item">
     		<xsl:if test="/root/Runtime/PageName = 'orderconfirmation.aspx'">
     		
     	    <!-- the code below needs to be run only when on the order confirmation page -->
     
    		  <span class="gts-item">
    		    <span class="gts-i-name"><xsl:value-of select="OrderedProductName" /></span>
    		    <span class="gts-i-price"><xsl:value-of select="OrderedProductPrice" /></span>
    		    <span class="gts-i-quantity"><xsl:value-of select="Quantity" /></span>
    		    <span class="gts-i-prodsearch-id"><xsl:value-of select="ProductID" /></span>
    		    <span class="gts-i-prodsearch-store-id">XXXXXXX</span>
    		    <span class="gts-i-prodsearch-country">US</span>
    		    <span class="gts-i-prodsearch-language">en</span>
    		  </span>
    		 
            
              </xsl:if>
                <!-- end repeated item specific information -->
          </xsl:template>
        </xsl:stylesheet>
      </PackageTransform>
    </package>
    2- The key posts to create the template are don.irwin's post () that can do most of the work by modifiing the output. The code above represents my chicken scratch of the modifications. As for the ProductID represented in the code by my questions marks (??????), I am not sure how to query the product page for the product id to help complete the code.

    At this point, I would like to ask for help to complete this Xml Package. Don.Irwin and others, can you take a look to see if some of the concept code can be used?

    MUCH appreciated guys! Oh, and I will put a BOUNTY of $50, if you can modify this and make it work like don.irwin's code. So if you post a solution, and it works... send me your paypal email, and you get $50. Maybe others can add to the bounty, if they find the solution saves them hours and headaches.

    Thanks
    A

    EDIT!!
    PLEASE post the solution at this link, as I am trying to move this to the Xml Pacckage section of the forums:
    http://forums.aspdotnetstorefront.co...369#post115369

    Solutions will be accepted at the link above only. It also helps maintain code solutions in the right place in this forum, so others can benefit from them.

    Thanks! A
    Last edited by usascholar; 06-13-2012 at 07:12 AM.

  2. #12
    Join Date
    Mar 2009
    Posts
    78

    Default

    Hi USAScholar (A),

    Sorry for the late reply. I did not see this last post, as it was after your previous one, and became the top of page 2.

    I know that AspDotNetStorefront is working up a solution and think that is close at hand, so I am waiting for their lead.

    Your idea seems certainly plausible. I will respond on your other thread with another variation that I recently mastered that might be a different way to get at the same result.

    - Charlie

  3. #13
    Join Date
    Jan 2010
    Posts
    63

    Default

    Hi Charlie,

    Thanks, yes the idea is now working.

    I reworked my concept code, learned a little XSLT and I can see the "Google Trusted Store" code (along with item details that are sent to Google Base) is now working on my confirmation page.

    Do you happen to know how much is ADNSF going to charge for the solution?
    I do hope it's free.

    I haven't released the code, I want to make sure Google says my implementation is ok, before considering releasing it. They are supposed to let me know before they start getting my first 1000 transactions.

    BTW: I called BuySafe, and they have moved their image to the left on there end... so it shouldn't be a problem with the Google Trusted Store Badge once Google populates it in my store.

    Cheers
    A
    Last edited by usascholar; 06-14-2012 at 12:15 PM.

  4. #14
    Join Date
    Mar 2009
    Posts
    78

    Default

    Hi A,

    Glad you got it working, now go pay yourself ! (Like the motivation of money by the way!)

    As you might have picked up from earlier posts in this thread....

    1) Jo said "they will send every member of the Savvy Merchant Booster Program a "How To" document to tell you how to connect, and provide some new tools to help you with the daily feeds. Beyond that, we're already in a room, scoping out the DotFeed connector for Google Trusted Stores."

    2) and Jo also said "I hope you're at least signed up for our free Savvy Merchant program - we'll be creating training, videos, tools, resources and promos just as quickly as the clock allows us. Subscribe for free - it's available by invitation so if you've missed all the noise so far, please email sales@aspdotnetstorefront.com and ask to get put on the list."

    I know they are working on something, and can't/won't steal their thunder, or but you should feel confident they (AspDotNetStorefront) are working hard to lead the way in this huge google shopping shift.

    We should hear something soon on their tools to deal with this new program.

    Regards,

    - Charlie

  5. #15
    Join Date
    Mar 2009
    Posts
    78

    Default for those interested... Google just lowered the 1,000 track-able orders requirement

    "Hello Charlie,

    We are happy to say we have an update on our guideline requirements. The
    requirement has been changed to 28 days and at least 250 trackable orders.
    Let us know if you have any questions on this.

    Best Regards,
    Google Trusted Stores Team"

    That is good news!!

    I guess they had a lot of push back on that 1,000 track-able orders requirement.

  6. #16

    Default RE: for those interested... Google just lowered the 1,000 track-able orders requireme

    Charlie,

    I just wanted to say thank you for being so active on the forum, especially on the subject of Google Trusted Stores. As we have more information from Google we will update the forum accordingly but it's really great to know our customers are so actively involved.

    Stephanie

  7. #17
    Join Date
    Mar 2009
    Posts
    78

    Default

    Thanks Stephanie,

    There are some big changes coming and I just want to be ready as possible and benefit from planning rather than reacting to things after the fact !

    Thanks too, for your webinar efforts and Facebook session at the conference !

    - Charlie

  8. #18
    Join Date
    Mar 2009
    Posts
    78

    Thumbs down Google Trusted Stores - Sales Volume restrictions won't work for me....

    I have received another email from the people at the Google trusted stores program...

    Please note that in order to maintain participation in the program once the badge is visible, you must maintain an order volume of 100 transactions per month.

    Please see our Help Center for more information: http://support.google.com/trustedsto...rqyyo&cbrank=4

    Also, we did notice that your feeds aren't uploading daily and that no cancel feeds have been uploaded. For days where there are no shipped or cancelled orders, please upload a blank feed. Please let us know if you have any questions and we look forward to hearing from you soon!
    Bottom line for us, we are not at that volume yet, and won't be spending any more energy trying to qualify, back to spending time to build the business so we have the sales to qualify.

    In this case the egg comes before the chicken.

  9. #19
    Join Date
    Jan 2010
    Posts
    63

    Default

    Sorry to hear that.

    I do have more than 100 a month, so I will let you know if my duct tape reinforced Google trusted stores XMLPackage works.

    I just got the email from google saying that they are now in the monitoring stage with my setup.

    I am crossing fingers.. and toes.


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •