Table Of ContentSatchmo Documentation
Release 0.9.3-Dev
Chris Moffitt
July23,2015
Contents
1 Overview 3
1.1 SatchmoIntroduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 AboutthisProject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 SatchmoFeatures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 DirectoryStructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 Installation 11
2.1 QuickStart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4 BasicConfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3 StoreUsage 29
3.1 Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2 Discounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3 Pricing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4 Tax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.5 Shipping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.6 Analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.7 PaymentModules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.8 EmailVerification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4 ModifyingAStore 51
4.1 StoreCustomization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2 CustomizingAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3 CustomPaymentModules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.4 CustomProductAttributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.5 CustomProductModules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.6 TranslatingContent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.7 SatchmoTemplates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.8 SatchmoTemplateFiltersandTags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.9 SatchmoViews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.10 SignalsinSatchmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5 OptionalModules 91
5.1 GoogleBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.2 Upsell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
i
6 Tutorials 95
6.1 AddingaProducttoYourStore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7 DeployingAStore 105
7.1 DeployingAStore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.2 ManagingYourStore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
8 AdditionalNotes 107
8.1 SatchmoDevelopmentBranch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
8.2 Satchmo0.9.2Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.3 SatchmoRelease0.9.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.4 Satchmo0.9Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
8.5 Satchmo0.8.1Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
8.6 Satchmo0.8Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
8.7 Satchmo0.7Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
8.8 SatchmoMigrationsandUpgrades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
ii
SatchmoDocumentation,Release0.9.3-Dev
SatchmoisaneCommerceframeworkcreatedinDjangowhichallowsyoutodevelopuniqueandrobustonlinestores.
Contents 1
SatchmoDocumentation,Release0.9.3-Dev
2 Contents
1
CHAPTER
Overview
1.1 Satchmo Introduction
1.1.1 History
LikemostOpenSourceprojects,Satchmowasstartedto“scratchanitch.” Thisparticularitchwastocreateaframe-
workfordevelopingapythonbasedshoppingcartframeworksoftwareusingDjango. Afteralittlebitofdiscussion
ontheDjangolist,wecreatedourownprojectinApril2006.
InAugust2007,wereleasedthefirstpublicreleaseofSatchmo-version0.5. Wehavehadseveralreleasessincethen
andarecontinuallyimprovingthefeaturesandfunctionsincludedinSatchmo.
1.1.2 Project Mission
Satchmo’smissionistouseDjangotocreateanopensourceframeworkforcreatinguniqueandrobustonlinestores.
Toprovidemaximumflexibility,SatchmoislicensedundertheBSDlicense.
1.1.3 Current Development Status
With the release of version 0.5, Satchmo entered beta status. The most recent release is 0.9.2 and includes many
improvementsandfixesover0.9.1. Allusersareencouragedtousethislatestversion.
1.2 About this Project
This project was started by a group of individuals that were interested in using the Django framework to create a
robustshoppingcartsolution. Aftersomediscussions,wehavedecidedtofocusonbuildingamodularframeworkof
shoppingcartoreCommercepackagesthatcanbeeasilyputtogethertoformafullstore. WhydidweuseDjangofor
thisparticularproject?
Firstoff,wewantedtousePythonfortheproject. ManyofushaveexperiencewithsimilarPHPbasedprojectsand
wequicklyrealizedthattheytendtobreakdownprettyquicklyundertheunwieldysyntax,lackofgoodOOsupport
andhackishnatureofmanyoftheprojects.
Once we decided on Python, there were many frameworks to evaluate. They all have tradeoffs but there are some
thingswereallylikedaboutDjango:
• Robust,scalablesystemthathasbeenusedonmajorcommercialsites
3
SatchmoDocumentation,Release0.9.3-Dev
• Cleanseparationofprogramlogicfrompresentation
• NiceabstractionofSQL(butwiththecapabilitytocodeSQLifrequired)
• Soliddocumentation
• URLmappingcapabilitieswillbeveryusefulforashoppingcartsolution
• Outoftheboxadmincapabilitiesmakingiteasytogetupandrunning&provideenhancedsecurityformultiple
usersinastore.
Thislistisnotexhaustiveandtherecouldbeendlessdebateandflamewarsonthechoicesbutwe’veallreachedthis
decisionindependentlyandencourageyoutoinvestigateandmakeyourownchoice.
1.2.1 Why build a shopping cart framework?
Interestinglyenough,thereseemstobeafairlylargenumberof“geeks”whoareinvolvedincreatingwebstoresfor
theirwivesorsignificantothers. Forvariousreasonsmentionedabove,weindependentlystartedusingDjango. Itjust
happensthatthere’sthepossibilityforalotofsynergyhere. LikemostOpenSourceprojects,wecreatedthisproject
becausewethoughttherewasanunmetneedforourselvesaswellasthelargeraudience.
Manyofthecurrentshoppingcartsouttherewerebuiltawhileagoandhavenotagedtoogracefully. Theyalsodid
nothavethebenefitsoftheDjangoframework. LookingattheDjangoframework, werealizedthatwithjustalittle
bitofadditionalworkwecouldhaveaprettypowerfulshoppingcartsystem.
We initially thought about developing a full fledged shopping cart but realized that it is very difficult to build a one
sizefitsallshoppingcartpackage. Somepeoplewantaverysimplesolutionandareconfusedbythemultipleoptions
andconfigurationsavailabletothem. Otherpeoplehavethetechnicalcapabilitiestobuildsomethingveryrobustand
tailoredtotheirneeds. InasimilarwaythatDjango“getsoutofyourway”andallowsyoutofocusonthemodelsand
rulesforyourapplication,wewanttobuildaframeworkthatmakesittrivialtosetupasimpleshopandrelativelyeasy
tomodifyitandgrowasyourbusinessneedschange.
1.2.2 What license are you using?
WehavedecidedtousetheBSDlicenseforthisproject. Youcanlearnmoreaboutithere.
1.3 Satchmo Features
1.3.1 Current Features
Satchmostrivestobeextremelyflexible.
• AlldisplayitemsaredrivenbytemplatesusingthepowerfulDjangotemplatinglanguage
• Allurlscanbecustomconfiguredtoyourdesirednamingconvention
• Thecheckoutprocesscanbetailoredtoyourspecificneeds
Satchmosupportmanypaymentmodulesincluding:
• Authorize.net
• Trustcommerce
• Googlecheckout
• Cybersource
4 Chapter1. Overview
SatchmoDocumentation,Release0.9.3-Dev
• Paypal
• Protx
• Sermepa
• Purchaseorders
Satchmohasflexibleshippingoptionsandallowsyoutocreateyourown. Satchmoincludes:
• UPSintegration
• Fedexintegration
• USPSintegration
• CanadaPostintegration
• Flatrateshipping
• Multi-tieredshippingbasedonquantityorprice
• Peritemshippingcost
Satchmo’shasrobustsupportformultipleproducttypesincluding:
• Downloadableproducts
• Subscriptionproducts
• Customconfiguredproducts
• Productvariants
• Giftcertificates
Allproductsofferyoutheopportunitytohave:
• Asmanyimagesperproductasyouwouldlike
• Automaticthumbnailcreationfortheimages
• Unlimitedcategoriesandsubcategories
• Supportformultiplepricinganddiscountingtiersbasedonvolume
• Supportfortiered/grouppricing
• InventorytrackingincludingSKU’sandpreventingusersfromorderingoutofstockitems
• MetadatasupportforSEO
• Featureditems
• Taxtables
• Relatedproducts
• Mostpopularproducts
• Arbitraryattributes
• Multipletranslationsperproduct
• Flexiblevariantcreation(shirtswithsizesandcolors)includingpricechangesforcombinations
• Allowusertocommentandrateproducts
• Commentssupportakismetspamtagging
• Supportforbrands
1.3. SatchmoFeatures 5
SatchmoDocumentation,Release0.9.3-Dev
Thecustomermodelallowsyouto:
• Havemultipleshiptoandbilltoaddresses
• Vieworderhistory
• Updateaccountprofileonline
• Resetuserpasswords
• Requireemailverificationforaccountcreation
Satchmosupportsdiscountcodeswhichallowyouto:
• Setamountofpercentagediscounts
• Limitthenumberofuses
• Allowfreeshipping
• Setstartandenddates
• Limittocertainproducts
SatchmoincludesextensiveInternationalizationandtranslationsupport:
• Multipletranslationsareincluded:
– French
– German
– Italian
– Spanish
– Swedish
– Bulgarian
– Portuguese
– Korean
– Hebrew
– Turkish
• Fullcountryspecificinformation
• Translationsupportforallproductsandcategories
• Supportfordateandcurrencyformatingbasedonlocale
Satchmotakessecurityseriously:
• Djangoprovidesbuiltinsupporttopreventmanycommonattackssuchas:
– SQLinjection
– AutomaticHTMLescapingtopreventcross-sitescripting
– Sessionforging/hijacking
• Satchmoencryptsallcreditcardinformation
• Satchmoallowsyoutochooseifcreditcarddataisstored
• Satchmodoesnotstoreccvdatainthedatabase
• Finegrainedsslsupportforasmanyorasfewurlsasyouneed
6 Chapter1. Overview
Description:Google adwords support. • Google Satchmo requires Python 2.6 or later and a database supported by Django. a Python dictionary manually.