Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

E-Commerce Modules /

Discuss about the various e-commerce modules available:
Ecommerce, SS Shop, SilverCart and SwipeStripe
Alternatively, have a look the shared mailinglist.

Moderators: martimiz, Nicolaas, Sean, frankmullenger, biapar, Willr, Ingo, Jedateach, swaiba, simon_w

How i got the latest eCommerce trunk to work with paypal


Reply


39 Posts   6497 Views

Avatar
marc79

Community Member, 65 Posts

18 June 2011 at 2:47am

A fresh install of 0.8.2 seems to have done it (was previously using 0.8.1). With the payment module of course and PaypalExpressCheckoutPayment.

My config file looks like this:

// copy the lines below to your mysite/_config.php file and set as required.
// __________________________________START ECOMMERCE MODULE CONFIG __________________________________
//The configuration below is not required, but allows you to customise your ecommerce application - check for the defalt value first.
// * * * DEFINITELY MUST SET
Order::set_email("your name <sales@myshop.com>");
Order::set_receipt_subject("thank you for your order at www.myshop.com");
Order::set_modifiers(array("SimpleShippingModifier"));

// * * * HIGHLY RECOMMENDED SETTINGS NON-ECOMMERCE
Payment::set_site_currency('GBP');
Geoip::$default_country_code = "GB";
i18n::set_locale('en_GB');
//setlocale (LC_TIME, 'en_GB@dollar', 'en_GB.UTF-8', 'en_GB', 'gb', 'gb');

// * * * ECOMMERCE I18N SETTINGS
//EcommerceCurrency::setDecimalDelimiter(','); //for Money formating
//EcommerceCurrency::setThousandDelimiter('.'); //for Money formating
//Object::useCustomClass('SS_Datetime','I18nDatetime', true);

// * * * SHOPPING CART AND ORDER
//ShoppingCart::set_fixed_country_code("NZ"); //always use the same country code
//Order::set_table_overview_fields(array('Total' => 'Total','Status' => 'Status'));//
//Order::set_maximum_ignorable_sales_payments_difference(0.001);//sometimes there are small discrepancies in total (for various reasons)- here you can set the max allowed differences
Order::set_order_id_start_number(001001);//sets a start number for order ID, so that they do not start at one.
//Order::set_cancel_before_payment(false); //soon to be depreciated
//Order::set_cancel_before_processing(false); //soon to be depreciated
//Order::set_cancel_before_sending(false); //soon to be depreciated
//Order::set_cancel_after_sending(false); //soon to be depreciated

//OrderForm::set_user_membership_optional(); //optional for user to become a member
OrderForm::set_force_membership(false); //all users must become members if true, or won't become members if false

//OrderManipulation::set_allow_cancelling(); //shows a cancel button on the order page
//OrderManipulation::set_allow_paying(); //shows a payment form

// * * * PRODUCTS
//ProductsAndGroupsModelAdmin::set_managed_models(array(("Product", "ProductGroup","ProductVariation"));
//SS_Report::register("SideReport", "EcommerceSideReport_AllProducts");
//SS_Report::register("SideReport", "EcommerceSideReport_FeaturedProducts");
//SS_Report::register("SideReport", "EcommerceSideReport_NoImageProducts");
//Product_Image::set_thumbnail_size(140, 100);
//Product_Image::set_content_image_width(200);
//Product_Image::set_large_image_width(200);
//ProductGroup::set_include_child_groups(true);
//ProductGroup::set_must_have_price(true);
//ProductGroup::set_sort_options( array('Title' => 'Alphabetical','Price' => 'Lowest Price')); // will be depreciated soon in this form, WATCH THIS SPACE.

// * * * CHECKOUT
//ExpiryDateField::set_short_months(true); //uses short months (e.g. Jan instead of january) for credit card expiry date.
//OrderFormWithoutShippingAddress::set_fixed_country_code("NZ"); //country is fixed
//OrderFormWithoutShippingAddress::set_postal_code_url("http://maps.google.com"); //link that can be used to check postal code
//OrderFormWithoutShippingAddress::set_postal_code_label("click here to check your postal code"); //label for link that can be used to check postal code
//OrderFormWithoutShippingAddress::set_login_invite_alternative_text('<a href="http://www.mysite.com/Security/login/?BackURL=">If you are a member then please log in.</a>); //label for link that can be used to check postal code

// * * * MEMBER
//EcommerceRole::set_group_name("Customers");

// * * * MODIFIERS
//FlatTaxModifier::set_tax("0.15", "GST", $exclusive = false);
SimpleShippingModifier::set_default_charge(2);
SimpleShippingModifier::set_charges_for_countries(array(
'GB' => 0,
));
//TaxModifier::::set_for_country($country = "NZ", $rate = 0.15, $name = "GST", $inclexcl = "inclusive"))

// * * * HELP
//Product::set_global_allow_purcahse(false); //stops the sale of all products
// ------------------------------------------------------END ECOMMERCE MODULE CONFIG ------------------------------------------------------

{/code]

Avatar
marc79

Community Member, 65 Posts

22 June 2011 at 1:58am

Thought I had solved the issue with setting the default country to United Kingdom (GB) but this still isn't happening for me. Have tired all possible options I can think of to set this as default but nothing seems to work.

Geoip::$default_country_code = "GB";

Has anyone managed to get this working in ecommerce 0.8.2?

Thanks

Marc

Avatar
GRiiDWeb

Community Member, 60 Posts

22 June 2011 at 6:37am

Edited: 22/06/2011 7:42am

Hi,
I was looking in ecommerce/code/control/ShoppingCart.php where all the country code stuff is -

protected static $country_setting_index = 'ShoppingCartCountry';
      static function set_country_setting_index($v) {self::$country_setting_index = $v;}
      static function get_country_setting_index() {return self::$country_setting_index;}

   static function set_country($countryCode) {
      Session::set(self::get_country_setting_index(), $countryCode);
      $member = Member::currentUser();
      //check if the member has a country
      if($member) {
         $member->Country = $countryCode;
         $member->write()

Is there someting in here to help?
GW

Avatar
marc79

Community Member, 65 Posts

24 June 2011 at 8:43pm

HI GW,

Thanks for your post. I'd been looking there and in the EcommerceRole.php file, trying to hardcode in the default setting but no luck so far.

public static $defaults = array(
   "Country" => 'GB'
);

Avatar
marc79

Community Member, 65 Posts

26 June 2011 at 11:00pm

Edited: 29/06/2011 6:16am

Have managed to force default country to be GB by amending the EcommerceRole.php file as below:

   static function find_country() {
      $member = Member::currentUser();

      if($member && $member->Country) {
         $country = $member->Country;
      } else {
         if($country = ShoppingCart::get_country())
            return $country;
         
         // HACK Avoid CLI tests from breaking (GeoIP gets in the way of unbiased tests!)
         // @todo Introduce a better way of disabling GeoIP as needed (Geoip::disable() ?)
         if(Director::is_cli()) {
            $country = null;
         } else {
            $country = 'GB';
         }
      }

      return $country;
   }

Not sure if it the best way to do this but it seems to work.

Marc

Avatar
CHD

Community Member, 218 Posts

5 July 2011 at 4:24am

Sorry that I wasn't involved at all since starting this post! somehow i managed to unsubscribe myself without meaning to...I hope that you managed to get it working in the end.
looking at starting a new eCommerce site soon so will probably be active again in this thread!

Avatar
GRiiDWeb

Community Member, 60 Posts

5 July 2011 at 5:08am

Many thanks for joining again.
I've not had a rush of orders as yet.... well none at all, but I haven't promoted the site at all.
The commerce is live and in testing. It's sort of a hybrid of different version. It's not perfect, but there is not much support for the module UK to work with local developers.

Avatar
marc79

Community Member, 65 Posts

5 July 2011 at 5:16am

Hi CHD,

Yeah, got there in the end. It's a great module just needs a bit more documentation. Hopefully the bits I have posted to this thread may come in handy for others building site with the module.

I've had it live on a clients site, http://www.margotdance.com, for just a few days and have had orders through so all seems to be going well.

Cheers

Marc