2. echo $user->name;
●
Bob Bloom
●
Joomla consultant since 2007
●
JUGT since 2009
●
ecomm right from the get-go with Virtuemart
●
Tienda in 2010 – wrote Canadian add-on
●
Fork Tienda for J!1.5 = LaSalleMart 1
●
Fork Tienda for J!2.5 = LaSalleMart 2
●
New fresh LaSalleMart 3 for J!3 using FoF
●
Podcast = SouthLaSalleMedia.com
●
Blog = blog.SouthLaSalleCommerce.com
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
4. echo $msg->jugt;
●
Joomla User Group Toronto = local JUG
●
we are all volunteers
●
Wonderful group
●
Connection to the Joomla project, and networking with other
local pros, has been a critical aspect of my independent
consulting professional life
●
Toronto.Joomla.ca
●
I co-run Meetup.com/Joomla-User-Group-Toronto/ with Niv
●
Special Nov 07th workshop
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
5. echo $msg->topic;
Thank you for being here this evening.
The topic is Joomla ecommerce.
Focus on checkout this evening, based on questions from
JUGT over the last while; and, based on gi-nor-mous
mistakes my clients consistently make.
I invite questions as we go along.
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
6. echo $msg->caveat
Information contained herein have been obtained
from sources believed to be reliable, but are not
guaranteed.
No person or organization connected with this
presentation is responsible for the accuracy
herein; nor, is responsible for your reliance on
information so presented.
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
7. echo $msg->LaSalleMart
●
LaSalleMart 3 is from-scratch ecomm technology for Joomla 3+
●
Based on Akeeba's kick-ass Framework-on-Framework
●
This month is about prototyping concepts with FoF and building out first suite of
components with FoF
●
Initial release will have basic product/checkout functions
●
Vision of Joomla ecommerce is coming to fruition
●
Sep 2010 podcast sheds light: http://www.southlasallemedia.com/2010/tbbs21
●
FoF makes LaSalleMart 3 feel like Joomla ecomm feel like it should be
●
FoF will be included in Joomla 3.2, to be released in early Nov 2013
●
I will create my first Joomla distro with J!3.2. http://LaSalleCMS.com
●
See my LaSalleMart.com, blog site, and monthly podcasts, for updates.
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
8. if ($work == “hard”) { echo “success”; }
else { echo “blame consultant”; }
●
●
●
●
I can whip up a blog site fairly quickly. But I cannot
“whip up” an ecomm site.
ecomm sites involve a lot of detail and content
Dear Client: it's your site, not mine. It's your strategy,
not mine. It's your responsibility to make the site
profitable, not mine. Unless we have an arrangement,
which I aggressively avoid 110% of the time
There's this thing called User Testing. Clients who avoid
it tend to have crappy site revenue. I should call UAT
“revenue acid test”
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
9. if ($think) { echo “ka-ching”; }
else { echo “blame consultant”; }
●
There are hundreds of thousands, if not millions, of ecommerce sites. The days of “build it and
they will come” are way over. Successful concepts attract serious investment from competitors.
●
Brain Fart Alert: no online & offline (yes, offline!) e-strategy
●
Brain Fart Alert: eye-candy fetish + resist checkout issues
●
Brain Fart Alert: clients play their little games because they feel out-of-their-depth and out-ofcontrol with ecomm, but feel compelled to be in ecomm
●
Brain Fart Alert: clients refuse to learn any “e” in ecommerce
●
Brain Fart Alert: clients forget that we are in the Golden Age of Tech Start-ups
●
●
Brain Fart Alert: clients are completely oblivious to the need to own/control their domain
registration & website hosting – time and again I'm told to “just take care of it” --> Doh!
Brain Fart Alert: obsessed about site design + oblivious to cart abandonment issues
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
10. echo strrev("BACKWARDS!!");
●
●
●
●
●
emphasis frequently skewed to front-end
Shipping methods, payment methods, order
workflow are as integral as front-end
Shipping and payment method issues pose
show-stopper issues
You want the benefit of time to deal with these
issues before they can derail your launch date
!!S-D-R-A-W-K-C-A-B <<== REMEMBER!
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
11. Checkout
●
Comprised of:
–
Customer registration;
–
Address management;
–
Shipping method;
–
Payment method;
–
Order confirmation;
–
Order processing;
–
Thank you!
●
Need to beta test – if you don't, your customers will!
●
Save some budget for customizing checkout
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
12. Lead a Horse to Water
●
●
●
●
SEO stops at checkout
Once your customer enters your checkout,
want to consummate the sale
Once in checkout, need to avoid abandonment
Nice infographic at
http://wikimotive.com/wikiblog/fight-digital-cartabandonment-infographic/
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
13. SSL
●
“Secure Socket Layer”
●
Your buyers expect to see “https://” during checkout
●
Payment processors require SSL when accepting CC's directly on your site
●
$$ range from Nominal to Nutty
●
Sequence of installing SSL:
–
1) buy your domain;
–
2) buy & set-up your webhost;
–
3) change your DNS;
–
4) decide if your domain “www” or “non-www”
–
5) buy and install SSL certificate (host usually do this for you)
–
6) note: need dedicated IP for SSL
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
14. Storing CC Info -> Don't!
●
Buyer enters CC number and other info on your
site
●
Cart sends CC info to your payment processor
●
Your cart puts the CC info into its database
●
●
You are making a huge mistake if you store CC
info!
Very strict requirements for storing CC info –
the usual MySQL set-up will not satisfy 'em
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
15. CC info -con't
●
CC info gets hacked:
–
–
From your house to the big house
–
●
Knock on the door
–
●
Publicity, none of it good
Sales go to zero
Do not store CC info
Offer PayPal Standard, or other pmt that
redirects to payment site
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
16. Payment Methods
●
Watch the vig
–
3% to 4%
–
FX translation: convert yourself
●
Tons and tons of payment methods available
●
SoL Alert: your cart needs software for your payment processor
●
●
SoL Alert: that wonderful feature your payment processor very
probably needs specific software in your cart
SoL Alert: your payment processor changes its ways, your cart's
software may need upgrading:
–
REST
–
Return codes
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
17. PayPal
●
Standard vs Professional
●
PP wants to understand your transactions
●
Complaints = hassle from PP + PP “slap”
●
Do everything you can to verify with PP
●
Associate bank account with PP account
●
Sweep from PP takes 3 to 4 days
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
18. PayPal Professional
●
Your customers never leave your site
●
Need SSL
●
Can take two weeks-ish to set-up
●
Sellers skew to wanting “Pro”
●
API Username, API Password
●
PP Pro settings required
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
19. PayPal Standard
●
●
●
●
Your customers redirect to https://PayPal.com
Upon paying at paypal.com, your customers
click a link to return to your site
Buyers skew to “Standard” -- more than you
think!
Sign-up same day
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
20. IPN
●
●
●
Instant Payment Notification
“The IPN service notifies you when an event occurs that
pertains to a transaction. Typically, these events
represent various kinds of payments; however, the
events may also represent authorizations, Fraud
Management Filter actions and other actions, such as
refunds, disputes, and chargebacks... IPN is a message
service that PayPal uses to notify you about events...”
https://developer.paypal.com/webapps/developer/docs/class
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
21. IPN – con't
// Log the IPN data
$this->logIPN($data,
$isValid);
// Fraud attempt? Do
nothing more!
if(!$isValid)
{ return false; }
case 'Canceled_Reversal':
case 'Completed':
$newStatus = 'C';
break;
case 'Created':
case 'Pending':
case 'Processed':
$newStatus = 'P';
break;
case 'Denied':
case 'Expired':
case 'Failed':
case 'Refunded':
case 'Reversed':
case 'Voided':
October 22, 2013
Bob Bloom
info@LaSalleMart.com
default:
// Partial refunds can only by
issued by the merchant. In that
case,
// we don't want the subscription
to be cancelled. We have to let
the
// merchant adjust its
parameters if needed.
if($isPartialRefund)
{$newStatus = 'C';
} else {
$newStatus = 'X';
}
Break;
( plugins/akpayment/paypalpay
mentspro/paypalpaymentspro.p
hp)
Joomla User Group Toronto
Toronto.Joomla.ca
22. IPN – con't
Feature or bug:
PayPal Payment Status = "Completed"
AND
Order Status NOT Updated via IPN
Answer: feature!
You have to double check that PayPal actually
received the money from your customer. Then, you
go to order management and update the order.
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
23. IPN – con't
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
24. IPN – con't
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
25. Shipping
●
Embrace shipping as part of your business strategy
●
Shipping a huge source of cart abandonment
●
What are your shipping rules?
●
Top source of “BTW” scope creep
●
Can your cart handle your shipping rules?
●
●
All predicate info must exist for your cart's shipping
methods to work
Usually, one shipping method (and payment method) per
order
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
26. Standard Shipping Types
(https://southlasalle.atlassian.net/wiki/display/lasallemartkb/Standard+Shipping+Types?
src=contextnavchildmode)
Type 0: Flat Rate Per Item
●
shipping rate a set rate per item;
●
(flat rate and handling free from the first record rates) * qty, regardless of number of records:
●
that is, first shipping_method_id in #_lasallemart_shippingrate.
Type 1: Weight Based Per Item
●
shipping rate based on the weight of each product in the cart;
●
sum each product: shipping rate * qty + handling fee * qty.
Type 2: Weight Based Per Order
●
shipping rate based on the total weight of all products in the cart;
●
sum each product: (shipping rate * qty) + handling fee charged just once.
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
27. Standard Shipping Types
Type 3: Flat Rate Per Order
●
regardless of the number of products in the cart, the shipping rate is the rate + handling fee (charged just once).
Type 4: Price Based on Percentage of Item Subtotal
●
shipping rate is a percentage of items pre-tax price;
●
shipping rate is per item;
●
shipping rate is sum for each product:
●
(pre-tax price of product * shipping rate percentage * quantity) + (handling fee * quantity)
●
percentage and handling free from the first record rates, regardless of number of records
Type 5: Quantity Based Per Order
●
uses a range of quantities;
●
shipping rate = (shipping rate per item + handling fee).
Type 6: Price Based on Order Subtotal
●
shipping rate based on after-tax product total (aka "Subtotal" in the cart);
●
uses a range of Subtotals;
●
shipping rate = (shipping rate per order + handling fee).
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
28. Online Shipping Rates
●
●
●
●
●
Shippers provide shipping rates to your site via their own
servers
SSL not required
Usually requires separate credentialled process. So, not
associated with your actual shipping account
Getting API access codes can be a PITA, and can take
time. Like, a week or two
Must check that online rates are ok. Sometimes you have
to phone to ensure your special shipping rates are
associated with your online access code
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
29. UPS
●
●
●
●
●
UPS issues API access credentials
Their website is called “Developer Kit”, but, Dear
Client, this site is for you, not me!
http://www.ups.com/content/ca/en/bussol/browse/cat/
developer_kit.html
I am not going to use my API access on your site
You need your own separate access credentials to
associate with your actual shipping account
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
30. UPS: Dev Kit Not For Devs!
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
31. UPS: Online Access Signup
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
32. Registration & Address Mgmt
●
Joomla itself handles user registration
●
Cart component handles address mgmt
●
This separation cause of woes
●
●
Joomla cart extensions usually take over user
registration, in whole or in part
LaSalleMart 2: huge effort went into integrating
registration, address management, and the cart.
Result pretty good – but(!) need better Decision Tree
(aka: rules based) algorithm in LM3
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
33. Coupon Types
(https://southlasalle.atlassian.net/wiki/display/lasallemartkb/Coupons?src=contextnavchildmode)
Tax Handling with Coupons:
●
Tax is based on the pre-discount (ie, original) product price.
Discount Applies to:
●
Shipping only;
●
Product's price only.
Value Type:
●
Flat Rate = a straight money amount;
●
Percentage = well, the percent, such as "10% off".
Max Uses:
●
the maximum number of times the coupon can be used;
●
-1 = unlimited uses.
Max Uses Per User:
●
the maximum number of times the coupon can be used by each customer;
●
-1 = unlimited uses.
Valid From:
●
coupon is live starting on this date;
●
leave blank if not applicable.
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
34. Coupon Types – con't
Expires On:
●
coupon is not live starting on this date;
●
leave blank if not applicable – that is, if coupon never expires.
Application:
●
Price discounts can apply to the order, or per product.
●
Shipping discounts apply to the order only.
Coupons are Submitted How?
●
●
User Submitted = your buyers must enter the coupon code
Automatic = the applicable coupon is automatically applied – test
first b/c I've not tested all scenarios
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
35. Coupons – con't
●
●
Coupons are surprisingly complicated
If your cart lack a coupon type you need,
customizing it might be a PITA. Why?
–
–
●
●
The Matrix!
New cart functions!
Per shopper group, shipper, location, who you
like to win the Super Bowl, etc...
Two-fers, stealth bonuses
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
36. Downloads
●
Sell PDFs and videos
●
DocMan
●
Set 'em up as products
●
always fun for your buyers to confront shipping when
buying a PDF – then can't proceed through checkout
●
Sell large files?
●
Auto-bundling of multiple files into one?
●
Time series downloads – email autoresponder??
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
37. Subscriptions
●
Site subscriptions
●
Downloadable or subscription?
●
Akeeba Subscriptions
●
Akeeba Subs + Akeeba Release System
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
39. Persuing a Modelling Career
●
●
Product model: how you envision your products
vs how you shoehorn your products into your
cart's database
Attributes, groups, bundles, downloads,
subscriptions, ...
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
40. Front-end
●
●
●
●
Typically perceived as “ecommerce” -> NO
Use Joomla as much as possible for front-end,
b/c front-end = Joomla's strength
Use “add-to-cart” content plugin to “buy” button
to link your front-end to your cart
People lavish time & money on front-end, and
starve checkout
October 22, 2013
Bob Bloom
info@LaSalleMart.com
Joomla User Group Toronto
Toronto.Joomla.ca
Hinweis der Redaktion
Welcome to the Joomla User Group Toronto workshop on ecommerce.
Every month JUGT holds a workshop on various topics. Please consult the JUGT website to see what is happening.
Joomla! User Group Toronto is local user group for Joomla!.
http://Toronto.Joomla.ca
Facebook site
Twitter @jugt
Meetup.com
The exec team made today's workshop happen:
Doug Pickett
Niv Froelich
Alan Langford
Vic Garbutt
Alison Meeks
.. and Yours Truly
* visual cues in checkout -> more “wizard” like
* have people go through your checkout on all sorts of computers & devices
* owned by eBay
* eBay “cleaned up” things
* big revenue generator due to “vig” per transaction
* to show you that there is somewhere on your site that receives IPN info
* to show you that the “return codes” from PP exist within your site's cart software
* go through your checkout for downloadable products, just like your customers would, to see what they go through. Adjust your workflow accordingly.
* Sometimes you have to make trade-offs between convenience-security-cart_abandonment
* customers want free shipping
* cart abandonment happens a lot at shipping
* have a page describing your shipping policies, separate from your terms of service
* shipping rate figured out after order is placed + order paid for post order. Can software: enter shipping rate in admin order details & buyer pay from invoice/re-enter checkout?
* Surprising how many times a “simple” product is not so simple.
* product attributes: sometimes need own product_id so adds complexity
* t-shirt: colour = attribute, where want just one product_id and simple selection within add-to-cart form
* many times have to reconcile your model into your cart's capabilities
* mini websites
* seasonal templates – Joomla can handle multiple templates!
* blog style product pages – Tell Your Story
* K2Mart linking VM to K2 intriguing
* content plugin add-to-cart form