ecommerce presentation, joomla user group toronto, oct 22, 2013
TRANSCRIPT
echo $msg->welcome;
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.
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
echo $msg->jugt
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
Joomla! User Group Toronto is local user group for Joomla!.
http://Toronto.Joomla.caFacebook siteTwitter @jugtMeetup.com
The exec team made today's workshop happen:Doug PickettNiv FroelichAlan LangfordVic GarbuttAlison Meeks.. and Yours Truly
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.
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.
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.
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
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-of-control 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
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 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
CC info -con't
CC info gets hacked:Publicity, none of it good
Knock on the door
From your house to the big house
Sales go to zero
Do not store CC info
Offer PayPal Standard, or other pmt that redirects to payment site
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
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
* owned by eBay* eBay cleaned up things* big revenue generator due to vig per transaction
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
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
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/classic/ipn/integration-guide/IPNIntro/
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':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/paypalpaymentspro/paypalpaymentspro.php)
* 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
IPN con't
Feature or bug: PayPal Payment Status = "Completed"ANDOrder Status NOT Updated via IPNAnswer: 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.
* 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
IPN con't
IPN con't
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
* 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?
Standard Shipping Types
(https://southlasalle.atlassian.net/wiki/display/lasallemartkb/Standard+Shipping+Types?src=contextnavchildmode)Type 0: Flat Rate Per Itemshipping 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 Itemshipping 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 Ordershipping rate based on the total weight of all products in the cart;
sum each product: (shipping rate * qty) + handling fee charged just once.
Standard Shipping Types
Type 3: Flat Rate Per Orderregardless 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 Subtotalshipping 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 Orderuses a range of quantities;
shipping rate = (shipping rate per item + handling fee).
Type 6: Price Based on Order Subtotalshipping 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).
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
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
UPS: Dev Kit Not For Devs!
UPS: Online Access Signup
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
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.
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
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
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??
Subscriptions
Site subscriptions
Downloadable or subscription?
Akeeba Subscriptions
Akeeba Subs + Akeeba Release System
Akeeba Subscriptions
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, ...
* 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
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
* 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
October 22, 2013
Joomla User Group TorontoToronto.Joomla.ca