Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

SIMPLE E-COMMERCE SOLUTION WITH DRUPAL 8 AND SHOPIFY João Ventura (@jcnventura) Wunder Germany 11.5.2017 Drupal Camp Nordics 2017 #DCNordics

Slide 3

Slide 3 text

We’re hiring! Want to work with us? #5 Great place to work 2017 (FI) Finland, Latvia, Estonia Germany, UK, Sweden https://wunder.io/careers

Slide 4

Slide 4 text

E-Commerce in Drupal Ubercart Leading e-commerce solution in Drupal 5 and 6 Maintained in Drupal 7… And Drupal 8! Drupal Commerce Best solution in Drupal 7 and Drupal 8 Acquia + Magento partnership…

Slide 5

Slide 5 text

Gartner Magic Quadrant for Digital Commerce

Slide 6

Slide 6 text

In the real world Top 5 Magento + Magento Ent. Oracle Commerce WooCommerce (Wordpress) Shopify Demandware (now Salesforce) https://trends.builtwith.com/shop

Slide 7

Slide 7 text

Our project Largest Health Club Group Worldwide Club information and Lead Generation (Drupal 8) In-house know-how of Fitness Trainer Training Provide Trainer Training outside of organisation Academy site based on similar technology as main site Simple and cost-effective

Slide 8

Slide 8 text

Shopify Advantages E-commerce SaaS solution. Manages the following: Users Payments (credit cards, Paypal, many others) Invoices Sales taxes Discount cupons But it does cost money ($29-$299 / mo + 0.5-2.9% / sale)

Slide 9

Slide 9 text

There’s a module for that™ Shopify API (https://www.drupal.org/project/shopify_api) No integration, just the API. Shopify eCommerce (https://www.drupal.org/project/shopify) Shop integration Sync products from Shopify to Drupal

Slide 10

Slide 10 text

Shopify Data model Collections (groups of products) Products Variants (e.g. sizes / colours ) Inventory (quantity) Price

Slide 11

Slide 11 text

How the module works Synchronises products and collections Cron (periodical) Webhooks (push from Shopify) Drupal endpoint are entities Product and Product variant entities (fieldable) Collections are taxonomies

Slide 12

Slide 12 text

What we ended up doing Custom product content type Reason: cart checkout title != page title Custom block to display Shopify entity Allowed us to move product editorial UI from Shopify to Drupal Used custom view to display products instead of /store hook_form_alter() to hide quantity field

Slide 13

Slide 13 text

There’s a module for that™ Shopify Edition Extensive third-party App store (https://apps.shopify.com) Email Marketing, Upsells, Social Media, etc. ($$$) For this client we ended up using: Terms and Conditions Confirmation ($59) Meta fields (remember CCK?)

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

Shopify caveats No multi-language support Language handling via customisation of client notifications. Shopify Plus is steeply priced (quote only, >1K$/mo) Checkout in same domain. No transaction fees

Slide 16

Slide 16 text

Setup 1. Create a free store (https://www.shopify.com) 2. Install and enable Shopify API (drush -y en shopify_api) ‣ composer require donutdan4114/shopify:dev-master 3. Create API credentials in shopify. 4. Add them to Drupal (/admin/config/system/shopify_api) 5. Enable Shopify (drush -y en shopify) 6. Download and upload theme (/admin/config/system/ shopify/theme)

Slide 17

Slide 17 text

DEMO

Slide 18

Slide 18 text

[email protected] www.wunder.io/de Agnes-Pockels-Bogen 1, D1.019; 80992 München Wunder Germany d.o: jcnventura Phone: +49.89.85636307 [email protected] João Ventura Any questions??

Slide 19

Slide 19 text

No content