Zakeke
Zakeke is a product customisation tool that allows your website visitors to personalise products before adding them to their basket. When a customer buys a customisable product, the order is automatically exported to Zakeke to help you fulfil the order.
You can read more about Zakeke here.
To install the app:
Once the app is installed, configure your Zakeke settings by navigating to Apps > Manage > Zakeke.
Connecting ShopWired and Zakeke
Connecting ShopWired and Zakeke
To connect your Zakeke account to ShopWired:
- Navigate to Apps > Manage > Zakeke
- Copy the Store URL and Products API URL values displayed in the app
- In a new tab in your browser, log into your Zakeke account
- If you don’t have an account with Zakeke, create one here.
- In Zakeke, navigate to the Connections page
- Select API
- Enter the Store URL and Products API URL from step (2) above
- Ensure the Base currency is the same currency as the one your ShopWired account uses
- In Zakeke, navigate to Your account > API keys
- Copy the provided Client ID and Secret key
- In the browser tab for the ShopWired Zakeke app, copy the keys into the Client ID and Secret key settings
- Select
connect
Once connected, a confirmation message will be displayed.
App settings
App settings
Export offline payment orders to Zakeke
If you are using the and you want to export orders to Zakeke that are created using the offline payment method, select this setting. If the setting is not selected, these orders will display in the Export errors section of the app.
Customise button text
Use the Customise button text setting to customise the text displayed for the button that appears for Zakeke product pages on your website. This is the button that is used by website visitors to launch the Zakeke window.
Managing customisable products
Managing customisable products
To allow your customers to customise or configure products on your ShopWired website, you will need to create these products separately within your Zakeke account. Depending on your needs, you can use either the customiser or configurator tools in Zakeke to set up these products.
When you connect your ShopWired and Zakeke accounts, your ShopWired products will be imported into your Zakeke account for configuration. Any new products that you create in your ShopWired account after the connection is established will also appear in your Zakeke account.
Using the customiser
The customiser tool in Zakeke allows you to create 2D customisable products for your ShopWired store. To get started:
- Log in to your Zakeke account
- Navigate to customizable products > add
- From the list of products from your ShopWired account, select the product you want to customise
- Follow the instructions in Zakeke to customise the product according to your preferences
Once you have customised your product, it will be listed in the 2D customisable products section of the Zakeke app within ShopWired.
Using the Configurator
The configurator tool in Zakeke is used to create 3D configurable products. These products allow customers to adjust or modify specific aspects of a product, such as selecting different components or materials. To configure a product:
- Log in to your Zakeke account
- Navigate to products in the side menu
- Select + add new product in the top right corner
- From the list of products in your ShopWired account, select the product you want to configure
- Follow the guides in Zakeke to configure the product as needed
Viewing Products
For both 2D customisable and 3D configurable products, you can use the view
option in the Zakeke app (in either the 2D customisable products or 3D configurable products sections) to see how the product appears on your ShopWired website. This allows you to check that the customisation or configuration options are displayed correctly to website visitors.
Add to basket and customisation options
Add to basket and customisation options
For each product in Zakeke that is available to be displayed on your ShopWired website, you can choose:
- Whether to enable the Zakeke customiser on the product on your website
- Whether to enable visitors to add the product to the basket without customising it
To enable the Zakeke customiser for the product, locate the product in either the 2D customisable products or 3D customisable products section and select enable customisation. Enabling this setting for the product ensures that the customise button appears on the product page on the website. If this setting is disabled, the product's normal add to basket button will be displayed.
To enable visitors to add the product to the basket without customising it, locate the product in either the 2D customisable products or 3D customisable products section and select show the add to basket button. Enabling this setting for the product allows visitors to add the product to the basket without customising it.
Order export
Order export
Orders received on your ShopWired website containing a Zakeke customisable/configurable product will be exported to Zakeke automatically. Orders are usually exported to Zakeke within a few minutes.
Occasionally, the app may encounter an error when trying to export an order to Zakeke. Errors that fail to export will be displayed in the Export errors section.
When this happens, the details of the failed order will appear in the export errors section:
- Review the error in the Export errors section
- Fix the issue (e.g., update the order or product details)
- Retry the export by selecting
retry auto-export
Theme installation
Theme installation
Code for this app needs to be added to your ShopWired theme:
- To display the Zakeke customiser on product pages
- To support products with variations
- To display information about the customised/configured product in the visitor's shopping basket
- To display information about the customised/configured product during checkout
Draft theme
Product pages Javascript
Using the code editor, within the product_form.twig
file, add the Javascript code below before the closing {% endblock %}
in the {% block product_form %}
block.
<script src='https://portal.zakeke.com/scripts/config.js'></script>
<script src='https://portal.zakeke.com/scripts/integration/api/customizer.js'></script>
<script>const mainProduct = {{ product|json_encode|raw }};</script>
<script data-business-id='BUSINESS-ID' class='main-zakeke-script'
src='https://hq-apps-sw.s3.eu-west-1.amazonaws.com/zakeke/1/v3/zakeke.js'></script>
Product options
Using the code editor, within the product_form.twig
file:
Locate the <select
element that contains the class product-option required
and add the code below before the closing >
tag
data-option-id="{{ option.id }}"
Locate the <div
element that contains the class product-option
and add the code below before the closing >
tag
data-option-id="{{ option.id }}"
Add preview image functionality
Using the code editor, within the checkout_basket.twig
file, locate the <td
element that contains the class basket-item-image
and, directly after this line, add the code below
{% set zakeke_preview_image_url = '' %}
{% if item.comments|length %}
{% set opts = item.comments|split(' | ') %}
{% for option in opts %}
{% set name = option|split(':')[0] %}
{% set value = option|split(':')[1] %}
{% if name == 'Preview Image URL' %}
{% set zakeke_preview_image_url = value %}
{% endif %}
{% endfor %}
{% endif %}
Adding code to platform checkout
Adding code to platform checkout
You will also need to add the code below to the Advanced customisation section in the Custom Javascript setting of the checkout page.
<script>
const orderSummaryProducts = document.querySelectorAll('.order-summary__item');
orderSummaryProducts.forEach(orderSummaryProduct => {
const orderSummaryProductExtra = orderSummaryProduct.querySelector('.order-summary__extra');
if (orderSummaryProductExtra && orderSummaryProductExtra.innerText.includes('Preview Image URL')) {
let zakekePreviewImageURL = orderSummaryProductExtra.innerText.split(":")[1].trim();
const orderSummaryProductImage = orderSummaryProduct.querySelector('.order-summary__photo img');
if (zakekePreviewImageURL && orderSummaryProductImage) {
orderSummaryProductImage.setAttribute('src', `https://${zakekePreviewImageURL}`);
orderSummaryProductExtra.style.display = 'none';
}
}
});
</script>