Search

Hi guys, I’d like to run a few things by you, see if you have any advice into a project we’re working on here. We have a client who wants to build a fairly large website for trading and tracking thoroughbred horses online, he has a few requirements that I’m not completely sure how to implement with Symphony

He wants to be able to allow visitors to sign up to the site(Members Extension) and add a listing for a horse. This listing would have the following:

  1. Horse’s Name (Text Input)
  2. Dam’s Name (Text Input)
  3. Sire’s name (Text Input)
  4. Covering Sire (Text Input)
  5. Year of Birth (Select Box of Last 15 years)
  6. Colour (Select Box)
  7. Sex (Select Box)
  8. Race Type (Select Box)
  9. Vendor (Select Box Link)
  10. Location (Google Map)
  11. Sales Company (Bi Link)
  12. Video Clip (Vimeo)
  13. Photos (Unique File Upload)
  14. Sales Date (Select Box)
  15. Price (Select Box)

These horses are then listed in a Sales Dates section (Auction dates which are set by the admin).

That’s all fairly straightforward stuff but our client also wants to allow people to pay for the privilege of listing a horse via Paypal. I’d also like to be able to automagically reconcile the payment in Symphony and update the status of the listing to Paid. Haven’t got the slightest idea how at the moment though.

Then there’s the issue of searching for a horse, our client wants a fairly advanced search, Name (with select box for Horse/Dam/Sire/Covering Sire), Year, Vendor, Location, Sales Company, Race Type, Sex and Price fields can all be set. I know you can use Regex in datasources but I’d guess that I’d probably need a custom datasource for this level of searching.

At the moment we’re leaning towards EE for this but I’m trying to convince my boss to go with Symphony. Any ideas, suggestions or advice to help bring him around is very welcome.

Cheers

That’s all fairly straightforward stuff but our client also wants to allow people to pay for the privilege of listing a horse via Paypal. I’d also like to be able to automagically reconcile the payment in Symphony and update the status of the listing to Paid. Haven’t got the slightest idea how at the moment though.

Have you looked at Makenosound’s PayPal Extension?

Symphony website’s support tickets system utilises Google checkout (still in beta testing), which is much better than PayPal’s API, I must say.

Then there’s the issue of searching for a horse, our client wants a fairly advanced search…

We can possibly look at supplying you with the website’s search DS, which should give you an idea on how to repurpose it for your own use.

Hi Allen,

That would be great if you could supply an example of a search DS, cheers.

I’ve had a look at the PayPal Extension, I haven’t tested it though. How would you update the entry in Symphony on returning from PayPal, a custom event maybe?

I’d say our client would prefer to stick with PayPal for this, he’s brought it up a few times during our meetings, are there any other advantages to using Google Checkout?

That would be great if you could supply an example of a search DS, cheers.

Can you please email me with this request? Cheers.

How would you update the entry in Symphony on returning from PayPal, a custom event maybe?

There’ll need to be an event that sends the payment details to PayPal. PayPal will then post a response back to a user-defined URL (a page with an event set up) to process the response.

are there any other advantages to using Google Checkout?

Possibly its cost structure? I’m not really certain. The 3 main ones (without going to a proper merchant service) are PayPal, Google Checkout and Amazon Checkout.

For what it’s worth, the Paypal extension will update the entry you send as the order reference. It will store payment info it gets from Paypal so reconciliation is ticked off.

Take a look at the README for a list of IPN fields that are returned from Paypal. If you create a field in your section with a name matching an item in this list, it will populated when the Paypal transaction completes. In your example you’d want an Input named payment_status which will be filled with the status from Paypal.

The search looks pretty straightforward. You could do this with a native DS since all but one search (filter) fields are select boxes (or Select Box Links). So long as you fill the search UI on the frontend with the possible values for these dropdowns then there is no need for regexp filters.

You can get the static values of Select Boxes into your frontend XML using the Section Schemas extension which builds a custom DS for you.

Say you have three dropdowns in an HTML form, which are sent via GET to a URL such as:

/search/?colour=Red&sex=Male&type=Nursery

Your search DS would then have three filters, one for each field:

  • Colour: {$url-colour}
  • Sex: {$url-sex}
  • Type: {$url-nursery}

If a user does not select a Type from the search dropdown, then no value will be sent and the DS filter will be ignored.

Your one free-text field on Name would be achieved by using a filter such as regexp:{$url-name} (provided your form has an input field named name).

One thing to be aware of is that DS filters combine together with “AND” operators. So if a user types “Black Beauty” into the Name field, and also selects “White” from the Colour dropdown, the search will try to find horses that match both criteria, not either.

I would suggest reducing the scope of your search, since it that would be a lot of UI search controls. But I don’t think it’ll need anything custom.

Is there any way you can avoid using PayPal? We’ve not had much luck with it here ever. It’s pretty incredible just how difficult it is to work with, considering its ‘popularity’…

Just thought I’d give an update on this, our client isn’t willing to budge on using Paypal and the deadline is 18th of December so it looks like EE is getting the nod on this, we found an addon called FoxyCart which integrates with Paypal very easily. Thanks for the advice and comments.

@eoghanobrien: Out of interest, did you actually try out the PayPal Payments extension?

@makenosound I didn’t get the chance, time is money and all that :) I’m going to use it on another site where there’s no set deadline.

No worries—just wanted to know if you’d evaluated it and decided it wasn’t appropriate.

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details