This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
public:apps:preorder:manual_installation [04.02.19 в 17:54] Максим Дубинин |
public:apps:preorder:manual_installation [17.03.22 в 04:29] (current) Дария Тяжлова |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Manual installation ====== | ||
+ | 1. Add a snippet //"simple-preorder-bootstrap.liquid"// with next code: | ||
+ | |||
+ | <code> | ||
+ | <style id="simple_preorder_style"></style> | ||
+ | <script> | ||
+ | // Bootstrap for Simple Preorder app | ||
+ | var SimplePreorderBootstrap = { | ||
+ | "page": {{ template | json }}, | ||
+ | "product": { | ||
+ | "id": {{ product.id | json }}, | ||
+ | "title": {{ product.title | json }}, | ||
+ | "variants": [ | ||
+ | {% for variant in product.variants %} | ||
+ | { | ||
+ | "id": {{variant.id}}, | ||
+ | "inventory_quantity": '{{variant.inventory_quantity}}', | ||
+ | "inventory_management": '{{variant.inventory_management}}', | ||
+ | "inventory_policy": '{{variant.inventory_policy}}' | ||
+ | }, | ||
+ | {% endfor %} | ||
+ | ] | ||
+ | }, | ||
+ | "cart": { | ||
+ | "items": [ | ||
+ | {% for item in cart.items %} | ||
+ | { | ||
+ | "variant_id": {{item.variant.id}}, | ||
+ | "product_id": {{item.product.id}}, | ||
+ | "quantity": {{item.quantity}}, | ||
+ | "inventory_quantity": '{{item.variant.inventory_quantity}}', | ||
+ | "inventory_management": '{{item.variant.inventory_management}}', | ||
+ | "inventory_policy": '{{item.variant.inventory_policy}}', | ||
+ | "properties": {{ item.properties | json }} | ||
+ | }, | ||
+ | {% endfor %} | ||
+ | ] | ||
+ | }, | ||
+ | // "startupDelay": 100, | ||
+ | // "productFormSelector": '/cart/add', | ||
+ | // "productSelector": 'form[action="/cart/add"] [type="submit"]', | ||
+ | // "variantsSelector": 'form[action="/cart/add"] .variants-selector', | ||
+ | // "nativeVariantsSelector": 'form[action="/cart"] [name^="id"]', | ||
+ | // "checkoutSelector": 'form[action="/cart"] [type="submit"][name="checkout"]', | ||
+ | // "updateSelector": 'form[action="/cart"] [type="submit"][name="update"]', | ||
+ | // "updateInputsSelector": 'form[action="/cart"] [name^="updates["]', | ||
+ | // "preorderBadgeContainerSelector": '.product-item__image-wrapper', | ||
+ | // "updateInputsSelector": 'input[name="quantity"]', | ||
+ | // "debug": true, | ||
+ | }; | ||
+ | </script> | ||
+ | |||
+ | <script id="kad-preorder-config-loader"> | ||
+ | (() => { | ||
+ | try { | ||
+ | function loadPersonalConfig() { | ||
+ | let personalConfig = localStorage.getItem('SimplePreorderBootstrap') | ||
+ | if (typeof personalConfig === 'string') { | ||
+ | return JSON.parse(personalConfig) | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function savePersonalConfig(config) { | ||
+ | localStorage.setItem('SimplePreorderBootstrap', JSON.stringify(config, null, 2)) | ||
+ | } | ||
+ | |||
+ | function isDevParamSpecified() { | ||
+ | return new URLSearchParams(window.location.search).get('kad-dev') !== null | ||
+ | } | ||
+ | |||
+ | let personalConfig = loadPersonalConfig() | ||
+ | |||
+ | if (isDevParamSpecified()) { | ||
+ | personalConfig = personalConfig || {} | ||
+ | personalConfig.dev = true | ||
+ | } | ||
+ | |||
+ | if (personalConfig) { | ||
+ | Object.assign(SimplePreorderBootstrap, personalConfig) | ||
+ | savePersonalConfig(personalConfig) | ||
+ | } | ||
+ | } catch (err) {} | ||
+ | })() | ||
+ | </script> | ||
+ | |||
+ | <script id="kad-preorder-injector"> | ||
+ | (() => { | ||
+ | let lastScript = document.getElementById('kad-preorder-injector') | ||
+ | |||
+ | function injectScript(url, type) { | ||
+ | const script = document.createElement('script') | ||
+ | script.src = url | ||
+ | script.type = type || '' | ||
+ | script.async = false | ||
+ | script.defer = true | ||
+ | lastScript = lastScript.parentNode.insertBefore(script, lastScript.nextSibling) | ||
+ | } | ||
+ | |||
+ | if (SimplePreorderBootstrap.dev && SimplePreorderBootstrap.devScriptUrl) { | ||
+ | injectScript(SimplePreorderBootstrap.devScriptUrl, SimplePreorderBootstrap.devScriptType) | ||
+ | } | ||
+ | |||
+ | if (SimplePreorderBootstrap.dataScriptUrl) { | ||
+ | injectScript(SimplePreorderBootstrap.dataScriptUrl, SimplePreorderBootstrap.dataScriptType) | ||
+ | } | ||
+ | |||
+ | if (SimplePreorderBootstrap.settingsScriptUrl) { | ||
+ | injectScript(SimplePreorderBootstrap.settingsScriptUrl, SimplePreorderBootstrap.settingsScriptType) | ||
+ | } | ||
+ | |||
+ | if (SimplePreorderBootstrap.appScriptUrl) { | ||
+ | injectScript(SimplePreorderBootstrap.appScriptUrl, SimplePreorderBootstrap.appScriptType) | ||
+ | } | ||
+ | })() | ||
+ | </script> | ||
+ | </code> | ||
+ | |||
+ | > **Important:** At the very bottom of the snippet in the last line, replace the text "NAME-OF-YOUR-SHOP" with the address of your store from the address bar of the browser when you are in the admin area of the store (like "//**simple-pre-order-demo-shop**//.myshopify.com", and not, for example, "<del>spo-demo.shop</del>"). | ||
+ | |||
+ | 2. In the theme template //"theme.liquid"// right before the closing tag "</head>" add the code to connect the snippet: | ||
+ | <code> | ||
+ | <!-- Snippet for Simple Preorder app --> | ||
+ | {% include 'simple-preorder-bootstrap' %} | ||
+ | </code> | ||
+ | 3. (Not mandatory) In the snippet adjust the selectors for following buttons: | ||
+ | |||
+ | * productSelector — add to cart button | ||
+ | * variantsSelector — list of variants | ||
+ | * checkoutSelector — checkout button in cart | ||
+ | * updateSelector — update cart button | ||
+ | |||
+ | If this does not work, please write to [[support@kad.systems]] |