This module has been deprecated in favor of https://addons.reinos.nl/simple-store
With Mollie you are able to create a simple Webshop connected to the Mollie payment provider.
It allows you to add entries as products to your cart, calculate TAX on it and checkout your order with default shipping cost.
This module has been deprecated in favor of https://addons.reinos.nl/simple-store. The Simple Store module is almost the same as the mollie module and you can easily migrate from mollie to Simple Store.
Make sure your system meets the minimum requirements:
Examples can be found here
For every paid addon you need to validate your license in order to activate the module.
On a local environment, like *.dev
*.local
*.localhost
*.test
the license is valid for testing and building a new or existing sites.
For every other domain, you need to have a valid license.
Once installed, you will asked to enter your license key. When you entered a valid license you can hit the "Save license" button. This will start validating your license and will redirect you to addons.reinos.nl to login into your account. You can also register a new account in this process.
Once logged in, you are asked to use your current account or to login with another one.
Using the current logged in account, the server will check all info related to your license and once valid, it will redirect you back to your site where you see either a success message or an error message.
This module is using a license field to check if the license for the module is valid or not. On addons.reinos.nl you can check your license and add your valid domains.
In the Module CP you can enter then your license
When you enter a wrong license, the module will not work and it shows you an warning
Sometimes it happens that the license system says you have an invalid license. When this happens, make sure you have entered your domain url in your account, next to your license on addons.reinos.nl.
If this will not fix your license problem, please contact us on https://addons.reinos.nl/support
On the CP page you can modify a couple of things.
Set this to the url where your order is shown on the frontend.
Set a default currency symbol
The default shipping rate
The percentage TAX for a product
Is the price of a product incl TAX or excl TAX or none?
The From address
The from name
Send the mail also to notification one ore more addresses.
Send it as text or HTML
Set a default country
Select the countries that are allowed for the shop
Are we in production or in test. Or on local you can set it to manual
so you can test the shop on a local site
What should we log?
The module comes with some default predefined templates that can be used for your shop. On this page you can install them.
This is where you can track all error logs
The order overview page. For the detail page we connect the url of your frontend to the order. If you did not set an order template (we suggest you do), it will show the details in a simple page.
Enter your license key to activate your module
In order to setup the store you have to follow the following steps.
Mollie - Price
to it. As this is a currency field.The tag for adding items to the cart
{exp:reinos_mollie:add_to_cart}
Below are the Tag Parameters. Those parameters can be used in the tag described above
The return url, default to the current url
return_url=""
The SKU for a product. If omitted, it allows you to add multiple lines of the same products in to your cart.
sku=""
Set the entry_id of your product. This way we can reference the product to your entry.
entry_id=""
Set your product name
name=""
Set the price of the product.
price="0.00"
Set the tax.
This can either low
or high
and load the value that has been set in your settings
If omit the param, it will fallback on the default tax rate set in the settings.
tax="low"
When adding a product, your can clear the cart so it always have 1 product in the cart.
clear_cart="no"
If you have no shipping cost, you can disable it for a product
disable_shipping="no"
Set the form class
form_class=""
Set the form id
form_id=""
Set custom fields
custom_fields:test="value"
custom_fields:or_an_other_value="value"
<input name="qty" value="1"/><br>
<input name="custom_fields[yet_another]" value="custom value"/><br>
<input name="custom_fields[and_another]" value="other custom value"/><br>
Return the error when an invalid price is given.
{if error:invalid_price}
<p style="color:red;">You have entered an invalid price</p>
{/if}
Return the error when an invalid sales price is given.
{if error:invalid_sale_price}
<p style="color:red;">You have entered an invalid sales price</p>
{/if}
Below a small example how you can add a product to your cart
<div class="grid grid-cols-3 gap-3">
{exp:channel:entries channel="products"}
<div class="border p-5 rounded-md bg-gray-100 space-y-3">
<h2 class="font-medium text-lg">{title}</h2>
<h3>
<span {if product_sale_price > 0}class="line-through"{/if}>{product_price:formatted}</span>
{if product_sale_price > 0}<span>{product_sale_price:formatted}</span>{/if}
</h3>
<img class="w-full" src="http://via.placeholder.com/640x360" alt="Card image cap">
<p>Some quick example text to build on the card title and make up the bulk of the card's content.</p>
{exp:reinos_simple_store:add_to_cart
form_class="space-y-3"
entry_id="{entry_id}"
sku="{entry_id}"
name="{title}"
price="{product_price}"
sale_price="{product_sale_price}"
weight="10"
disable_shipping="{product_disable_shipping}"
return_url="simple_store/cart"
custom_fields:test="test custom field"
tax="high"
{!-- set a label for your custom fields --}
custom_fields_label:test="Testing"
custom_fields_label:field_from_input="Field from Input"
}
{if error:invalid_price}
<p style="color:red;">You have entered an invalid price</p>
{/if}
{if error:invalid_sale_price}
<p style="color:red;">You have entered an invalid sale price</p>
{/if}
<div class="flex flex-col space-y-1">
<label class="font-medium">Custom Field</label>
<input class="input" type="text" name="custom_fields[field_from_input]" placeholder="custom field"/>
</div>
<div class="flex flex-col space-y-1">
<label class="font-medium" for="qty">Aantal</label>
<input class="input" type="number" id="qty" name="qty" value="1"/><br>
</div>
<input type="submit" class="button" value="Add to Cart"/>
{/exp:reinos_simple_store:add_to_cart}
</div>
{/exp:channel:entries}
</div>
Loop over the cart variables and items
{exp:reinos_mollie:cart}
Below are the Tag Parameters. Those parameters can be used in the tag described above
The return url, default to the current url
return_url=""
Set the form class
form_class=""
Set the form id
form_id=""
Set a prefix
prefix="cart:"
Set the cart as updated, so it can update the qty
can_update="yes"
Below are the Tag Variables. Those Variables can be used in the tag described above
Check if there are no_items
{if cart:no_items}...{/if}
Loop over the items in the cart
{cart:items}
{cart:name}
{cart:price}
{cart:price_plus_tax}
{cart:qty}
{cart:sku}
{cart:entry_id}
{cart:disable_shipping}
{cart:price_total}
{cart:price_total_plus_tax}
{cart:custom_fields}<strong>{custom_fields:label}:</strong> {custom_fields:value}{/cart:custom_fields}
{/cart:items}
{cart:subtotal}
{cart:subtotal_plus_tax}
{cart:total}
{cart:total_plus_tax}
{cart:tax}
{cart:shipping}
{cart:shipping_plus_tax}
Hold all entry_ids as a pipeline delimited string
{cart:entry_ids}
The Checkout tag
{exp:reinos_mollie:checkout}
Below are the Tag Parameters. Those parameters can be used in the tag described above
The return url, default to the current url
return_url=""
Set the form class
form_class=""
Set the form id
form_id=""
Below are the Tag Variables. Those Variables can be used in the tag described above
Global errors
{global_error}
Check for global errors
{if has_global_errors}
{global_error}
{/if}
Check for field errors
{if has_field_errors}
...
{/if}
Error, if there is one, per field
{customer_first_name:error}
{customer_last_name:error}
{customer_email:error}
{customer_phone:error}
{customer_company:error}
{billing_address:error}
{billing_address2:error}
{billing_zip:error}
{billing_city:error}
{billing_country:error}
{shipping_address:error}
{shipping_address2:error}
{shipping_zip:error}
{shipping_city:error}
{shipping_country:error}
{!-- for example --}
{if customer_company:error != ''}<span class="text-red">{customer_company:error}</span>{/if}
Values, if there is something, per field
{customer_first_name:value}
{customer_last_name:value}
{customer_email:value}
{customer_phone:value}
{customer_company:value}
{billing_address:value}
{billing_address2:value}
{billing_zip:value}
{billing_city:value}
{billing_country:value}
{shipping_address:value}
{shipping_address2:value}
{shipping_zip:value}
{shipping_city:value}
{shipping_country:value}
This tag will convert your ISO-2 lang code to a readable one.
{exp:reinos_mollie:country}DE{/exp:reinos_mollie:country}
Get a select HTML list of all your countries, and also checking the settings for default and allowed countries
{exp:reinos_mollie:country_list type="billing" class="form-control" value=""}
Below are the Tag Parameters. Those parameters can be used in the tag described above
Set the CLASS for the select
class=""
Set the ID for the select
id=""
Set to billing
or shipping
type="billing"
set the default value
value=""
Format the price to the correct decimals and currency symbol
{exp:reinos_mollie:format}9.95{/exp:reinos_mollie:format}
Below the global variables that can be used anywhere.
{reinos_mollie_total_in_cart}
The order tag
{exp:reinos_mollie:order}
Below are the Tag Parameters. Those parameters can be used in the tag described above
Prefix the variables
prefix="order:"
Set a order_id for the order you want to fetch
order_id=""
Set a hash for the order you want to fetch
hash=""
Below are the Tag Variables. Those Variables can be used in the tag described above
Check if there is any result
{if no_results}...{/if}
The payment url, used when the order is open and should be payed
{if order:status == 'open' }
Your order is not yet payed, finish your order by clicking <a href="{order:payment_url}">here</a>.
{/if}
{order:order_id}
{order:time format="%d %M %Y"}
{order:transaction_id}
{order:status}
{order:customer_company}
{order:status}
{order:customer_last_name}
{order:customer_email}
{order:customer_phone}
{order:billing_address}
{order:billing_address2}
{order:billing_zip}
{order:billing_city}
The ISO-2 lang code. Convert it with {exp:reinos_mollie:country}
to get a readable name
{exp:reinos_mollie:country}{order:billing_country}{/exp:reinos_mollie:country}
{order:shipping_address}
{order:shipping_address2}
{order:shipping_zip}
{order:shipping_city}
The ISO-2 lang code. Convert it with {exp:reinos_mollie:country}
to get a readable name
{exp:reinos_mollie:country}{order:shipping_country}{/exp:reinos_mollie:country}
Loop over the items in the order
{order:items}
{order:name}
{order:price}
{order:price_plus_tax}
{order:qty}
{order:sku}
{order:entry_id}
{order:disable_shipping}
{order:price_total}
{order:price_total_plus_tax}
{order:items:custom_fields}<strong>{custom_fields:label}:</strong> {custom_fields:value}{/order:items:custom_fields}
{/order:items}
{order:subtotal}
{order:subtotal_plus_tax}
{order:total}
{order:total_plus_tax}
{order:tax}
{order:shipping}
{order:shipping_plus_tax}
Hold all entry_ids as a pipeline delimited string
{order:entry_ids}
The price fieldtype is a special fieldtype that can hold currency values.
By default the fieldtype field output a numeric value that can be used for the {exp:reinos_mollie:add_to_cart product_price=""}
parameter.
Below are the Fieldtype Modifiers. Those Variables can be used in the tag described above
Output the price without TAX and formatted
{your-field-name:no_tax}
Output the price with TAX and formatted
{your-field-name:plus_tax} //fall back on the default tax value
{your-field-name:plus_tax tax="low"}
{your-field-name:plus_tax tax="high"}
{your-field-name:plus_tax tax="22"} //custom numeric value
Output the price with TAX as a numeric value
{your-field-name:plus_tax_numeric} //fall back on the default tax value
{your-field-name:plus_tax_numeric tax="low"}
{your-field-name:plus_tax_numeric tax="high"}
{your-field-name:plus_tax_numeric tax="22"} //custom numeric value
Output the price without TAX as a numeric value
{your-field-name:no_tax_numeric}
Output the price, as given as a numeric value
{your-field-name:numeric} //fall back on the default tax value
{your-field-name:numeric tax="low"}
{your-field-name:numeric tax="high"}
{your-field-name:numeric tax="22"} //custom numeric value
Output the price, as given formatted
{your-field-name:formatted} //fall back on the default tax value
{your-field-name:formatted tax="low"}
{your-field-name:formatted tax="high"}
{your-field-name:formatted tax="22"} //custom numeric value
high
and low
{exp:reinos_mollie:add_to_cart tax="22"}
{product_price:plus_tax tax="21"}
{reinos_mollie_total_in_cart}