Slide 1

Slide 1 text

#shopifyjpmeetup ΞϓϦɾςʔϚϫʔΫγϣοϓ #3ʢ࣮ફฤʣ

Slide 2

Slide 2 text

• Junichi Okamura, Technical Partner Manager at Shopify • @benzookapi • API Lover/Midnight Developer/MANGA Creator/Beer Lover/App Hacker Who am I?

Slide 3

Slide 3 text

• Shopify͓ΑͼύʔτφʔϓϩάϥϜʹ͍ͭͯʢ௒؆୯ʹʣ • ύʔτφʔΞΧ΢ϯτͷ࡞੒ ʢ※ࣄલʹ͍ͯͨͩ͘͠ͷͰಉ͘͡؆୯ʹʣ • ΞϓϦ͓ΑͼςʔϚͷجຊߏ੒ʢApp BridgeɺPolarisɺWebhookɺLiquidʣ • ΞϓϦ͓ΑͼςʔϚͷϋϯζΦϯʢνϡʔτϦΞϧɺը໘ͱThemeKitͰͷฤूʣ • ؅ཧऀը໘ͷσβΠϯʢPolarisαΠτΛ࢖ͬͨίϯϙʔωϯτฤूͷσϞʣ • REST APIͱGraphQLͷ࢖͍ํʢAPI ToolΛ࢖ͬͨAPIͷಈ࡞֬ೝͷσϞʣ • ࣮ࡍͷΞϓϦʹΑ͘࢖ΘΕΔٕज़ͰཧղΛਂΊΔʢTheme APIɺApp proxiesʣ • Q&AɺΞϯέʔτɺަྲྀձ ຊ೔ͷ಺༰ʢ΍΍࣮ફతʹͯ͠Έ·ͨ͠ʣ ϋογϡλά͸ #shopifyjpmeetup !

Slide 4

Slide 4 text

Make Commerce Better For Everyone

Slide 5

Slide 5 text

Shopify͸Ϋϥ΢υϕʔεͷΦϜχνϟωϧΛ࣮ݱͨ͠ϓϥοτϑΥʔϜͰ͢ɻ ݸਓͷํ͔Βେاۀ·Ͱ҆৺ͯ͠͝ར༻͍͚ͨͩ·͢ɻ 2006 Shopifyϩʔϯν $1,073M ೥ؒརӹֹ (աڈ12ϱ݄) 2,900+ ΞϓϦετΞʹެ։͞Ε͍ͯΔΞϓϦͷ਺ $100B ࣄۀऀ༷ͷ૯ྲྀ௨ֹ (ྦྷܭ) 2.1 million ϢχʔΫͷετΞΞΧ΢ϯτ਺ 1,00,000 ళฮ —— ~175ϱࠃ 4,000+ ࣾһ਺ 22,000 աڈ12Χ݄ͷؒͰ1ళฮҎ্ͷShopifyετΞΛ
 ϦϦʔεͨ͠ύʔτφʔͷ਺ #shopifyjpmeetup

Slide 6

Slide 6 text

ShopifyύʔτφʔΤίγεςϜ Ϛʔνϟϯτ͕ αʔυύʔςΟʔ ΞϓϦΛར༻ 80%+ ύʔτφʔ͔Βͷ঺հ Ϛʔνϟϯτ 200,000+ Shopifyύʔτφʔ͕ಘͨऩӹ͸ 1,320ԯԁ (2018೥౓) ΞϓϦ։ൃύʔτφʔ͕ ಘͨऩӹ͸ 200ԯԁ (2018೥౓)

Slide 7

Slide 7 text

ετΞߏஙύʔτφʔ ΫϥΠΞϯτͷֹ݄ར༻ྉ20%Λຖ݄ಘΔ͜ͱ͕Մೳɻ ঺հύʔτφʔ ΫϥΠΞϯτͷֹ݄ར༻ྉ͔݄̎෼ΛγϣοτͰಘΔ͜ͱ͕Մೳɻ ςʔϚσβΠϯύʔτφʔ ςʔϚετΞ্ͷച্͛ͷ࠷େ70%ΛಘΔ͜ͱ͕Մೳɻ ΞϓϦ։ൃύʔτφʔ ΞϓϦετΞ্ͷച্͛ͷ80%ΛಘΔ͜ͱ͕Մೳɻ Shopifyύʔτφ޲͚ϨϕχϡʔγΣΞ

Slide 8

Slide 8 text

Bold Commerce - ΞϓϦ։ൃύʔτφʔ 2012೥ʹ༑ਓ4ਓͰShopifyΞϓϦͷ։ൃΛ࢝Ίɺ ࠷ॳʹެ։ͨ͠ΞϓϦʮBold Upsellʯ͕େώοτͨ͜͠ͱΛ͖͔͚ͬʹ ຊ֨తʹShopifyͷΞϓϦΛ։ൃ͠·ͨ͠ɻ ݱࡏɺ20Ҏ্ͷύϒϦοΫΞϓϦͱԿඦ΋ͷϓϥΠϕʔτΞϓϦΛ։ൃ͠ɺ ߹ܭ100,000Ҏ্ͷେखاۀؚΜͩސ٬͕ΞϓϦΛ࢖༻͓ͯ͠Γ·͢ɻ ࠓ͸250ਓͷैۀһΛ๊͑ɺड৆ܦݧͷ͋Δاۀʹ·Ͱ੒௕͠ɺ ஍ݩͷΧφμͷϚχτόभͰ͸࠷΋ૣ͘੒௕Λ਱͛ͨITاۀͱͳΓ·ͨ͠ɻ Shopifyύʔτφʔͷ੒ޭࣄྫ

Slide 9

Slide 9 text

Shopify ςʔϚετΞ 100छྨҎ্ͷσβΠϯςϯϓϨʔτ https://themes.shopify.com

Slide 10

Slide 10 text

2,900+ ެ։͞Ε͍ͯΔAPIͰࣗ༝ʹΧελϚΠζ΍ΞϓϦͷ࡞੒͕Մೳ ച্Ξοϓ ഑ૹ ࡏݿ؅ཧ ސ٬؅ཧ ࡒ຿ɾձܭ ଟݴޠɾଟ௨՟ Ϩϙʔτ ιʔγϟϧ ϚʔέςΟϯά Shopify ΞϓϦετΞ https://apps.shopify.com/?locale=ja

Slide 11

Slide 11 text

ύʔτφʔΞΧ΢ϯτͷ࡞੒ #shopifyjpmeetup

Slide 12

Slide 12 text

ύʔτφʔΞΧ΢ϯτͷ࡞੒ #shopifyjpmeetup Shopify ύʔτφʔ https://www.shopify.jp/partners

Slide 13

Slide 13 text

։ൃετΞͷ࡞੒ #shopifyjpmeetup

Slide 14

Slide 14 text

։ൃετΞ΁ϩάΠϯ #shopifyjpmeetup

Slide 15

Slide 15 text

ΞϓϦɾςʔϚͷجຊߏ੒ #shopifyjpmeetup

Slide 16

Slide 16 text

ΞϓϦͷߏ੒ #shopifyjpmeetup Partner Server App Bridge (page) App Bridge (Action) Admin API Storefront API Polaris (UI) Webhook Webhook App Bridge (POS) API calls

Slide 17

Slide 17 text

ςʔϚͷߏ੒ #shopifyjpmeetup Shopify Server (Liquid runtime) Layout (theme.liquid) Templates (collection.liquid) Templates (search.liquid) … And more Home (common parts) Collection Search page … And more Liquid Liquid Liquid

Slide 18

Slide 18 text

App Bridgeͱ͸ʁ #shopifyjpmeetup ShopifyʹΞϓϦΛຒΊࠐΉͨΊͷJavascriptϥΠϒϥϦʢPOSΞϓϦʹ΋ରԠʣ

Slide 19

Slide 19 text

Polarisͱ͸ʁ #shopifyjpmeetup ShopifyϚʔνϟϯτʹ࠷దͳUXΛఏڙ͢ΔͨΊͷCSSʢReact ʣϥΠϒϥϦʢOSSʣ

Slide 20

Slide 20 text

Webhookͱ͸ʁ #shopifyjpmeetup Shopifyͷσʔλߋ৽ͷΠϕϯτΛ௨஌ͯ͘͠ΕΔػೳʢAPIΛݺͼग़͢͜ͱ΋Մೳʣ ※ʮઃఆʯ> ʮ௨஌ʯ > ʮWebhookʯ ͔ΒઃఆͰ͖·͢ Webhookͱ͸

Slide 21

Slide 21 text

Liquidͱ͸ʁ #shopifyjpmeetup Shopify͕։ൃͨ͠RubyͰॻ͔ΕͨςϯϓϨʔτݴޠʢOSSʣ
 Tags: {% %} ৚݅෼ذ΍܁Γฦ͠ͷจ Objects: {{}} σʔλ಺༰ͷදࣔ Filters: | σʔλͷϑΥʔϚοτ

Slide 22

Slide 22 text

ϋϯζΦϯʢΞϓϦʣ #shopifyjpmeetup

Slide 23

Slide 23 text

νϡʔτϦΞϧͰ࡞ͬͯΈΔ #shopifyjpmeetup Shopify app νϡʔτϦΞϧ https://developers.shopify.com/tutorials/build-a-shopify-app-with-node-and-react?locale=ja

Slide 24

Slide 24 text

ΞϓϦ։ൃखॱᶃɿඞཁͳٕज़ɺ༻ޠͷ੔ཧ #shopifyjpmeetup HTMLɺCSSɺJavaScriptɺJSONɺΫΤϦͳͲͷཧղ͸ඞਢͰ͢ɻ ࿅शɿ
 ֤༻ޠΛࣗ෼ͷݴ༿Ͱ આ໌ͯ͠ΈΑ͏

Slide 25

Slide 25 text

ΞϓϦ։ൃखॱᶄɿ؀ڥઃఆͱॳظঢ়ଶͷΞϓϦͷ࡞੒ #shopifyjpmeetup ίϚϯυϥΠϯπʔϧ΍ඞཁϥΠϒϥϦͷΠϯετʔϧͱىಈ֬ೝ ࿅शɿ
 ίϐϖͰ͍͍ͷͰ࠷ޙ ͷ෦෼·ͰͨͲΓண͍ ͯΈΑ͏

Slide 26

Slide 26 text

ศརͳίϚϯυπʔϧ Shopify App CLI #shopifyjpmeetup ϑΝΠϧͷࣗಈੜ੒ɺΞϓϦͷىಈఀࢭɺHerokuσϓϩΠ·Ͱʂ https://github.com/Shopify/shopify-app-cli Shopify app CLI

Slide 27

Slide 27 text

ΞϓϦ։ൃखॱᶅɿAPIೝূͱΞϓϦͷΠϯετʔϧ #shopifyjpmeetup OAuth༻ͷೝূ৘ใͱετΞ΁ͷΞϓϦΠϯετʔϧʢύʔϛογϣϯ෇༩ʣ ࿅शɿ
 ίϐϖͰ͍͍ͷͰ࠷ޙ ͷ෦෼·ͰͨͲΓண͍ ͯΈΑ͏

Slide 28

Slide 28 text

ϋϯζΦϯʢςʔϚʣ #shopifyjpmeetup

Slide 29

Slide 29 text

ςʔϚͷΧελϚΠζํ๏ᶃɿηΫγϣϯ #shopifyjpmeetup GUIͰ෦඼Λυϥοά&υϩοϓͰฤूͰ͖Δ͓खܰΧελϚΠζํ๏ ࿅शɿ
 ηΫγϣϯΛυϥοά &υϩοϓͯ͠ΈΑ͏ʂ

Slide 30

Slide 30 text

ςʔϚͷΧελϚΠζํ๏ᶄɿίʔυฤू #shopifyjpmeetup ςʔϚͷϑΝΠϧͷHTMLΛ௚઀͍͡ΕΔॊೈͳํ๏ ࿅शɿ
 HTMLͷཁૉΛ͍ͬͯ͡ ֎ݟΛม͑ͯΈΑ͏ʂ

Slide 31

Slide 31 text

ςʔϚͷΧελϚΠζํ๏ᶅɿLiquid #shopifyjpmeetup HTML಺ʹ͞Βʹ੍ޚॲཧΛೖΕͯը໘Λಈతʹදࣔ͢Δํ๏ ࿅शɿ
 ݱࡏͷϖʔδͷ ςʔϚϑΝΠϧ໊Λ දࣔͯ͠ΈΑ͏

Slide 32

Slide 32 text

ςʔϚͷΧελϚΠζํ๏ᶆɿϩʔΧϧͰฤू #shopifyjpmeetup Shopify Theme Kit ͱ͍͏ίϚϯυϥΠϯπʔϧΛ࢖͏ํ๏ https://shopify.github.io/themekit/ Shopify Theme kit ࿅शɿ
 ίϚϯυϥΠϯͰςʔϚͷ࡞੒ ͱొ࿥ɺมߋ؂ࢹΛͯ͠ΈΑ͏ ʢVS Studioʹ͸Liquidͷ extension΋͋Γ·͢ʣ

Slide 33

Slide 33 text

ςʔϚͷϑΝΠϧߏ੒ #shopifyjpmeetup Layout > Templates > SectionsʢηΫγϣϯͷ࣮ମʣ Assets:ΠϯΫϧʔυ͢ΔϑΝΠϧ Config:ઃఆϑΝΠϧ Locales:ϩʔΧϦθʔγϣϯʢ຋༁ʣσʔλ ɹ※Locales͸ʮݴޠͷฤूʯ͔Β΋มߋՄೳ

Slide 34

Slide 34 text

ܾࡁ׬ྃը໘΁ͷJavaScriptͷຒΊࠐΈ #shopifyjpmeetup νΣοΫΞ΢τͷઃఆͷʮ௥ՃεΫϦϓτʯʹهड़ ※ςʔϚͷઃఆͰ͸ͳ͍͜ͱʹ ஫ҙɻจࣈΛຒΊࠐΜͩ৔߹͸ ςΩετͱͯ͠දࣔ͞Ε·͢

Slide 35

Slide 35 text

ςʔϚ΁ͷಠࣗೖྗ߲໨ͷ௥Ճ #shopifyjpmeetup Line Item Properties/Cart attribute ͱ͍͏δΣωϨʔλ෇͖ͷUI߲໨Λ࢖͏ ※ੜ੒͞ΕͨίʔυΛςʔϚʹష Γ෇͚Δͱ஋͕஫จʹ൓ө͞ΕΔ ಠ߲ࣗ໨͕࡞Ε·͢ https://ui-elements-generator.myshopify.com/pages/line-item-property Shopify Line Item Properties

Slide 36

Slide 36 text

؅ཧը໘ͷσβΠϯ ʢPolarisʣ #shopifyjpmeetup

Slide 37

Slide 37 text

PolarisͷαϯϓϧΛ৮ͬͯΈΔ #shopifyjpmeetup https://polaris.shopify.com/ Shopify polaris

Slide 38

Slide 38 text

ΞϓϦ։ൃखॱᶆɿPolarisΛ࢖ͬͯUIߏங #shopifyjpmeetup ετΞ؅ཧը໘ʹࣗ෼ࣗ਎ͷShopifyΆ͍ը໘ΛຒΊࠐΈ·͢ ࿅शɿ
 Ͱ͖Δͱ͜Ζ·Ͱը໘ Λ࡞ͬͯΈΑ͏ʢ̍ͭ Ͱ΋OK)

Slide 39

Slide 39 text

APIͷ࢖͍ํ ʢREST/GraphQL) #shopifyjpmeetup

Slide 40

Slide 40 text

GraphQLͱ͸ʁ #shopifyjpmeetup SQLͱJSONͷ͍͍ͱ͜औΓΛͨ͠Α͏ͳAPI GraphQLͱ͸

Slide 41

Slide 41 text

GraphQL > REST #shopifyjpmeetup ࠓޙ͸GraphQL͕ਪ঑ʹͳΓ·͕͢ɺซ༻΋ՄೳͰ͢ > Shopify api

Slide 42

Slide 42 text

REST API TOOL shopify developer tool https://help.shopify.com/en/api/tools/developer-tools #shopifyjpmeetup

Slide 43

Slide 43 text

GraphQL TOOL shopify graphql tool https://help.shopify.com/en/api/graphql-admin-api/graphiql-app #shopifyjpmeetup

Slide 44

Slide 44 text

࣮ࡍʹ৮ͬͯΈΑ͏ SHOP REST (local app) GraphQL (Shopify app) #shopifyjpmeetup

Slide 45

Slide 45 text

ΞϓϦ։ൃखॱᶇɿAPIΛ࢖ͬͯσʔλΛૢ࡞ #shopifyjpmeetup GraphQL·ͨ͸REST APIΛ࢖ͬͯShopifyͷ΄΅શͯͷσʔλΛૢ࡞Ͱ͖·͢

Slide 46

Slide 46 text

࣮ࡍͷΞϓϦʹΑ͘࢖ΘΕΔ ٕज़ͰཧղΛਂΊΔ #shopifyjpmeetup

Slide 47

Slide 47 text

ΞϓϦͷΠϯτʔϧը໘ΛνΣοΫ͢Δ #shopifyjpmeetup ύʔϛγϣϯΛ֬ೝ͢Δ͜ͱͰͲ͏͍࣮ͬͨ૷͕͞Ε͍ͯΔ͔༧ଌ͕ͭ͘

Slide 48

Slide 48 text

ετΞϑϩϯτ޲͚ͷ΋ͷ͸ϒϥ΢βίϯιʔϧΛ׆༻ #shopifyjpmeetup Ͳͷը໘ͰͲ͏͍ͬͨ௨৴΍εΫϦϓτ͕ॲཧ͞Ε͍ͯΔ͔֬ೝ

Slide 49

Slide 49 text

ΞϓϦʹΑΔมߋՕॴΛ֬ೝ #shopifyjpmeetup ͲͷΞΫγϣϯ΍ϖʔδ͕֦ு͞Ε͍ͯΔ͔ͰͲ͏͍ͬͨઃܭʹͳ͍ͬͯΔ͔Θ͔Δ

Slide 50

Slide 50 text

Α͘࢖ΘΕΔػೳᶃɿTheme API #shopifyjpmeetup ετΞϑϩϯτ޲͚ʹΞϓϦΠϯετʔϧ࣌ʹςʔϚΛࣗಈߋ৽͢Δͷʹ࢖͏

Slide 51

Slide 51 text

Α͘࢖ΘΕΔػೳᶄɿApp proxies #shopifyjpmeetup ετΞϑϩϯτ͔ΒΞϓϦͷURLΛγϣοϓͷURLͱͯ͠ݺͼग़͢ػೳ

Slide 52

Slide 52 text

·ͱΊ #shopifyjpmeetup

Slide 53

Slide 53 text

ωΫετΞΫγϣϯ #shopifyjpmeetup ΋ͬͱཧղΛਂΊ͍ͨํɿ => ؤுͬͯӳޠͷυΩϡϝϯτΛಡΜͰͲΜͲΜखΛಈ͔ͦ͏ʂ Կ͔࣭໰͕ग़͖ͯͨΒʁɿ => ೔ຊޠͷϑΥʔϥϜͰ೔ຊޠͰ࣭໰ͯ͠ΈΑ͏ʂ https://help.shopify.com/en/api/getting-started https://community.shopify.com/c/Shopify-Community-Japan/ct-p/jp

Slide 54

Slide 54 text

Shopify App Store #shopifyjpmeetup https://help.shopify.com/en/api/app-store/listing-in-the-app-store/app-submission ΞϓϦͷਃ੥खॱɿ => ࡞ͬͨΞϓϦΛετΞʹਃ੥ͯ͠ΈΑ͏ʂ

Slide 55

Slide 55 text

ࠓޙͷ༧ఆ #shopifyjpmeetup • ΦϯϥΠϯϫʔΫγϣοϓʢYoutubeʣΛ༧ఆʢདྷ݄ʁʣ • ύʔτφʔ͞ΜͱͷϫʔΫγϣοϓʢεϥΠυςϯϓϨʔτఏڙʁʣ

Slide 56

Slide 56 text

Q&AɺΞϯέʔτʢ౴͑ͯͶʂʣ #shopifyjpmeetup

Slide 57

Slide 57 text

#shopifyjpmeetup Thank you!