Jump to content

Recommended Posts

I am trying to implement Google Trusted Store JavaScript code into my store at http://www.mylockpicks.com. The most difficult part is that I don't know all the variables that need to be inserted in the code for Google to recognize a distinct order each time, and I don't know how to create a clean IF/THEN/ELSE statement to have it repeat the last portion for each product purchased in a single order. The code is (with the dynamic values needed in ALL CAPS):

 

<!-- START Trusted Stores Order -->
<div id="gts-order" style="display:none;">

 <!-- start order and merchant information -->
 <span id="gts-o-id">MERCHANT_ORDER_ID</span>
 <span id="gts-o-domain">MERCHANT_ORDER_DOMAIN</span>
 <span id="gts-o-email">CUSTOMER_EMAIL</span>
 <span id="gts-o-country">CUSTOMER_COUNTRY</span>
 <span id="gts-o-currency">CURRENCY</span>
 <span id="gts-o-total">ORDER_TOTAL</span>
 <span id="gts-o-discounts">ORDER_DISCOUNTS</span>
 <span id="gts-o-shipping-total">ORDER_SHIPPING</span>
 <span id="gts-o-tax-total">ORDER_TAX</span>
 <span id="gts-o-est-ship-date">ORDER_EST_SHIP_DATE</span>
 <span id="gts-o-has-preorder">HAS_BACKORDER_PREORDER</span>
 <span id="gts-o-has-digital">HAS_DIGITAL_GOODS</span>
 <!-- end order and merchant information -->

 <!-- start repeated item specific information -->
 <!-- item example: this area repeated for each item in the order -->
 <span class="gts-item">
<span class="gts-i-name">ITEM_NAME</span>
<span class="gts-i-price">ITEM_PRICE</span>
<span class="gts-i-quantity">ITEM_QUANTITY</span>
<span class="gts-i-prodsearch-id">ITEM_GOOGLE_SHOPPING_ID</span>
<span class="gts-i-prodsearch-store-id">ITEM_GOOGLE_SHOPPING_ACCOUNT_ID</span>
<span class="gts-i-prodsearch-country">ITEM_GOOGLE_SHOPPING_COUNTRY</span>
<span class="gts-i-prodsearch-language">ITEM_GOOGLE_SHOPPING_LANGUAGE</span>
 </span>
 <!-- end item 1 example -->
 <!-- end repeated item specific information -->

</div>
<!-- END Trusted Stores -->

 

Google does require that two separate code snippets are put in, but I was able to handle the first one just fine by forcing it to compile into my current theme. Please help me figure this second part out, as it is supposed to go on my confirmation page, after a customer checks out, to allow them to option of participating in Google's Trusted Stores. Thank you in advance for any help I can get.

Link to comment
Share on other sites

Issue #2 with this code. If you simply paste it into Prestashop, regardless of having the right variables, it will cause a 500 Server Error. I have learned that it requires a module that only appears on certain pages, switching when it get's to the checkout module. If anyone has successfully implemented this, please help. Otherwise, let's at least start compiling what we do know and see if we can't come up with a solution.

Link to comment
Share on other sites

  • 3 weeks later...
  • 5 months later...

Thank you for your reply japanimeshop, here's the code so far:

 

blocktrustedstores.php

 

 

class blocktrustedstores extends Module
{
public function __construct()
{
$this->name = 'blocktrustedstores';
$this->tab = 'front_office_features';
$this->version = '1.6';
$this->author = 'PrestaShop';
$this->need_instance = 0;

parent::__construct();

$this->displayName = $this->l('Google Trusted Stores');
$this->description = $this->l('Google Trusted Stores');

}

public function install()
{
if (!parent::install() OR !$this->registerHook('footer') OR !$this->registerHook('header'))
return false;
return true;
}



public function getContent()
{
global $cookie;

/* display the module name */
$this->_html = '<h2>'.$this->displayName.'</h2>';
$errors = '';

if (Tools::isSubmit('submitUpdate'))
{
Configuration::updateValue('ITEM_GOOGLE_SHOPPING_ACCOUNT_ID', $_POST['ITEM_GOOGLE_SHOPPING_ACCOUNT_ID']);
Configuration::updateValue('Trusted_Baged_ID', $_POST['Trusted_Baged_ID']);
}

$this->_displayForm();

return $this->_html;
}

private function _displayForm()
{
global $cookie;

$this->_html .= '
<form method="post" action="'.Tools::safeOutput($_SERVER['REQUEST_URI']).'" enctype="multipart/form-data">
<fieldset style="width: 905px;">
<legend><img src="'.$this->_path.'logo.gif" alt="" title="" /> '.$this->displayName.'</legend>
<label>'.$this->l('Google Merchant ID ').'</label>
<div class="margin-form"> <input type="text" name="ITEM_GOOGLE_SHOPPING_ACCOUNT_ID" value="'.Configuration::get('ITEM_GOOGLE_SHOPPING_ACCOUNT_ID').'" />';

$this->_html .= '
<p class="clear">'.$this->l('Appears along top of homepage').'</p>
</div>
<label>'.$this->l('Trusted Badge ID').'</label>
<div class="margin-form"><input type="text" name="Trusted_Baged_ID" value="'.Configuration::get('Trusted_Baged_ID').'" />';

$this->_html .= '
<div class="clear"></div>
</div>
<div class="clear pspace"></div>
<div class="margin-form clear"><input type="submit" name="submitUpdate" value="'.$this->l('Update the editor').'" class="button" /></div>
</fieldset>
</form>';
}
public function getCountryNameOfCustomer()
{
global $cookie, $smarty;
$customerInfo = new Customer($cookie->id_customer);
$getCurrentCountryIdOfCustomer = $customerInfo->getCurrentCountry($cookie->id_customer);

$getCountryNameOfCustomer = Db::getInstance()->ExecuteS('SELECT name FROM `'._DB_PREFIX_.'country_lang` WHERE `id_country` = "'.(int)$getCurrentCountryIdOfCustomer.'" AND id_lang = "'.$cookie->id_lang.'"');
return $getCountryNameOfCustomer[0]['name'];
}

public function getCurrencyNameOfOrder($getOrder)
{
$getCurrencyNameOfOrder = Currency::getCurrency($getOrder->id_currency);
return $getCurrencyNameOfOrder['name'];
}

public function hookFooter($params)
{
global $cookie, $smarty;

$orderId = (int)Tools::getValue('id_order');

if(isset($orderId) && $orderId != '')
{
$getOrder = new Order($orderId);
$cartObj = new Cart($getOrder->id_cart);
$getProduct = $cartObj->getProducts();
$total_tax = $cartObj->getOrderTotal() - $cartObj->getOrderTotal(false);

$today = date("Y-m-d"); 
  $shipDate = strtotime(date("Y-m-d", strtotime($today)) . " +1 week");

$smarty->assign(array('products' => $getProduct,
'order' => $getOrder,
'countryNameOfCustomer' => $this->getCountryNameOfCustomer(),
                'currencyNameOfOrder' => $this->getCurrencyNameOfOrder($getOrder),
'ITEM_GOOGLE_SHOPPING_ACCOUNT_ID' => Configuration::get('ITEM_GOOGLE_SHOPPING_ACCOUNT_ID'),
'total_tax' => $total_tax,
'shipDate' => $shipDate
));

return $this->display(__FILE__, 'blockTrustedStoresFooter.tpl');
}
}

public function hookHeader()
{

global $cookie, $smarty;
$smarty->assign(array('Trusted_Baged_ID' => Configuration::get('Trusted_Baged_ID'),
'ITEM_GOOGLE_SHOPPING_ACCOUNT_ID' => Configuration::get('ITEM_GOOGLE_SHOPPING_ACCOUNT_ID'),
'id_product' => (int)Tools::getValue('id_product')
));
return $this->display(__FILE__, 'blockTrustedStoresHeader.tpl');
}
}

 

blockTrustedStoresFooter.tpl

 

 


{if $page_name !='order-confirmation'}
<!-- START Trusted Stores Order -->
<div id="gts-order" style="display:none;">
<!-- start order and merchant information -->
<span id="gts-o-id">{$order->id}</span>
<span id="gts-o-domain">{$base_dir}</span>
<span id="gts-o-email">{$cookie->email}</span>
<span id="gts-o-country">{$countryNameOfCustomer}</span>
<span id="gts-o-currency">{$currencyNameOfOrder}</span>
<span id="gts-o-total">{$order->total_paid}</span>
<span id="gts-o-discounts">{$order->total_discounts}</span>
<span id="gts-o-shipping-total">{$order->total_shipping}</span>
<span id="gts-o-tax-total">{$total_tax}</span>
<span id="gts-o-est-ship-date">{$shipDate}</span>
<span id="gts-o-has-preorder">N</span>
<span id="gts-o-has-digital">N</span>
<!-- end order and merchant information -->
<!-- start repeated item specific information -->
<!-- item example: this area repeated for each item in the order -->
<span class="gts-item">
{foreach from=$products item=product name=products}
<span class="gts-i-name">{$product.name}</span>
       <span class="gts-i-price">{if $priceDisplay}{$product.price}{else}{$product.price_tax_exc}{/if}</span>
       <span class="gts-i-quantity">{$product.cart_quantity}</span>
       <span class="gts-i-prodsearch-id">{$product.id_product}</span> 
       <span class="gts-i-prodsearch-store-id">{$ITEM_GOOGLE_SHOPPING_ACCOUNT_ID}</span> 
       <span class="gts-i-prodsearch-country">US</span>
       <span class="gts-i-prodsearch-language">EN</span>
{/foreach}


</span>
<!-- end item 1 example -->
<!-- end repeated item specific information -->
</div>
<!-- END Trusted Stores -->
{/if}

 

blockTrustedStoresHeader.tpl

 

 

{if $page_name !='order'}
<!-- BEGIN: Google Trusted Store -->
<script type="text/javascript">
var gts = gts || [];
gts.push(["id", "{$Trusted_Baged_ID}"]);
gts.push(["google_base_offer_id", "{$id_product}"]);
gts.push(["google_base_subaccount_id", "{$ITEM_GOOGLE_SHOPPING_ACCOUNT_ID}"]);
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 -->
{/if}

 

config.xml

 

 

 





<?xml version="1.0" encoding="UTF-8" ?>
<module>
<name>blocktrustedstores</name>
<displayName><![CDATA[Google Trusted Stores]]></displayName>
<version><![CDATA[1.0]]></version>
<description><![CDATA[Google Trusted Stores]]></description>
<author><![CDATA[PrestaShop]]></author>
<tab><![CDATA[front_office_features]]></tab>
<is_configurable>1</is_configurable>
<need_instance>0</need_instance>
<limited_countries></limited_countries>
</module>



 

Anyone that can contribute to this, let's try and make a package for everyone.

  • Like 1
Link to comment
Share on other sites

  • 5 months later...

How are you guys sending Google the "data feed". This is how they explain the feed on Google Trusted Stores as 1 of the requirements.

 

"The shipment feed and cancellation feed are data files you provide to Google so that we may track the reliability of your shipping and service. You create the feeds according to our specifications, and then use the Data Feeds tool in Google Merchant Center to send the feed to Google."

Link to comment
Share on other sites

  • 4 months later...

Thank you for your reply japanimeshop, here's the code so far:

 

blocktrustedstores.php

 

 

class blocktrustedstores extends Module
{
public function __construct()
{
$this->name = 'blocktrustedstores';
$this->tab = 'front_office_features';
$this->version = '1.6';
$this->author = 'PrestaShop';
$this->need_instance = 0;

parent::__construct();

$this->displayName = $this->l('Google Trusted Stores');
$this->description = $this->l('Google Trusted Stores');

}

public function install()
{
if (!parent::install() OR !$this->registerHook('footer') OR !$this->registerHook('header'))
return false;
return true;
}



public function getContent()
{
global $cookie;

/* display the module name */
$this->_html = '<h2>'.$this->displayName.'</h2>';
$errors = '';

if (Tools::isSubmit('submitUpdate'))
{
Configuration::updateValue('ITEM_GOOGLE_SHOPPING_ACCOUNT_ID', $_POST['ITEM_GOOGLE_SHOPPING_ACCOUNT_ID']);
Configuration::updateValue('Trusted_Baged_ID', $_POST['Trusted_Baged_ID']);
}

$this->_displayForm();

return $this->_html;
}

private function _displayForm()
{
global $cookie;

$this->_html .= '
<form method="post" action="'.Tools::safeOutput($_SERVER['REQUEST_URI']).'" enctype="multipart/form-data">
<fieldset style="width: 905px;">
<legend><img src="'.$this->_path.'logo.gif" alt="" title="" /> '.$this->displayName.'</legend>
<label>'.$this->l('Google Merchant ID ').'</label>
<div class="margin-form"> <input type="text" name="ITEM_GOOGLE_SHOPPING_ACCOUNT_ID" value="'.Configuration::get('ITEM_GOOGLE_SHOPPING_ACCOUNT_ID').'" />';

$this->_html .= '
<p class="clear">'.$this->l('Appears along top of homepage').'</p>
</div>
<label>'.$this->l('Trusted Badge ID').'</label>
<div class="margin-form"><input type="text" name="Trusted_Baged_ID" value="'.Configuration::get('Trusted_Baged_ID').'" />';

$this->_html .= '
<div class="clear"></div>
</div>
<div class="clear pspace"></div>
<div class="margin-form clear"><input type="submit" name="submitUpdate" value="'.$this->l('Update the editor').'" class="button" /></div>
</fieldset>
</form>';
}
public function getCountryNameOfCustomer()
{
global $cookie, $smarty;
$customerInfo = new Customer($cookie->id_customer);
$getCurrentCountryIdOfCustomer = $customerInfo->getCurrentCountry($cookie->id_customer);

$getCountryNameOfCustomer = Db::getInstance()->ExecuteS('SELECT name FROM `'._DB_PREFIX_.'country_lang` WHERE `id_country` = "'.(int)$getCurrentCountryIdOfCustomer.'" AND id_lang = "'.$cookie->id_lang.'"');
return $getCountryNameOfCustomer[0]['name'];
}

public function getCurrencyNameOfOrder($getOrder)
{
$getCurrencyNameOfOrder = Currency::getCurrency($getOrder->id_currency);
return $getCurrencyNameOfOrder['name'];
}

public function hookFooter($params)
{
global $cookie, $smarty;

$orderId = (int)Tools::getValue('id_order');

if(isset($orderId) && $orderId != '')
{
$getOrder = new Order($orderId);
$cartObj = new Cart($getOrder->id_cart);
$getProduct = $cartObj->getProducts();
$total_tax = $cartObj->getOrderTotal() - $cartObj->getOrderTotal(false);

$today = date("Y-m-d"); 
   $shipDate = strtotime(date("Y-m-d", strtotime($today)) . " +1 week");

$smarty->assign(array('products' => $getProduct,
 'order' => $getOrder,
 'countryNameOfCustomer' => $this->getCountryNameOfCustomer(),
                 'currencyNameOfOrder' => $this->getCurrencyNameOfOrder($getOrder),
 'ITEM_GOOGLE_SHOPPING_ACCOUNT_ID' => Configuration::get('ITEM_GOOGLE_SHOPPING_ACCOUNT_ID'),
 'total_tax' => $total_tax,
 'shipDate' => $shipDate
));

return $this->display(__FILE__, 'blockTrustedStoresFooter.tpl');
}
}

public function hookHeader()
{

global $cookie, $smarty;
$smarty->assign(array('Trusted_Baged_ID' => Configuration::get('Trusted_Baged_ID'),
'ITEM_GOOGLE_SHOPPING_ACCOUNT_ID' => Configuration::get('ITEM_GOOGLE_SHOPPING_ACCOUNT_ID'),
'id_product' => (int)Tools::getValue('id_product')
));
return $this->display(__FILE__, 'blockTrustedStoresHeader.tpl');
}
}
blockTrustedStoresFooter.tpl

 

 


{if $page_name !='order-confirmation'}
<!-- START Trusted Stores Order -->
<div id="gts-order" style="display:none;">
<!-- start order and merchant information -->
<span id="gts-o-id">{$order->id}</span>
<span id="gts-o-domain">{$base_dir}</span>
<span id="gts-o-email">{$cookie->email}</span>
<span id="gts-o-country">{$countryNameOfCustomer}</span>
<span id="gts-o-currency">{$currencyNameOfOrder}</span>
<span id="gts-o-total">{$order->total_paid}</span>
<span id="gts-o-discounts">{$order->total_discounts}</span>
<span id="gts-o-shipping-total">{$order->total_shipping}</span>
<span id="gts-o-tax-total">{$total_tax}</span>
<span id="gts-o-est-ship-date">{$shipDate}</span>
<span id="gts-o-has-preorder">N</span>
<span id="gts-o-has-digital">N</span>
<!-- end order and merchant information -->
<!-- start repeated item specific information -->
<!-- item example: this area repeated for each item in the order -->
<span class="gts-item">
{foreach from=$products item=product name=products}
<span class="gts-i-name">{$product.name}</span>
        <span class="gts-i-price">{if $priceDisplay}{$product.price}{else}{$product.price_tax_exc}{/if}</span>
        <span class="gts-i-quantity">{$product.cart_quantity}</span>
        <span class="gts-i-prodsearch-id">{$product.id_product}</span> 
        <span class="gts-i-prodsearch-store-id">{$ITEM_GOOGLE_SHOPPING_ACCOUNT_ID}</span> 
        <span class="gts-i-prodsearch-country">US</span>
        <span class="gts-i-prodsearch-language">EN</span>
{/foreach}


</span>
<!-- end item 1 example -->
<!-- end repeated item specific information -->
</div>
<!-- END Trusted Stores -->
{/if}

blockTrustedStoresHeader.tpl

 

 

{if $page_name !='order'}
<!-- BEGIN: Google Trusted Store -->
<script type="text/javascript">
var gts = gts || [];
gts.push(["id", "{$Trusted_Baged_ID}"]);
gts.push(["google_base_offer_id", "{$id_product}"]);
gts.push(["google_base_subaccount_id", "{$ITEM_GOOGLE_SHOPPING_ACCOUNT_ID}"]);
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 -->
{/if}
config.xml

 

 

 





<?xml version="1.0" encoding="UTF-8" ?>
<module>
<name>blocktrustedstores</name>
<displayName><![CDATA[Google Trusted Stores]]></displayName>
<version><![CDATA[1.0]]></version>
<description><![CDATA[Google Trusted Stores]]></description>
<author><![CDATA[PrestaShop]]></author>
<tab><![CDATA[front_office_features]]></tab>
<is_configurable>1</is_configurable>
<need_instance>0</need_instance>
<limited_countries></limited_countries>
</module>



Anyone that can contribute to this, let's try and make a package for everyone.

 

Thanks For these all instruction.

Really Nice Tutorial, As I know up to now is, Following things must be required to add google trusted store.

1. Feeds ( Shipment + Cancellation ) for orders on daily base.

2. Then There need to integrate two codes one in all pages and one in order confirmation page.

 

So how can I insert code only on order confirmation?

Link to comment
Share on other sites

  • 4 weeks later...

Hello to all,

 

Just a quick message to let you know that my company, Business Tech, has released a fully functional Google Trusted Stores module: 

 

http://addons.prestashop.com/en/advertising-marketing-newsletter-modules/9783-google-trusted-stores.html

 

It's of course compatible and meant to work with our Google Merchant Center module, as the product ID's need to be identical on both sides, and just using the database id_product is not enough because of multishop and multi-country considerations... And this is handled correctly in both modules.

 

We're going through an evalution period with Google so that the module can become certified by Google and we need to document a few successsful integrations.

 

So... Anyone interested in a free copy of the module, including full installation and support, please PM me so we can work together. This offer is valid only for the first 5 merchants to reply and qualify for the program, which includes the following Google prerequisites:

 

- You must have a minimum of 200 orders per month

- You need to work with carriers that provide online tracking numbers, such as UPS or FedEx, or any other carrier that satisfies this condition

- You need to have an SSL certificate installed on your website

 

So, again: if you're interested and pass the above requirements, then please PM me.

 

Best,

 

-David

Edited by David Niry (see edit history)
  • Like 1
Link to comment
Share on other sites

Hello David, 

I am able to make simple module where can I have configuration for google trusted store id and merchant store id and uploaded feeds separately.

I have looked into your modules link and seems like have advanced configuration. I am interested in this module. Actually I am done with all steps that google requires but as my module have some steps that is bit hard to work with for merchants.

Link to comment
Share on other sites

Hi divyeshp,

 

Great ! Please PM me and I will send you instructions to move forward from here and benefit from the free offer.

 

Note: I will be away on a business trip next week from Tuesday to Friday, so if you PM me today or this week-end, then we can try to do the installation and configuration together via TeamViwever on Monday. Otherwise, it will have to wait until the following week.

 

Best,

 

-David

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

Hello to all,

 

Just a quick message to let you know that my company, Business Tech, has released a fully functional Google Trusted Stores module: 

 

http://addons.prestashop.com/en/advertising-marketing-newsletter-modules/9783-google-trusted-stores.html

 

It's of course compatible and meant to work with our Google Merchant Center module, as the product ID's need to be identical on both sides, and just using the database id_product is not enough because of multishop and multi-country considerations... And this is handled correctly in both modules.

 

We're going through an evalution period with Google so that the module can become certified by Google and we need to document a few successsful integrations.

 

So... Anyone interested in a free copy of the module, including full installation and support, please PM me so we can work together. This offer is valid only for the first 5 merchants to reply and qualify for the program, which includes the following Google prerequisites:

 

- You must have a minimum of 200 orders per month

- You need to work with carriers that provide online tracking numbers, such as UPS or FedEx, or any other carrier that satisfies this condition

- You need to have an SSL certificate installed on your website

 

So, again: if you're interested and pass the above requirements, then please PM me.

 

Best,

 

-David

 

Hello,

 

Does your offer still stand?

 

Thanks,

Alex

Link to comment
Share on other sites

  • 6 months later...

Hello,

 

Yes, please e-mail us on [email protected] and we will let you know all that we need from you. 

 

Please make sure before you do that you fulfill these Google requirements:

 

- You must have a minimum of 200 orders per month

- You need to work with carriers that provide online tracking numbers, such as UPS or FedEx, or any other carrier that satisfies this condition

- You need to have an SSL certificate installed on your website

Link to comment
Share on other sites

  • 1 month later...

Hello to all,

 

Just a quick message to let you know that my company, Business Tech, has released a fully functional Google Trusted Stores module: 

 

http://addons.prestashop.com/en/advertising-marketing-newsletter-modules/9783-google-trusted-stores.html

 

It's of course compatible and meant to work with our Google Merchant Center module, as the product ID's need to be identical on both sides, and just using the database id_product is not enough because of multishop and multi-country considerations... And this is handled correctly in both modules.

 

We're going through an evalution period with Google so that the module can become certified by Google and we need to document a few successsful integrations.

 

So... Anyone interested in a free copy of the module, including full installation and support, please PM me so we can work together. This offer is valid only for the first 5 merchants to reply and qualify for the program, which includes the following Google prerequisites:

 

- You must have a minimum of 200 orders per month

- You need to work with carriers that provide online tracking numbers, such as UPS or FedEx, or any other carrier that satisfies this condition

- You need to have an SSL certificate installed on your website

 

So, again: if you're interested and pass the above requirements, then please PM me.

 

Best,

 

-David

 

Hi David,

 

Is there any chance i can take advantage of this offer?

 

Looking forward to hearing from you.

 

Dan

Link to comment
Share on other sites

Di Dan,

 

Thanks for your message.

 

Sure. PM me here with your e-mail address, and I will get back to you so we can get this organized for you. But basically, we will need to set up a time to do Skype and TeamViewer / screen sharing to get you set up.

 

One question: do you already have an SSL certificate installed on your own domain name (shared SSL won't work). It is a Google prerequisite.

 

Best,

 

-David

Link to comment
Share on other sites

  • 5 months later...

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
×
×
  • Create New...