Максимальное количество кнопок покупки в Shopify

#javascript #shopify

#javascript #Shopify

Вопрос:

использование кнопки покупки в Shopify для выпуска бесплатного продукта для пользователей веб-приложения. Необходимо убедиться, что пользователи могут заказать не более 1 товара. Есть идеи о том, как я могу это сделать?

Расширения Shopify не подходят, так как кнопка покупки их не загружает. Также экспериментировал со ссылками на оформление заказа, и они не смогут предотвратить двойные заказы.

Вот код для кнопки покупки:

 <script type="text/javascript">
/*<![CDATA[*/
(function () {
  var scriptURL = 'https://sdks.shopifycdn.com/buy-button/latest/buy-button-storefront.min.js';
  if (window.ShopifyBuy) {
    if (window.ShopifyBuy.UI) {
      ShopifyBuyInit();
    } else {
      loadScript();
    }
  } else {
    loadScript();
  }
  function loadScript() {
    var script = document.createElement('script');
    script.async = true;
    script.src = scriptURL;
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(script);
    script.onload = ShopifyBuyInit;
  }
  function ShopifyBuyInit() {
    var client = ShopifyBuy.buildClient({
      domain: 'heavysoundlabs.myshopify.com',
      storefrontAccessToken: '28703a091818546612d47f7c83047f6f',
    });
    ShopifyBuy.UI.onReady(client).then(function (ui) {
      ui.createComponent('product', {
        id: '4713512665151',
        node: document.getElementById('product-component-1598466400618'),
        moneyFormat: '${{amount}}',
        options: {
  "product": {
    "styles": {
      "product": {
        "@media (min-width: 601px)": {
          "max-width": "calc(25% - 20px)",
          "margin-left": "20px",
          "margin-bottom": "50px"
        }
      },
      "title": {
        "font-family": "PT Sans, sans-serif",
        "font-weight": "normal"
      },
      "button": {
        "font-family": "PT Sans, sans-serif",
        "font-size": "14px",
        "padding-top": "15px",
        "padding-bottom": "15px",
        ":hover": {
          "background-color": "#e3ac00"
        },
        "background-color": "#fcbf00",
        ":focus": {
          "background-color": "#e3ac00"
        },
        "padding-left": "14px",
        "padding-right": "14px"
      },
      "quantityInput": {
        "font-size": "14px",
        "padding-top": "15px",
        "padding-bottom": "15px"
      },
      "price": {
        "font-family": "PT Sans, sans-serif"
      },
      "compareAt": {
        "font-family": "PT Sans, sans-serif"
      },
      "unitPrice": {
        "font-family": "PT Sans, sans-serif"
      }
    },
    "buttonDestination": "checkout",
    "contents": {
      "img": false,
      "title": false,
      "price": false
    },
    "text": {
      "button": "Get it now!"
    },
    "googleFonts": [
      "PT Sans"
    ]
  },
  "productSet": {
    "styles": {
      "products": {
        "@media (min-width: 601px)": {
          "margin-left": "-20px"
        }
      }
    }
  },
  "modalProduct": {
    "contents": {
      "img": false,
      "imgWithCarousel": true
    },
    "styles": {
      "product": {
        "@media (min-width: 601px)": {
          "max-width": "100%",
          "margin-left": "0px",
          "margin-bottom": "0px"
        }
      },
      "button": {
        "font-family": "PT Sans, sans-serif",
        "font-size": "14px",
        "padding-top": "15px",
        "padding-bottom": "15px",
        ":hover": {
          "background-color": "#e3ac00"
        },
        "background-color": "#fcbf00",
        ":focus": {
          "background-color": "#e3ac00"
        },
        "padding-left": "14px",
        "padding-right": "14px"
      },
      "quantityInput": {
        "font-size": "14px",
        "padding-top": "15px",
        "padding-bottom": "15px"
      }
    },
    "googleFonts": [
      "PT Sans"
    ],
    "text": {
      "button": "Add to cart"
    }
  },
  "option": {
    "styles": {
      "label": {
        "font-family": "PT Sans, sans-serif"
      },
      "select": {
        "font-family": "PT Sans, sans-serif"
      }
    },
    "googleFonts": [
      "PT Sans"
    ]
  },
  "cart": {
    "styles": {
      "button": {
        "font-family": "PT Sans, sans-serif",
        "font-size": "14px",
        "padding-top": "15px",
        "padding-bottom": "15px",
        ":hover": {
          "background-color": "#e3ac00"
        },
        "background-color": "#fcbf00",
        ":focus": {
          "background-color": "#e3ac00"
        }
      }
    },
    "text": {
      "total": "Subtotal",
      "button": "Checkout"
    },
    "googleFonts": [
      "PT Sans"
    ]
  },
  "toggle": {
    "styles": {
      "toggle": {
        "font-family": "PT Sans, sans-serif",
        "background-color": "#fcbf00",
        ":hover": {
          "background-color": "#e3ac00"
        },
        ":focus": {
          "background-color": "#e3ac00"
        }
      },
      "count": {
        "font-size": "14px"
      }
    },
    "googleFonts": [
      "PT Sans"
    ]
  }
},
      });
    });
  }
})();
/*]]>*/
</script>```
  

Ответ №1:

Вы не можете возиться с кнопкой покупки. Это не что иное, как получение идентификатора варианта в сеансе Shopify, чтобы корзина могла обработать этот идентификатор. Вы не можете ожидать, что кнопка также будет содержать бизнес-логику. Для этого вам нужно работать внутри Shopify.

Комментарии:

1. ценю это!

Ответ №2:

Вы могли бы пойти на обходной путь и создать код скидки, который дает вам конкретный продукт в качестве бесплатного дополнения. Там вы можете установить ограничение, например, что код скидки может быть использован только один раз для каждого клиента.