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

Working on e-commerce for SS 2.4

Go to End

121 Posts   14507 Views


Forum Moderator, 435 Posts

24 June 2010 at 7:23pm

ok...thank you for clarification.


Community Member, 56 Posts

1 July 2010 at 7:25pm

Edited: 01/07/2010 7:25pm


just been testing the paypal payment with the latest version from google...
seems pretty good and working but on return to shop after payment..
I get an error

[Notice] Object of class Money could not be converted to int

Line 450 in /Users/mikemcvey/Sites/birds/ecommerce/code/model/Order.php

441    /**
442     * Checks to see if any payments have been made on this order
443     * and if so, subracts the payment amount from the order
444     * Precondition : The order is in DB
445     */
446    function TotalOutstanding(){
447       $total = $this->Total();
448       if($payments = $this->Payments()) {
449          foreach($payments as $payment) {
450             if($payment->Status == 'Success') $total -= $payment->Amount;
451          }
452       }
453       return $total;
454    }
456    /**

Any Ideas??


Forum Moderator, 233 Posts

1 July 2010 at 7:27pm

Hi wainui, I fixed that in my 'burnbright' branch of the code. All that needs changing is:

$payment->Amount becomes $payment->Amount->Amount


Community Member, 56 Posts

1 July 2010 at 10:27pm

thank you very much :)
how do I check out other branches like yours?


Forum Moderator, 233 Posts

2 July 2010 at 8:35am

Simply change the svn location to:


Community Member, 56 Posts

13 July 2010 at 5:17pm

Hey jedaTeach..

found a small error in the include which make the payment data not display properly..

<% control Payment %>

Should be

<% control Payments %>


Community Member, 48 Posts

13 July 2010 at 7:28pm

Hi jeda and hi guys,
as we all know the ecommerce module creates if the database is empty a couple of example products and so on...
i looked through the code and found how it's done. I need for testing purposes to create a test function that builds a number of products (ie 100, 1000, 100000) to test site tree stability. I did this, in my own extension of the Product class (myextendedproduct):

function test () {
      $group = new MyExtendedProductGroup();
         $group->Title = 'Example product group';
         $group->Content = '<p>This is a nested <em>product group</em> within the main <em>product group</em> page. You can add a paragraph here to describe what this product group is about, and what sort of products you can expect to find in it.</p>';
         $group->URLSegment = 'example-product-group';
         $group->publish('Stage', 'Live');
      for ($i = 0; $i < 100; $i++){
         $page1 = new MyExtendedProduct();
         $page1->Title = 'Example product'.i;
         $page1->Content = $content . '<p>You may also notice that we have checked it as a featured product and it will be displayed on the main Products page.</p>';
         $page1->URLSegment = 'example-product'.i;
         $page1->ParentID = $group->ID;
         $page1->Price = '15.00';
         $page1->Weight = '0.50';
         $page1->Model = 'Joe Bloggs'.i;
         $page1->FeaturedProduct = true;
         $page1->publish('Stage', 'Live');
         DB::alteration_message('Product page \'Example product\' created', 'created');

Anyway it's not working. Do i have to separate the product from the productgroup? and anyway, anyone tested large numbers in the site tree?


Community Member, 56 Posts

13 July 2010 at 7:35pm

Also small error with check payment module and cheque payment.. which cause emails to have html code displayed.


class ChequePayment extends Payment {
    * Process the Cheque payment method
   function processPayment($data, $form) {
      $this->Status = 'Pending';

/* HTML entered here into payment message..... */

      $this->Message = '<p class="warningMessage">' . _t('ChequePayment.MESSAGE', 'Payment accepted via Cheque. Please note : products will not be shipped until payment has been received.') . '</p>';
      return new Payment_Success();

class Payment extends DataObject {

    * Incomplete (default): Payment created but nothing confirmed as successful
    * Success: Payment successful
    * Failure: Payment failed during process
    * Pending: Payment awaiting receipt/bank transfer etc
   public static $db = array(
      'Status' => "Enum('Incomplete,Success,Failure,Pending','Incomplete')",
      'Amount' => 'Money',

// * EDIT - 'Message' => 'Text',
/* Message should be HTMLText as feeding html warnings into it from ecommerce which are coming out as text in emails.. */

      'Message' => 'HTMLText',

      'IP' => 'Varchar',
      'ProxyIP' => 'Varchar',
      'PaidForID' => "Int",
      'PaidForClass' => 'Varchar',
      //This is used only when the payment is one of the recurring payments, when a scheduler is trying to
      //find which is the latest one for the recurring payments
      'PaymentDate' => "Date",
      //Usered for store any Exception during this payment Process.
      'ExceptionError' => 'Text'

Not sure which should be fixed... the payment or the cheque?

Go to Top