├── .eslintrc.json ├── .github ├── CODEOWNERS └── workflows │ ├── deploy.yml │ ├── lint.yml │ └── spectral.yml ├── .gitignore ├── .idea ├── .gitignore └── api-specs.iml ├── .spectral.yaml ├── CONTRIBUTING.md ├── README.md ├── docs └── docs.mdx ├── models ├── email_templates │ ├── README.md │ ├── _all.yml │ ├── abandoned_cart_email.yml │ ├── account_details_changed_email.yml │ ├── account_reset_password_email.yml │ ├── combined │ │ ├── README.md │ │ ├── abandoned_cart_email.yml │ │ ├── abandoned_cart_email_deprecated.yml │ │ ├── account_details_changed_email.yml │ │ ├── account_reset_password_email.yml │ │ ├── combined_order_status_email.yml │ │ ├── create_account_email.yml │ │ ├── create_guest_account_email.yml │ │ ├── gift_certificate_email.yml │ │ ├── global.yml │ │ ├── invoice_email.yml │ │ ├── order_message_notification.yml │ │ ├── passwordless_login_email.yml │ │ ├── product_review_email.yml │ │ ├── return_confirmation_email.yml │ │ └── return_status_change_email.yml │ ├── combined_order_status_email.yml │ ├── create_account_email.yml │ ├── create_guest_account_email.yml │ ├── data │ │ ├── abandoned_cart_email.json │ │ ├── account_details_changed_email.json │ │ ├── account_reset_password_email.json │ │ ├── combined_order_status_email.json │ │ ├── create_account_email.json │ │ ├── create_guest_account_email.json │ │ ├── gift_certificate_email.json │ │ ├── global.json │ │ ├── invoice_email.json │ │ ├── order_message_notification.json │ │ ├── passwordless_login_email.json │ │ ├── product_review_email.json │ │ ├── return_confirmation_email.json │ │ └── return_status_change_email.json │ ├── gift_certificate_email.yml │ ├── global.yml │ ├── invoice_email.yml │ ├── order_message_notification.yml │ ├── passwordless_login_email.yml │ ├── product_review_email.yml │ ├── return_confirmation_email.yml │ └── return_status_change_email.yml ├── json2schema.py └── webhooks │ ├── README.md │ ├── _all.yml │ ├── data │ ├── list.txt │ ├── store_app_uninstalled.json │ ├── store_cart_abandoned.json │ ├── store_cart_converted.json │ ├── store_cart_couponApplied.json │ ├── store_cart_created.json │ ├── store_cart_deleted.json │ ├── store_cart_lineItem_created.json │ ├── store_cart_lineItem_deleted.json │ ├── store_cart_lineItem_updated.json │ ├── store_cart_updated.json │ ├── store_category_created.json │ ├── store_category_deleted.json │ ├── store_category_updated.json │ ├── store_customer_address_created.json │ ├── store_customer_address_deleted.json │ ├── store_customer_address_updated.json │ ├── store_customer_created.json │ ├── store_customer_deleted.json │ ├── store_customer_payment_instrument_default_updated.json │ ├── store_customer_updated.json │ ├── store_information_updated.json │ ├── store_metafield_created.json │ ├── store_order_archived.json │ ├── store_order_created.json │ ├── store_order_message_created.json │ ├── store_order_refund_created.json │ ├── store_order_statusUpdated.json │ ├── store_order_updated.json │ ├── store_product_created.json │ ├── store_product_deleted.json │ ├── store_product_inventory_order_updated.json │ ├── store_product_inventory_updated.json │ ├── store_product_updated.json │ ├── store_shipment_created.json │ ├── store_shipment_deleted.json │ ├── store_shipment_updated.json │ ├── store_sku_created.json │ ├── store_sku_deleted.json │ ├── store_sku_inventory_order_updated.json │ ├── store_sku_inventory_updated.json │ ├── store_sku_updated.json │ ├── store_subscriber_created.json │ ├── store_subscriber_deleted.json │ └── store_subscriber_updated.json │ ├── store_app_uninstalled.yml │ ├── store_brand_metafield_created.yml │ ├── store_brand_metafield_deleted.yml │ ├── store_brand_metafield_updated.yml │ ├── store_cart_abandoned.yml │ ├── store_cart_converted.yml │ ├── store_cart_couponApplied.yml │ ├── store_cart_created.yml │ ├── store_cart_deleted.yml │ ├── store_cart_lineItem_created.yml │ ├── store_cart_lineItem_deleted.yml │ ├── store_cart_lineItem_updated.yml │ ├── store_cart_metafield_created.yml │ ├── store_cart_metafield_deleted.yml │ ├── store_cart_metafield_updated.yml │ ├── store_cart_updated.yml │ ├── store_category_created.yml │ ├── store_category_deleted.yml │ ├── store_category_metafield_created.yml │ ├── store_category_metafield_deleted.yml │ ├── store_category_metafield_updated.yml │ ├── store_category_updated.yml │ ├── store_channel_metafield_created.yml │ ├── store_channel_metafield_deleted.yml │ ├── store_channel_metafield_updated.yml │ ├── store_customer_address_created.yml │ ├── store_customer_address_deleted.yml │ ├── store_customer_address_updated.yml │ ├── store_customer_created.yml │ ├── store_customer_deleted.yml │ ├── store_customer_payment_instrument_default_updated.yml │ ├── store_customer_updated.yml │ ├── store_information_updated.yml │ ├── store_inventory_location_created.yml │ ├── store_inventory_location_metafield_created.yml │ ├── store_inventory_location_metafield_deleted.yml │ ├── store_inventory_location_metafield_updated.yml │ ├── store_inventory_location_updated.yml │ ├── store_metafield_created.yml │ ├── store_metafield_deleted.yml │ ├── store_metafield_updated.yml │ ├── store_order_archived.yml │ ├── store_order_created.yml │ ├── store_order_message_created.yml │ ├── store_order_metafield_created.yml │ ├── store_order_metafield_deleted.yml │ ├── store_order_metafield_updated.yml │ ├── store_order_refund_created.yml │ ├── store_order_statusUpdated.yml │ ├── store_order_transaction_created.yml │ ├── store_order_transaction_updated.yml │ ├── store_order_updated.yml │ ├── store_product_created.yml │ ├── store_product_deleted.yml │ ├── store_product_inventory_order_updated.yml │ ├── store_product_inventory_updated.yml │ ├── store_product_metafield_created.yml │ ├── store_product_metafield_deleted.yml │ ├── store_product_metafield_updated.yml │ ├── store_product_updated.yml │ ├── store_shipment_created.yml │ ├── store_shipment_deleted.yml │ ├── store_shipment_updated.yml │ ├── store_sku_created.yml │ ├── store_sku_deleted.yml │ ├── store_sku_inventory_order_updated.yml │ ├── store_sku_inventory_updated.yml │ ├── store_sku_updated.yml │ ├── store_subscriber_created.yml │ ├── store_subscriber_deleted.yml │ ├── store_subscriber_updated.yml │ ├── store_variant_metafield_created.yml │ ├── store_variant_metafield_deleted.yml │ └── store_variant_metafield_updated.yml ├── package-lock.json ├── package.json ├── pull_request_template.md └── reference ├── .spectral.yaml ├── abandoned_cart_emails.v3.yaml ├── abandoned_carts.v3.yml ├── carts.sf.yml ├── carts.v3.yml ├── catalog ├── brands_catalog.v3.yml ├── categories_catalog.v3.yml ├── category-trees_catalog.v3.yml ├── product-modifiers_catalog.v3.yml ├── product-variant-options_catalog.v3.yml ├── product-variants_catalog.v3.yml └── products_catalog.v3.yml ├── channels.v3.yml ├── checkouts.sf.yml ├── checkouts.v3.yml ├── consent.sf.yml ├── currencies.v2.yml ├── current_customer.yml ├── custom-template-associations.v3.yml ├── customer_login.yml ├── customers.sf.yml ├── customers.v2.yml ├── customers.v3.yml ├── email_templates.v3.yml ├── form_fields.sf.yml ├── geography.v2.yml ├── global_refs.yaml ├── marketing.v2.yml ├── orders.sf.yml ├── orders.v2.oas2.yml ├── orders.v3.yml ├── pages.v3.yml ├── payments ├── accepted-methods_payments.v3.yml ├── access-tokens_payments.v3.yml ├── methods_payments.v2.yml └── process_payments.yml ├── price_lists.v3.yml ├── pricing.sf.yml ├── redirects.v3.yml ├── scripts.v3.yml ├── settings.v3.yml ├── shipping.v2.yml ├── shipping.v3.yml ├── shipping_provider.yml ├── sites.v3.yml ├── store_content.v2.yml ├── store_information.v2.yml ├── store_logs.v3.yml ├── storefront_tokens.v3.yml ├── subscribers.v3.yml ├── subscriptions.sf.yml ├── tax.v3.yml ├── tax_classes.v2.yml ├── tax_properties.v3.yml ├── tax_provider.yml ├── tax_rates_zones.v3.yml ├── tax_settings.v3.yml ├── themes.v3.yml ├── webhooks.v3.yml ├── widgets.v3.yml └── wishlists.v3.yml /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["plugin:mdx/recommended"], 3 | // optional, if you want to lint code blocks at the same time 4 | "settings": { 5 | "mdx/code-blocks": true, 6 | // optional, if you want to disable language mapper, set it to `false` 7 | // if you want to override the default language mapper inside, you can provide your own 8 | "mdx/language-mapper": {} 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # These owners will be the default owners for everything in the repo. Unless a later match takes precedence, @global-owner1 and @global-owner2 will be requested for review when someone opens a pull request. 2 | 3 | @slsriehl @bigcommerce/dev-docs-team @markcmurphy 4 | 5 | # Teams can be specified as code owners as well. Teams should 6 | # be identified in the format @org/team-name. Teams must have 7 | # explicit write access to the repository. In this example, 8 | # the octocats team in the octo-org organization owns all .md files. 9 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | jobs: 9 | build: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - name: Checkout code 14 | uses: actions/checkout@v2 15 | 16 | - name: Trigger Vercel Deploy Hook 17 | run: | 18 | curl -X POST ${{ secrets.VERCEL_DEPLOY_HOOK_URL }} 19 | -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- 1 | name: lint-valid-mdx 2 | on: 3 | - pull_request 4 | 5 | jobs: 6 | lint: 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - uses: actions/checkout@v3 11 | - name: Use Node.js v17.x 12 | uses: actions/setup-node@v3 13 | with: 14 | node-version: 17.x 15 | - run: npm ci 16 | - run: npm run lint 17 | -------------------------------------------------------------------------------- /.github/workflows/spectral.yml: -------------------------------------------------------------------------------- 1 | name: Run Spectral on Pull Requests 2 | on: 3 | - pull_request 4 | jobs: 5 | build: 6 | name: Run Spectral 7 | runs-on: ubuntu-latest 8 | steps: 9 | # Check out the repository 10 | - uses: actions/checkout@v2 11 | 12 | # Run Spectral 13 | - uses: stoplightio/spectral-action@latest 14 | with: 15 | file_glob: 'reference/*.yml' 16 | spectral_ruleset: '.spectral.yaml' 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | node_modules 3 | .DS_Store 4 | 5 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Editor-based HTTP Client requests 5 | /httpRequests/ 6 | # Datasource local storage ignored files 7 | /dataSources/ 8 | /dataSources.local.xml 9 | -------------------------------------------------------------------------------- /.idea/api-specs.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.spectral.yaml: -------------------------------------------------------------------------------- 1 | extends: spectral:oas 2 | rules: 3 | info-contact: off 4 | oas3-unused-component: off 5 | oas2-unused-definition: off 6 | except: 7 | 'reference/tax_provider.yml': 8 | - oas3-schema 9 | 'reference/carts.v3.yml': 10 | - oas2-oneOf 11 | - oas2-valid-schema-example 12 | - operation-tag-defined 13 | 'reference/catalog.v3.yml': 14 | - oas2-operation-security-defined 15 | - oas3-schema 16 | - oas2-schema 17 | - oas2-valid-media-example 18 | - oas2-valid-schema-example 19 | 'reference/channels.v3.yml': 20 | - operation-operationId 21 | - oas3-schema 22 | - oas3-valid-media-example 23 | 'reference/current_customer.yml': 24 | - operation-success-response 25 | 'reference/custom-template-associations.v3.yml': 26 | - openapi-tags 27 | - operation-tag-defined 28 | 'reference/customer_login.yml': 29 | - operation-operationId 30 | - operation-success-response 31 | 'reference/email_templates.v3.yml': 32 | - oas3-schema 33 | - operation-tag-defined 34 | - openapi-tags 35 | 'reference/geography.v2.yml': 36 | - operation-operationId 37 | - oas2-valid-media-example 38 | 'reference/orders.v2.oas2.yml': 39 | - oas3-valid-schema-example 40 | - oas3-valid-media-example 41 | - oas3-schema 42 | 'reference/orders.v3.yml': 43 | - oas2-valid-schema-example 44 | - oas2-valid-media-example 45 | - oas2-anyOf 46 | 'reference/settings.v3.yml': 47 | - oas3-valid-media-example 48 | - operation-operationId 49 | 'reference/sites.v3.yml': 50 | - oas2-valid-media-example 51 | - operation-operationId 52 | 'reference/store_information.v2.yml': 53 | - oas2-valid-media-example 54 | - operation-operationId 55 | - oas2-valid-schema-example 56 | 'reference/themes.v3.yml': 57 | - oas3-schema 58 | - operation-operationId 59 | 'reference/webhooks.v3.yml': 60 | - oas3-valid-media-example 61 | 'carts.v3.yml': 62 | - oas2-oneOf 63 | - oas2-valid-schema-example 64 | - operation-tag-defined 65 | 'catalog.v3.yml': 66 | - oas2-operation-security-defined 67 | - oas3-schema 68 | - oas2-schema 69 | - oas2-valid-media-example 70 | - oas2-valid-schema-example 71 | 'channels.v3.yml': 72 | - operation-operationId 73 | - oas3-schema 74 | - oas3-valid-media-example 75 | 'current_customer.yml': 76 | - operation-success-response 77 | 'custom-template-associations.v3.yml': 78 | - openapi-tags 79 | - operation-tag-defined 80 | 'customer_login.yml': 81 | - operation-success-response 82 | 'email_templates.v3.yml': 83 | - oas3-schema 84 | - operation-tag-defined 85 | - openapi-tags 86 | 'geography.v2.yml': 87 | - operation-operationId 88 | - oas2-valid-media-example 89 | 'orders.v2.oas2.yml': 90 | - oas3-valid-schema-example 91 | - oas3-valid-media-example 92 | - oas3-schema 93 | 'orders.v3.yml': 94 | - oas2-valid-schema-example 95 | - oas2-valid-media-example 96 | - oas2-anyOf 97 | 'settings.v3.yml': 98 | - oas3-valid-media-example 99 | - operation-operationId 100 | 'sites.v3.yml': 101 | - oas2-valid-media-example 102 | - operation-operationId 103 | 'store_information.v2.yml': 104 | - oas2-valid-media-example 105 | - operation-operationId 106 | - oas2-valid-schema-example 107 | 'themes.v3.yml': 108 | - oas3-schema 109 | - operation-operationId 110 | 'webhooks.v3.yml': 111 | - oas3-valid-media-example 112 | 'pages.v3.yml': 113 | - oas3-valid-media-example 114 | - oas3-valid-schema-example 115 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to BigCommerce's API Specifications 2 | 3 | Thanks for your interest in contributing! 4 | 5 | ## Edit 6 | 7 | * **Edit:** Fork the repository and edit with your preferred editor. We recommend [VS Code](https://code.visualstudio.com/). 8 | * **Lint:** Check for errors using [Spectral](https://stoplight.io/open-source/spectral) or another OAS linter. 9 | 10 | * **Commit:** Write good commit messages using the guidelines in the following section. 11 | * **Push** to your fork to ensure that your pull request contains the most up-to-date version of your code. 12 | 13 | ## Write descriptive commit messages 14 | 15 | * Describe the change using at least one verb and one noun. 16 | * Use specific nouns to identify what you changed. 17 | * Use the present tense ("Fix broken link to x" not "Fixed broken link to x"). 18 | * Use the imperative mood ("Fix broken link to x" not "Fixes broken link to x"). 19 | 20 | ## Pull request 21 | 22 | [What is a pull request?](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request) 23 | 24 | Use the included `pull_request_template.md` to tell us more about the changes you propose. 25 | 26 | ## Tools 27 | 28 | The following tools might be helpful. 29 | 30 | | Tool | Description | 31 | |:-----|:------------| 32 | | [Spectral CLI](https://stoplight.io/open-source/spectral) | Node.js CLI for the Spectral OpenAPI linter | 33 | | [Spectral Linter for VS Code](https://marketplace.visualstudio.com/items?itemName=stoplight.spectral)| The Spectral OpenAPI linter as a VS Code extension | 34 | | [swagger2openapi](https://www.npmjs.com/package/swagger2openapi)| Node.js CLI for converting Swagger to OpenAPI 3.0 | 35 | | [openapi.tools](https://openapi.tools/) | List of open-source OpenAPI tools | 36 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BigCommerce API Specifications 2 | 3 | **As of December 27, 2023, you can find all the public BigCommerce DevDocs at [https://github.com/bigcommerce/docs](https://github.com/bigcommerce/docs)!** 4 | 5 | This repository is archived and read only. The final commit has been tagged. 6 | 7 | If you maintain API clients, the new [bigcommerce/docs](https://github.com/bigcommerce/docs) repo is now your source for the most up-to-date API specifications. 8 | 9 | This consolidation lets the BigCommerce DX team offer a more streamlined developer experience. [issues](https://github.com/bigcommerce/docs/issues), [discussions](https://github.com/bigcommerce/docs/discussions), and [pull requests](https://github.com/bigcommerce/docs/pulls) at [bigcommerce/docs](https://github.com/bigcommerce/docs)! 10 | -------------------------------------------------------------------------------- /docs/docs.mdx: -------------------------------------------------------------------------------- 1 | # Documentation in Markdown 2 | 3 | When there are docs in this repo written in Markdown or MDX, this is where they live. 4 | -------------------------------------------------------------------------------- /models/email_templates/README.md: -------------------------------------------------------------------------------- 1 | # Email Template Objects 2 | 3 | Object schemas for handlebars email templates. 4 | 5 | ## Directory structure 6 | 7 | ```shell 8 | . 9 | ├── data # json data for generating and updating yaml schema 10 | ├── _all.yml # Groups models together for docs 11 | ├── account_details_changed_email.yml # Individual email template models 12 | ├── ... 13 | ``` 14 | 15 | ## Updating models 16 | 17 | To generate a new model from json data and overwrite the existing schema file: 18 | 19 | 1. Copy and paste template `data-*.json` from [localization-tools](https://github.com/bigcommerce/localization-tools/blob/master/email-check/modules/email-templates/types/abandoned_cart_email/data-0.json) to `models/_json/email_templates`. 20 | 2. Use `models/json2schema.py` to convert the json data to a yaml schema. 21 | 22 | Example: 23 | 24 | ```bash 25 | cat data.json | python json2schema.py > schema.yml 26 | ``` 27 | 28 | Bash for overwriting all email template models: 29 | 30 | ```bash 31 | for f in models/email_templates/data/*.json; do cat $f | python models/json2schema.py > ${f%.*}.yml; mv ${f%.*}.yml models/email_templates/; done 32 | ``` -------------------------------------------------------------------------------- /models/email_templates/account_details_changed_email.yml: -------------------------------------------------------------------------------- 1 | Account Settings Edited: 2 | title: Account Settings Edited Email Template 3 | description: Account settings email triggers when the store admin or a customer edits account settings. 4 | type: object 5 | properties: 6 | details_changed: 7 | type: object 8 | properties: 9 | fields: 10 | type: array 11 | items: 12 | type: string 13 | store: 14 | type: object 15 | properties: 16 | name: 17 | type: string 18 | domain_name: 19 | type: string 20 | logo: 21 | type: object 22 | properties: 23 | title: 24 | type: string 25 | name: 26 | type: string 27 | url: 28 | type: string 29 | ssl_path: 30 | type: string 31 | cdn_path: 32 | type: string 33 | image_directory: 34 | type: string 35 | img_path: 36 | type: string 37 | path_normal: 38 | type: string 39 | description: 'Path to the store (i.e., domain + protocol)' 40 | path: 41 | type: string 42 | address: 43 | type: string 44 | language: 45 | type: object 46 | properties: 47 | code: 48 | type: string 49 | direction: 50 | type: string 51 | description: 'Left to right or right to left, depending on the language' 52 | customer: 53 | type: object 54 | properties: 55 | first_name: 56 | type: string 57 | full_name: 58 | type: string 59 | email: 60 | type: string 61 | group: 62 | type: array 63 | items: 64 | type: object 65 | properties: 66 | name: 67 | type: string 68 | misc: 69 | type: object 70 | properties: 71 | year: 72 | type: integer 73 | translations: 74 | type: object 75 | properties: 76 | en: 77 | type: object 78 | properties: 79 | title: 80 | type: string 81 | hello: 82 | type: string 83 | message: 84 | type: string 85 | warning: 86 | type: string 87 | thanks: 88 | type: string 89 | security: 90 | type: string 91 | go_shopping: 92 | type: string 93 | examples: 94 | details_changed: 95 | fields: 96 | Email 97 | Password 98 | store: 99 | name: My Dev Store 97434969 100 | domain_name: 'my-dev-store-97434969.store.bcdev' 101 | logo: 102 | title: '[= My Dev Store 97434969 =]' 103 | name: avatar-2020_1612860757__16350.jpeg 104 | url: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg' 105 | ssl_path: 'https://my-dev-store-97434969.store.bcdev' 106 | cdn_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96' 107 | image_directory: product_images 108 | img_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images' 109 | path_normal: 'https://my-dev-store-97434969.store.bcdev' 110 | path: 'https://my-dev-store-97434969.store.bcdev' 111 | address: 112 | language: 113 | code: en 114 | direction: ltr 115 | customer: 116 | first_name: John 117 | full_name: John Jr 118 | email: 'john.f@example.com' 119 | misc: 120 | year: 2021 121 | translations: 122 | en: 123 | title: Your {{name}} account details have changed 124 | hello: Hello {{name}}, 125 | message: 'We wanted to let you know that the following details have been changed on your {{name}} account:' 126 | warning: 'If you made the changes yourself, please disregard this email. If not, please contact the store immediately through their website: {{domain}}.' 127 | thanks: Thanks, 128 | security: The BigCommerce Security Team 129 | go_shopping: Go shopping 130 | -------------------------------------------------------------------------------- /models/email_templates/account_reset_password_email.yml: -------------------------------------------------------------------------------- 1 | Password Reset: 2 | title: Password Reset Email Template 3 | description: Password reset email triggers when a customer resets their account password on the customer details page. 4 | type: object 5 | properties: 6 | reset_password: 7 | type: object 8 | properties: 9 | link: 10 | type: string 11 | store: 12 | type: object 13 | properties: 14 | name: 15 | type: string 16 | domain_name: 17 | type: string 18 | logo: 19 | type: object 20 | properties: 21 | title: 22 | type: string 23 | name: 24 | type: string 25 | url: 26 | type: string 27 | ssl_path: 28 | type: string 29 | cdn_path: 30 | type: string 31 | image_directory: 32 | type: string 33 | img_path: 34 | type: string 35 | path_normal: 36 | type: string 37 | description: 'Path to the store (i.e., domain + protocol)' 38 | path: 39 | type: string 40 | address: 41 | type: string 42 | language: 43 | type: object 44 | properties: 45 | code: 46 | type: string 47 | direction: 48 | type: string 49 | description: 'Left to right or right to left, depending on the language' 50 | customer: 51 | type: object 52 | properties: 53 | first_name: 54 | type: string 55 | full_name: 56 | type: string 57 | email: 58 | type: string 59 | group: 60 | type: array 61 | items: 62 | type: object 63 | properties: 64 | name: 65 | type: string 66 | misc: 67 | type: object 68 | properties: 69 | year: 70 | type: integer 71 | translations: 72 | type: object 73 | properties: 74 | en: 75 | type: object 76 | properties: 77 | title: 78 | type: string 79 | message: 80 | type: string 81 | go_shopping: 82 | type: string 83 | examples: 84 | reset_password: 85 | link: #reset-password-link 86 | store: 87 | name: My Dev Store 97434969 88 | domain_name: my-dev-store-97434969.store.bcdev 89 | logo: 90 | title: [= My Dev Store 97434969 =] 91 | name: avatar-2020_1612860757__16350.jpeg 92 | url: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg' 93 | ssl_path: 'https://my-dev-store-97434969.store.bcdev' 94 | cdn_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96' 95 | image_directory: product_images 96 | img_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images' 97 | path_normal: 'https://my-dev-store-97434969.store.bcdev' 98 | path: 'https://my-dev-store-97434969.store.bcdev' 99 | address: 100 | language: 101 | code: en 102 | direction: ltr 103 | customer: 104 | first_name: John, 105 | full_name: John Jr, 106 | email: 'john.f@example.com' 107 | misc: 108 | year: 2021 109 | translations: 110 | en: 111 | title: Change your password for {{name}} 112 | message: 'To change your customer account password at {{store}} please click this link or copy and paste it into your browser:' 113 | go_shopping: Go shopping 114 | -------------------------------------------------------------------------------- /models/email_templates/combined/README.md: -------------------------------------------------------------------------------- 1 | # Email Template Objects 2 | 3 | Object schemas for handlebars email templates. 4 | 5 | ## Directory structure 6 | 7 | ```shell 8 | . 9 | ├── data # json data for generating and updating yaml schema 10 | ├── _all.yml # Groups models together for docs 11 | ├── account_details_changed_email.yml # Individual email template models 12 | ├── ... 13 | ``` 14 | 15 | ## Updating models 16 | 17 | To generate a new model from json data and overwrite the existing schema file: 18 | 19 | 1. Copy and paste template `data-*.json` from [localization-tools](https://github.com/bigcommerce/localization-tools/blob/master/email-check/modules/email-templates/types/abandoned_cart_email/data-0.json) to `models/_json/email_templates`. 20 | 2. Use `models/json2schema.py` to convert the json data to a yaml schema. 21 | 22 | Example: 23 | 24 | ```bash 25 | cat data.json | python json2schema.py > schema.yml 26 | ``` 27 | 28 | Bash for overwriting all email template models: 29 | 30 | ```bash 31 | for f in models/email_templates/data/*.json; do cat $f | python models/json2schema.py > ${f%.*}.yml; mv ${f%.*}.yml models/email_templates/; done 32 | ``` -------------------------------------------------------------------------------- /models/email_templates/combined/abandoned_cart_email.yml: -------------------------------------------------------------------------------- 1 | title: Abandoned Cart Email Template 2 | description: Abandoned cart email triggers when a shopper doesnʼt complete an order. 3 | type: object 4 | properties: 5 | notification: 6 | type: array 7 | items: 8 | type: object 9 | properties: 10 | unsubscribe_link: 11 | type: string 12 | checkout_link: 13 | type: string 14 | coupon: 15 | type: array 16 | items: 17 | type: object 18 | properties: 19 | code: 20 | type: string 21 | type: 22 | type: array 23 | items: 24 | type: object 25 | properties: 26 | value: 27 | type: string 28 | formatted: 29 | type: string 30 | amount: 31 | type: array 32 | items: 33 | type: object 34 | properties: 35 | value: 36 | type: number 37 | format: float 38 | formatted: 39 | type: string 40 | cart: 41 | type: array 42 | items: 43 | type: object 44 | properties: 45 | products: 46 | type: array 47 | items: 48 | type: object 49 | properties: 50 | type: array 51 | items: 52 | type: object 53 | properties: 54 | id: 55 | type: number 56 | url: 57 | type: string 58 | name: 59 | type: string 60 | quantity: 61 | type: integer 62 | sku: 63 | type: string 64 | thumbnail: 65 | type: string 66 | attributes: 67 | type: array 68 | items: 69 | type: object 70 | properties: 71 | type: array 72 | items: 73 | type: object 74 | properties: 75 | name: 76 | type: string 77 | value: 78 | type: string 79 | price: 80 | type: array 81 | items: 82 | type: object 83 | properties: 84 | value: 85 | type: number 86 | format: float 87 | formatted: 88 | type: string 89 | type: 90 | type: array 91 | items: 92 | type: object 93 | properties: 94 | value: 95 | type: integer 96 | formatted: 97 | type: string 98 | store: 99 | type: array 100 | items: 101 | type: object 102 | properties: 103 | name: 104 | type: string 105 | domain_name: 106 | type: string 107 | logo: 108 | type: array 109 | items: 110 | type: object 111 | properties: 112 | title: 113 | type: string 114 | name: 115 | type: string 116 | url: 117 | type: string 118 | ssl_path: 119 | type: string 120 | cdn_path: 121 | type: string 122 | image_directory: 123 | type: string 124 | img_path: 125 | type: string 126 | path_normal: 127 | type: string 128 | path: 129 | type: string 130 | address: 131 | type: string 132 | phone_number: 133 | type: string 134 | language: 135 | type: array 136 | items: 137 | type: object 138 | properties: 139 | code: 140 | type: string 141 | direction: 142 | type: string 143 | customer: 144 | type: array 145 | items: 146 | type: object 147 | properties: 148 | first_name: 149 | type: string 150 | full_name: 151 | type: string 152 | email: 153 | type: string 154 | group: 155 | type: array 156 | items: 157 | type: object 158 | properties: 159 | id: 160 | type: number 161 | name: 162 | type: string 163 | misc: 164 | type: array 165 | items: 166 | type: object 167 | properties: 168 | year: 169 | type: integer 170 | -------------------------------------------------------------------------------- /models/email_templates/combined/abandoned_cart_email_deprecated.yml: -------------------------------------------------------------------------------- 1 | title: Abandoned Cart Email Template (Deprecated) 2 | description: Abandoned cart email triggers when a shopper doesnʼt complete an order. 3 | type: object 4 | deprecated: true 5 | properties: 6 | abandoned_cart: 7 | type: object 8 | title: deprecated 9 | deprecated: true 10 | properties: 11 | body: 12 | type: string 13 | unsubscribe_link: 14 | type: string 15 | store: 16 | type: object 17 | deprecated: true 18 | properties: 19 | name: 20 | type: string 21 | domain_name: 22 | type: string 23 | logo: 24 | type: object 25 | deprecated: true 26 | properties: 27 | title: 28 | type: string 29 | name: 30 | type: string 31 | url: 32 | type: string 33 | ssl_path: 34 | type: string 35 | cdn_path: 36 | type: string 37 | image_directory: 38 | type: string 39 | img_path: 40 | type: string 41 | path_normal: 42 | type: string 43 | description: 'Path to the store (i.e., domain + protocol)' 44 | path: 45 | type: string 46 | address: 47 | type: string 48 | language: 49 | type: object 50 | properties: 51 | code: 52 | type: string 53 | direction: 54 | type: string 55 | description: 'Left to right or right to left, depending on the language' 56 | customer: 57 | type: object 58 | deprecated: true 59 | properties: 60 | first_name: 61 | type: string 62 | full_name: 63 | type: string 64 | email: 65 | type: string 66 | group: 67 | type: array 68 | items: 69 | type: object 70 | properties: 71 | name: 72 | type: string 73 | misc: 74 | type: object 75 | deprecated: true 76 | properties: 77 | year: 78 | type: integer 79 | translations: 80 | type: object 81 | deprecated: true 82 | properties: 83 | en: 84 | type: object 85 | properties: 86 | unsubscribe: 87 | type: string 88 | examples: 89 | Abandoned Cart example (deprecated): 90 | value: 91 | abandoned_cart: 92 | body: You recently visited our online store and we noticed that you didnʼt complete your order.\n
To complete your order right now, just click on the link below:\n Complete your order 93 | unsubscribe_link: 'example.com/unsubscribe' 94 | store: 95 | name: My Dev Store 97434969 96 | domain_name: my-dev-store-97434969.store.bcdev 97 | logo: 98 | title: [= My Dev Store 97434969 =] 99 | name: avatar-2020_1612860757__16350.jpeg 100 | url: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg' 101 | ssl_path: 'https://my-dev-store-97434969.store.bcdev' 102 | cdn_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96' 103 | image_directory: product_images 104 | img_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images' 105 | path_normal: 'https://my-dev-store-97434969.store.bcdev' 106 | path: 'https://my-dev-store-97434969.store.bcdev' 107 | address: '123 Fake St, Dallas, TX 75225' 108 | language: 109 | code: en 110 | direction: ltr 111 | customer: 112 | first_name: John 113 | full_name: John Jr 114 | email: 'john.f@example.com' 115 | misc: 116 | year: 2021 117 | translations: 118 | en: 119 | unsubscribe: 'Unsubscribe from future emails like this.' 120 | -------------------------------------------------------------------------------- /models/email_templates/combined/account_details_changed_email.yml: -------------------------------------------------------------------------------- 1 | title: Account Settings Edited Email Template 2 | description: Account settings email triggers when the store admin or a customer edits account settings. 3 | type: object 4 | properties: 5 | details_changed: 6 | type: object 7 | properties: 8 | fields: 9 | type: array 10 | items: 11 | type: string 12 | store: 13 | type: object 14 | properties: 15 | name: 16 | type: string 17 | domain_name: 18 | type: string 19 | logo: 20 | type: object 21 | properties: 22 | title: 23 | type: string 24 | name: 25 | type: string 26 | url: 27 | type: string 28 | ssl_path: 29 | type: string 30 | cdn_path: 31 | type: string 32 | image_directory: 33 | type: string 34 | img_path: 35 | type: string 36 | path_normal: 37 | type: string 38 | description: 'Path to the store (i.e., domain + protocol)' 39 | path: 40 | type: string 41 | address: 42 | type: string 43 | language: 44 | type: object 45 | properties: 46 | code: 47 | type: string 48 | direction: 49 | type: string 50 | description: 'Left to right or right to left, depending on the language' 51 | customer: 52 | type: object 53 | properties: 54 | first_name: 55 | type: string 56 | full_name: 57 | type: string 58 | email: 59 | type: string 60 | group: 61 | type: array 62 | items: 63 | type: object 64 | properties: 65 | name: 66 | type: string 67 | misc: 68 | type: object 69 | properties: 70 | year: 71 | type: integer 72 | translations: 73 | type: object 74 | properties: 75 | en: 76 | type: object 77 | properties: 78 | title: 79 | type: string 80 | hello: 81 | type: string 82 | message: 83 | type: string 84 | warning: 85 | type: string 86 | thanks: 87 | type: string 88 | security: 89 | type: string 90 | go_shopping: 91 | type: string 92 | example: 93 | details_changed: 94 | fields: 95 | - Email 96 | - Password 97 | store: 98 | name: My Dev Store 97434969 99 | domain_name: 'my-dev-store-97434969.store.bcdev' 100 | logo: 101 | title: '[= My Dev Store 97434969 =]' 102 | name: avatar-2020_1612860757__16350.jpeg 103 | url: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg' 104 | ssl_path: 'https://my-dev-store-97434969.store.bcdev' 105 | cdn_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96' 106 | image_directory: product_images 107 | img_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images' 108 | path_normal: 'https://my-dev-store-97434969.store.bcdev' 109 | path: 'https://my-dev-store-97434969.store.bcdev' 110 | address: 111 | language: 112 | code: en 113 | direction: ltr 114 | customer: 115 | first_name: John 116 | full_name: John Jr 117 | email: 'john.f@example.com' 118 | misc: 119 | year: 2021 120 | translations: 121 | en: 122 | title: Your {{name}} account details have changed 123 | hello: Hello {{name}}, 124 | message: 'We wanted to let you know that the following details have been changed on your {{name}} account:' 125 | warning: 'If you made the changes yourself, please disregard this email. If not, please contact the store immediately through their website: {{domain}}.' 126 | thanks: Thanks, 127 | security: The BigCommerce Security Team 128 | go_shopping: Go shopping 129 | -------------------------------------------------------------------------------- /models/email_templates/combined/account_reset_password_email.yml: -------------------------------------------------------------------------------- 1 | title: Password Reset Email Template 2 | description: Password reset email triggers when a customer resets their account password on the customer details page. 3 | type: object 4 | properties: 5 | reset_password: 6 | type: object 7 | properties: 8 | link: 9 | type: string 10 | store: 11 | type: object 12 | properties: 13 | name: 14 | type: string 15 | domain_name: 16 | type: string 17 | logo: 18 | type: object 19 | properties: 20 | title: 21 | type: string 22 | name: 23 | type: string 24 | url: 25 | type: string 26 | ssl_path: 27 | type: string 28 | cdn_path: 29 | type: string 30 | image_directory: 31 | type: string 32 | img_path: 33 | type: string 34 | path_normal: 35 | type: string 36 | description: 'Path to the store (i.e., domain + protocol)' 37 | path: 38 | type: string 39 | address: 40 | type: string 41 | language: 42 | type: object 43 | properties: 44 | code: 45 | type: string 46 | direction: 47 | type: string 48 | description: 'Left to right or right to left, depending on the language' 49 | customer: 50 | type: object 51 | properties: 52 | first_name: 53 | type: string 54 | full_name: 55 | type: string 56 | email: 57 | type: string 58 | group: 59 | type: array 60 | items: 61 | type: object 62 | properties: 63 | name: 64 | type: string 65 | misc: 66 | type: object 67 | properties: 68 | year: 69 | type: integer 70 | translations: 71 | type: object 72 | properties: 73 | en: 74 | type: object 75 | properties: 76 | title: 77 | type: string 78 | message: 79 | type: string 80 | go_shopping: 81 | type: string 82 | example: 83 | reset_password: 84 | link: #reset-password-link 85 | store: 86 | name: My Dev Store 97434969 87 | domain_name: my-dev-store-97434969.store.bcdev 88 | logo: 89 | title: [= My Dev Store 97434969 =] 90 | name: avatar-2020_1612860757__16350.jpeg 91 | url: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg' 92 | ssl_path: 'https://my-dev-store-97434969.store.bcdev' 93 | cdn_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96' 94 | image_directory: product_images 95 | img_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images' 96 | path_normal: 'https://my-dev-store-97434969.store.bcdev' 97 | path: 'https://my-dev-store-97434969.store.bcdev' 98 | address: '123 Fake St, Dallas, TX 75225' 99 | language: 100 | code: en 101 | direction: ltr 102 | customer: 103 | first_name: John, 104 | full_name: John Jr, 105 | email: 'john.f@example.com' 106 | misc: 107 | year: 2021 108 | translations: 109 | en: 110 | title: Change your password for {{name}} 111 | message: 'To change your customer account password at {{store}} please click this link or copy and paste it into your browser:' 112 | go_shopping: Go shopping 113 | -------------------------------------------------------------------------------- /models/email_templates/combined/create_account_email.yml: -------------------------------------------------------------------------------- 1 | title: Account Created Email Template 2 | description: Account created email triggers when a customer or store admin creates their account. 3 | type: object 4 | properties: 5 | store: 6 | type: object 7 | properties: 8 | name: 9 | type: string 10 | domain_name: 11 | type: string 12 | logo: 13 | type: object 14 | properties: 15 | title: 16 | type: string 17 | name: 18 | type: string 19 | url: 20 | type: string 21 | ssl_path: 22 | type: string 23 | cdn_path: 24 | type: string 25 | image_directory: 26 | type: string 27 | img_path: 28 | type: string 29 | path_normal: 30 | type: string 31 | description: 'Path to the store (i.e., domain + protocol)' 32 | path: 33 | type: string 34 | address: 35 | type: string 36 | language: 37 | type: object 38 | properties: 39 | code: 40 | type: string 41 | direction: 42 | type: string 43 | description: 'Left to right or right to left, depending on the language' 44 | customer: 45 | type: object 46 | properties: 47 | first_name: 48 | type: string 49 | full_name: 50 | type: string 51 | email: 52 | type: string 53 | group: 54 | type: array 55 | items: 56 | type: object 57 | properties: 58 | name: 59 | type: string 60 | misc: 61 | type: object 62 | properties: 63 | year: 64 | type: integer 65 | translations: 66 | type: object 67 | properties: 68 | en: 69 | type: object 70 | properties: 71 | title: 72 | type: string 73 | hello: 74 | type: string 75 | message: 76 | type: string 77 | details_title: 78 | type: string 79 | email_label: 80 | type: string 81 | password_label: 82 | type: string 83 | password_placeholder: 84 | type: string 85 | sign_in: 86 | type: string 87 | help: 88 | type: string 89 | go_shopping: 90 | type: string 91 | example: 92 | store: 93 | name: My Dev Store 97434969 94 | domain_name: my-dev-store-97434969.store.bcdev 95 | logo: 96 | title: [= My Dev Store 97434969 =] 97 | name: avatar-2020_1612860757__16350.jpeg 98 | url: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg' 99 | ssl_path: 'https://my-dev-store-97434969.store.bcdev' 100 | cdn_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96' 101 | image_directory: product_images 102 | img_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images' 103 | path_normal: 'https://my-dev-store-97434969.store.bcdev' 104 | path: 'https://my-dev-store-97434969.store.bcdev' 105 | address: '123 Fake St, Dallas, TX 75225' 106 | language: 107 | code: en 108 | direction: ltr 109 | customer: 110 | first_name: John 111 | full_name: John Jr 112 | email: john.f@example.com 113 | misc: 114 | year: 2021 115 | translations: 116 | en: 117 | title: Thanks for registering at {{store}} 118 | hello: Hello {{name}}. 119 | message: Thank you for creating your account at {{name}}. 120 | details_title: Account details 121 | email_label: 'Email Address:' 122 | password_label: 'Password:' 123 | password_placeholder: [The password you specified] 124 | sign_in: Sign in to account 125 | help: If you have any questions regarding your account, click 'Reply' in your email client and we'll be only too happy to help. 126 | go_shopping: Go shopping 127 | 128 | 129 | -------------------------------------------------------------------------------- /models/email_templates/combined/create_guest_account_email.yml: -------------------------------------------------------------------------------- 1 | title: Create Guest Account Email Template 2 | description: Guest account created email triggers when a customer or store admin creates a guest account. 3 | type: object 4 | properties: 5 | guest_account: 6 | type: object 7 | properties: 8 | link: 9 | type: string 10 | store: 11 | type: object 12 | properties: 13 | name: 14 | type: string 15 | domain_name: 16 | type: string 17 | logo: 18 | type: object 19 | properties: 20 | title: 21 | type: string 22 | name: 23 | type: string 24 | url: 25 | type: string 26 | ssl_path: 27 | type: string 28 | cdn_path: 29 | type: string 30 | image_directory: 31 | type: string 32 | img_path: 33 | type: string 34 | path_normal: 35 | type: string 36 | description: 'Path to the store (i.e., domain + protocol)' 37 | path: 38 | type: string 39 | address: 40 | type: string 41 | language: 42 | type: object 43 | properties: 44 | code: 45 | type: string 46 | direction: 47 | type: string 48 | description: 'Left to right or right to left, depending on the language' 49 | customer: 50 | type: object 51 | properties: 52 | first_name: 53 | type: string 54 | full_name: 55 | type: string 56 | email: 57 | type: string 58 | misc: 59 | type: object 60 | properties: 61 | year: 62 | type: integer 63 | translations: 64 | type: object 65 | properties: 66 | en: 67 | type: object 68 | properties: 69 | title: 70 | type: string 71 | hello: 72 | type: string 73 | message: 74 | type: string 75 | instruction: 76 | type: string 77 | help: 78 | type: string 79 | go_shopping: 80 | type: string 81 | examples: 82 | guest_account: 83 | link: 'https://example.com/reset-password' 84 | store: 85 | name: My Dev Store 97434969 86 | domain_name: my-dev-store-97434969.store.bcdev 87 | logo: 88 | title: [= My Dev Store 97434969 =] 89 | name: avatar-2020_1612860757__16350.jpeg 90 | url: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg' 91 | ssl_path: 'https://my-dev-store-97434969.store.bcdev' 92 | cdn_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96' 93 | image_directory: product_images 94 | img_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images' 95 | path_normal: 'https://my-dev-store-97434969.store.bcdev' 96 | path: 'https://my-dev-store-97434969.store.bcdev' 97 | address: '123 Fake St, Dallas, TX 75225' 98 | language: 99 | code: en 100 | direction: ltr 101 | customer: 102 | first_name: John 103 | full_name: John Jr 104 | email: 'john.f@example.com' 105 | misc: 106 | year: 2021 107 | translations: 108 | en: 109 | title: Welcome to {{name}} 110 | hello: Hello {{name}}, 111 | message: For your convenience, we've created you an account on {{store}} so you can check the status of your order and checkout quicker in the future. 112 | instruction: 'To login you will need to follow the link below to nominate your password:' 113 | help: If you have any questions regarding your account, click 'Reply' in your email client and we'll be only too happy to help. 114 | go_shopping: Go shopping 115 | -------------------------------------------------------------------------------- /models/email_templates/combined/global.yml: -------------------------------------------------------------------------------- 1 | title: Global Email Template Object 2 | description: Data objects across all email templates. 3 | type: object 4 | properties: 5 | store: 6 | type: object 7 | properties: 8 | name: 9 | type: string 10 | domain_name: 11 | type: string 12 | logo: 13 | type: object 14 | properties: 15 | title: 16 | type: string 17 | name: 18 | type: string 19 | url: 20 | type: string 21 | ssl_path: 22 | type: string 23 | cdn_path: 24 | type: string 25 | image_directory: 26 | type: string 27 | img_path: 28 | type: string 29 | path_normal: 30 | type: string 31 | description: 'Path to the store (i.e., domain + protocol)' 32 | path: 33 | type: string 34 | address: 35 | type: string 36 | language: 37 | type: object 38 | properties: 39 | code: 40 | type: string 41 | direction: 42 | type: string 43 | description: 'Left to right or right to left, depending on the language' 44 | customer: 45 | type: object 46 | properties: 47 | first_name: 48 | type: string 49 | full_name: 50 | type: string 51 | email: 52 | type: string 53 | group: 54 | type: array 55 | items: 56 | type: object 57 | properties: 58 | name: 59 | type: string 60 | misc: 61 | type: object 62 | properties: 63 | year: 64 | type: integer 65 | example: 66 | store: 67 | name: string, 68 | domain_name: string 69 | logo: 70 | title: string 71 | name: string 72 | url: string 73 | ssl_path: string 74 | cdn_path: string 75 | image_directory: string 76 | img_path: string 77 | path_normal: string 78 | path: string 79 | address: string 80 | language: 81 | code: string 82 | direction: string 83 | customer: 84 | first_name: string 85 | full_name: string 86 | email: string 87 | misc: 88 | year: int 89 | -------------------------------------------------------------------------------- /models/email_templates/combined/order_message_notification.yml: -------------------------------------------------------------------------------- 1 | title: Order Notification Email Template 2 | description: Order notification email triggers when a retailer or store admin adds a message to an order. 3 | type: object 4 | properties: 5 | notification: 6 | type: object 7 | properties: 8 | message: 9 | type: string 10 | link: 11 | type: string 12 | subject: 13 | type: string 14 | store: 15 | type: object 16 | properties: 17 | name: 18 | type: string 19 | domain_name: 20 | type: string 21 | logo: 22 | type: object 23 | properties: 24 | title: 25 | type: string 26 | name: 27 | type: string 28 | url: 29 | type: string 30 | ssl_path: 31 | type: string 32 | cdn_path: 33 | type: string 34 | image_directory: 35 | type: string 36 | img_path: 37 | type: string 38 | path_normal: 39 | type: string 40 | description: 'Path to the store (i.e., domain + protocol)' 41 | path: 42 | type: string 43 | address: 44 | type: string 45 | language: 46 | type: object 47 | properties: 48 | code: 49 | type: string 50 | direction: 51 | type: string 52 | description: 'Left to right or right to left, depending on the language' 53 | customer: 54 | type: object 55 | properties: 56 | first_name: 57 | type: string 58 | full_name: 59 | type: string 60 | email: 61 | type: string 62 | group: 63 | type: array 64 | items: 65 | type: object 66 | properties: 67 | name: 68 | type: string 69 | misc: 70 | type: object 71 | properties: 72 | year: 73 | type: integer 74 | translations: 75 | type: object 76 | properties: 77 | en: 78 | type: object 79 | properties: 80 | title: 81 | type: string 82 | hello: 83 | type: string 84 | message: 85 | type: string 86 | reply: 87 | type: string 88 | go_shopping: 89 | type: string 90 | example: 91 | notification: 92 | message: Message from the retailer 93 | link: 'https://my-dev-store-97434969.store.bcdev/account.php?action=inbox' 94 | store: 95 | name: My Dev Store 97434969 96 | domain_name: my-dev-store-97434969.store.bcdev 97 | logo: 98 | title: [= My Dev Store 97434969 =] 99 | name: avatar-2020_1612860757__16350.jpeg 100 | url: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg' 101 | ssl_path: 'https://my-dev-store-97434969.store.bcdev' 102 | cdn_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96' 103 | image_directory: product_images 104 | img_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images' 105 | path_normal: 'https://my-dev-store-97434969.store.bcdev' 106 | path: 'https://my-dev-store-97434969.store.bcdev' 107 | address: '123 Fake St, Dallas, TX 75225' 108 | language: 109 | code: en 110 | direction: ltr 111 | customer: 112 | first_name: John 113 | full_name: John Jr 114 | email: 'john.f@example.com' 115 | misc: 116 | year: 2021 117 | translations: 118 | en: 119 | title: New Reply to your Order Message 120 | hello: Hello {{name}}. 121 | message: '{{name}} has sent you a message about your order.' 122 | reply: Reply 123 | go_shopping: Go shopping 124 | -------------------------------------------------------------------------------- /models/email_templates/combined/passwordless_login_email.yml: -------------------------------------------------------------------------------- 1 | title: Sign in Link Request Email Template 2 | description: Sign-in request email triggers when an existing customer requests passwordless login while checking out. 3 | type: object 4 | properties: 5 | passwordless_login: 6 | type: object 7 | properties: 8 | link: 9 | type: string 10 | store: 11 | type: object 12 | properties: 13 | name: 14 | type: string 15 | domain_name: 16 | type: string 17 | logo: 18 | type: object 19 | properties: 20 | title: 21 | type: string 22 | name: 23 | type: string 24 | url: 25 | type: string 26 | ssl_path: 27 | type: string 28 | cdn_path: 29 | type: string 30 | image_directory: 31 | type: string 32 | img_path: 33 | type: string 34 | path_normal: 35 | type: string 36 | description: 'Path to the store (i.e., domain + protocol)' 37 | path: 38 | type: string 39 | address: 40 | type: string 41 | language: 42 | type: object 43 | properties: 44 | code: 45 | type: string 46 | direction: 47 | type: string 48 | description: 'Left to right or right to left, depending on the language' 49 | customer: 50 | type: object 51 | properties: 52 | first_name: 53 | type: string 54 | full_name: 55 | type: string 56 | email: 57 | type: string 58 | group: 59 | type: array 60 | items: 61 | type: object 62 | properties: 63 | name: 64 | type: string 65 | misc: 66 | type: object 67 | properties: 68 | year: 69 | type: integer 70 | translations: 71 | type: object 72 | properties: 73 | en: 74 | type: object 75 | properties: 76 | title: 77 | type: string 78 | message: 79 | type: string 80 | alternatively: 81 | type: string 82 | login_request: 83 | type: string 84 | secure: 85 | type: string 86 | go_shopping: 87 | type: string 88 | example: 89 | passwordless_login: '"link": "#sign-in-link"' 90 | store: 91 | name: My Dev Store 97434969 92 | domain_name: 'my-dev-store-97434969.store.bcdev' 93 | logo: 94 | title: [= My Dev Store 97434969 =] 95 | name: avatar-2020_1612860757__16350.jpeg 96 | url: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg' 97 | ssl_path: 'https://my-dev-store-97434969.store.bcdev' 98 | cdn_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96' 99 | image_directory: product_images 100 | img_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images' 101 | path_normal: 'https://my-dev-store-97434969.store.bcdev' 102 | path: 'https://my-dev-store-97434969.store.bcdev' 103 | address: '123 Fake St, Dallas, TX 75225' 104 | language: 105 | code: en 106 | direction: ltr 107 | customer: 108 | first_name: John 109 | full_name: John Jr 110 | email: 'john.f@example.com' 111 | misc: 112 | year: 2021 113 | translations: 114 | en: 115 | title: Please click the link below to sign in to your account with {{name}} 116 | message: 'You have requested a sign-in link. Please click here to sign in and continue.' 117 | alternatively: 'Alternatively, paste the following link in your browser:' 118 | login_request: This login is for {{name}} if you did not request this link, please ignore this email. 119 | secure: Your account is still secure. 120 | go_shopping: Go shopping 121 | -------------------------------------------------------------------------------- /models/email_templates/combined/product_review_email.yml: -------------------------------------------------------------------------------- 1 | title: Product Review Email Template 2 | description: Product review request email triggers after a customer purchases a product. 3 | type: object 4 | properties: 5 | review: 6 | type: object 7 | properties: 8 | products: 9 | type: array 10 | items: 11 | type: object 12 | properties: 13 | name: 14 | type: string 15 | sku: 16 | type: string 17 | link: 18 | type: string 19 | price: 20 | type: string 21 | thumbnail: 22 | type: string 23 | unsubscribe_link: 24 | type: string 25 | store: 26 | type: object 27 | properties: 28 | name: 29 | type: string 30 | domain_name: 31 | type: string 32 | logo: 33 | type: object 34 | properties: 35 | title: 36 | type: string 37 | name: 38 | type: string 39 | url: 40 | type: string 41 | ssl_path: 42 | type: string 43 | cdn_path: 44 | type: string 45 | image_directory: 46 | type: string 47 | img_path: 48 | type: string 49 | path_normal: 50 | type: string 51 | description: 'Path to the store (i.e., domain + protocol)' 52 | path: 53 | type: string 54 | address: 55 | type: string 56 | language: 57 | type: object 58 | properties: 59 | code: 60 | type: string 61 | direction: 62 | type: string 63 | description: 'Left to right or right to left, depending on the language' 64 | customer: 65 | type: object 66 | properties: 67 | first_name: 68 | type: string 69 | full_name: 70 | type: string 71 | email: 72 | type: string 73 | group: 74 | type: array 75 | items: 76 | type: object 77 | properties: 78 | name: 79 | type: string 80 | misc: 81 | type: object 82 | properties: 83 | year: 84 | type: integer 85 | translations: 86 | type: object 87 | properties: 88 | en: 89 | type: object 90 | properties: 91 | title: 92 | type: string 93 | hello: 94 | type: string 95 | message: 96 | type: string 97 | instruction: 98 | type: string 99 | review_text: 100 | type: string 101 | thanks: 102 | type: string 103 | go_shopping: 104 | type: string 105 | examples: 106 | review: 107 | products: 108 | - name: Name of Product 109 | sku: FA44 110 | link: '#review-link' 111 | unsubscribe_link: '#unsubscribe-link' 112 | store: 113 | name: My Dev Store 97434969 114 | domain_name: my-dev-store-97434969.store.bcdev 115 | logo: 116 | title: [= My Dev Store 97434969 =] 117 | name: avatar-2020_1612860757__16350.jpeg 118 | url: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg' 119 | ssl_path: 'https://my-dev-store-97434969.store.bcdev' 120 | cdn_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96' 121 | image_directory: product_images 122 | img_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images' 123 | path_normal: 'https://my-dev-store-97434969.store.bcdev' 124 | path: 'https://my-dev-store-97434969.store.bcdev' 125 | address: '123 Fake St, Dallas, TX 75225' 126 | language: 127 | code: en 128 | direction: ltr 129 | customer: 130 | first_name: John 131 | full_name: John Jr 132 | email: 'john.f@example.com' 133 | misc: 134 | year: 2021 135 | translations: 136 | en: 137 | title: Review products you've recently purchased 138 | hello: Hello {{name}}, 139 | message: Thanks for your recent order with us!, 140 | instruction: If you have a few minutes, we'd like to invite you to review the products you ordered. Just click on the link below to write a review and share your opinion with other shoppers. 141 | review_text: Review product 142 | thanks: Thanks in advance for taking the time to review the products you purchased! 143 | go_shopping: Go shopping 144 | -------------------------------------------------------------------------------- /models/email_templates/combined/return_confirmation_email.yml: -------------------------------------------------------------------------------- 1 | title: Return Requested Email Template 2 | description: 'Return requested email triggers after a customer’s return is approved.' 3 | type: object 4 | properties: 5 | return: 6 | type: object 7 | properties: 8 | return_id: 9 | type: string 10 | reason: 11 | type: string 12 | action: 13 | type: string 14 | comments: 15 | type: string 16 | products: 17 | type: array 18 | items: 19 | type: object 20 | properties: 21 | name: 22 | type: string 23 | quantity: 24 | type: integer 25 | price: 26 | type: string 27 | sku: 28 | type: string 29 | thumbnail: 30 | type: string 31 | order: 32 | type: object 33 | properties: 34 | id: 35 | type: integer 36 | store: 37 | type: object 38 | properties: 39 | name: 40 | type: string 41 | domain_name: 42 | type: string 43 | logo: 44 | type: object 45 | properties: 46 | title: 47 | type: string 48 | name: 49 | type: string 50 | url: 51 | type: string 52 | ssl_path: 53 | type: string 54 | cdn_path: 55 | type: string 56 | image_directory: 57 | type: string 58 | img_path: 59 | type: string 60 | path_normal: 61 | type: string 62 | description: 'Path to the store (i.e., domain + protocol)' 63 | path: 64 | type: string 65 | address: 66 | type: string 67 | language: 68 | type: object 69 | properties: 70 | code: 71 | type: string 72 | direction: 73 | type: string 74 | description: 'Left to right or right to left, depending on the language' 75 | customer: 76 | type: object 77 | properties: 78 | first_name: 79 | type: string 80 | full_name: 81 | type: string 82 | email: 83 | type: string 84 | group: 85 | type: array 86 | items: 87 | type: object 88 | properties: 89 | name: 90 | type: string 91 | misc: 92 | type: object 93 | properties: 94 | year: 95 | type: integer 96 | translations: 97 | type: object 98 | properties: 99 | en: 100 | type: object 101 | properties: 102 | confirmation: 103 | type: string 104 | summary: 105 | type: string 106 | clickHere: 107 | type: string 108 | reason: 109 | type: string 110 | action: 111 | type: string 112 | comments: 113 | type: string 114 | contains: 115 | type: string 116 | items: 117 | type: string 118 | quantity: 119 | type: string 120 | example: 121 | return: 122 | return_id: 123 123 | reason: reason of return 124 | action: action 125 | comments: sample comment 126 | order_id: 321 127 | products: 128 | - name: Shower Gel 129 | quantity: 3 130 | store: 131 | name: My Dev Store 97434969 132 | domain_name: 'my-dev-store-97434969.store.bcdev' 133 | logo: 134 | title: '[= My Dev Store 97434969 =]' 135 | name: avatar-2020_1612860757__16350.jpeg 136 | url: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg' 137 | ssl_path: 'https://my-dev-store-97434969.store.bcdev' 138 | cdn_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96' 139 | image_directory: product_images 140 | img_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images' 141 | path_normal: 'https://my-dev-store-97434969.store.bcdev' 142 | path: 'https://my-dev-store-97434969.store.bcdev' 143 | address: '123 Fake St, Dallas, TX 75225' 144 | language: 145 | code: en 146 | direction: ltr 147 | customer: 148 | first_name: John 149 | full_name: John Jr 150 | email: 'john.f@example.com' 151 | misc: 152 | year: 2021 153 | translations: 154 | en: 155 | confirmation: Confirmation for Return Request for Order ID 156 | summary: A summary of your return is shown below. To view the status of this return 157 | clickHere: click here 158 | reason: Return Reason 159 | action: Return Action 160 | comments: Your Comments 161 | contains: Your Return Request Contains the Following Items... 162 | items: Return Items 163 | quantity: Qty 164 | -------------------------------------------------------------------------------- /models/email_templates/create_account_email.yml: -------------------------------------------------------------------------------- 1 | Account Created: 2 | title: Account Created Email Template 3 | description: Account created email triggers when a customer or store admin creates their account. 4 | type: object 5 | properties: 6 | store: 7 | type: object 8 | properties: 9 | name: 10 | type: string 11 | domain_name: 12 | type: string 13 | logo: 14 | type: object 15 | properties: 16 | title: 17 | type: string 18 | name: 19 | type: string 20 | url: 21 | type: string 22 | ssl_path: 23 | type: string 24 | cdn_path: 25 | type: string 26 | image_directory: 27 | type: string 28 | img_path: 29 | type: string 30 | path_normal: 31 | type: string 32 | description: 'Path to the store (i.e., domain + protocol)' 33 | path: 34 | type: string 35 | address: 36 | type: string 37 | language: 38 | type: object 39 | properties: 40 | code: 41 | type: string 42 | direction: 43 | type: string 44 | description: 'Left to right or right to left, depending on the language' 45 | customer: 46 | type: object 47 | properties: 48 | first_name: 49 | type: string 50 | full_name: 51 | type: string 52 | email: 53 | type: string 54 | group: 55 | type: array 56 | items: 57 | type: object 58 | properties: 59 | name: 60 | type: string 61 | misc: 62 | type: object 63 | properties: 64 | year: 65 | type: integer 66 | translations: 67 | type: object 68 | properties: 69 | en: 70 | type: object 71 | properties: 72 | title: 73 | type: string 74 | hello: 75 | type: string 76 | message: 77 | type: string 78 | details_title: 79 | type: string 80 | email_label: 81 | type: string 82 | password_label: 83 | type: string 84 | password_placeholder: 85 | type: string 86 | sign_in: 87 | type: string 88 | help: 89 | type: string 90 | go_shopping: 91 | type: string 92 | examples: 93 | store: 94 | name: My Dev Store 97434969 95 | domain_name: my-dev-store-97434969.store.bcdev 96 | logo: 97 | title: [= My Dev Store 97434969 =] 98 | name: avatar-2020_1612860757__16350.jpeg 99 | url: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg' 100 | ssl_path: 'https://my-dev-store-97434969.store.bcdev' 101 | cdn_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96' 102 | image_directory: product_images 103 | img_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images' 104 | path_normal: 'https://my-dev-store-97434969.store.bcdev' 105 | path: 'https://my-dev-store-97434969.store.bcdev' 106 | address: 107 | language: 108 | code: en 109 | direction: ltr 110 | customer: 111 | first_name: John 112 | full_name: John Jr 113 | email: john.f@example.com 114 | misc: 115 | year: 2021 116 | translations: 117 | en: 118 | title: Thanks for registering at {{store}} 119 | hello: Hello {{name}}. 120 | message: Thank you for creating your account at {{name}}. 121 | details_title: Account details 122 | email_label: 'Email Address:' 123 | password_label: 'Password:' 124 | password_placeholder: [The password you specified] 125 | sign_in: Sign in to account 126 | help: If you have any questions regarding your account, click 'Reply' in your email client and we'll be only too happy to help. 127 | go_shopping: Go shopping 128 | 129 | 130 | -------------------------------------------------------------------------------- /models/email_templates/create_guest_account_email.yml: -------------------------------------------------------------------------------- 1 | Account Created Guest: 2 | title: Create Guest Account Email Template 3 | description: Guest account created email triggers when a customer or store admin creates a guest account. 4 | type: object 5 | properties: 6 | guest_account: 7 | type: object 8 | properties: 9 | link: 10 | type: string 11 | store: 12 | type: object 13 | properties: 14 | name: 15 | type: string 16 | domain_name: 17 | type: string 18 | logo: 19 | type: object 20 | properties: 21 | title: 22 | type: string 23 | name: 24 | type: string 25 | url: 26 | type: string 27 | ssl_path: 28 | type: string 29 | cdn_path: 30 | type: string 31 | image_directory: 32 | type: string 33 | img_path: 34 | type: string 35 | path_normal: 36 | type: string 37 | description: 'Path to the store (i.e., domain + protocol)' 38 | path: 39 | type: string 40 | address: 41 | type: string 42 | language: 43 | type: object 44 | properties: 45 | code: 46 | type: string 47 | direction: 48 | type: string 49 | description: 'Left to right or right to left, depending on the language' 50 | customer: 51 | type: object 52 | properties: 53 | first_name: 54 | type: string 55 | full_name: 56 | type: string 57 | email: 58 | type: string 59 | misc: 60 | type: object 61 | properties: 62 | year: 63 | type: integer 64 | translations: 65 | type: object 66 | properties: 67 | en: 68 | type: object 69 | properties: 70 | title: 71 | type: string 72 | hello: 73 | type: string 74 | message: 75 | type: string 76 | instruction: 77 | type: string 78 | help: 79 | type: string 80 | go_shopping: 81 | type: string 82 | examples: 83 | guest_account: 84 | link: #reset-password-link 85 | store: 86 | name: My Dev Store 97434969 87 | domain_name: my-dev-store-97434969.store.bcdev 88 | logo: 89 | title: [= My Dev Store 97434969 =] 90 | name: avatar-2020_1612860757__16350.jpeg 91 | url: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg' 92 | ssl_path: 'https://my-dev-store-97434969.store.bcdev' 93 | cdn_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96' 94 | image_directory: product_images 95 | img_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images' 96 | path_normal: 'https://my-dev-store-97434969.store.bcdev' 97 | path: 'https://my-dev-store-97434969.store.bcdev' 98 | address: 99 | language: 100 | code: en 101 | direction: ltr 102 | customer: 103 | first_name: John 104 | full_name: John Jr 105 | email: 'john.f@example.com' 106 | misc: 107 | year: 2021 108 | translations: 109 | en: 110 | title: Welcome to {{name}} 111 | hello: Hello {{name}}, 112 | message: For your convenience, we've created you an account on {{store}} so you can check the status of your order and checkout quicker in the future. 113 | instruction: 'To login you will need to follow the link below to nominate your password:' 114 | help: If you have any questions regarding your account, click 'Reply' in your email client and we'll be only too happy to help. 115 | go_shopping: Go shopping 116 | -------------------------------------------------------------------------------- /models/email_templates/data/abandoned_cart_email.json: -------------------------------------------------------------------------------- 1 | { 2 | "abandoned_cart": { 3 | "body": "You recently visited our online store and we noticed that you didn't complete your order.\n
To complete your order right now, just click on the link below:\n Complete your order", 4 | "unsubscribe_link": "#unsubscribe-link" 5 | }, 6 | "store": { 7 | "name": "My Dev Store 97434969", 8 | "domain_name": "my-dev-store-97434969.store.bcdev", 9 | "logo": { 10 | "title": "[= My Dev Store 97434969 =]", 11 | "name": "avatar-2020_1612860757__16350.jpeg", 12 | "url": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg" 13 | }, 14 | "ssl_path": "https://my-dev-store-97434969.store.bcdev", 15 | "cdn_path": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96", 16 | "image_directory": "product_images", 17 | "img_path": "https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images", 18 | "path_normal": "https://my-dev-store-97434969.store.bcdev", 19 | "path": "https://my-dev-store-97434969.store.bcdev", 20 | "address": "", 21 | "language": { 22 | "code": "en", 23 | "direction": "ltr" 24 | } 25 | }, 26 | "customer": { 27 | "first_name": "John", 28 | "full_name": "John Jr", 29 | "email": "john.f@example.com" 30 | }, 31 | "misc": { 32 | "year": 2021 33 | }, 34 | "translations": { 35 | "en": { 36 | "unsubscribe": "Unsubscribe from future emails like this" 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /models/email_templates/data/account_details_changed_email.json: -------------------------------------------------------------------------------- 1 | { 2 | "details_changed": { 3 | "fields": [ 4 | "Email", 5 | "Password" 6 | ] 7 | }, 8 | "store": { 9 | "name": "My Dev Store 97434969", 10 | "domain_name": "my-dev-store-97434969.store.bcdev", 11 | "logo": { 12 | "title": "[= My Dev Store 97434969 =]", 13 | "name": "avatar-2020_1612860757__16350.jpeg", 14 | "url": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg" 15 | }, 16 | "ssl_path": "https://my-dev-store-97434969.store.bcdev", 17 | "cdn_path": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96", 18 | "image_directory": "product_images", 19 | "img_path": "https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images", 20 | "path_normal": "https://my-dev-store-97434969.store.bcdev", 21 | "path": "https://my-dev-store-97434969.store.bcdev", 22 | "address": "", 23 | "language": { 24 | "code": "en", 25 | "direction": "ltr" 26 | } 27 | }, 28 | "customer": { 29 | "first_name": "John", 30 | "full_name": "John Jr", 31 | "email": "john.f@example.com" 32 | }, 33 | "misc": { 34 | "year": 2021 35 | }, 36 | "translations": { 37 | "en": { 38 | "title": "Your {name} account details have changed", 39 | "hello": "Hello {name},", 40 | "message": "We wanted to let you know that the following details have been changed on your {name} account:", 41 | "warning": "If you made the changes yourself, please disregard this email. If not, please contact the store immediately through their website: {domain}.", 42 | "thanks": "Thanks,", 43 | "security": "The BigCommerce Security Team", 44 | "go_shopping": "Go shopping" 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /models/email_templates/data/account_reset_password_email.json: -------------------------------------------------------------------------------- 1 | { 2 | "reset_password": { 3 | "link": "#reset-password-link" 4 | }, 5 | "store": { 6 | "name": "My Dev Store 97434969", 7 | "domain_name": "my-dev-store-97434969.store.bcdev", 8 | "logo": { 9 | "title": "[= My Dev Store 97434969 =]", 10 | "name": "avatar-2020_1612860757__16350.jpeg", 11 | "url": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg" 12 | }, 13 | "ssl_path": "https://my-dev-store-97434969.store.bcdev", 14 | "cdn_path": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96", 15 | "image_directory": "product_images", 16 | "img_path": "https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images", 17 | "path_normal": "https://my-dev-store-97434969.store.bcdev", 18 | "path": "https://my-dev-store-97434969.store.bcdev", 19 | "address": "", 20 | "language": { 21 | "code": "en", 22 | "direction": "ltr" 23 | } 24 | }, 25 | "customer": { 26 | "first_name": "John", 27 | "full_name": "John Jr", 28 | "email": "john.f@example.com" 29 | }, 30 | "misc": { 31 | "year": 2021 32 | }, 33 | "translations": { 34 | "en": { 35 | "title": "Change your password for {name}", 36 | "message": "To change your customer account password at {store} please click this link or copy and paste it into your browser:", 37 | "go_shopping": "Go shopping" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /models/email_templates/data/combined_order_status_email.json: -------------------------------------------------------------------------------- 1 | { 2 | "order": { 3 | "id": 1, 4 | "new_status": "Awaiting Fulfillment", 5 | "total": { 6 | "value": 10, 7 | "formatted": "$10.00 USD" 8 | }, 9 | "refund": { 10 | "value": 0, 11 | "formatted": "" 12 | }, 13 | "date_placed": { 14 | "value": 1614615796, 15 | "formatted": "03/01/2121" 16 | }, 17 | "payment_method": "Store Credit", 18 | "link": "#status-link", 19 | "customer_name": "John Cena", 20 | "downloadable_products": [ 21 | { 22 | "name": "Journal", 23 | "options": "", 24 | "quantity": 1, 25 | "link": "#downloadable-link" 26 | } 27 | ], 28 | "products": [ 29 | { 30 | "name": "Test product", 31 | "sku": "FA44", 32 | "quantity": 11 33 | } 34 | ], 35 | "tracking": [ 36 | { 37 | "id": "123BC", 38 | "shipping_method": "DHL", 39 | "link": "#example.com" 40 | } 41 | ] 42 | }, 43 | "store": { 44 | "name": "My Dev Store 97434969", 45 | "domain_name": "my-dev-store-97434969.store.bcdev", 46 | "logo": { 47 | "title": "[= My Dev Store 97434969 =]", 48 | "name": "avatar-2020_1612860757__16350.jpeg", 49 | "url": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg" 50 | }, 51 | "ssl_path": "https://my-dev-store-97434969.store.bcdev", 52 | "cdn_path": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96", 53 | "image_directory": "product_images", 54 | "img_path": "https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images", 55 | "path_normal": "https://my-dev-store-97434969.store.bcdev", 56 | "path": "https://my-dev-store-97434969.store.bcdev", 57 | "address": "", 58 | "language": { 59 | "code": "en", 60 | "direction": "ltr" 61 | } 62 | }, 63 | "customer": { 64 | "first_name": "John", 65 | "full_name": "John Jr", 66 | "email": "john.f@example.com" 67 | }, 68 | "misc": { 69 | "year": 2021 70 | }, 71 | "translations": { 72 | "en": { 73 | "title": "Order status changed", 74 | "hello": "Hi {name},", 75 | "message": "The status of your order #{id} has changed to {status}.", 76 | "details_title": "Order details", 77 | "order_total": "Order total:", 78 | "date_placed": "Date placed:", 79 | "payment_method": "Payment method:", 80 | "total_refund": "Total refunded:", 81 | "products_shipped": "Products shipped", 82 | "products_to_be_shipped": "Products to be shipped", 83 | "tracking_title": "Tracking information", 84 | "downloadable_items_title": "Downloadable items", 85 | "quantity": "Qty:", 86 | "download": "Download file", 87 | "tracking_label": "Tracking Link", 88 | "no_tracking_numbers": "No tracking numbers are assigned to your order yet", 89 | "check_status": "Check order status", 90 | "go_shopping": "Go shopping" 91 | } 92 | } 93 | } -------------------------------------------------------------------------------- /models/email_templates/data/create_account_email.json: -------------------------------------------------------------------------------- 1 | { 2 | "store": { 3 | "name": "My Dev Store 97434969", 4 | "domain_name": "my-dev-store-97434969.store.bcdev", 5 | "logo": { 6 | "title": "[= My Dev Store 97434969 =]", 7 | "name": "avatar-2020_1612860757__16350.jpeg", 8 | "url": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg" 9 | }, 10 | "ssl_path": "https://my-dev-store-97434969.store.bcdev", 11 | "cdn_path": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96", 12 | "image_directory": "product_images", 13 | "img_path": "https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images", 14 | "path_normal": "https://my-dev-store-97434969.store.bcdev", 15 | "path": "https://my-dev-store-97434969.store.bcdev", 16 | "address": "", 17 | "language": { 18 | "code": "en", 19 | "direction": "ltr" 20 | } 21 | }, 22 | "customer": { 23 | "first_name": "John", 24 | "full_name": "John Jr", 25 | "email": "john.f@example.com" 26 | }, 27 | "misc": { 28 | "year": 2021 29 | }, 30 | "translations": { 31 | "en": { 32 | "title": "Thanks for registering at {store}", 33 | "hello": "Hello {name},", 34 | "message": "Thank you for creating your account at {name}.", 35 | "details_title": "Account details", 36 | "email_label": "Email Address:", 37 | "password_label": "Password:", 38 | "password_placeholder": "[The password you specified]", 39 | "sign_in": "Sign in to account", 40 | "help": "If you have any questions regarding your account, click 'Reply' in your email client and we'll be only too happy to help.", 41 | "go_shopping": "Go shopping" 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /models/email_templates/data/create_guest_account_email.json: -------------------------------------------------------------------------------- 1 | { 2 | "guest_account": { 3 | "link": "#reset-password-link" 4 | }, 5 | "store": { 6 | "name": "My Dev Store 97434969", 7 | "domain_name": "my-dev-store-97434969.store.bcdev", 8 | "logo": { 9 | "title": "[= My Dev Store 97434969 =]", 10 | "name": "avatar-2020_1612860757__16350.jpeg", 11 | "url": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg" 12 | }, 13 | "ssl_path": "https://my-dev-store-97434969.store.bcdev", 14 | "cdn_path": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96", 15 | "image_directory": "product_images", 16 | "img_path": "https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images", 17 | "path_normal": "https://my-dev-store-97434969.store.bcdev", 18 | "path": "https://my-dev-store-97434969.store.bcdev", 19 | "address": "", 20 | "language": { 21 | "code": "en", 22 | "direction": "ltr" 23 | } 24 | }, 25 | "customer": { 26 | "first_name": "John", 27 | "full_name": "John Jr", 28 | "email": "john.f@example.com" 29 | }, 30 | "misc": { 31 | "year": 2021 32 | }, 33 | "translations": { 34 | "en": { 35 | "title": "Welcome to {name}", 36 | "hello": "Hello {name},", 37 | "message": "For your convenience, we've created you an account on {store} so you can check the status of your order and checkout quicker in the future.", 38 | "instruction": "To login you will need to follow the link below to nominate your password:", 39 | "help": "If you have any questions regarding your account, click 'Reply' in your email client and we'll be only too happy to help.", 40 | "go_shopping": "Go shopping" 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /models/email_templates/data/gift_certificate_email.json: -------------------------------------------------------------------------------- 1 | { 2 | "certificate": { 3 | "code": "FA-21465", 4 | "to_name": "John", 5 | "to_email": "john.f@example.com", 6 | "from_name": "John Wick", 7 | "from_email": "johnwick@example.com", 8 | "amount": "12.34", 9 | "redeem_link": "#redeem-link", 10 | "expiry_date": { 11 | "formatted": "03/01/2121", 12 | "value": 1614615821 13 | } 14 | }, 15 | "store": { 16 | "name": "My Dev Store 97434969", 17 | "domain_name": "my-dev-store-97434969.store.bcdev", 18 | "logo": { 19 | "title": "[= My Dev Store 97434969 =]", 20 | "name": "avatar-2020_1612860757__16350.jpeg", 21 | "url": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg" 22 | }, 23 | "ssl_path": "https://my-dev-store-97434969.store.bcdev", 24 | "cdn_path": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96", 25 | "image_directory": "product_images", 26 | "img_path": "https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images", 27 | "path_normal": "https://my-dev-store-97434969.store.bcdev", 28 | "path": "https://my-dev-store-97434969.store.bcdev", 29 | "address": "", 30 | "language": { 31 | "code": "en", 32 | "direction": "ltr" 33 | } 34 | }, 35 | "customer": { 36 | "first_name": "John", 37 | "full_name": "John Jr", 38 | "email": "john.f@example.com" 39 | }, 40 | "misc": { 41 | "year": 2021 42 | }, 43 | "translations": { 44 | "en": { 45 | "title": "You have received a Gift Certificate for {name}", 46 | "hello": "Dear {name},", 47 | "message": "{from_name} ({from_email}) has sent you a {amount} gift certificate for {name}.", 48 | "expiry_info": "You have until {date} to use this gift certificate before it expires.", 49 | "instruction": "For instructions on how to redeem your gift certificate please click here.", 50 | "attached": "Your gift certificate is attached to this email.", 51 | "warning": "Please download or print a copy of your gift certificate for safe keeping as gift certificates are non-transferable.", 52 | "go_shopping": "Go shopping" 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /models/email_templates/data/global.json: -------------------------------------------------------------------------------- 1 | { 2 | "store" : { 3 | "name" : "string", 4 | "domain_name" : "string", 5 | "logo" : { 6 | "title" : "string", 7 | "name" : "string", 8 | "url" : "string" 9 | } , 10 | "ssl_path" : "string", 11 | "cdn_path" : "string", 12 | "image_directory" : "string", 13 | "img_path" : "string", 14 | "path_normal" : "string", 15 | "path" : "string", 16 | "address" : "string", 17 | "language" : { 18 | "code" : "string" , 19 | "direction" : "string" 20 | } 21 | }, 22 | "customer" : { 23 | "first_name" : "string", 24 | "full_name" : "string", 25 | "email" : "string" 26 | }, 27 | "misc" : { 28 | "year" : "int" 29 | } 30 | } -------------------------------------------------------------------------------- /models/email_templates/data/order_message_notification.json: -------------------------------------------------------------------------------- 1 | { 2 | "notification": { 3 | "message": "Message from the merchant", 4 | "link": "https://my-dev-store-97434969.store.bcdev/account.php?action=inbox" 5 | }, 6 | "store": { 7 | "name": "My Dev Store 97434969", 8 | "domain_name": "my-dev-store-97434969.store.bcdev", 9 | "logo": { 10 | "title": "[= My Dev Store 97434969 =]", 11 | "name": "avatar-2020_1612860757__16350.jpeg", 12 | "url": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg" 13 | }, 14 | "ssl_path": "https://my-dev-store-97434969.store.bcdev", 15 | "cdn_path": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96", 16 | "image_directory": "product_images", 17 | "img_path": "https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images", 18 | "path_normal": "https://my-dev-store-97434969.store.bcdev", 19 | "path": "https://my-dev-store-97434969.store.bcdev", 20 | "address": "", 21 | "language": { 22 | "code": "en", 23 | "direction": "ltr" 24 | } 25 | }, 26 | "customer": { 27 | "first_name": "John", 28 | "full_name": "John Jr", 29 | "email": "john.f@example.com" 30 | }, 31 | "misc": { 32 | "year": 2021 33 | }, 34 | "translations": { 35 | "en": { 36 | "title": "New Reply to your Order Message", 37 | "hello": "Hello {name},", 38 | "message": "{name} has sent you a message about your order.", 39 | "reply": "Reply", 40 | "go_shopping": "Go shopping" 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /models/email_templates/data/passwordless_login_email.json: -------------------------------------------------------------------------------- 1 | { 2 | "passwordless_login": { 3 | "link": "#sign-in-link" 4 | }, 5 | "store": { 6 | "name": "My Dev Store 97434969", 7 | "domain_name": "my-dev-store-97434969.store.bcdev", 8 | "logo": { 9 | "title": "[= My Dev Store 97434969 =]", 10 | "name": "avatar-2020_1612860757__16350.jpeg", 11 | "url": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg" 12 | }, 13 | "ssl_path": "https://my-dev-store-97434969.store.bcdev", 14 | "cdn_path": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96", 15 | "image_directory": "product_images", 16 | "img_path": "https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images", 17 | "path_normal": "https://my-dev-store-97434969.store.bcdev", 18 | "path": "https://my-dev-store-97434969.store.bcdev", 19 | "address": "", 20 | "language": { 21 | "code": "en", 22 | "direction": "ltr" 23 | } 24 | }, 25 | "customer": { 26 | "first_name": "John", 27 | "full_name": "John Jr", 28 | "email": "john.f@example.com" 29 | }, 30 | "misc": { 31 | "year": 2021 32 | }, 33 | "translations": { 34 | "en": { 35 | "title": "Please click the link below to sign in to your account with {name}", 36 | "message": "You have requested a sign-in link. Please click here to sign in and continue.", 37 | "alternatively": "Alternatively, paste the following link in your browser:", 38 | "login_request": "This login is for {name} if you did not request this link, please ignore this email.", 39 | "secure": "Your account is still secure.", 40 | "go_shopping": "Go shopping" 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /models/email_templates/data/product_review_email.json: -------------------------------------------------------------------------------- 1 | { 2 | "review": { 3 | "products": [ 4 | { 5 | "name": "Name of Product", 6 | "sku": "FA44", 7 | "link": "#review-link" 8 | } 9 | ], 10 | "unsubscribe_link": "#unsubscribe-link" 11 | }, 12 | "store": { 13 | "name": "My Dev Store 97434969", 14 | "domain_name": "my-dev-store-97434969.store.bcdev", 15 | "logo": { 16 | "title": "[= My Dev Store 97434969 =]", 17 | "name": "avatar-2020_1612860757__16350.jpeg", 18 | "url": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg" 19 | }, 20 | "ssl_path": "https://my-dev-store-97434969.store.bcdev", 21 | "cdn_path": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96", 22 | "image_directory": "product_images", 23 | "img_path": "https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images", 24 | "path_normal": "https://my-dev-store-97434969.store.bcdev", 25 | "path": "https://my-dev-store-97434969.store.bcdev", 26 | "address": "", 27 | "language": { 28 | "code": "en", 29 | "direction": "ltr" 30 | } 31 | }, 32 | "customer": { 33 | "first_name": "John", 34 | "full_name": "John Jr", 35 | "email": "john.f@example.com" 36 | }, 37 | "misc": { 38 | "year": 2021 39 | }, 40 | "translations": { 41 | "en": { 42 | "title": "Review products you've recently purchased", 43 | "hello": "Hello {name},", 44 | "message": "Thanks for your recent order with us!", 45 | "instruction": "If you have a few minutes, we'd like to invite you to review the products you ordered. Just click on the link below to write a review and share your opinion with other shoppers.", 46 | "review_text": "Review product", 47 | "thanks": "Thanks in advance for taking the time to review the products you purchased!", 48 | "go_shopping": "Go shopping" 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /models/email_templates/data/return_confirmation_email.json: -------------------------------------------------------------------------------- 1 | { 2 | "return": { 3 | "return_id": "123", 4 | "reason": "reason of return", 5 | "action": "action", 6 | "comments": "sample comment", 7 | "order_id": "321", 8 | "products": [ 9 | { 10 | "name": "Shower Gel", 11 | "quantity": 3 12 | } 13 | ] 14 | }, 15 | "store": { 16 | "name": "My Dev Store 97434969", 17 | "domain_name": "my-dev-store-97434969.store.bcdev", 18 | "logo": { 19 | "title": "[= My Dev Store 97434969 =]", 20 | "name": "avatar-2020_1612860757__16350.jpeg", 21 | "url": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg" 22 | }, 23 | "ssl_path": "https://my-dev-store-97434969.store.bcdev", 24 | "cdn_path": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96", 25 | "image_directory": "product_images", 26 | "img_path": "https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images", 27 | "path_normal": "https://my-dev-store-97434969.store.bcdev", 28 | "path": "https://my-dev-store-97434969.store.bcdev", 29 | "address": "", 30 | "language": { 31 | "code": "en", 32 | "direction": "ltr" 33 | } 34 | }, 35 | "customer": { 36 | "first_name": "John", 37 | "full_name": "John Jr", 38 | "email": "john.f@example.com" 39 | }, 40 | "misc": { 41 | "year": 2021 42 | }, 43 | "translations": { 44 | "en": { 45 | "confirmation": "Confirmation for Return Request for Order ID", 46 | "summary": "A summary of your return is shown below. To view the status of this return", 47 | "clickHere": "click here", 48 | "reason": "Return Reason", 49 | "action": "Return Action", 50 | "comments": "Your Comments", 51 | "contains": "Your Return Request Contains the Following Items...", 52 | "items": "Return Items", 53 | "quantity": "Qty" 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /models/email_templates/data/return_status_change_email.json: -------------------------------------------------------------------------------- 1 | { 2 | "return": { 3 | "id": 1, 4 | "reason": "reason of return", 5 | "action": "action", 6 | "comments": "sample comment", 7 | "product": { 8 | "name": "ProductName", 9 | "quantity": 2, 10 | "thumbnail_url": "" 11 | }, 12 | "status": { 13 | "value": 1, 14 | "formatted": "Pending" 15 | }, 16 | "store_credit": { 17 | "value": 10.1, 18 | "formatted": "$10.1 USD" 19 | }, 20 | "link": "https://my-dev-store-97434969.store.bcdev/account.php?action=view_returns", 21 | "instructions": "" 22 | }, 23 | "order": { 24 | "id": 1 25 | }, 26 | "store": { 27 | "name": "My Dev Store 97434969", 28 | "domain_name": "my-dev-store-97434969.store.bcdev", 29 | "logo": { 30 | "title": "[= My Dev Store 97434969 =]", 31 | "name": "avatar-2020_1612860757__16350.jpeg", 32 | "url": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg" 33 | }, 34 | "ssl_path": "https://my-dev-store-97434969.store.bcdev", 35 | "cdn_path": "https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96", 36 | "image_directory": "product_images", 37 | "img_path": "https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images", 38 | "path_normal": "https://my-dev-store-97434969.store.bcdev", 39 | "path": "https://my-dev-store-97434969.store.bcdev", 40 | "address": "", 41 | "language": { 42 | "code": "en", 43 | "direction": "ltr" 44 | } 45 | }, 46 | "customer": { 47 | "first_name": "John", 48 | "full_name": "John Jr", 49 | "email": "john.f@example.com" 50 | }, 51 | "misc": { 52 | "year": 2021 53 | }, 54 | "translations": { 55 | "en": { 56 | "title": "Return request status changed", 57 | "hello": "Hello {name},", 58 | "message": "The status of your return request for order #{id} has changed to {status}.", 59 | "received_credit": "You have received a store credit of {credits} To use it, simply place your order and you will be able to choose store credit as the payment method when it comes time to pay for your order.", 60 | "details_title": "Return details", 61 | "return_reason": "Return reason:", 62 | "return_action": "Return action:", 63 | "return_comments": "Your comments:", 64 | "check_status": "Check return status", 65 | "products_title": "Return items", 66 | "quantity": "Qty:", 67 | "instructions_title": "Return Instructions:", 68 | "go_shopping": "Go shopping" 69 | } 70 | } 71 | } -------------------------------------------------------------------------------- /models/email_templates/global.yml: -------------------------------------------------------------------------------- 1 | Global Email Template Object: 2 | title: Global Email Template Object 3 | description: Data objects across all email templates. 4 | type: object 5 | properties: 6 | store: 7 | type: object 8 | properties: 9 | name: 10 | type: string 11 | domain_name: 12 | type: string 13 | logo: 14 | type: object 15 | properties: 16 | title: 17 | type: string 18 | name: 19 | type: string 20 | url: 21 | type: string 22 | ssl_path: 23 | type: string 24 | cdn_path: 25 | type: string 26 | image_directory: 27 | type: string 28 | img_path: 29 | type: string 30 | path_normal: 31 | type: string 32 | description: 'Path to the store (i.e., domain + protocol)' 33 | path: 34 | type: string 35 | address: 36 | type: string 37 | language: 38 | type: object 39 | properties: 40 | code: 41 | type: string 42 | direction: 43 | type: string 44 | description: 'Left to right or right to left, depending on the language' 45 | customer: 46 | type: object 47 | properties: 48 | first_name: 49 | type: string 50 | full_name: 51 | type: string 52 | email: 53 | type: string 54 | group: 55 | type: array 56 | items: 57 | type: object 58 | properties: 59 | name: 60 | type: string 61 | misc: 62 | type: object 63 | properties: 64 | year: 65 | type: integer 66 | examples: 67 | store : 68 | name : string, 69 | domain_name : string 70 | logo : 71 | title : string 72 | name : string 73 | url : string 74 | ssl_path : string 75 | cdn_path : string 76 | image_directory : string 77 | img_path : string 78 | path_normal : string 79 | path : string 80 | address : string 81 | language : 82 | code : string 83 | direction : string 84 | customer : 85 | first_name : string 86 | full_name : string 87 | email : string 88 | misc : 89 | year : int 90 | -------------------------------------------------------------------------------- /models/email_templates/order_message_notification.yml: -------------------------------------------------------------------------------- 1 | Order Notification: 2 | title: Order Notification Email Template 3 | description: Order notification email triggers when a merchant or store admin adds a message to an order. 4 | type: object 5 | properties: 6 | notification: 7 | type: object 8 | properties: 9 | message: 10 | type: string 11 | link: 12 | type: string 13 | subject: 14 | type: string 15 | store: 16 | type: object 17 | properties: 18 | name: 19 | type: string 20 | domain_name: 21 | type: string 22 | logo: 23 | type: object 24 | properties: 25 | title: 26 | type: string 27 | name: 28 | type: string 29 | url: 30 | type: string 31 | ssl_path: 32 | type: string 33 | cdn_path: 34 | type: string 35 | image_directory: 36 | type: string 37 | img_path: 38 | type: string 39 | path_normal: 40 | type: string 41 | description: 'Path to the store (i.e., domain + protocol)' 42 | path: 43 | type: string 44 | address: 45 | type: string 46 | language: 47 | type: object 48 | properties: 49 | code: 50 | type: string 51 | direction: 52 | type: string 53 | description: 'Left to right or right to left, depending on the language' 54 | customer: 55 | type: object 56 | properties: 57 | first_name: 58 | type: string 59 | full_name: 60 | type: string 61 | email: 62 | type: string 63 | group: 64 | type: array 65 | items: 66 | type: object 67 | properties: 68 | name: 69 | type: string 70 | misc: 71 | type: object 72 | properties: 73 | year: 74 | type: integer 75 | translations: 76 | type: object 77 | properties: 78 | en: 79 | type: object 80 | properties: 81 | title: 82 | type: string 83 | hello: 84 | type: string 85 | message: 86 | type: string 87 | reply: 88 | type: string 89 | go_shopping: 90 | type: string 91 | examples: 92 | notification: 93 | message: Message from the merchant 94 | link: 'https://my-dev-store-97434969.store.bcdev/account.php?action=inbox' 95 | store: 96 | name: My Dev Store 97434969 97 | domain_name: my-dev-store-97434969.store.bcdev 98 | logo: 99 | title: [= My Dev Store 97434969 =] 100 | name: avatar-2020_1612860757__16350.jpeg 101 | url: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg' 102 | ssl_path: 'https://my-dev-store-97434969.store.bcdev' 103 | cdn_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96' 104 | image_directory: product_images 105 | img_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images' 106 | path_normal: 'https://my-dev-store-97434969.store.bcdev' 107 | path: 'https://my-dev-store-97434969.store.bcdev' 108 | address: 109 | language: 110 | code: en 111 | direction: ltr 112 | customer: 113 | first_name: John 114 | full_name: John Jr 115 | email: 'john.f@example.com' 116 | misc: 117 | year: 2021 118 | translations: 119 | en: 120 | title: New Reply to your Order Message 121 | hello: Hello {{name}}. 122 | message: '{{name}} has sent you a message about your order.' 123 | reply: Reply 124 | go_shopping: Go shopping 125 | -------------------------------------------------------------------------------- /models/email_templates/passwordless_login_email.yml: -------------------------------------------------------------------------------- 1 | Sign in Link Request: 2 | title: Sign in Link Request Email Template 3 | description: Sign-in request email triggers when an existing customer requests passwordless login while checking out. 4 | type: object 5 | properties: 6 | passwordless_login: 7 | type: object 8 | properties: 9 | link: 10 | type: string 11 | store: 12 | type: object 13 | properties: 14 | name: 15 | type: string 16 | domain_name: 17 | type: string 18 | logo: 19 | type: object 20 | properties: 21 | title: 22 | type: string 23 | name: 24 | type: string 25 | url: 26 | type: string 27 | ssl_path: 28 | type: string 29 | cdn_path: 30 | type: string 31 | image_directory: 32 | type: string 33 | img_path: 34 | type: string 35 | path_normal: 36 | type: string 37 | description: 'Path to the store (i.e., domain + protocol)' 38 | path: 39 | type: string 40 | address: 41 | type: string 42 | language: 43 | type: object 44 | properties: 45 | code: 46 | type: string 47 | direction: 48 | type: string 49 | description: 'Left to right or right to left, depending on the language' 50 | customer: 51 | type: object 52 | properties: 53 | first_name: 54 | type: string 55 | full_name: 56 | type: string 57 | email: 58 | type: string 59 | group: 60 | type: array 61 | items: 62 | type: object 63 | properties: 64 | name: 65 | type: string 66 | misc: 67 | type: object 68 | properties: 69 | year: 70 | type: integer 71 | translations: 72 | type: object 73 | properties: 74 | en: 75 | type: object 76 | properties: 77 | title: 78 | type: string 79 | message: 80 | type: string 81 | alternatively: 82 | type: string 83 | login_request: 84 | type: string 85 | secure: 86 | type: string 87 | go_shopping: 88 | type: string 89 | examples: 90 | passwordless_login: '"link": "#sign-in-link"' 91 | store: 92 | name: My Dev Store 97434969 93 | domain_name: 'my-dev-store-97434969.store.bcdev' 94 | logo: 95 | title: [= My Dev Store 97434969 =] 96 | name: avatar-2020_1612860757__16350.jpeg 97 | url: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg' 98 | ssl_path: 'https://my-dev-store-97434969.store.bcdev' 99 | cdn_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96' 100 | image_directory: product_images 101 | img_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images' 102 | path_normal: 'https://my-dev-store-97434969.store.bcdev' 103 | path: 'https://my-dev-store-97434969.store.bcdev' 104 | address: 105 | language: 106 | code: en 107 | direction: ltr 108 | customer: 109 | first_name: John 110 | full_name: John Jr 111 | email: 'john.f@example.com' 112 | misc: 113 | year: 2021 114 | translations: 115 | en: 116 | title: Please click the link below to sign in to your account with {{name}} 117 | message: 'You have requested a sign-in link. Please click here to sign in and continue.' 118 | alternatively: 'Alternatively, paste the following link in your browser:' 119 | login_request: This login is for {{name}} if you did not request this link, please ignore this email. 120 | secure: Your account is still secure. 121 | go_shopping: Go shopping 122 | -------------------------------------------------------------------------------- /models/email_templates/product_review_email.yml: -------------------------------------------------------------------------------- 1 | Product Review Request: 2 | title: Product Review Email Template 3 | description: Product review request email triggers after a customer purchases a product. 4 | type: object 5 | properties: 6 | review: 7 | type: object 8 | properties: 9 | products: 10 | type: array 11 | items: 12 | type: object 13 | properties: 14 | name: 15 | type: string 16 | sku: 17 | type: string 18 | link: 19 | type: string 20 | price: 21 | type: string 22 | thumbnail: 23 | type: string 24 | unsubscribe_link: 25 | type: string 26 | store: 27 | type: object 28 | properties: 29 | name: 30 | type: string 31 | domain_name: 32 | type: string 33 | logo: 34 | type: object 35 | properties: 36 | title: 37 | type: string 38 | name: 39 | type: string 40 | url: 41 | type: string 42 | ssl_path: 43 | type: string 44 | cdn_path: 45 | type: string 46 | image_directory: 47 | type: string 48 | img_path: 49 | type: string 50 | path_normal: 51 | type: string 52 | description: 'Path to the store (i.e., domain + protocol)' 53 | path: 54 | type: string 55 | address: 56 | type: string 57 | language: 58 | type: object 59 | properties: 60 | code: 61 | type: string 62 | direction: 63 | type: string 64 | description: 'Left to right or right to left, depending on the language' 65 | customer: 66 | type: object 67 | properties: 68 | first_name: 69 | type: string 70 | full_name: 71 | type: string 72 | email: 73 | type: string 74 | group: 75 | type: array 76 | items: 77 | type: object 78 | properties: 79 | name: 80 | type: string 81 | misc: 82 | type: object 83 | properties: 84 | year: 85 | type: integer 86 | translations: 87 | type: object 88 | properties: 89 | en: 90 | type: object 91 | properties: 92 | title: 93 | type: string 94 | hello: 95 | type: string 96 | message: 97 | type: string 98 | instruction: 99 | type: string 100 | review_text: 101 | type: string 102 | thanks: 103 | type: string 104 | go_shopping: 105 | type: string 106 | examples: 107 | review: 108 | products: 109 | name: Name of Product 110 | sku: FA44 111 | link: '#review-link' 112 | unsubscribe_link: '#unsubscribe-link' 113 | store: 114 | name: My Dev Store 97434969 115 | domain_name: my-dev-store-97434969.store.bcdev 116 | logo: 117 | title: [= My Dev Store 97434969 =] 118 | name: avatar-2020_1612860757__16350.jpeg 119 | url: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96/product_images/avatar-2020_1612860757__16350.jpeg' 120 | ssl_path: 'https://my-dev-store-97434969.store.bcdev' 121 | cdn_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/store/f1kr2akw96' 122 | image_directory: product_images 123 | img_path: 'https://valeryderived-cloud-dev-vm.store.bcdev/r08d84bb67d250c7624502ed76d8e0bafb1a5cacf/g-themes/ClassicNext/images' 124 | path_normal: 'https://my-dev-store-97434969.store.bcdev' 125 | path: 'https://my-dev-store-97434969.store.bcdev' 126 | address: 127 | language: 128 | code: en 129 | direction: ltr 130 | customer: 131 | first_name: John 132 | full_name: John Jr 133 | email: 'john.f@example.com' 134 | misc: 135 | year: 2021 136 | translations: 137 | en: 138 | title: Review products you've recently purchased 139 | hello: Hello {{name}}, 140 | message: Thanks for your recent order with us!, 141 | instruction: If you have a few minutes, we'd like to invite you to review the products you ordered. Just click on the link below to write a review and share your opinion with other shoppers. 142 | review_text: Review product 143 | thanks: Thanks in advance for taking the time to review the products you purchased! 144 | go_shopping: Go shopping 145 | -------------------------------------------------------------------------------- /models/json2schema.py: -------------------------------------------------------------------------------- 1 | import json 2 | from sys import stdin 3 | 4 | """ 5 | json2schema.py - converts json data from stdin to yaml schema 6 | 7 | usage: cat data.json | python json2schema.py > schema.yml 8 | """ 9 | 10 | YAML = "" 11 | 12 | def gettype(type): 13 | for i in ['string','boolean','integer']: 14 | if type in i: 15 | return i 16 | return type 17 | 18 | def parser(json_data,indent): 19 | yaml = "" 20 | if type(json_data) is dict: 21 | yaml += (indent + 'type: object\n') 22 | if len(json_data) > 0: 23 | yaml += (indent + 'properties:\n') 24 | for key in json_data: 25 | yaml += (indent + ' %s:\n' % key) 26 | yaml += parser(json_data[key], indent+' ') 27 | elif type(json_data) is list: 28 | yaml += (indent + 'type: array\n') 29 | yaml += (indent + 'items:\n') 30 | if len(json_data) != 0: 31 | yaml += parser(json_data[0], indent+' ') 32 | else: 33 | yaml += (indent + ' type: object\n') 34 | else: 35 | yaml += (indent + 'type: %s\n' % gettype(type(json_data).__name__)) 36 | return yaml 37 | 38 | 39 | if stdin: 40 | print(parser(json.load(stdin),'')) 41 | else: 42 | print("No input detected. Try again") -------------------------------------------------------------------------------- /models/webhooks/README.md: -------------------------------------------------------------------------------- 1 | # Webhooks 2 | 3 | Object schemas for Webhook events. 4 | 5 | ## Directory structure 6 | 7 | ```shell 8 | . 9 | ├── data # json data for generating and updating yaml schema 10 | ├── _all.yml # Groups models together for docs 11 | ├── store_app_uninstalled.yml # Individual email template models 12 | ├── ... 13 | ``` 14 | 15 | ## Updating models 16 | 17 | To generate a new model from json data and overwrite the existing schema file: 18 | 19 | 1. Copy and paste webhook event `json` into corresponding file in `data/`. 20 | 2. Use `models/json2schema.py` to convert the json data to a yaml schema. 21 | 22 | Example: 23 | 24 | ```bash 25 | cat data.json | python json2schema.py > schema.yml 26 | ``` 27 | 28 | Bash for overwriting all webhook event models: 29 | 30 | ```bash 31 | for f in models/webhooks/data/*.json; do cat $f | python models/json2schema.py > ${f%.*}.yml; mv ${f%.*}.yml models/webhooks/; done 32 | ``` -------------------------------------------------------------------------------- /models/webhooks/data/list.txt: -------------------------------------------------------------------------------- 1 | store_app_uninstalled.json 2 | store_cart_abandoned.json 3 | store_cart_converted.json 4 | store_cart_couponApplied.json 5 | store_cart_created.json 6 | store_cart_deleted.json 7 | store_cart_lineItem_created.json 8 | store_cart_lineItem_deleted.json 9 | store_cart_lineItem_updated.json 10 | store_cart_updated.json 11 | store_category_created.json 12 | store_category_deleted.json 13 | store_category_updated.json 14 | store_customer_address_created.json 15 | store_customer_address_deleted.json 16 | store_customer_address_updated.json 17 | store_customer_created.json 18 | store_customer_deleted.json 19 | store_customer_payment_instrument_default_updated.json 20 | store_customer_updated.json 21 | store_information_updated.json 22 | store_order_archived.json 23 | store_order_created.json 24 | store_order_message_created.json 25 | store_order_refund_created.json 26 | store_order_statusUpdated.json 27 | store_order_updated.json 28 | store_product_created.json 29 | store_product_deleted.json 30 | store_product_inventory_order_updated.json 31 | store_product_inventory_updated.json 32 | store_product_updated.json 33 | store_shipment_created.json 34 | store_shipment_deleted.json 35 | store_shipment_updated.json 36 | store_sku_created.json 37 | store_sku_deleted.json 38 | store_sku_inventory_order_updated.json 39 | store_sku_inventory_updated.json 40 | store_sku_updated.json 41 | store_subscriber_created.json 42 | store_subscriber_deleted.json 43 | store_subscriber_updated.json -------------------------------------------------------------------------------- /models/webhooks/data/store_app_uninstalled.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bigcommerce/api-specs/dcf48407308710b882374ffafbeefdb0b3598abe/models/webhooks/data/store_app_uninstalled.json -------------------------------------------------------------------------------- /models/webhooks/data/store_cart_abandoned.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/cart/abandoned", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "cart", 6 | "id": "09346904-4175-44fd-be53-f7e598531b6c", 7 | "token": "1eed6d2d979776ff18e695ceeb10ea61" 8 | }, 9 | "hash": "352e4afc6dd3fc85ea26bfdf3f91852604d57528", 10 | "created_at": 1561482670, 11 | "producer": "stores/{store_hash}" 12 | } 13 | -------------------------------------------------------------------------------- /models/webhooks/data/store_cart_converted.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/cart/converted", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "cart", 6 | "id": "d30016e2-23c0-4a90-884f-2e92ac135476", 7 | "orderId": 252 8 | }, 9 | "hash": "b86db7c77d7ef8f90d6a8aefa56de32ccd776923", 10 | "created_at": 1561486893, 11 | "producer": "stores/{store_hash}" 12 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_cart_couponApplied.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/cart/couponApplied", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "cart", 6 | "id": "09346904-4175-44fd-be53-f7e598531b6c", 7 | "couponId": 1 8 | }, 9 | "hash": "4b7297d295141b660e8db5a0d99dfcdf459fe825", 10 | "created_at": 1561482761, 11 | "producer": "stores/{store_hash}" 12 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_cart_created.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/cart/created", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "cart", 6 | "id": "09346904-4175-44fd-be53-f7e598531b6c" 7 | }, 8 | "hash": "352e4afc6dd3fc85ea26bfdf3f91852604d57528", 9 | "created_at": 1561482670, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_cart_deleted.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/cart/deleted", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "cart", 6 | "id": "09346904-4175-44fd-be53-f7e598531b6c" 7 | }, 8 | "hash": "352e4afc6dd3fc85ea26bfdf3f91852604d57528", 9 | "created_at": 1561482670, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_cart_lineItem_created.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/cart/lineItem/created", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "cart_line_item", 6 | "id": "743bfd94-d5dd-47c5-9c19-6eec32ca6119", 7 | "cartId": "b0386708-fef3-45de-9d8b-fbe3031450a4" 8 | }, 9 | "hash": "399321a1bf1ac1331e12826fb89f264b4c8d21a6", 10 | "created_at": 1561481786, 11 | "producer": "stores/{store_hash}" 12 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_cart_lineItem_deleted.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/cart/lineItem/updated", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "cart_line_item", 6 | "id": "743bfd94-d5dd-47c5-9c19-6eec32ca6119", 7 | "cartId": "b0386708-fef3-45de-9d8b-fbe3031450a4" 8 | }, 9 | "hash": "399321a1bf1ac1331e12826fb89f264b4c8d21a6", 10 | "created_at": 1561481786, 11 | "producer": "stores/{store_hash}" 12 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_cart_lineItem_updated.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/cart/lineItem/deleted", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "cart_line_item", 6 | "id": "743bfd94-d5dd-47c5-9c19-6eec32ca6119", 7 | "cartId": "b0386708-fef3-45de-9d8b-fbe3031450a4" 8 | }, 9 | "hash": "399321a1bf1ac1331e12826fb89f264b4c8d21a6", 10 | "created_at": 1561481786, 11 | "producer": "stores/{store_hash}" 12 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_cart_updated.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/cart/updated", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "cart", 6 | "id": "09346904-4175-44fd-be53-f7e598531b6c" 7 | }, 8 | "hash": "352e4afc6dd3fc85ea26bfdf3f91852604d57528", 9 | "created_at": 1561482670, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_category_created.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/category/created", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "category", 6 | "id": 42 7 | }, 8 | "hash": "dc3a47c15425d2c895dba674f86fe71a8f3b6459", 9 | "created_at": 1561480214, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_category_deleted.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/category/deleted", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "category", 6 | "id": 42 7 | }, 8 | "hash": "dc3a47c15425d2c895dba674f86fe71a8f3b6459", 9 | "created_at": 1561480214, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_category_updated.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/category/updated", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "category", 6 | "id": 42 7 | }, 8 | "hash": "dc3a47c15425d2c895dba674f86fe71a8f3b6459", 9 | "created_at": 1561480214, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_customer_address_created.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/customer/address/created", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "customer", 6 | "id": 60, 7 | "address": { 8 | "customer_id": 32 9 | } 10 | }, 11 | "hash": "416ca9c01779515de91824aa1cac9012ee691e7a", 12 | "created_at": 1561481620, 13 | "producer": "stores/{store_hash}" 14 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_customer_address_deleted.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/customer/address/deleted", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "customer", 6 | "id": 60, 7 | "address": { 8 | "customer_id": 32 9 | } 10 | }, 11 | "hash": "416ca9c01779515de91824aa1cac9012ee691e7a", 12 | "created_at": 1561481620, 13 | "producer": "stores/{store_hash}" 14 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_customer_address_updated.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/customer/address/update", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "customer", 6 | "id": 60, 7 | "address": { 8 | "customer_id": 32 9 | } 10 | }, 11 | "hash": "416ca9c01779515de91824aa1cac9012ee691e7a", 12 | "created_at": 1561481620, 13 | "producer": "stores/{store_hash}" 14 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_customer_created.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/customer/created", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "customer", 6 | "id": 32 7 | }, 8 | "hash": "8768ab15aa86c6d73c7e4c3efbaee072110ad1d2", 9 | "created_at": 1561481571, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_customer_deleted.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/customer/created", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "customer", 6 | "id": 32 7 | }, 8 | "hash": "8768ab15aa86c6d73c7e4c3efbaee072110ad1d2", 9 | "created_at": 1561481571, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_customer_payment_instrument_default_updated.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/customer/payment/instrument/default/updated", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "customer", 6 | "id": 32 7 | }, 8 | "hash": "8768ab15aa86c6d73c7e4c3efbaee072110ad1d2", 9 | "created_at": 1561481571, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_customer_updated.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/customer/created", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "customer", 6 | "id": 32 7 | }, 8 | "hash": "8768ab15aa86c6d73c7e4c3efbaee072110ad1d2", 9 | "created_at": 1561481571, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_information_updated.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/information/updated", 3 | "store_id": "123446", 4 | "data": { 5 | "type": "store" 6 | }, 7 | "hash": "c553845e0a5e28dc8b0ea494458692a25586a294", 8 | "created_at": 1535489273, 9 | "producer": "stores/{store_hash}" 10 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_metafield_created.json: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /models/webhooks/data/store_order_archived.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/order/archived", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "order", 6 | "id": 250 7 | }, 8 | "hash": "dd70c0976e06b67aaf671e73f49dcb79230ebf9d", 9 | "created_at": 1561479335, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_order_created.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/order/created", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "order", 6 | "id": 250 7 | }, 8 | "hash": "dd70c0976e06b67aaf671e73f49dcb79230ebf9d", 9 | "created_at": 1561479335, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_order_message_created.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/order/message/created", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "order", 6 | "id": 250, 7 | "message": { 8 | "order_message_id": 3 9 | } 10 | }, 11 | "hash": "cb07cdbdda8b1965e812693d5988154807eeed02", 12 | "created_at": 1561479923, 13 | "producer": "stores/{store_hash}" 14 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_order_refund_created.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/order/refund/created", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "order", 6 | "id": 250, 7 | "refund": { 8 | "refund_id": 3 9 | } 10 | }, 11 | "hash": "cb07cdbdda8b1965e812693d5988154807eeed02", 12 | "created_at": 1561479923, 13 | "producer": "stores/{store_hash}" 14 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_order_statusUpdated.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/order/statusUpdated", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "order", 6 | "id": 250, 7 | "status": { 8 | "previous_status_id": 0, 9 | "new_status_id": 11 10 | } 11 | }, 12 | "hash": "7ee67cd1cf2ca60bc1aa9e5fe957d2de373be4ca", 13 | "created_at": 1561479335, 14 | "producer": "stores/{store_hash}" 15 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_order_updated.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/order/updated", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "order", 6 | "id": 250 7 | }, 8 | "hash": "dd70c0976e06b67aaf671e73f49dcb79230ebf9d", 9 | "created_at": 1561479335, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_product_created.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/product/created", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "product", 6 | "id": 205 7 | }, 8 | "hash": "a833a57fadd56a32dc752fb6ca0841dc9602a495", 9 | "created_at": 1561479233, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_product_deleted.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/product/deleted", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "product", 6 | "id": 205 7 | }, 8 | "hash": "a833a57fadd56a32dc752fb6ca0841dc9602a495", 9 | "created_at": 1561479233, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_product_inventory_order_updated.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/product/inventory/order/updated", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "product", 6 | "id": 167, 7 | "inventory": { 8 | "product_id": 167, 9 | "method": "absolute", 10 | "value": 100000000 11 | } 12 | }, 13 | "hash": "cba9eef399fbd6d384489bca6cacad24794b1086", 14 | "created_at": 1561478843, 15 | "producer": "stores/{store_hash}" 16 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_product_inventory_updated.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/product/inventory/updated", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "product", 6 | "id": 167, 7 | "inventory": { 8 | "product_id": 167, 9 | "method": "absolute", 10 | "value": 100000000 11 | } 12 | }, 13 | "hash": "cba9eef399fbd6d384489bca6cacad24794b1086", 14 | "created_at": 1561478843, 15 | "producer": "stores/{store_hash}" 16 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_product_updated.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/product/updated", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "product", 6 | "id": 205 7 | }, 8 | "hash": "a833a57fadd56a32dc752fb6ca0841dc9602a495", 9 | "created_at": 1561479233, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_shipment_created.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/shipment/created", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "shipment", 6 | "id": 12, 7 | "orderId": 251 8 | }, 9 | "hash": "8b98021cb0faa7e3a58a0e4182d3696a4bdd24ab", 10 | "created_at": 1561482857, 11 | "producer": "stores/{store_hash}" 12 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_shipment_deleted.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/shipment/deleted", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "shipment", 6 | "id": 12, 7 | "orderId": 251 8 | }, 9 | "hash": "8b98021cb0faa7e3a58a0e4182d3696a4bdd24ab", 10 | "created_at": 1561482857, 11 | "producer": "stores/{store_hash}" 12 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_shipment_updated.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/shipment/updated", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "shipment", 6 | "id": 12, 7 | "orderId": 251 8 | }, 9 | "hash": "8b98021cb0faa7e3a58a0e4182d3696a4bdd24ab", 10 | "created_at": 1561482857, 11 | "producer": "stores/{store_hash}" 12 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_sku_created.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/sku/created", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "sku", 6 | "id": 461, 7 | "sku": { 8 | "product_id": 206, 9 | "variant_id": 509 10 | } 11 | }, 12 | "hash": "7a0866943b1f46cfda31c3218931f5aab83a4c73", 13 | "created_at": 1561480465, 14 | "producer": "stores/{store_hash}" 15 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_sku_deleted.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/sku/deleted", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "sku", 6 | "id": 461, 7 | "sku": { 8 | "product_id": 206, 9 | "variant_id": 509 10 | } 11 | }, 12 | "hash": "7a0866943b1f46cfda31c3218931f5aab83a4c73", 13 | "created_at": 1561480465, 14 | "producer": "stores/{store_hash}" 15 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_sku_inventory_order_updated.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/sku/inventory/order/updated", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "sku", 6 | "id": 461, 7 | "inventory": { 8 | "product_id": 206, 9 | "method": "absolute", 10 | "value": 5, 11 | "variant_id": 509 12 | } 13 | }, 14 | "hash": "116ddb29d7bc1b2322cc1a4dc295221ee3637d4b", 15 | "created_at": 1561480673, 16 | "producer": "stores/{store_hash}" 17 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_sku_inventory_updated.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/sku/inventory/updated", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "sku", 6 | "id": 461, 7 | "inventory": { 8 | "product_id": 206, 9 | "method": "absolute", 10 | "value": 5, 11 | "variant_id": 509 12 | } 13 | }, 14 | "hash": "116ddb29d7bc1b2322cc1a4dc295221ee3637d4b", 15 | "created_at": 1561480673, 16 | "producer": "stores/{store_hash}" 17 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_sku_updated.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/sku/updated", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "sku", 6 | "id": 461, 7 | "sku": { 8 | "product_id": 206, 9 | "variant_id": 509 10 | } 11 | }, 12 | "hash": "7a0866943b1f46cfda31c3218931f5aab83a4c73", 13 | "created_at": 1561480465, 14 | "producer": "stores/{store_hash}" 15 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_subscriber_created.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/subscriber/created", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "subscriber", 6 | "id": 5 7 | }, 8 | "hash": "bdb6c9c2d17ca7036538e483db0bdd7debc4beb4", 9 | "created_at": 1561482953, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_subscriber_deleted.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/subscriber/updated", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "subscriber", 6 | "id": 5 7 | }, 8 | "hash": "bdb6c9c2d17ca7036538e483db0bdd7debc4beb4", 9 | "created_at": 1561482953, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/data/store_subscriber_updated.json: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "store/subscriber/deleted", 3 | "store_id": "1025646", 4 | "data": { 5 | "type": "subscriber", 6 | "id": 5 7 | }, 8 | "hash": "bdb6c9c2d17ca7036538e483db0bdd7debc4beb4", 9 | "created_at": 1561482953, 10 | "producer": "stores/{store_hash}" 11 | } -------------------------------------------------------------------------------- /models/webhooks/store_app_uninstalled.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/app/uninstalled: 4 | description: Fires when a client store is cancelled and uninstalled from the platform. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: string 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | -------------------------------------------------------------------------------- /models/webhooks/store_brand_metafield_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/brand/metafield/created: 4 | description: Fires when a new metafield on any object is created. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | -------------------------------------------------------------------------------- /models/webhooks/store_brand_metafield_deleted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/brand/metafield/deleted: 4 | description: Fires when a brand metafield is deleted. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | -------------------------------------------------------------------------------- /models/webhooks/store_brand_metafield_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/brand/metafield/updated: 4 | description: Fires when a brand metafield is modified. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | -------------------------------------------------------------------------------- /models/webhooks/store_cart_abandoned.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/cart/abandoned: 4 | description: Fires when a cart is abandoned. A cart is considered abandoned when no changes have been made to its properties or contents for one hour. This webhook is available for all store plans, regardless of whether the Abandoned Cart Saver feature is enabled. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: string 18 | token: 19 | type: string 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | 27 | -------------------------------------------------------------------------------- /models/webhooks/store_cart_converted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/cart/converted: 4 | description: Fires when a cart is converted into an order, which typically follows the payment step of checkout. At this point, the cart is no longer accessible and has been deleted. This webhook returns both the cart ID and the order ID for correlation purposes. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: string 18 | orderId: 19 | type: integer 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | 27 | -------------------------------------------------------------------------------- /models/webhooks/store_cart_couponApplied.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/cart/couponApplied: 4 | description: Fires when a new coupon code is applied to a cart. The payload includes the ID of the coupon code. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: string 18 | couponId: 19 | type: integer 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | 27 | -------------------------------------------------------------------------------- /models/webhooks/store_cart_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/cart/created: 4 | description: |- 5 | Fires when a new cart is created, which happens with the following two events: 6 | 7 | * A storefront shopper adds the first item to their cart 8 | * A new cart is created using any of the APIs that can create carts 9 | 10 | The store/cart/updated webhook fires simultaneously with store/cart/created. 11 | type: object 12 | properties: 13 | scope: 14 | type: string 15 | store_id: 16 | type: string 17 | data: 18 | type: object 19 | properties: 20 | type: 21 | type: string 22 | id: 23 | type: string 24 | hash: 25 | type: string 26 | created_at: 27 | type: integer 28 | producer: 29 | type: string 30 | 31 | -------------------------------------------------------------------------------- /models/webhooks/store_cart_deleted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/cart/deleted: 4 | description: |- 5 | Fires when a cart is deleted. This ends the lifecycle of the cart. Events include the following: 6 | 7 | * When a storefront shopper or API call removes all items from the cart 8 | * When the cart is explicitly removed by API using a DELETE request 9 | 10 | The store/cart/updated webhook fires simultaneously with store/cart/deleted. 11 | type: object 12 | properties: 13 | scope: 14 | type: string 15 | store_id: 16 | type: string 17 | data: 18 | type: object 19 | properties: 20 | type: 21 | type: string 22 | id: 23 | type: string 24 | hash: 25 | type: string 26 | created_at: 27 | type: integer 28 | producer: 29 | type: string 30 | 31 | -------------------------------------------------------------------------------- /models/webhooks/store_cart_lineItem_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/cart/lineItem/created: 4 | description: Fires when a new item is added to a cart. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: string 18 | cartId: 19 | type: string 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | 27 | -------------------------------------------------------------------------------- /models/webhooks/store_cart_lineItem_deleted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/cart/lineItem/deleted: 4 | description: Fires when an item is deleted from a cart. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: string 18 | cartId: 19 | type: string 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | 27 | -------------------------------------------------------------------------------- /models/webhooks/store_cart_lineItem_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/cart/lineItem/updated: 4 | description: Fires when a line item’s quantity or product options change. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: string 18 | cartId: 19 | type: string 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | 27 | -------------------------------------------------------------------------------- /models/webhooks/store_cart_metafield_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/cart/metafield/created: 4 | description: Fires when a new cart metafield is created. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | -------------------------------------------------------------------------------- /models/webhooks/store_cart_metafield_deleted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/cart/metafield/deleted: 4 | description: Fires when a cart metafield is deleted. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | -------------------------------------------------------------------------------- /models/webhooks/store_cart_metafield_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/cart/metafield/updated: 4 | description: Fires when a cart metafield is modified through the changes in its line items. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | -------------------------------------------------------------------------------- /models/webhooks/store_cart_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/cart/updated: 4 | description: |- 5 | Fires when a cart is modified, including in the following cases: 6 | 7 | * When a new item is added to a cart 8 | * When an existing item’s quantity is updated 9 | * When an existing item is deleted 10 | * When the email is changed during guest checkout 11 | * When the store/cart/created webhook fires 12 | * When the store/cart/deleted webhook fires 13 | 14 | The payload includes the ID of the cart being updated. 15 | type: object 16 | properties: 17 | scope: 18 | type: string 19 | store_id: 20 | type: string 21 | data: 22 | type: object 23 | properties: 24 | type: 25 | type: string 26 | id: 27 | type: string 28 | hash: 29 | type: string 30 | created_at: 31 | type: integer 32 | producer: 33 | type: string 34 | 35 | -------------------------------------------------------------------------------- /models/webhooks/store_category_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/category/created: 4 | description: Fires when a category is created. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | 25 | -------------------------------------------------------------------------------- /models/webhooks/store_category_deleted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/category/deleted: 4 | description: Fires when a category is deleted 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | 25 | -------------------------------------------------------------------------------- /models/webhooks/store_category_metafield_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/category/metafield/created: 4 | description: Fires if a category metafield is created. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | -------------------------------------------------------------------------------- /models/webhooks/store_category_metafield_deleted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/category/metafield/deleted: 4 | description: Fires if a category metafield is deleted. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | -------------------------------------------------------------------------------- /models/webhooks/store_category_metafield_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/category/metafield/updated: 4 | description: Fires if a category metafield is updated. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | -------------------------------------------------------------------------------- /models/webhooks/store_category_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/category/updated: 4 | description: Fires when a category is updated 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | 25 | -------------------------------------------------------------------------------- /models/webhooks/store_channel_metafield_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/channel/metafield/created: 4 | description: Fires when a metafield is created per a specified channel. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | -------------------------------------------------------------------------------- /models/webhooks/store_channel_metafield_deleted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/channel/metafield/deleted: 4 | description: Fires when a metafield is deleted per a specified channel. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | -------------------------------------------------------------------------------- /models/webhooks/store_channel_metafield_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/channel/metafield/updated: 4 | description: Fires when a metafield is updated per a specified channel. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | -------------------------------------------------------------------------------- /models/webhooks/store_customer_address_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/customer/address/created: 4 | description: Fires when a customer address is created 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | address: 19 | type: object 20 | properties: 21 | customer_id: 22 | type: integer 23 | hash: 24 | type: string 25 | created_at: 26 | type: integer 27 | producer: 28 | type: string 29 | 30 | -------------------------------------------------------------------------------- /models/webhooks/store_customer_address_deleted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/customer/address/deleted: 4 | description: Fires when a customer address is deleted 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | address: 19 | type: object 20 | properties: 21 | customer_id: 22 | type: integer 23 | hash: 24 | type: string 25 | created_at: 26 | type: integer 27 | producer: 28 | type: string 29 | 30 | -------------------------------------------------------------------------------- /models/webhooks/store_customer_address_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/customer/address/updated: 4 | description: Fires when a customer address is updated 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | address: 19 | type: object 20 | properties: 21 | customer_id: 22 | type: integer 23 | hash: 24 | type: string 25 | created_at: 26 | type: integer 27 | producer: 28 | type: string 29 | 30 | -------------------------------------------------------------------------------- /models/webhooks/store_customer_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/customer/created: 4 | description: A new customer is created 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | 25 | -------------------------------------------------------------------------------- /models/webhooks/store_customer_deleted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/customer/deleted: 4 | description: Fires when a customer is deleted 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | 25 | -------------------------------------------------------------------------------- /models/webhooks/store_customer_payment_instrument_default_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/customer/payment/instrument/default/updated: 4 | description: Fires when a customer default payment instrument is updated 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | 25 | -------------------------------------------------------------------------------- /models/webhooks/store_customer_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/customer/updated: 4 | description: |- 5 | Fires when a customer is updated. It does not currently track changes to the customer address. 6 | 7 | 8 | Tracks changes to customer attributes only if you make the changes through the control panel. This change triggers the same event `type` and payload as updating a customer; the payload does not include customer attributes. 9 | 10 | type: object 11 | properties: 12 | scope: 13 | type: string 14 | store_id: 15 | type: string 16 | data: 17 | type: object 18 | properties: 19 | type: 20 | type: string 21 | id: 22 | type: integer 23 | hash: 24 | type: string 25 | created_at: 26 | type: integer 27 | producer: 28 | type: string 29 | 30 | -------------------------------------------------------------------------------- /models/webhooks/store_information_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/information/updated: 4 | description: Fires when changes are made to store settings. For a full list of fields that can trigger this event, see the store information updated events that follow. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | hash: 17 | type: string 18 | created_at: 19 | type: integer 20 | producer: 21 | type: string 22 | 23 | -------------------------------------------------------------------------------- /models/webhooks/store_inventory_location_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/inventory/location/created: 4 | description: Location is created. 5 | type: object 6 | properties: 7 | producer: 8 | type: string 9 | hash: 10 | type: string 11 | created_at: 12 | type: integer 13 | store_id: 14 | type: string 15 | scope: 16 | type: string 17 | data: 18 | type: object 19 | properties: 20 | location_id: 21 | type: integer 22 | -------------------------------------------------------------------------------- /models/webhooks/store_inventory_location_metafield_created.yml: -------------------------------------------------------------------------------- 1 | properties: 2 | store/inventory/location/metafield/created: 3 | description: Fires when a new inventory location metafield is created. 4 | type: object 5 | properties: 6 | scope: 7 | type: string 8 | store_id: 9 | type: string 10 | data: 11 | type: object 12 | properties: 13 | metafield_id: 14 | type: integer 15 | resource_id: 16 | type: string 17 | hash: 18 | type: string 19 | created_at: 20 | type: integer 21 | producer: 22 | type: string 23 | -------------------------------------------------------------------------------- /models/webhooks/store_inventory_location_metafield_deleted.yml: -------------------------------------------------------------------------------- 1 | properties: 2 | store/inventory/location/metafield/deleted: 3 | description: Fires when a inventory location metafield is deleted. 4 | type: object 5 | properties: 6 | scope: 7 | type: string 8 | store_id: 9 | type: string 10 | data: 11 | type: object 12 | properties: 13 | metafield_id: 14 | type: integer 15 | resource_id: 16 | type: string 17 | hash: 18 | type: string 19 | created_at: 20 | type: integer 21 | producer: 22 | type: string 23 | -------------------------------------------------------------------------------- /models/webhooks/store_inventory_location_metafield_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/inventory/location/metafield/updated: 4 | description: Fires when an existing inventory location metafield is updated. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | -------------------------------------------------------------------------------- /models/webhooks/store_inventory_location_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/inventory/location/updated: 4 | description: Location is updated. 5 | type: object 6 | properties: 7 | producer: 8 | type: string 9 | hash: 10 | type: string 11 | created_at: 12 | type: integer 13 | store_id: 14 | type: string 15 | scope: 16 | type: string 17 | data: 18 | type: object 19 | properties: 20 | location_id: 21 | type: integer 22 | -------------------------------------------------------------------------------- /models/webhooks/store_metafield_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/metafield/created: 4 | description: This webhook will fire whenever a new metafield on any object is created. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | resource_type: 19 | type: string 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | -------------------------------------------------------------------------------- /models/webhooks/store_metafield_deleted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/metafield/deleted: 4 | description: When a metafield is deleted. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | resource_type: 19 | type: string 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | -------------------------------------------------------------------------------- /models/webhooks/store_metafield_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/metafield/updated: 4 | description: Fires when an already created metafield is updated. Any changes to an existing metafield on any object (such as inventory, carts, brands, categories, channels, orders, ShipperHQ, etc.) will fire this webhook. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | resource_type: 19 | type: string 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | -------------------------------------------------------------------------------- /models/webhooks/store_order_archived.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/order/archived: 4 | description: Order is archived 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | 25 | -------------------------------------------------------------------------------- /models/webhooks/store_order_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/order/created: 4 | description: Fires when an order is created either in the control panel or by API. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | 25 | -------------------------------------------------------------------------------- /models/webhooks/store_order_message_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/order/message/created: 4 | description: Order message is created by customer or in control panel 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | message: 19 | type: object 20 | properties: 21 | order_message_id: 22 | type: integer 23 | hash: 24 | type: string 25 | created_at: 26 | type: integer 27 | producer: 28 | type: string 29 | 30 | -------------------------------------------------------------------------------- /models/webhooks/store_order_metafield_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/order/metafield/created: 4 | description: Fires if an order metafield is created using the control panel, an app, or the API. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | -------------------------------------------------------------------------------- /models/webhooks/store_order_metafield_deleted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/order/metafield/deleted: 4 | description: An order metafield is deleted. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | -------------------------------------------------------------------------------- /models/webhooks/store_order_metafield_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/order/metafield/updated: 4 | description: Fires when an existing order metafield is updated. Any changes to an existing order metafield will fire this webhook. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | -------------------------------------------------------------------------------- /models/webhooks/store_order_refund_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/order/refund/created: 4 | description: A refund has been submitted against an order 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | refund: 19 | type: object 20 | properties: 21 | refund_id: 22 | type: integer 23 | hash: 24 | type: string 25 | created_at: 26 | type: integer 27 | producer: 28 | type: string 29 | 30 | -------------------------------------------------------------------------------- /models/webhooks/store_order_statusUpdated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/order/statusUpdated: 4 | description: Fires when the order status has changed, such as from Pending to Awaiting Payment. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | status: 19 | type: object 20 | properties: 21 | previous_status_id: 22 | type: integer 23 | new_status_id: 24 | type: integer 25 | hash: 26 | type: string 27 | created_at: 28 | type: integer 29 | producer: 30 | type: string 31 | 32 | -------------------------------------------------------------------------------- /models/webhooks/store_order_transaction_created.yml: -------------------------------------------------------------------------------- 1 | properties: 2 | store/order/transaction/created: 3 | description: Fires when a new order transaction is created. 4 | type: object 5 | properties: 6 | scope: 7 | type: string 8 | store_id: 9 | type: string 10 | data: 11 | type: object 12 | properties: 13 | type: 14 | type: string 15 | order_id: 16 | type: integer 17 | transaction_id: 18 | type: string 19 | hash: 20 | type: string 21 | created_at: 22 | type: integer 23 | producer: 24 | type: string 25 | -------------------------------------------------------------------------------- /models/webhooks/store_order_transaction_updated.yml: -------------------------------------------------------------------------------- 1 | properties: 2 | store/order/transaction/updated: 3 | description: Fires when a new order transaction is updated. 4 | type: object 5 | properties: 6 | scope: 7 | type: string 8 | store_id: 9 | type: string 10 | data: 11 | type: object 12 | properties: 13 | type: 14 | type: string 15 | order_id: 16 | type: integer 17 | transaction_id: 18 | type: string 19 | hash: 20 | type: string 21 | created_at: 22 | type: integer 23 | producer: 24 | type: string 25 | -------------------------------------------------------------------------------- /models/webhooks/store_order_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/order/updated: 4 | description: Fires when an already created order is updated. Any change to an existing order fires this webhook. Updates can include changing the status, updating a coupon, or changing an address. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | 25 | -------------------------------------------------------------------------------- /models/webhooks/store_product_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/product/created: 4 | description: A new product is created 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | 25 | -------------------------------------------------------------------------------- /models/webhooks/store_product_deleted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/product/deleted: 4 | description: Product is deleted 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | 25 | -------------------------------------------------------------------------------- /models/webhooks/store_product_inventory_order_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/product/inventory/order/updated: 4 | description: |- 5 | Fires when _base product_ inventory levels change in response to the order-related events configured in [Inventory settings](/docs/rest-management/settings/inventory#get-inventory-settings). For example, stock levels can change when you either place or complete/ship an order. Stock levels can also change when you refund or cancel an order. Global settings apply when inventory changes through a [manual order](https://support.bigcommerce.com/s/article/Creating-a-Manual-Order?language=en_US). The settings for a channel apply when inventory changes through an order in a channel. 6 | 7 | The webhook always fires for products without variants. For products with variants, the webhook only fires when the product's inventory properties are configured to track by _product_. 8 | type: object 9 | properties: 10 | scope: 11 | type: string 12 | store_id: 13 | type: string 14 | data: 15 | type: object 16 | properties: 17 | type: 18 | type: string 19 | id: 20 | type: integer 21 | inventory: 22 | type: object 23 | properties: 24 | product_id: 25 | type: integer 26 | method: 27 | type: string 28 | value: 29 | type: integer 30 | hash: 31 | type: string 32 | created_at: 33 | type: integer 34 | producer: 35 | type: string 36 | 37 | -------------------------------------------------------------------------------- /models/webhooks/store_product_inventory_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/product/inventory/updated: 4 | description: |- 5 | Fires when inventory levels change for a _base product_. For products without variants, the webhook fires regardless of how you track inventory. 6 | 7 | For products with variants, the webhook only fires when the product's inventory properties are configured to track by _product_ and the _product-level_ inventory changes. 8 | 9 | Inventory updates made in the control panel and by API trigger the webhook. This includes changes made by apps. In the control panel, you can bulk import inventory updates or make inventory updates to single products on the **Products > View** page. 10 | type: object 11 | properties: 12 | scope: 13 | type: string 14 | store_id: 15 | type: string 16 | data: 17 | type: object 18 | properties: 19 | type: 20 | type: string 21 | id: 22 | type: integer 23 | inventory: 24 | type: object 25 | properties: 26 | product_id: 27 | type: integer 28 | method: 29 | type: string 30 | value: 31 | type: integer 32 | hash: 33 | type: string 34 | created_at: 35 | type: integer 36 | producer: 37 | type: string 38 | 39 | -------------------------------------------------------------------------------- /models/webhooks/store_product_metafield_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/product/metafield/created: 4 | description: Fires when a new product metafield is created. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | resource_type: 19 | type: string 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | -------------------------------------------------------------------------------- /models/webhooks/store_product_metafield_deleted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/product/metafield/deleted: 4 | description: Occurs when a product metafield is deleted. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | resource_type: 19 | type: string 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | -------------------------------------------------------------------------------- /models/webhooks/store_product_metafield_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/product/metafield/updated: 4 | description: Occurs when product metafield details are edited. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | resource_type: 19 | type: string 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | -------------------------------------------------------------------------------- /models/webhooks/store_product_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/product/updated: 4 | description: Fires when product details are edited. For a full list of product fields that trigger an updated event, see the product updated events that follow. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | 25 | -------------------------------------------------------------------------------- /models/webhooks/store_shipment_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/shipment/created: 4 | description: Shipment is created 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | orderId: 19 | type: integer 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | 27 | -------------------------------------------------------------------------------- /models/webhooks/store_shipment_deleted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/shipment/deleted: 4 | description: Shipment is deleted 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | orderId: 19 | type: integer 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | 27 | -------------------------------------------------------------------------------- /models/webhooks/store_shipment_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/shipment/updated: 4 | description: Shipment is updated 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | orderId: 19 | type: integer 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | 27 | -------------------------------------------------------------------------------- /models/webhooks/store_sku_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/sku/created: 4 | description: A new sku is created 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | sku: 19 | type: object 20 | properties: 21 | product_id: 22 | type: integer 23 | variant_id: 24 | type: integer 25 | hash: 26 | type: string 27 | created_at: 28 | type: integer 29 | producer: 30 | type: string 31 | 32 | -------------------------------------------------------------------------------- /models/webhooks/store_sku_deleted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/sku/deleted: 4 | description: SKU is deleted 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | sku: 19 | type: object 20 | properties: 21 | product_id: 22 | type: integer 23 | variant_id: 24 | type: integer 25 | hash: 26 | type: string 27 | created_at: 28 | type: integer 29 | producer: 30 | type: string 31 | 32 | -------------------------------------------------------------------------------- /models/webhooks/store_sku_inventory_order_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/sku/inventory/order/updated: 4 | description: |- 5 | Fires when _variant_ inventory levels change in response to the order-related events configured in [Inventory settings](/docs/rest-management/settings/inventory#get-inventory-settings). For example, stock levels can change when you either place or complete/ship an order. Stock levels can also change when you refund or cancel an order. Global settings apply when inventory changes through a [manual order](https://support.bigcommerce.com/s/article/Creating-a-Manual-Order?language=en_US). The settings for a channel apply when inventory changes through an order in a channel. 6 | 7 | The webhook does not fire for products without variants. For products with variants, the webhook only fires when the product's inventory properties are configured to track by _variant_. 8 | type: object 9 | properties: 10 | scope: 11 | type: string 12 | store_id: 13 | type: string 14 | data: 15 | type: object 16 | properties: 17 | type: 18 | type: string 19 | id: 20 | type: integer 21 | inventory: 22 | type: object 23 | properties: 24 | product_id: 25 | type: integer 26 | method: 27 | type: string 28 | value: 29 | type: integer 30 | variant_id: 31 | type: integer 32 | hash: 33 | type: string 34 | created_at: 35 | type: integer 36 | producer: 37 | type: string 38 | 39 | -------------------------------------------------------------------------------- /models/webhooks/store_sku_inventory_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/sku/inventory/updated: 4 | description: |- 5 | Fires when inventory levels change for a _variant_. This webhook does not fire for products without variants. 6 | 7 | For products with variants, the webhook only fires when the product's inventory properties are configured to track by _variant_ and the _variant-level_ inventory changes. 8 | 9 | Inventory updates made in the control panel and by API trigger the webhook. This includes changes made by apps. In the control panel, you can bulk import inventory updates or make inventory updates to single products on the **Products > View** page. 10 | type: object 11 | properties: 12 | scope: 13 | type: string 14 | store_id: 15 | type: string 16 | data: 17 | type: object 18 | properties: 19 | type: 20 | type: string 21 | id: 22 | type: integer 23 | inventory: 24 | type: object 25 | properties: 26 | product_id: 27 | type: integer 28 | method: 29 | type: string 30 | value: 31 | type: integer 32 | variant_id: 33 | type: integer 34 | hash: 35 | type: string 36 | created_at: 37 | type: integer 38 | producer: 39 | type: string 40 | 41 | -------------------------------------------------------------------------------- /models/webhooks/store_sku_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/sku/updated: 4 | description: SKU is updated 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | sku: 19 | type: object 20 | properties: 21 | product_id: 22 | type: integer 23 | variant_id: 24 | type: integer 25 | hash: 26 | type: string 27 | created_at: 28 | type: integer 29 | producer: 30 | type: string 31 | 32 | -------------------------------------------------------------------------------- /models/webhooks/store_subscriber_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/subscriber/created: 4 | description: Subscriber is created 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | 25 | -------------------------------------------------------------------------------- /models/webhooks/store_subscriber_deleted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/subscriber/deleted: 4 | description: Subscriber is deleted 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | 25 | -------------------------------------------------------------------------------- /models/webhooks/store_subscriber_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/subscriber/updated: 4 | description: Subscriber is updated 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | type: 15 | type: string 16 | id: 17 | type: integer 18 | hash: 19 | type: string 20 | created_at: 21 | type: integer 22 | producer: 23 | type: string 24 | 25 | -------------------------------------------------------------------------------- /models/webhooks/store_variant_metafield_created.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/variant/metafield/created: 4 | description: Occurs when a new product variant metafield is created. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | resource_type: 19 | type: string 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | -------------------------------------------------------------------------------- /models/webhooks/store_variant_metafield_deleted.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/variant/metafield/deleted: 4 | description: Occurs when a product variant metafield is deleted. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | resource_type: 19 | type: string 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | -------------------------------------------------------------------------------- /models/webhooks/store_variant_metafield_updated.yml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | store/variant/metafield/updated: 4 | description: Occurs when product variant metafield details are edited. 5 | type: object 6 | properties: 7 | scope: 8 | type: string 9 | store_id: 10 | type: string 11 | data: 12 | type: object 13 | properties: 14 | metafield_id: 15 | type: integer 16 | resource_id: 17 | type: string 18 | resource_type: 19 | type: string 20 | hash: 21 | type: string 22 | created_at: 23 | type: integer 24 | producer: 25 | type: string 26 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mdx-linter-devdocs", 3 | "version": "1.0.0", 4 | "description": "Lints and otherwise helps improve DevDocs in MDX format.", 5 | "main": "index.js", 6 | "directories": { 7 | "example": "examples" 8 | }, 9 | "engines": { 10 | "node": ">= 14.0.0" 11 | }, 12 | "scripts": { 13 | "lint": "eslint ./docs --ext mdx --max-warnings 0" 14 | }, 15 | "repository": { 16 | "type": "git", 17 | "url": "null" 18 | }, 19 | "keywords": [ 20 | "lint", 21 | "mdx", 22 | "eslint", 23 | "docs-as-code" 24 | ], 25 | "devDependencies": { 26 | "eslint": "^8.34.0", 27 | "eslint-plugin-mdx": "^2.0.5" 28 | }, 29 | "author": "Matthew Volk" 30 | } 31 | -------------------------------------------------------------------------------- /pull_request_template.md: -------------------------------------------------------------------------------- 1 | # [DEVDOCS-] 2 | {Ticket number or summary of work} 3 | 4 | ## What changed? 5 | Provide a bulleted list in the present tense 6 | * 7 | 8 | ## Anything else? 9 | Add related PRs, salient notes, ticket numbers, etc. 10 | 11 | ping {names} 12 | -------------------------------------------------------------------------------- /reference/.spectral.yaml: -------------------------------------------------------------------------------- 1 | extends: 2 | - spectral:oas 3 | - ../.spectral.yaml 4 | rules: 5 | info-contact: off 6 | oas3-unused-components: off 7 | oas2-unused-definition: off -------------------------------------------------------------------------------- /reference/consent.sf.yml: -------------------------------------------------------------------------------- 1 | openapi: '3.0.1' 2 | servers: 3 | - url: 'https://{store_domain}/api/storefront' 4 | variables: 5 | store_domain: 6 | default: your_store.example.com 7 | description: 'The [URL authority](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics/What_is_a_URL#authority) of the storefront.' 8 | info: 9 | title: Storefront Cookie Consent 10 | description: |- 11 | Specify shopper cookie consent preferences. 12 | 13 | For info about API accounts, see our [Guide to API Accounts](/docs/start/authentication/api-accounts). 14 | 15 | For info about authenticating BigCommerce APIs, see [Authentication and Example Requests](/docs/start/authentication#same-origin-cors-authentication). 16 | version: Storefront 17 | tags: 18 | - name: Consent 19 | paths: 20 | /consent: 21 | post: 22 | summary: Set Cookie Consent Preferences 23 | tags: 24 | - Consent 25 | responses: 26 | '200': 27 | description: Consent Settings Saved 28 | '400': 29 | description: Invalid input 30 | requestBody: 31 | content: 32 | application/json: 33 | schema: 34 | $ref: '#/components/schemas/ConsentPreferences' 35 | examples: 36 | Example: 37 | value: 38 | allow: 39 | - 2 40 | - 3 41 | deny: 42 | - 4 43 | description: 'Data sent to the [Update customer consent](/docs/rest-management/customers/customer-consent#update-customer-consent) endpoint when creating a customer during checkout.' 44 | required: true 45 | description: | 46 | Sets the status of a customer's consent to allow data collection by cookies and scripts according to the following consent categories: 47 | 48 | 49 | 2. Analytics — These cookies provide statistical information on site usage so the store owner can improve the website over time. 50 | 3. Functional — These cookies enable enhanced functionality, such as videos and live chat. If a shopper does not allow these, then some or all of these functions may not work properly. 51 | 4. Targeting; Advertising — These cookies allow merchants to create profiles or personalize content to enhance users' shopping experience. 52 | 53 | 54 | This endpoint only works if the cookie consent feature is enabled. It is assumed the shopper has not consented to anything until a value is explicitly set. The request body must be populated with a complete set of allowed and denied categories. 55 | 56 | Once set, consent preferences will be saved as a cookie for guest shoppers. Consent preferences will be persisted to a shopper's account to be used for future sessions once they have logged in. Consent preferences can also be managed using the [Update customer consent](/docs/rest-management/customers/customer-consent#update-customer-consent) endpoint. 57 | 58 | > #### Note 59 | > * Substitute your storefront domain for `yourstore.example.com`. 60 | operationId: postConsent 61 | parameters: [] 62 | components: 63 | schemas: 64 | ConsentPreferences: 65 | type: object 66 | title: ConsentPreferences 67 | description: |- 68 | List of allowed and denied consent categories. Must be populated with a complete set of allowed and denied categories. 69 | 70 | Configurable categories are: 71 | 72 | 2 - Functional 73 | 3 - Analytics 74 | 4 - Targeting; Advertising 75 | 76 | For further definition of these categories, see [Scripts API](/docs/integrations/scripts). 77 | properties: 78 | allow: 79 | type: array 80 | description: 'Explicitly allowed consent categories. Allowed values are 2, 3, 4.' 81 | items: 82 | type: integer 83 | enum: 84 | - 2 85 | - 3 86 | - 4 87 | example: 3 88 | deny: 89 | type: array 90 | description: 'Denied consent categories. Allowed values are 2, 3, 4.' 91 | items: 92 | type: integer 93 | enum: 94 | - 2 95 | - 3 96 | - 4 97 | example: 4 98 | required: 99 | - allow 100 | - deny 101 | x-internal: false 102 | -------------------------------------------------------------------------------- /reference/customer_login.yml: -------------------------------------------------------------------------------- 1 | openapi: '3.0.1' 2 | info: 3 | title: Customer Login (SSO) 4 | description: |- 5 | Enable single sign-on for shoppers on BigCommerce hosted storefronts. 6 | 7 | [Learn more about the customer login API](/docs/start/authentication/customer-login). 8 | 9 | For info about API accounts, see our [Guide to API Accounts](/docs/start/authentication/api-accounts). 10 | 11 | For info about authenticating BigCommerce APIs, see [Authentication and Example Requests](/docs/start/authentication#user-generated-jwts). 12 | termsOfService: 'https://www.bigcommerce.com/terms' 13 | contact: 14 | name: BigCommerce 15 | url: 'https://www.bigcommerce.com' 16 | email: support@bigcommerce.com 17 | version: '' 18 | servers: 19 | - url: 'https://{store_domain}' 20 | variables: 21 | store_domain: 22 | default: your_store.example.com 23 | description: 'The [URL authority](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics/What_is_a_URL#authority) of the storefront.' 24 | tags: 25 | - name: Login Token 26 | paths: 27 | /login/token/{jwt_token}: 28 | get: 29 | tags: 30 | - Login Token 31 | summary: Login Token 32 | description: |- 33 | The customer login access point URL. 34 | 35 | [Learn more about the Customer Login API](/docs/start/authentication/customer-login). 36 | 37 | ## Example 38 | 39 | ``` 40 | https://yourstore.example.com/login/token/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ7Y2xpZW50X2lkfSIsImlhdCI6MTUzNTM5MzExMywianRpIjoie3V1aWR9Iiwib3BlcmF0aW9uIjoiY3VzdG9tZXJfbG9naW4iLCJzdG9yZV9oYXNoIjoie3N0b3JlX2hhc2h9IiwiY3VzdG9tZXJfaWQiOjJ9.J-fAtbjRFGdLsT744DhoprFEDqIfVq72HbDzrbFy6Is 41 | ``` 42 | parameters: 43 | - name: jwt_token 44 | in: path 45 | required: true 46 | schema: 47 | type: string 48 | responses: 49 | '200': 50 | description: OK 51 | content: 52 | '*/*': 53 | schema: 54 | type: object 55 | components: 56 | schemas: 57 | customerLoginSSO: 58 | title: Customer Login SSO 59 | type: object 60 | properties: 61 | iss: 62 | type: string 63 | description: Indicates the token’s issuer. This is your application’s client 64 | ID, which is obtained during application registration in Developer Portal. 65 | example: '"1234r5t6y7u8i9o0p"' 66 | iat: 67 | type: integer 68 | description: Time when the token was generated. This is a numeric value 69 | indicating the number of seconds since the [Unix epoch](https://en.wikipedia.org/wiki/Unix_time). 70 | example: 1535393113 71 | jti: 72 | type: string 73 | description: Request ID string that must be unique across all requests made 74 | by your app. A UUID or other random string would be an appropriate value. 75 | Most libraries contain a method for generating a uuid. For testing a [UUID 76 | generator](https://www.uuidgenerator.net/) can be used, but it recommended 77 | to use built in libraries. 78 | example: '"20b7c03e-00da-4d29-91bf-2aa06a57575b"' 79 | operation: 80 | type: string 81 | description: Must contain the string “customer_login”. 82 | example: '"customer_login"' 83 | store_hash: 84 | type: string 85 | description: | 86 | Store hash identifying the store you are logging into. 87 | example: '"abc123"' 88 | customer_id: 89 | type: integer 90 | description: | 91 | ID of the customer you are logging in, as obtained through the Customer API. 92 | example: 2 93 | redirect_to: 94 | type: string 95 | description: | 96 | Optional field containing a relative path for the shopper’s destination after login. Will default to `/account.php`. 97 | default: /account.php 98 | request_ip: 99 | type: string 100 | description: | 101 | **(Optional)** Field containing the expected IP address for the request. If provided, BigCommerce will check that it matches the browser trying to log in. If there is not a match, it will be rejected. 102 | example: '"111.222.333.444"' 103 | x-internal: false 104 | 105 | -------------------------------------------------------------------------------- /reference/customers.sf.yml: -------------------------------------------------------------------------------- 1 | openapi: '3.0.1' 2 | info: 3 | version: Storefront 4 | title: Storefront Customers 5 | description: |- 6 | Manage customers and data via front-end JavaScript on BigCommerce Stencil-powered storefronts. 7 | 8 | For info about API accounts, see our [Guide to API Accounts](/docs/start/authentication/api-accounts). 9 | 10 | For info about authenticating BigCommerce APIs, see [Authentication and Example Requests](/docs/start/authentication#same-origin-cors-authentication). 11 | servers: 12 | - url: 'https://{store_domain}/api/storefront' 13 | variables: 14 | store_domain: 15 | default: your_store.example.com 16 | description: 'The [URL authority](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics/What_is_a_URL#authority) of the storefront.' 17 | tags: 18 | - name: Customers 19 | paths: 20 | /customers: 21 | post: 22 | tags: 23 | - Customers 24 | description: |- 25 | Create a *Customer*. 26 | 27 | > #### Note 28 | > * Substitute your storefront domain for `yourstore.example.com`. 29 | > * The Send a Test Request feature is not currently supported for this endpoint. 30 | responses: 31 | '204': 32 | description: Customer successfully created. 33 | '400': 34 | description: Could not create customer. 35 | '409': 36 | description: Thereʼs already an account for the provided email. Please enter a different email address or sign in. 37 | '422': 38 | description: Missing Required Fields. 39 | '429': 40 | description: Spam Protection Failed. 41 | summary: Create a Customer 42 | operationId: createACustomer 43 | requestBody: 44 | content: 45 | application/json: 46 | schema: 47 | $ref: '#/components/schemas/CustomerCreateData' 48 | examples: 49 | application/json: 50 | value: 51 | firstName: Jane 52 | lastName: Doe 53 | email: janedoe@example.com 54 | password: string 55 | acceptsMarketingEmails: true 56 | customFields: 57 | - fieldId: '25' 58 | fieldValue: Leave in backyard 59 | description: Data sent the the customer endpoint when creating a customer during checkout. 60 | components: 61 | schemas: 62 | CustomerCreateData: 63 | title: CustomerCreateData 64 | type: object 65 | properties: 66 | firstName: 67 | type: string 68 | description: First name of customer. 69 | lastName: 70 | type: string 71 | description: Last name of customer. 72 | email: 73 | type: string 74 | description: Email of customer. 75 | password: 76 | type: string 77 | description: Password of customer. 78 | acceptsMarketingEmails: 79 | type: boolean 80 | description: Indicates whether customer provided consent to receive marketing emails. 81 | customFields: 82 | type: array 83 | items: 84 | $ref: '#/components/schemas/CustomFields' 85 | x-internal: false 86 | CustomFields: 87 | title: CustomFields 88 | type: object 89 | x-internal: false 90 | properties: 91 | fieldId: 92 | type: string 93 | fieldValue: 94 | oneOf: 95 | - type: string 96 | - type: number 97 | - type: array 98 | items: 99 | type: string -------------------------------------------------------------------------------- /reference/subscriptions.sf.yml: -------------------------------------------------------------------------------- 1 | openapi: '3.0.1' 2 | info: 3 | title: Storefront Subscriptions 4 | description: |- 5 | Manage newsletter and marketing email subscriptions on the storefront. 6 | 7 | For info about API accounts, see our [Guide to API Accounts](/docs/start/authentication/api-accounts). 8 | 9 | For info about authenticating BigCommerce APIs, see [Authentication and Example Requests](/docs/start/authentication#same-origin-cors-authentication). 10 | 11 | ## Additional Information 12 | 13 | * [Collecting Newsletter Subscriptions](https://support.bigcommerce.com/s/article/Collecting-Newsletter-Subscriptions) (support.bigcommerce.com) 14 | * [Customers Overview](/docs/store-operations/customers/customers-subscribers-overview) 15 | * [Working with Storefront APIs](/docs/storefront/cart-checkout/guide/rest-storefront) 16 | termsOfService: 'https://www.bigcommerce.com/terms' 17 | contact: 18 | name: BigCommerce 19 | url: 'https://www.bigcommerce.com' 20 | email: support@bigcommerce.com 21 | version: '' 22 | servers: 23 | - url: 'https://{store_domain}/api/storefront' 24 | variables: 25 | store_domain: 26 | default: your_store.example.com 27 | description: 'The [URL authority](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics/What_is_a_URL#authority) of the storefront.' 28 | tags: 29 | - name: Subscription 30 | paths: 31 | /subscriptions: 32 | post: 33 | tags: 34 | - Subscription 35 | summary: Create a Subscription 36 | operationId: createASubscription 37 | description: |- 38 | Creates or updates an email subscription. 39 | 40 | By default, customers receive abandoned cart emails as soon as they provide their email address in the checkout flow. They can opt out using this endpoint. 41 | 42 | However, if **Store Settings > Miscellaneous > Require Consent** is enabled, Abandoned Cart Emails are not sent by default, and the customer should opt-in. 43 | 44 | > #### Note 45 | > * Substitute your storefront domain for `yourstore.example.com`. 46 | > * The Send a Test Request feature is not currently supported for this endpoint. 47 | requestBody: 48 | content: 49 | application/json: 50 | schema: 51 | $ref: '#/components/schemas/SubscriptionRequest' 52 | required: false 53 | responses: 54 | '200': 55 | description: '' 56 | content: 57 | application/json: 58 | schema: 59 | $ref: '#/components/schemas/Subscription' 60 | components: 61 | schemas: 62 | SubscriptionRequest: 63 | type: object 64 | properties: 65 | email: 66 | type: string 67 | description: Email of subscriber 68 | acceptsMarketingNewsletter: 69 | type: boolean 70 | description: Describes whether subscriber has consented to receive Marketing emails. 71 | acceptsAbandonedCartEmails: 72 | type: boolean 73 | description: Describes whether subscriber has consented to receive Abandoned Cart emails. 74 | x-internal: false 75 | Subscription: 76 | type: object 77 | properties: 78 | id: 79 | type: integer 80 | description: | 81 | The unique numeric ID of the subscriber; increments sequentially. 82 | email: 83 | type: string 84 | description: | 85 | The email of the subscriber. Must be unique. 86 | firstName: 87 | maxLength: 255 88 | minLength: 0 89 | type: string 90 | description: | 91 | The first name of the subscriber. 92 | lastName: 93 | maxLength: 255 94 | minLength: 0 95 | type: string 96 | description: | 97 | The last name of the subscriber. 98 | source: 99 | maxLength: 255 100 | minLength: 0 101 | type: string 102 | description: | 103 | The source of the subscriber. Values are: `storefront`, `order`, or `custom`. 104 | orderId: 105 | maximum: 2147483647 106 | minimum: 1 107 | type: integer 108 | description: | 109 | The ID of the source order, if source was an order. 110 | nullable: true 111 | consents: 112 | type: array 113 | items: {} 114 | description: | 115 | The collection of consents the shopper is subscribing to. 116 | description: Subscription properties. 117 | x-internal: false 118 | --------------------------------------------------------------------------------