mirror of
https://github.com/Heretek-AI/GDevelop.git
synced 2026-07-21 17:45:25 -04:00
9934457b39
Only show in developer changelog
112 lines
4.1 KiB
C++
112 lines
4.1 KiB
C++
/**
|
|
|
|
GDevelop - Shopify Extension
|
|
Copyright (c)2017 Florian Rival (Florian.Rival@gmail.com)
|
|
This project is released under the MIT License.
|
|
*/
|
|
#if defined(GD_IDE_ONLY)
|
|
#include "GDCore/Extensions/PlatformExtension.h"
|
|
#include "GDCore/Tools/Localization.h"
|
|
|
|
void DeclareShopifyExtension(gd::PlatformExtension& extension) {
|
|
extension.SetExtensionInformation(
|
|
"Shopify",
|
|
_("Shopify"),
|
|
_("Interact with products and generate URLs for checkouts with your "
|
|
"Shopify shop."),
|
|
"Florian Rival",
|
|
"Open source (MIT License)")
|
|
.SetShortDescription("Initialize Shopify shop, fetch products, generate checkout URLs.")
|
|
.SetExtensionHelpPath("/all-features/shopify")
|
|
.SetCategory("Third-party");
|
|
extension.AddInstructionOrExpressionGroupMetadata(_("Shopify"))
|
|
.SetIcon("JsPlatform/Extensions/shopifyicon.png");
|
|
|
|
#if defined(GD_IDE_ONLY)
|
|
extension
|
|
.AddAction(
|
|
"BuildClient",
|
|
_("Initialize a shop"),
|
|
_("Initialize a shop with your credentials. Call this action first, "
|
|
"and then use the shop name in the other actions to interact with "
|
|
"products."),
|
|
_("Initialize shop _PARAM1_ (domain: _PARAM2_, appId: _PARAM3_)"),
|
|
"",
|
|
"JsPlatform/Extensions/shopifyicon.png",
|
|
"JsPlatform/Extensions/shopifyicon.png")
|
|
|
|
.AddCodeOnlyParameter("currentScene", "")
|
|
.AddParameter("string", _("Shop name"))
|
|
.AddParameter("string", _("Domain (xxx.myshopify.com)"))
|
|
.AddParameter("string", _("App Id"))
|
|
.AddParameter("string", _("Access Token"));
|
|
|
|
extension
|
|
.AddAction(
|
|
"GetCheckoutUrlForProduct",
|
|
_("Get the URL for buying a product"),
|
|
_("Get the URL for buying a product from a shop. The URL will be "
|
|
"stored in the scene variable that you specify. You can then use the "
|
|
"action to open an URL to redirect the player to the checkout."),
|
|
_("Get the URL for product #_PARAM2_ (quantity: _PARAM3_, variant: "
|
|
"_PARAM4_) from shop _PARAM1_, and store it in _PARAM5_ (or "
|
|
"_PARAM6_ in case of error)"),
|
|
"",
|
|
"JsPlatform/Extensions/shopifyicon.png",
|
|
"JsPlatform/Extensions/shopifyicon.png")
|
|
|
|
.AddCodeOnlyParameter("currentScene", "")
|
|
.AddParameter(
|
|
"string",
|
|
_("Shop name (initialized with \"Initialize a shop\" action)"))
|
|
.AddParameter("string", _("Product id"))
|
|
.AddParameter("expression", _("Quantity"))
|
|
.AddParameter("expression", _("Variant (0 by default)"))
|
|
.SetDefaultValue("0")
|
|
.AddParameter("scenevar",
|
|
_("Scene variable where the URL for checkout must be stored"))
|
|
.AddParameter("scenevar", _("Scene variable containing the error (if any)"));
|
|
#endif
|
|
}
|
|
|
|
/**
|
|
* \brief This class declares information about the JS extension.
|
|
*/
|
|
class ShopifyJsExtension : public gd::PlatformExtension {
|
|
public:
|
|
/**
|
|
* \brief Constructor of an extension declares everything the extension
|
|
* contains: objects, actions, conditions and expressions.
|
|
*/
|
|
ShopifyJsExtension() {
|
|
DeclareShopifyExtension(*this);
|
|
|
|
GetAllActions()["Shopify::BuildClient"]
|
|
.SetIncludeFile("Extensions/Shopify/shopify-buy.umd.polyfilled.min.js")
|
|
.AddIncludeFile("Extensions/Shopify/shopifytools.js")
|
|
.SetFunctionName("gdjs.evtTools.shopify.buildClient");
|
|
GetAllActions()["Shopify::GetCheckoutUrlForProduct"]
|
|
.SetIncludeFile("Extensions/Shopify/shopify-buy.umd.polyfilled.min.js")
|
|
.AddIncludeFile("Extensions/Shopify/shopifytools.js")
|
|
.SetFunctionName("gdjs.evtTools.shopify.getCheckoutUrlForProduct");
|
|
|
|
StripUnimplementedInstructionsAndExpressions();
|
|
GD_COMPLETE_EXTENSION_COMPILATION_INFORMATION();
|
|
};
|
|
};
|
|
|
|
#if defined(EMSCRIPTEN)
|
|
extern "C" gd::PlatformExtension* CreateGDJSShopifyExtension() {
|
|
return new ShopifyJsExtension;
|
|
}
|
|
#else
|
|
/**
|
|
* Used by GDevelop to create the extension class
|
|
* -- Do not need to be modified. --
|
|
*/
|
|
extern "C" gd::PlatformExtension* GD_EXTENSION_API CreateGDJSExtension() {
|
|
return new ShopifyJsExtension;
|
|
}
|
|
#endif
|
|
#endif
|