{
    "componentChunkName": "component---src-templates-article-page-template-js",
    "path": "/operator-guides/concepts/",
    "result": {"data":{"markdownRemark":{"frontmatter":{"title":"Concepts","slug":"concepts","updated":"2023-04-01T00:00:00.000Z","category":"operator-guides-concepts","ingress":"Definition of common terms we use when talking about Sharetribe Flex.","skills":null},"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"core-concepts","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#core-concepts","ariaLabel":"core concepts permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Core concepts"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Description of terms and concepts to understand Sharetribe Flex."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"headless","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#headless","ariaLabel":"headless permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Headless"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Headless describes the technology architecture of marketplaces built on\nFlex. Headless software means that the frontend and backend portions are\nhosted separately. When a marketplace is built with Flex, the backend is\nhosted and managed by Sharetribe while the frontend is hosted and\nmanaged by you. The frontend and backend interface through APIs; the\nfrontend “calls” the backend, prompting the backend to process the\nrequest and respond."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Building a headless marketplace lets you create custom marketplaces\nfaster than building a marketplace from scratch. Developers build a\ncustom frontend, using the pre-built backend functionalities from Flex\nAPIs."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"frontend","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#frontend","ariaLabel":"frontend permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Frontend"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The frontend refers to the marketplace website or mobile application. In\na headless architecture, this portion is built and hosted separately\nfrom the marketplace backend. Frontend applications can also be referred\nto as client applications."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/operator-guides/concepts/#flex-templates-for-web","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Flex Templates for Web"}]},{"type":"text","value":"\nare the most common way to build a marketplace frontend with Flex. You\nmay build frontends completely from scratch too."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The marketplace frontend communicates with the backend via Flex APIs. It\nsends and retrieves data through these APIs. For example, client\napplications rely on the Asset API to retrieve content created through\nthe Pages, such as a landing page."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"backend","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#backend","ariaLabel":"backend permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Backend"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The backend refers to the marketplace database and supporting\ninfrastructure. In Flex, the backend is hosted, maintained, scaled, and\nsecured by Sharetribe. It provides tools like API resources, extended\ndata, or the transaction process to developers that make building a\ncustom frontend application much faster and easier."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Flex frontend applications, or marketplace applications, store,\nretrieve, alter, and use data in the backend via Flex APIs."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"flex-apis","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#flex-apis","ariaLabel":"flex apis permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Flex APIs"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Flex APIs are the interfaces through which marketplace application(s)\ncommunicate with their Sharetribe-hosted backend. Though distinct from\nthe backend, APIs and backend are often used interchangeably."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Flex has four major types of APIs. Each of these four APIs has several\nAPI endpoints. Each endpoint represents a tool or functionality that the\ndeveloper can use when building and powering your marketplace\napplication."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The endpoints available with Flex represent what Flex can do and how it\ncan do it. Because Flex is a tool for building marketplaces, the\navailable endpoints are designed specifically to support marketplace use\ncases. Endpoints are grouped under resources, or data entities, that\nthey impact."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"api-resource","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#api-resource","ariaLabel":"api resource permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"API Resource"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"An API resource refers to a predefined data entity available through\nFlex APIs. The most important resources in Flex are User, Listing, and\nTransaction. User, Listing, and Transaction resources resource\nrepresents a functional grouping of marketplace building blocks\ndevelopers use to save time creating a marketplace application. For\nexample, the Listing resource includes availability calendar features,\nso it can be used to create custom booking and reservation experiences."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can learn more about the User resource\n"},{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/concepts/users-and-authentication-in-flex/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"here"}]},{"type":"text","value":",\nthe Listing resource\n"},{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/concepts/listings-overview/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"here"}]},{"type":"text","value":", and\nthe Transaction resource\n"},{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/concepts/transaction-process/#users-interact-through-transactions","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"here"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"events","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#events","ariaLabel":"events permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Events"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Events log changes to an API resource. If a new resource is created or\nan existing resource is modified, an Event occurs. Events thus provide a\nhistory of actions in your marketplace. They are also a mechanism for\ninitiating actions in other software as a result of something happening\nin your marketplace. Flex is integrated with Zapier, which can make\nbuilding integrations into many other software applications easier."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"flex-templates-for-web","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#flex-templates-for-web","ariaLabel":"flex templates for web permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Flex Templates for Web"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Flex Templates for Web are the starting point for building your custom\nmarketplace with Flex. There are three templates from which you can\nchoose the one closest to your marketplace idea. The templates are\nopen-sourced website applications that developers can modify per your\nunique requirements. The result is a custom-built marketplace without\nthe cost or time required to build it from scratch."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/legacy/design-toolkit/legacy/user-journey-saunatime/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Saunatime"}]},{"type":"text","value":"\nis a great starting point for building rental marketplaces. Saunatime\nproviders list saunas for rent by day. Sauna lovers can search saunas by\nlocation and book saunas by day using an availability calendar."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/legacy/design-toolkit/user-journey-yogatime/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Yogatime"}]},{"type":"text","value":"\nis a marketplace for service providers–in this example case Yoga\nteachers–to create profile listings advertising their teaching practice.\nCustomers can book hourly sessions from these teachers’ availability\ncalendars. Since Yogatime uses time based availability, rather than day\nbased availability like Saunatime, it is also a good starting point for\nmarketplaces where bookings are made with time units smaller than days."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/legacy/design-toolkit/user-journey-sneakertime/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Sneakertime"}]},{"type":"text","value":"\nis designed to be a starting point for marketplaces where products are\nbought and sold. Sellers list their products–in this case sneakers–and\nmanage inventory and fulfilment. Customers find, purchase, and review\nsneakers and sellers."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"environments","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#environments","ariaLabel":"environments permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Environments"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Environments describe different instances of a Flex backend. There are\nthree environment types: a Test environment, a Development (Dev)\nenvironment, and a Live environment. Test and Dev are included free\nforever with every Flex account."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Test environments are for building features and content into your\nmarkeptlace using no code tools in Console. One example of how to use\nthe Test environment would be to create or edit your content pages. You\nmight create a new content page in Test, see how it looks on your test\nmarketplace, then \"Copy to live\" the page when it is ready."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Development environment is used to build and extend your custom\nmarketplace by developers. You may add your own test Stripe account to\nthe development environment and use it with code to build custom\nfeatures you will later deploy to your live site."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A Live environment is needed to launch a marketplace. It lets your\nmarketplace signup real users and process real transactions."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We recommend using your environments and associated apps (frontends) in\nthis way:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Live environment and live app. This should always be fully functional\nand only include features that have been released to the users of the\nmarketplace."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Test environment and test app. This should always be identical to the\nlive app, so when the operator makes no-code changes to content or\nconfiguration, they can immediately preview them in the test app\nbefore publishing them."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Development environment and development app. This is the\nwork-in-progress application, which can sometimes include features\nthat have not yet been released to users."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"extended-data","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#extended-data","ariaLabel":"extended data permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Extended data"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Extended data lets developers modify the Flex backend to store custom\ninformation. Specifically, the feature allows for changing what data the\nUser, Listing, and Transaction resources store. By capturing custom\nvariables or IDs to these pre-built resources, developers may support a\nbroad range of use cases using a turnkey set of backend tools."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/concepts/extended-data-introduction/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Click here"}]},{"type":"text","value":"\nto learn more about the different types of use cases supported by\nextended data."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"transaction-process","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#transaction-process","ariaLabel":"transaction process permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Transaction process"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Transaction process defines the rules of what and how transactions\nhappen on the marketplace. Anytime two users interact on a Flex\nmarketplace, what steps are available to them, when they are available,\nand what happens as a result of these steps is enclosed in the\ntransaction process."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can have different transaction processes for different ways of\ntransacting, like renting and buying products, in the same marketplace.\nYou can see the transaction processes of your marketplace in Console’s\n“Build” section."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/concepts/transaction-process/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Click here"}]},{"type":"text","value":"\nto learn more about transaction processes and for tips on how desing\nyour own."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"microcopy-editor","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#microcopy-editor","ariaLabel":"microcopy editor permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Microcopy editor"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Microcopy editor lets you edit your marketplace’s microcopy from\nConsole's Build section. Use the Microcopy editor to edit the short\nwritten texts scattered around your marketplace, like button labels,\nerror messages, or help texts."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/operator-guides/how-to-use-microcopy-editor/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Click here"}]},{"type":"text","value":"\nto learn more about the Microcopy editor and how to use it."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"pages","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#pages","ariaLabel":"pages permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Pages"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"With Pages you can create, modify, and delete content pages on your\nmarketplace. It comes pre-loaded with four content pages: the About\npage, the Landing page, the Privacy policy, and the Terms of use page.\nEach of these can be edited with Pages, or additional content pages can\nbe created. You can find the editor in Console's Build section."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/operator-guides/how-to-edit-content-pages-in-console/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Click here"}]},{"type":"text","value":"\nto learn how to use the Pages to modify content on your marketplace."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"content","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#content","ariaLabel":"content permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Content"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"assets","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#assets","ariaLabel":"assets permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Assets"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Assets refers to the API resource which stores your text and visual\ncontent. Your landing page texts and pictures, your Terms page legalese,\nand your marketplace microcopy are stored in the Flex backend as unique\nAssets."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Your marketplace frontend retrieves Assets from the Flex backend and\nrenders them per your marketplace's design. Assets are created in\nConsole without code. For further, more technical information about\nAssets, consult this\n"},{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/references/assets/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"article"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"content-pages","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#content-pages","ariaLabel":"content pages permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Content pages"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Content pages only feature content created by you, the marketplace\noperator. Landing pages, “About” pages and FAQ pages are examples of\ncontent pages. Content pages can be built and edited using Pages."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"dynamic-pages","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#dynamic-pages","ariaLabel":"dynamic pages permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Dynamic pages"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Dynamic pages feature content created by your users. The search page\ndisplaying listings is a dynamic page. Often, dynamic pages offer users\nthe ability to interact with them, such as when buyers are selecting the\nlength of a booking from a listing or entering their payment information\ninto the checkout page."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"microcopy","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#microcopy","ariaLabel":"microcopy permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Microcopy"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Microcopy refers to short written texts scattered around a dynamic\npage’s interface; button labels, error messages, and help texts are all\nexamples.They are textual, brief (a sentence or two), and highly\ncontextual."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can modify your marketplace’s microcopy using the Microcopy editor\nin Console."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"pages-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#pages-1","ariaLabel":"pages 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Pages"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Pages are how marketplace operators create and edit content pages in\nConsole. In Pages, operators create content by defining one or more\nSections. Each Section is composed of Blocks, or subsections, laid out\naccording to the Section template. Depending on which kinds of Sections\nand Blocks you choose for your page, you can create a wide range of\ncontent."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Pages include 4 default content pages: the About page, the Landing page,\nthe Privacy policy page, and the Terms of use page. These can be edited,\nbut not deleted. Operators may create any number of custom content pages\nin addition to the default pages."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"sections","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#sections","ariaLabel":"sections permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Sections"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Sections are the main element of a content page. One Section should be\nused to communicate one goal or theme. Your landing page, for example,\nmight have a Section for the Hero image and main CTA, a Section for\ndescribing the value proposition, and a Section for sharing user\ntestimonials."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Sections can have Fields and Blocks within them. Section templates\ndetermine how information stored in Fields or Block is organized within\na section."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"blocks","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#blocks","ariaLabel":"blocks permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Blocks"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Blocks capture information and present it according to the Section\ntemplate. Though each Block can take the same information, such as a\nvideo or image, text content or title, how this information is presented\ndepends on the Section template. Blocks, therefore, only exist within\nsections. They are the sub-sections that make up a content page."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can study different Block layouts\n"},{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/operator-guides/section-templates/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"here."}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"fields","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#fields","ariaLabel":"fields permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Fields"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Fields store content information. Fields may take short-form or\nlong-form text, URLs, and media (images and Youtube videos). Fields fill\nout both Sections and Blocks. They may be different headings, from\ntitles, sub-titles, ingresses, and normal text. The text inside Fields\ncan be further formatted with Markdown."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"section-templates","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#section-templates","ariaLabel":"section templates permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Section templates"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Section templates determine the layout of the content page created in\nPages. You choose a Section template as part of building your Section.\nThe Section template determines how Blocks show up on your marketplace\npage. There are three templates–Articles, Columns, and Features. You can\nlearn more about each Section template\n"},{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/operator-guides/section-templates/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"here."}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"markdown","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#markdown","ariaLabel":"markdown permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Markdown"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Markdown is a simple programming language used to add formatting to\ntext. You can use it with Pages to emphasize or format your content.\nMarkdown does not do anything fancy like changing the font size, font\ncolor, or font family — but it covers the essentials, using simple\nkeyboard symbols."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can learn more about using Markdown\n"},{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/operator-guides/how-to-format-your-text-in-pages/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"here."}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"users","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#users","ariaLabel":"users permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Users"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Users are one of the API resources available in Flex. Users are created\nwhen anyone registers to your marketplace. Account information like\nsignup date, email, and password are stored to the User resources.\nCustom data can be stored to the User resource using extended data."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Users let you control access to certain marketplace functionalities.\nMoreover, User accounts may be in different states, such as pending\nverification, banned, or deleted."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"user-extended-data","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#user-extended-data","ariaLabel":"user extended data permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"User extended data"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"User extended data is how you store custom attributes to the User\nresource. Flex requires that you define an email and password for every\nUser account created. Sometimes you’ll want to collect more info like a\nphone number or business ID; User extended data stores this custom\ninformation."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Moreover, User extended data is also used to store information about the\nuser’s role, level, or permissions. If you run a marketplace where user\nsigns up as either a buyer or seller, User extended data would be used\nto store and determine access rights throughout your marketplace\napplication."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"user-roles","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#user-roles","ariaLabel":"user roles permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"User roles"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Flex has two possible roles for a registered user: customer and\nprovider. All users can be both customers and providers by default. This\nmeans that even if a person has created a listing, which means they can\nbe a provider, they can also be a customer on someone else's listing."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Extended data can be used to limit users to only customer or provider\ncapabilities."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Flex includes one more user type: the marketplace operator. This is the\nAdmin user. They are not a user in the marketplace – they cannot sign in\nto the marketplace with the same credentials they use to sign in to Flex\nConsole. The operator can, however, take actions on the marketplace\nthrough Flex Console or Integration API, when those actions are defined\nfor the operator. Operators cannot participate in the messaging between\ncustomer and provider within the transaction."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"listings","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#listings","ariaLabel":"listings permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Listings"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Listings are one of the API resources available in Flex. Listings are\nused anytime you need one side of the marketplace to create and add\ninformation that the other side of the marketplace finds and interacts\nwith."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Listings can represent items for purchase, services for rent,\nstorefronts for viewing, and much more. In more complex marketplaces,\nyou may have multiple types of listings; reverse marketplaces have one\nlisting type to put forth buyer requests and another to capture bids or\nproposals by providers."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"listing-extended-data","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#listing-extended-data","ariaLabel":"listing extended data permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Listing extended data"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Listing extended data is how you store custom attributes to the listing\nresource. Fields that your provider fills out while creating their\nlisting, such as the category of the listing, are one use case for\nextended data. These fields can become search parameters like a single\nselect filter or a keyword search for buyers too."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Other use cases include using listing extended data to capture listing\ntype, facilitate integrations, or modify sorting behavior. Ultimately,\nlisting extended data lets developers create listings that look and\nfunction exactly how you need at a fraction of the effort of building\nsuch features from scratch."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"listing-states","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#listing-states","ariaLabel":"listing states permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Listing states"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A listing state defines where a listing is in its lifecycle. Listings\nthat are in progress, but not published are in draft state. Listings\nthat are waiting for approval (if this feature is turned on) are in\npending approval state. Active listings are in published state; only\nlistings in published state are searchable and can be used to start a\ntransaction."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Closed listings are in closed state. Operators or listing authors can\nclose a listing. Finally, deleted state refers to listings whose data\nhas been completely removed."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"listing-approval","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#listing-approval","ariaLabel":"listing approval permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Listing approval"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Marketplaces can require all listings to be approved before they are\npublished on the marketplace. A listing that is pending approval is\nvisible only to its author and the marketplace operator, but not\ndiscoverable by any public API endpoints. Marketplace operators can\nreview and approve listings from Console, though a custom admin\ninterface may be built to review and approve listings as well."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"search","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#search","ariaLabel":"search permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Search"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Search refers to the discovery process undertaken by the demand side\nwhen looking for supply. In Flex, search is built around listings. Flex\nmarketplace can return listings based on parameters the buyer inputs\nusing a variety of techniques, such as keyword search, location search,\nor filtering selections. Search results are sorted by creation date,\nwith more recent listings coming first, or by custom attributes stored\nin listing extended data."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"price","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#price","ariaLabel":"price permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Price"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Listings often take a price. Typically providers set the price of their\nlisting, using pricing units set by the marketplace. Rental marketplaces\nmight ask providers to price by the rental time unit, like hours, days,\nor months for example."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"stock","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#stock","ariaLabel":"stock permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Stock"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Stock is the quantity of available units of a listing. Your marketplace\ncan allow or disallow buyer behavior based on the quantity of stock. For\nexample, if a listing does not have available stock, it cannot be\npurchased by the buyer."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Stock is typically set by the seller when creating their product\nlisting. Stock amounts are adjusted by transactions. If 2 units of a\nlisting are sold, the listing’s stock count decreases by 2."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"availability-calendars","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#availability-calendars","ariaLabel":"availability calendars permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Availability calendars"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Availability calendars define when someone can and cannot book times\nfrom a calendar. It is an often-used feature in service or rental\nmarketplaces. Availability is added by the listing author when creating\ntheir listings, and editable thereafter anytime. Buyers can select times\nfrom the available calendar. Whether buyers book days, nights, 30\nminutes, half-days, months, or some other measure is up to you; Flex\nunderstands booking increments as small as 5 minutes."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Syncing information between an availability calendar in Flex and a 3rd\nparty calendar service is possible with custom development. The extent\nof the work required depends on your needs and the calendar. Please\ncontact our support team at "},{"type":"element","tagName":"a","properties":{"href":"mailto:flex-support@sharetribe.com","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"flex-support@sharetribe.com"}]},{"type":"text","value":" if you have any\nquestions about building such a feature."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"seats","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#seats","ariaLabel":"seats permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Seats"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Seats let providers define how many spaces there are for an available\ntime. This is taken into account during the booking process. Buyers\ncannot reserve more than an available number of seats. Conversely,\nbuyers can reserve times others reserved when there are available seats.\nAs an example, marketplaces selling tickets to events can use seats to\nlet sellers define how many tickets are available and let buyers buy in\nconfidence that there are enough seats available."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"transactions","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#transactions","ariaLabel":"transactions permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Transactions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Transactions are one of the API resources available in Flex.\nTransactions are used anytime two users are interacting on the\nmarketplace. How they interact–the possibilities available to them\nthroughout their interaction–is determined by the transaction process.\nYou may have multiple different types of transaction processes and thus\ndifferent types of transactions. For instance, you could have\nrental-style transactions, which include booking possibilities in the\ntransaction process, and ecommerce-style transactions, with instant\npayment and stock management possibilities in the transaction process,\nin the same marketplace."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"transaction-process-1","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#transaction-process-1","ariaLabel":"transaction process 1 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Transaction process"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Transaction process defines the rules of what and how transactions\nhappen on the marketplace. Anytime two users interact on a Flex\nmarketplace, what steps are available to them, when they are available,\nand what happens as a result of these steps is enclosed in the\ntransaction process. You can have different transaction processes for\ndifferent ways of transacting, like renting and buying products, in the\nsame marketplace. You can see the transaction processes of your\nmarketplace in Console’s “Build” section."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/concepts/transaction-process/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Click here"}]},{"type":"text","value":"\nto learn more about transaction processes and for tips on how desing\nyour own."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"messages","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#messages","ariaLabel":"messages permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Messages"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Transactions may include messages. In order for a message to be sent, a\ntransaction resource must be created. They can be available at any point\nin the transaction to both the buyer or seller. Operators can view any\nmessage in Console."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"notifications","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#notifications","ariaLabel":"notifications permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Notifications"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Flex marketplaces can send custom email notifications during\ntransactions. What your email says and how it behaves is controlled by\nyour transaction process. Flex’s default transaction processes all\ninclude template notification email, such as a receipt or reminder to\nleave a review."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You can learn more about transaction email notifications\n"},{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/concepts/email-notifications/#transaction-notifications","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"here"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It is possible to send SMS notifications too, but this requires a 3rd\nparty integration. You may\n"},{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/how-to/set-up-and-use-zapier/#how-to-build-a-text-message-integration-in-sharetribe-flex-using-twilio-and-zapier","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"use Zapier"}]},{"type":"text","value":"\nto send such emails or build bespoke integrations into tools like\nTwilio."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"stock-reservations","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#stock-reservations","ariaLabel":"stock reservations permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Stock reservations"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Flex features stock management. Providers can set their available stock\nwhile creating and managing their listing. During a transaction, stock\namounts are modified based on what happens. If a buyer requests to buy\nan item, for example, the stock amount can be decremented to reflect\nthis request."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Adjusting stock amounts is handled through the transaction process."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"bookings","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#bookings","ariaLabel":"bookings permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Bookings"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Bookings are time reservations made in a provider’s calendar. After a\nprovider sets their availability in their listing, buyers can make\nbookings. Providers can accept, reject, or propose new times. Booking\nactions happen during a transaction. A transaction process handles what\nbooking possibilities exist for buyers and sellers throughout a\ntransaction."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"payments","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#payments","ariaLabel":"payments permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Payments"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Payments are a typical part of a transaction. Payments may be\n“on-platform” (through the marketplace) or “off-platform” (made outside\nthe marketplace). Flex marketplaces can facilitate on-platform payments\nusing the built-in payment system or by integrating their own payment\nsystem. In addition to charging the payment method, marketplace payments\nalso involve charging a commission, payouts to sellers, and refunds.\nPayment behaviors are controlled by the rules set in your transaction\nprocess."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"stripe","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#stripe","ariaLabel":"stripe permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Stripe"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Stripe builds software for online payment processing. Flex comes\nintegrated with Stripe’s Connect tool, which lets buyers purchase from\nsellers directly. As part of this, Stripe Connect handles provider\nonboarding, payment processing, payouts to providers, and commission\ncharging. The Stripe Dashboard gives you a detailed view of every\npayment."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"reviews","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#reviews","ariaLabel":"reviews permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Reviews"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Reviews can be created by a buyer and seller during a transaction.\nReviews consist of free text and a 0-5 star rating. Who can leave a\nreview and when is determined by the transaction process."}]}],"data":{"quirksMode":false}},"headings":[{"value":"Core concepts","depth":2},{"value":"Headless","depth":3},{"value":"Frontend","depth":3},{"value":"Backend","depth":3},{"value":"Flex APIs","depth":3},{"value":"API Resource","depth":3},{"value":"Events","depth":3},{"value":"Flex Templates for Web","depth":3},{"value":"Environments","depth":3},{"value":"Extended data","depth":3},{"value":"Transaction process","depth":3},{"value":"Microcopy editor","depth":3},{"value":"Pages","depth":3},{"value":"Content","depth":2},{"value":"Assets","depth":3},{"value":"Content pages","depth":3},{"value":"Dynamic pages","depth":3},{"value":"Microcopy","depth":3},{"value":"Pages","depth":3},{"value":"Sections","depth":3},{"value":"Blocks","depth":3},{"value":"Fields","depth":3},{"value":"Section templates","depth":3},{"value":"Markdown","depth":3},{"value":"Users","depth":2},{"value":"User extended data","depth":3},{"value":"User roles","depth":3},{"value":"Listings","depth":2},{"value":"Listing extended data","depth":3},{"value":"Listing states","depth":3},{"value":"Listing approval","depth":3},{"value":"Search","depth":3},{"value":"Price","depth":3},{"value":"Stock","depth":3},{"value":"Availability calendars","depth":3},{"value":"Seats","depth":3},{"value":"Transactions","depth":2},{"value":"Transaction process","depth":3},{"value":"Messages","depth":3},{"value":"Notifications","depth":3},{"value":"Stock reservations","depth":3},{"value":"Bookings","depth":3},{"value":"Payments","depth":3},{"value":"Stripe","depth":3},{"value":"Reviews","depth":3}]}},"pageContext":{"slug":"concepts","category":"operator-guides-concepts"}},
    "staticQueryHashes": ["3794076007","439097193","717698143"]}