Functionality

What browsers are supported with Shogun Frontend?

Only Chromium-based browsers such as Google Chrome are officially supported at this time, but other browsers are known to work.

Do you integrate with BigCommerce?

Yes!

Will you be supporting protected stores? Does Shogun Frontend have a password-protected feature?

Not at this time, but it is on the roadmap.

What templating language do you support?

JSX.

What widgets do you integrate with?

Currently, Shogun Frontend does not provide any out of the box integrations or widgets, but documentation is available for several integrations. See Frontend Integrations.

Do you support any ERP integrations?

Not at this time, typically PIM providers due provide a connector integration into Shopify or BigCommerce which is preferred type of integration vs integrating a PIM directly with Shogun.

Do you have native PIM functionality?

Not at this time, typically PIM providers due provide a connector integration into Shopify or BigCommerce which is preferred type of integration vs integrating a PIM directly with Shogun.

Do you support translations?

Not at this time, but this is planned.


Using the App

Are there user permissions?

Not at this time, but this is on our roadmap.

Where is the content managed?

Content that will be reused or needs to be strictly defined should live in the CMS (Content Management System). See Key Concepts.

How long does it take to build a store in Shogun Frontend?

Shogun Frontend's build process is different from a traditional store in that it is a Static Progress Web App, which means that building and publishing a change in the store requires compiling a static version of the entire site. Several factors influence the processing time, but it's roughly proportionate to the number of pages you have on your site.

We aim to make it as easy as building a Shopify theme or quicker. Depending on how large your store is, can take a few seconds up to several minutes. We have lots of features coming soon to help speed this process up even more!

What are the available field types for CMS and components?

Text, Image, Number, RichText, Boolean, Reference (other content types), Media, and HTML.

If someone makes a change such as editing product info in Shopify or BigCommerce, will that be reflected on the live site?

This depends on the change made. See Syncing Data.

Is there a mobile preview?

Yes, you are able to view different breakpoints when viewing a page in the Experience Manager by selecting the icons at the bottom.

What level of flexibility do we have with breakpoints?

You have full control of the CSS and JSX code. We have convenience wrappers for various media queries in the IDE.

How do I load custom fonts?

We recommend copying the font file URL from a site such as Google Fonts.

  1. Browse to the embed url, for example: 
    https://fonts.googleapis.com/css2?family=Roboto&display=swap

  2. Copy the URL from there, for example:
    https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2

How do I send data to the CMS?

The only data that is being pulled into the CMS is specific Product and Collection related information that is being pulled from the platform's backend.

We plan to expose an API for the CMS in the future.

How long does it take for new updates to appear in the CMS?

This will vary from store to store, depending on the volume of data being synced from the platform to Shogun Frontend. See Syncing Data.

Are there any rate limits?

There are no rate limits for any of the Shogun Frontend store, however, any headless API calls to the backend commerce platform may have some rate limits.

Do you have to reference a specific product or collection within a section?

No. There is a dynamic reference to the "current collection" or "current product". Template Pages are tied to CMS groups and you can tie all the section field values to the dynamic reference rather than a specific content item from that group. Each page will then display data that is specific to the product or collection referenced.

Will we be able to write our own components and rely on public useState, useEffect, mounted, and other "hooks"?

Yes!

Are you able to schedule content to be published at a specific date or time?

Not currently, but this is on the roadmap.

What is the route structure for URLs?

Route structure is customizable.

Template Pages have a defined path, such as /products,/collections, or /blogs and the CMS content item would be appended for each generated page.

For static pages that are not tied to a template page, the path is completely customizable, but cannot match the path of an already created page.

Is Shogun Frontend rebuilding a page every time you make an update to a section?

Pages will automatically be updated when the section code is saved if the section is on that page. However, those changes are not live until the site is published.

The Shogun Frontend app is rebuilding the entire store every time it is published.

How do I apply redirects?

See URL Redirects.

How do I delete pages?

Pages that are not associated with a template can be deleted in the Pages dashboard.

How do I delete sections?

This is done manually in the backend by Shogun.

We will allow users to do this in the future initially only when the section is not associated with a page or template page.

How do I configure my manifest.json file for the PWA storefront?

This can be done under Store Settings.

How do I configure my robots.txt file?

This can be done under Store Settings.

How do I add a 404 page to my store?

See Finishing Touches.

How do I add a home/index/root page to my store?

See Your Homepage.

How do I update my store domain?

This is done manually in the backend by Shogun at this time.

We may allow admin users to do this in the future.

How do I add new users to the Shogun Frontend app?

This is done in the backend by Shogun at this time.

We will be adding an admin interface in the future.

How do I troubleshoot an error when I publish my store?

You should see a toast message with an error log of what failed.

Do we honor the ordering of products in the collection as maintained by Shopify?

Yes, we do for manual collections.

We don't support ordering based on automated collections yet.

How do I add global styles in Frontend?

There is a global CSS input in the store settings panel.

Can I configure the path of pages generated from a template page?

See Custom URL Structure.

We have a feature on the roadmap to manage your own ruleset to configure these routes.

Are pages on Desktop and Mobile prefetched?

On both mobile and desktop pages that are in viewport are prefetched with low priority fetch.

When user hovers on desktop and presses on mobile, we do a high priority load if that page is not already in cache from low priority prefetch.

How do we handle state management between components in a section?

You can use the App component to create your own state management solution or use the Shogun Frontend built-in store if you need a simple store.

Can I use the React Fragment shortcut when creating sections in the IDE?

We don't support the <> </> shorthand at this time. You need to use <React.Fragment> </React.Fragment>.

How does delete items work for a store with multiple variants per product? if we have to use product.id for removeItems() instead of variant.id, what happens when multiple items of the same variant are in the cart but we only want one to be removed?

To removeItems, variant.id or product.id are not used. When an item is added to the cart, you will get an item.id in the cart which you provide to removeItems.


Local Dev/Coding Pipeline

Is there a coding pipeline? Version control?

Currently, all stores are built in production. We do not have a staging environment or the ability to sync stores (that is on the near-term roadmap).

We can configure a local GitHub repo that can be used

The app does not track version control.

Can I use other JS dependencies by adding them locally and syncing, or does Shogun need to add them?

You can add it locally, but you still need to notify Shogun which dependency and version you need so that we can add it manually to Frontend, we don’t have a UI to allow user to add them independently and do not sync that from the local environment.

The local version includes a Global.css file, does this sync with Frontend?

This is not included in the sync and will need to copied and pasted to the Global Styles under the Store Settings panel.

What does the local file structure look like?

A sections and components folder, and for each section and component, there's a folder with a JSX file (index.jsx), and a CSS file (styles.module.css).

Do you think it's better to use Shogun Frontend, rather than developing locally?

We highly recommend developing locally throughout the build of your store. This allows you to make use of version control and is less error-prone.

Shogun Frontend currently does not support versioning.

Where I can import global CSS files from node modules, like bootstrap, etc?

It is best to copy/paste to the global styles in the Store Settings panel.

Does Shogun Frontend support importing other dependencies?

Yes, but this is best avoided when possible as simpler component files will enable us to do automatic upgrades of the dependencies more easily.

Will the components support es6 and be transpiled?

Yes.

What does testing automation look like? Can we leverage tools like Mocha, etc. Do you have a recommended approach?

You can create your own local testing workflow utilizing Storybook and a testing framework of your choosing. At this time we do not have a recommended approach.


Checkout

Which Shopify checkout API do you integrate with?

We have integrations with both the REST and GraphQL APIs for checkout.

How will checkout be handled? Is there a domain change?

Everything can be handled within Shogun Frontend right up to the point of checkout. Once you click to cart, it hits your platform checkout. There is a domain change.


APIs

Do you have an exposed API?

Not at the moment; however, we plan to provide an API for our CMS in the future.

Will there be a client-side API for adding to cart, etc?

Yes, we will be releasing documentation for our client-side SDK in the future.


Launch

How do we launch our store?

We recommend launching the Shogun Frontend store alongside your live store and run an A/B test through Google Optimize to split traffic, starting at a low percentage and gradually increasing as you gain confidence in the new site.

When you are ready, Shogun will switch the DNS and all pages and formatting will be controlled using Shogun Frontend moving forward.


Live Storefront

How is inventory kept in sync with my backend platform?

  • When a product goes in or out of stock on the platform, the platform sends us a webhook.
  • We process the webhook and update the product in Shogun Frontend.
  • We also update a "live" inventory file that is used in the storefront to check if a product/variant is in stock or out of stock.

This process can take up to 90 seconds to reflect on the product page. See Syncing Data for more information.

See how to code your section to disable the Add to Cart button based on the "live" inventory data here.


CDN

What are we using for CDN?

Fastly caching and CDN service.

How do you handle loads? Flash sales, how is that throttled?

our site will be entirely hosted by a CDN provider, Fastly. Shogun is not in the load path. An e-commerce flash sale, even at a huge scale, is not a huge increase in network volume for a provider like Fastly. If you expect a huge spike, you can notify us, and we'll notify Fastly, but in most cases no action is required.

How is Shogun Frontend CDN different than Shopify CDN?

The way Shopify uses Fastly is different from the way we’re using it. Shopify proxies through Fastly to their data center in the USA, which adds a long round trip time to APAC. We use Fastly in a way that it goes to Fastly’s edge nodes in APAC and no further, resulting in a much faster response time.

How does your system cache?

We're running a purge command anytime we publish a new page.

How do you handle scripts?

If you want the ability to add random scripts, you can build an "HTML" section that accepts any HTML as an input field.