38 posts in this topic

hi all,

new PW site launch:  http://www.ohmspeaker.com/

some of the modules that were helpful or essential for this:

  • cropimage
  • formbuilder
  • fredi
  • importcsv
  • minify
  • piwik analytics
  • procache
  • batcher
  • redirects
  • version control
  • template decorator
  • modules manager
  • page link abstractor
  • sitemap xml
  • admin custom pages
  • markup simple navigation (for the sitemap)

forum topics related to this site dev:

Legacy Site URL redirects:

http://processwire.com/talk/topic/3641-redirect-legacy-url-to-new-pw-page/

Clean up spelling:

http://processwire.com/talk/topic/3519-use-api-to-spellcheck-whole-siteclean-up-spacing/

hashes in URLs on change selected product

http://processwire.com/talk/topic/3496-help-with-url-param-change/

FormBuilder

http://processwire.com/talk/topic/2904-how-to-redirect-by-id/

http://processwire.com/talk/topic/2821-3rd-party-send-conditionally/

http://processwire.com/talk/topic/2820-use-session-to-remember-form-selections/

Custom Menus

http://processwire.com/talk/topic/2787-custom-menu-not-related-to-page-tree/

other notes:

  • The skyscraper profile provided the example for how to get started with the advanced product search, a.k.a. the speaker finder.
  • The standard search has been extended to show results in different categories.
  • there is some use of Soma's word limiter for the news teaser text, and for making meta descriptions out of body fields, from this topic: http://processwire.com/talk/topic/3429-how-to-set-text-linecharacter-limits-in-templates/
  • the design is built on twitter bootstrap framework
  • Fredi proved to be totally essential for the client, in being able to rapidly edit things without having to find things in the admin.

This site is going to replace an existing site on a different domain (ohmspeakers.com).

At some point we weren't sure if/how we would be able to handle the shopping cart element, and then found foxycart, which proved to be the best choice, very flexible, and easy to implement for this type of site. FC is hands down the simplest and easiest way (imho) we could achieve things like the legacy product pages, where there are various parts and upgrades displayed on 1 page.

this version is sort of a "v1", and will be expanded/improved a lot for a v2, which would happen in about 4 months..

BTW - these speakers are really good; i now own 3 pairs :lol: ... they look great and do sound totally amazing...!

-marc

26 people like this

Share this post


Link to post
Share on other sites

Marc,

Brilliant job! 

A few niggles :)....I know it's v1...

  1. Contact Us page: Submitting an empty form returns success message.
  2. Recommendation Form: Submitting an incomplete form does not give user feedback; nothing happens
  3. Search results: Maybe (minor issue) change the h2 headings for "Found X pages matching your query..." to h3?. Also "query" has always sounded to "dev-like" for me in search results :) Maybe found x pages matching your search? Minor issue!

Overall, really nice site!

btw: all the above Form Builder links return 404s
 

1 person likes this

Share this post


Link to post
Share on other sites

hi kongondo -

awesome! thanks for looking

#1 - fixed (made required)

#2 - not getting this, because the formbuilder is showing alerts for required fields, when they are not filled in (?)

#3 - changed h2 to h3.. and i agree about the 'query'...changed to search...

the formbuilder links won't work, sorry, unless you are a formbuilder registered user (it's a 'VIP' forum) :P

1 person likes this

Share this post


Link to post
Share on other sites

Great site and thanks for your writing. It is always nice to know about what modules used and really nice that you even linked those related forum topics. 

Fredi proved to be totally essential for the client, in being able to rapidly edit things without having to find things in the admin.

Happy to hear that!

1 person likes this

Share this post


Link to post
Share on other sites

#2 - not getting this, because the formbuilder is showing alerts for required fields, when they are not filled in (?)

Aah. I didn't see the alert because it is a long form so the alert is hidden from view. It is possible to scroll the form up using jQuery to the first missing required field, no?

Share this post


Link to post
Share on other sites

Aah. I didn't see the alert because it is a long form so the alert is hidden from view. It is possible to scroll the form up using jQuery to the first missing required field, no?

I think that alert is browser's native alert. Those have some nasty usability problems still (like this one at least on chrome). It doesn't submit the form and it doesn't scroll to position where user could see an error message.

Share this post


Link to post
Share on other sites

On firefox, it scrolls already right to the first empty field, which has a red halo around it;

this is using the latest stable version of FormBuilder;

are you saying that FormBuilder is using browser native alert? I thought this was jQuery UI..

-marc

Share this post


Link to post
Share on other sites

This form in Chrome: http://www.ohmspeaker.com/recommendation-form/

Leave it empty and click submit. Nothing seems to happen. This is because "Name, First" field has required="required" and chrome does that little poorly when form is in iFrame (doesn't scroll and shows the error message only for a while (you can see the alert if you scroll right after clicking the submit).

Firefox does it better (scrolls to the problematic field even inside iFrame). 

Without iFrame chrome does scroll too: http://www.ohmspeaker.com/form-builder/product-inquiry/

Share this post


Link to post
Share on other sites

thanks apesia, for bringing up this topic...  hopefully by the time i get to V2, i'll come up with a way to deal with that; i'm using jquery validate for another form on the site, maybe there would be a way to integrate that with FB..

i also forgot to include in the first post a little about how that project evolved and ended up with PW....

it started a long time ago when we first tried to do the site in Joomla, using RedShop; that was basically a disaster; RedShop promised all of the 'features' you could want, but was rife with problems and almost nothing worked. I found myself on the RedShop forum almost every day reporting bugs, spelling errors in the component etc.;  then Joomla 1.5 reach EOL, and we tried to upgrade, and that failed in many ways also (components, template etc..)..

once i found processwire, the plan was to do a simple corporate brochure site, which would be like a product catalog, no ecommerce.

During the work on that, i experimented with csv import on another PW site and discovered how to easily import the old website data, so that it took only a few hours to import the existing relational product database (MSaccess/Cold Fusion);

And then i read about foxycart, so that became the solution for the parts store, since the existing site provider was discontinuing CC transactions on their servers, i guess they are not PCI compliant; Once we got that going, it was just a small step to enable add to cart buttons for the 'current' product line...

3 people like this

Share this post


Link to post
Share on other sites

Gooooooood Job! ^-^

1 person likes this

Share this post


Link to post
Share on other sites

Really great site! Nice work. Thanks for the ProcessWire mention on the credits page too. 

1 person likes this

Share this post


Link to post
Share on other sites

Excellent site Macrura and lovely, valuable post noting your process/tools, thanks so much for sharing!

Share this post


Link to post
Share on other sites

Nice site. Just one thing, I was surprised at the lack of product images on the single product pages (SSP) and the select finish options do not have images.

I might be wrong but for me it's like walking into a shop and reading the label but not seeing the product.

Share this post


Link to post
Share on other sites

@Jason & alanfluff -thanks for checking out the site, much appreciated.

@NooseLadder - thanks for looking and yes, you're completely on point, the company is a very small business with limited resources...(basically a one-man operation) but there is a plan to photograph all of the products for 'V2'...

For the veneers, there is a 'veneer gallery' for this version, and there will be a 'veneer picker' on the product pages for V2 which will be a popup lightbox that lets you see the veneers close up and select one, for which the selection will populate the veneer choice select box.

also in the works would be validation for the veneer selection (to make sure a value is selected).... i haven't been able to figure out foxycart add-to-cart validation yet and am waiting on a reply to a post in the FC forum as to how i can use jquery.validate with FC, which would make things super easy..

-marc

1 person likes this

Share this post


Link to post
Share on other sites

btw -the client loves pw and appreciates the community so is offering 20% discount, using coupon code 'processwire', until June 20.

1 person likes this

Share this post


Link to post
Share on other sites

Greetings,

Wow, Macrura, beautiful site.  Really professional and smooth.

When you build sites like that, no wonder the client loves ProcessWire and the community behind it!

I see you are using FoxyCart for the e-commerce elements.  I'd be really curious to hear more of how you like integrating FoxyCart with PW.

Very interesting that the client is offering a 20% discount in honor of ProcessWire.

Thanks for sharing,

Matthew

Share this post


Link to post
Share on other sites

@mathew - thanks for looking;

the foxycart for this site was very simple/easy and flexible to implement;

i have no complaints overall except that i wish i could do validation easier on the add to cart buttons; but i'll probably get that sorted soon. 

the FC people are always helpful and polite; the system runs perfectly smooth as far as i can tell so far.

It's a little tricky to integrate the checkout page into your site; since they host the checkout pages on their servers, they have to cache your 'checkout' template, which can be problematic if you have a complicated design (it didn't seem to like bootstrap); i wasn't able to get that working this time around, so i'm using the default checkout, which is also fine; maybe not as elegant as having the checkout look like it's part of the same site.

ecommerce is definitely not my 'thing' so foxycart will probably be my 'go-to' solution, since it sort of just plugs in and works...

Share this post


Link to post
Share on other sites

Superb design Macrura. Thanks for sharing.

I look forward to seeing more sites from you again soon.

Share this post


Link to post
Share on other sites

Hi Macrura,

excellent site, very clear and well organized!

Could you please provide some infos on how you developed the "speaker-finder" section ? I'm really interested on how you've managed the filtering and selections of the various products.

Thumbs up!

Share this post


Link to post
Share on other sites

Hi 3fingers,

Here is the code that processes the form:

https://gist.github.com/outflux3/5690429

here is the form itself:

https://gist.github.com/outflux3/5690423

i didn't post the form results, but that's just a table that shows the results; hopefully the processor and form code will help!

-marc

6 people like this

Share this post


Link to post
Share on other sites

Absolutely, very kind of you!

I'm going to bookmark this page for future reference :)

Thanks again Macrura!

Share this post


Link to post
Share on other sites

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

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By benbyf
      New website for Fabrica Captial – Commercial Real Estate Investment
      http://fabrixcap.com/ (previously at http://www.fabricacapital.com/)
      Design by http://crookdesign.co.uk/
    • By Sylv
      Hello all ! Just because I'm proud to be featured by Snipcart (js ecommerce solution) about my integration on my Processwire based website !
      This post talks about Processwire and how I've done it : https://snipcart.com/blog/case-study-ateliers-fromagers-processwire
      If you wanna take a look at my website : https://www.ateliersfromagers.com/ (french & english)
      Have a good day everyone !
      S
    • By Nukro
      Hi Guys
      I am trying to save Pages with the API from the root Folder in a file named refreshIndex.php. The code looks like this:
      $root = "/path/to/root"; include($root . "index.php"); //$doctors = wire('pages')->find("template=doctors"); $jobs = wire('pages')->find("template=jobs"); //$news = wire('pages')->find("template=news"); //$specialities = wire('pages')->find("template=specialities-clinics"); //$events = wire('pages')->find("template=signup-form-formbuilder"); //$dbpages = wire('pages')->find("template=doctors|specialities-clinics|news|signup-form-formbuilder|jobs"); //$allpages = wire('pages')->get(27200)->find(""); foreach ($jobs as $stpage) { $stpage->save(); } Now at the moment I am trying to save Job Pages. They are 2 job pages right now. It saves 1 of them and at the 2 one I get an Error like this:
      Error: Uncaught WirePermissionException: Page '/de/jobs/test-job_ge/' is not currently viewable. in /pathtoroot/wire/modules/PageRender.module:319
      They are both using the same template with the same permissions respectively they are visible (guest user is viewable). And also the languages of the page are all active inside page settings.
       
      Somehow my Hook is responsible for this. The hook is the reason for my Script above. I am trying to update the index field for my site search. The hooks works fine when I am saving the pages from the backend interface, but I can't save all pages from the backend since they are over 1500 pages I need to save.
      $this->addHookBefore('Pages::saveReady', $this, 'hookIndexingBefore'); protected function hookIndexingBefore( HookEvent $event ) { $options = array(); $page = $event->arguments("page"); // abort when true if(!$page->template->hasField("index")) return; if($page->isNew() || $page->isTrash()) return; // save user lang $language = $this->wire("user")->language; // clear index field at the begin $page->index = ''; if($page->is("template=specialities-clinics")){ $options['sender'] = $page->choose_sender_2016->id; } $options['pagename'] = $page->name; foreach($this->wire("languages") as $lang) { $this->wire("user")->language = $lang; // change user lang wire('pages')->setOutputFormatting(true); $content = $page->render($options); wire('pages')->setOutputFormatting(false); if($content){ $startStr = "<!--### start-indexing-area ###-->"; $endStr = "<!--### end-indexing-area ###-->"; preg_match_all('/'.$startStr.'(.*)'.$endStr.'/siU', $content, $matches); $newContent = preg_replace("/<div class='breadcrumb.*'>.*<\/div>/siU", '', $matches[1][0]); $newContent = str_replace('<', ' <', $newContent); $newContent = strip_tags($newContent); $newContent = preg_replace("/\s\s+/", " ", $newContent); } $page->index .= $newContent; } $this->wire("user")->language = $language; // restore user language }  
    • By microcipcip
      How do you access ProcessWire API from an external file? I wrote a class and I need to use the API from there...my php file is in templates/includes/file.php
      <?php namespace ProcessWire; include_once('../../../index.php'); class myClass { private function ($query){ return $sanitizer->selectorValue($query); } } I get this error: Call to a member function selectorValue() on a non-object
    • By andre
      Hi guys,
      I have built a website with pw and now my client wants to add ecommerce. 
      For me being a frontend dev, pw is amazing because it gives me full control of the output just using basic php, but now that I want to add more complicated functionality I am not liking it so much.
      Is it possible to add ecommerce to a pw powered website without diving deep in php? Stripe and paypal integration, coupons, shipping tables...
      I have seen padloper... it seems basic and not very actively developed.
      Thanks in advance.