Webshop stack
Create a webshop with RapidWeaver
What the Webshop.stack offers is an easy to set up, full featured webshop for physical and/or digital products. Examples are the webshops on this site and on Snoezelkussen.nl .
To use this stack, you need :
- RapidWeaver Elements , or
- RapidWeaver v8 or higher with the Yourhead Stacks plugin .
After purchase, you may use it forever, commercial or non-commercial.
(You can create webshops on max. 10 different domains. Purchase an additional license for an extra 10 domains.You may create an unlimited number of webshops on the same domain.)
Overview
The light grey stacks are added by default by Stacks, and are the first ones in the options lists under the (+)-buttons.
Simply click on one and hit the delete key to remove those you are not planning to use.
Installing
Double click the disk image, agree to license agreement and a Finder window will appear.
Double click the 'Webstop.stack' file to install it.
It can be installed in RapidWeaver 8 and Classic. I don't know about RapidWeaver 7, just try it.
The disk image contains two Webshop-demo's, one for RW 8 and one for RW Classic. They both contain the same content.
Webshop Stack Settings
Enter the email address and serial number here to activate the stack.
Not yet implemented!
These settings are for future use when our Purchase/Stock/Sales (PSS) system is linked to the Webshop.stack. You then do not maintain products, taxes, localisation, etc. here in the stack, but in the PSS-system.
- Store name
- Enter a name for your store. It will be shown below the header. Leave empty if do not want to use it.
- CSS File to use
- If you wish to change a lot of CSS, you can download and change the contents of the CSS-file to your liking. Then upload it somewhere, and enter the URL to that file here. For just small changes, use the CSS-section of the Rapidweaver-page.
- Display errors on
- Check this box if asked or if you want to check for PHP errors yourself.
- Enable maintenance mode
- This disables your webshop on your server and shows a message to the visitors. The message can be found in the Localization: 'Offline title' and 'Offline message'.
- Time zone
- The time zone for the webshop. This overrides the server's time zone. The default is Europe/Amsterdam.
Note: when products are not showing in Preview or on your site, check the date of publishing in the Product's stack settings. That date is set using your Mac's date/time, which can be very different form the date/time of the timezone you set here. - Shop language
- This determines the default language in which the shop will be presented to the visitors. The language name must be exactly the same as the language name in the localisation substack.
- Session validity
- Number of days a session is kept alive, when the visitor does not remove cookies within that period.
- Alter
- Create
- Delete
- Drop
- Insert
- Select
- Update
- MySQL/MariaDB live database
- When checked, stock management of products, placed orders, number of downloads, coupon expiration and usage + ratings can be used.
- Address
- Domain name or IP-address of the live database server.
- Username + Password
- Live database access credentials.
- Database name
- The name of your live database where to create the tables. This database must already exist.
Test mode
- MySQL/MariaDB test database
- When checked, the same applies as described above, but on a different database. Use this for local testing.
When checked, this database has precedence over the live database settings. So always uncheck before publishing. - Address
- Domain name or IP-address of the test database server.
- Username + Password
- Test database access credentials.
- Database name
- The name of your test databse where to create the tables. This database must already exist.
- Show low availability badge + Threshold
- When checked, the threshold is used when to show low availability. The text can be found in the localization stack, under Product.
- Enable product rating + Threshold
- When checked:
- and the threshold is not zero, then if the rating average is greater or equal to the threshold, rating stars can be shown. See 'Show product rating' in the 'Catalag'-settings and 'Show rating' in the 'Product page'-settings below.
- a link to review and rate the products ordered will be placed inside the order confirmation message.
- showing reviews on the product page will be possible, see 'Show rating notes' in the Product page settings below.
- Days changeable
- Number of days a review and rating are changeable by the customer, before they become final.
Below you will find the SQL-queries you can use to copy RapidCart Pro tables into the Webshop.stack tables.
Note: do not copy the 'Products' table into the 'ws_products' table. The 'ws_products' table is filled and updated by the Webshop.stack.
INSERT INTO ws_orders (`id`, `date`, `customername`, `customeremail`, `customercountry`, `customercountrycode`, `customercompany`, `customervatid`, `customervatidverified`, `customerstreet`, `customerzipcode`, `customercity`, `customerstate`, `customerphone`, `customerip`, `items`, `options`, `shippingname`, `shippingprice`, `paymenttype`, `paymentname`, `paymentprice`, `transactionid`, `costs`, `coupon`, `weight`, `shippable`, `subtotal`, `taxes`, `total`, `subtotalrefunded`, `taxesrefunded`, `totalrefunded`, `status`, `referrer`, `notes`) SELECT `ID`, `Date`, `CustomerName`, `CustomerEmail`, `CustomerCountry`, `CustomerCountryCode`, `CustomerCompany`, `CustomerVATID`, `CustomerVATIDVerified`, `CustomerStreet`, `CustomerZIPCode`, `CustomerCity`, `CustomerState`, `CustomerPhone`, `CustomerIP`, `Items`, `Options`, `ShippingName`, `ShippingPrice`, `PaymentType`, `PaymentName`, `PaymentPrice`, `TransactionID`, `Costs`, `Coupon`, `Weight`, `Shippable`, `Subtotal`, `Taxes`, `Total`, `SubtotalRefunded`, `TaxesRefunded`, `TotalRefunded`, `Status`, `Referrer`, `Notes` FROM Orders;
INSERT INTO ws_coupons (`code`, `quantity`, `lastupdate`, `synced`) SELECT `Code`, `Quantity`, `LastUpdate`, `Synced` FROM Coupons;
INSERT INTO ws_downloads (`sku`, `email`, `quantity`, `lastupdate`) SELECT `SKU`, `Email`, `Downloads`, `Date` FROM Downloads;
INSERT INTO ws_ratings (`order`, `sku`, `date`, `rate`, `notes`) SELECT `Order`, `Product`, now() as dt, `Rate`, '' as nt FROM Ratings;
Note: In RCPro's table 'Ratings', 'Product' is a number. It will be copied into the 'sku' column of table 'ws_ratings', but you have to change it manually into the right SKU-code you used.
- Default country
- Choose the default country code to be used in the address section of the checkout-process.
Add a 'Countries, Currency & Taxes'-rule for this country, otherwise currency appears as '??'. - Minimum order
- This the minimum order amount (excl. taxes). It will be checked in the checkout-process.
- Show option names
- When you add cart-options via the 'Cart and/or Product Options'-substack, you give those options a name. Often, the names are the same as the descriptions; in that case, uncheck this box.
- Show option prices
- Decide if you want to show the cost of an option to your visitors. The costs of product options are added to the product price.
- Require acceptance + disclaimer text
- Check this box to add the disclaimer text at the end of the checkout. The visitor cannot proceed to pay, without checking the disclaimer-text checkbox first.
- Thank you page + Custom URL
- The URL of the webpage the buyer is sent to, after a successful purchase.
- Default to catalog
- After purchase, the buyer is sent back to the catalog page, with a 'Thank you'-text at the top. This text is changeable in the localization substack.
- Custom page (fill in the URL below)
- Enter a URL to sent the buyer to, after a purchase. No further parameters are sent with this URL.
- Require repeat email
- When checked, the buyer is required to type his/her email address twice, as a means of verification.
- Address field + Phone field + Company field
- In the checkout-process, these field options are:
- Hide
- Show
- Required
- Show taxes split
- This will show the net prices + tax, like so: € 0,71 Ex. 9,44% VAT (€ 0,06)
- Apply taxes to costs
- When checked, the highest tax rate will be applied to costs and discounts during checkout.
- Apply taxes to options
- When checked, the highest tax rate will be applied to cart options during checkout.
- Apply taxes to shipping
- When checked, the highest tax rate will be applied to shipping fees during checkout.
- Apply taxes to payment
- When checked, the highest tax rate will be applied to payment fees during checkout.
- EU VAT ID field
- In the checkout-process, this field's options are:
- Hide
- Show
- Required
- Validate EU VAT ID with VIES
- When checked, the webshop will verify the EU VAT ID via VIES .
- Your EU country
- The default is 'Non-EU or Default country'.
If you choose another EU-country, you will have to add a 'Countries, Currency & Taxes'-rule for that country, too.
Taxes are not applied to EU VAT-ID owners from a different EU country, if your country is also an EU-country.
Choose 'EU VAT-ID' as country if your company is outside of the EU, but has an EU VAT-ID number. - Local VAT
- Check this box to force local VAT from 'Your EU-country', or, if not set, from 'Default country', for digital products, when your revenue from selling digital products to consumers is less than 10.000,- EUR per year.
If not, then you must create 'Countries, Currency and Taxes' rules for ALL EU countries, so taxes can be split between local taxes and the consumer's country's taxes. To make life easier, I've added them all to the webshop-demo.rwc and webshop-demo.rw8 RW files that come with the installation file, so you can copy/paste them all at once into your RW-file. For example:
- View mode
- You can choose between Box or List:
or
- Show cart
- Show or hide the cart button:
or
- Show Add to cart button
- Shows the 'minus', 'entry-field', 'plus', and 'Add to cart'-buttons, or, when unchecked, shows a 'View product' button:
or
- Show Add short descriptions
- In the 'Product'-substacks, you can add a short and long description. In the Catalog only the short description is shown, unless unchecked, the no description is shown.
- Show starting price
- Checking this will show or hide the price of the product, but only if the product has no paid options assigned to it via the 'Cart and/or Product Options'-substacks. In such cases, the 'View product-button is shown.
- Show product tag
- This will show or hide the product tag. You can add tags to a product, and from that list, the first one is taken and shown in the top right corner of the product:
- Show product rating
- This will show or hide the product rating. You can set the rating in a product, and that will be shown above the name of the product:
When you have checked 'Enable product rating' in the 'Database'-settings, product ratings are calculated based on the ratings of buyers. - Show rating count
- This will show or hide the number of ratings for the product and display that number next to the rating stars (see image above here).
This setting only works when you have enabled the database and checked 'Enable product rating' in the 'Database'-settings. - Highlight promoted products
- This will show or hide the 'Promoted'-tag and will colorize the product box with a orange border and light yellow background. The 'Promoted'-tag will be displayed instead of a product-tag, even if 'Show product tag' is unchecked:
The colorizing of the promoted box can be changed by adding CSS for the border and the background in your page's CSS-settings for classes: .wsproduct.promo { } and .wsproduct.promo .wsthumb .wstag { }
When this setting is checked, a visitor can also filter on only promoted products:
- Products / Page
- This setting determines the number of products shown on a page, before paging-buttons are shown.
- Page numbers
- Determines where the paging-buttons are shown.
- Paging buttons
- Determines how many paging-buttons are shown, before ... are shown left and right to indicate more pages.
- Show search
- Hide or show the 'Search'-field in the sidebar.
- Show categories
- Show or hide the categories filter.
- Sort categories alfabetically
- Does what it says when checked.
- Show tags
- Show or hide the tags filter.
- Sort tags alfabetically
- Does what it says when checked.
- Show sort
- Shows or hides product sorting buttons. A visitor can sort on Date (publish date), Name or Price.
- Default sorting
- The initial setting for the web page.
- Show Cart button
- Show or hide the cart button:
- Version columns
- Number of columns for versions. When non-zero, versions are placed in rows and columns.
Leave 0 when you want to use a horizontal scrolling bar, instead of rows and columns. - Show thumbnail in versions
- To reduce the size of versoins on the screen, you might want to hide the thumbnail image.
- Show version SKU
- This only applies to product page.
- Show option names
- Show or hide product option names.
When unchecked, only the description / message - if not empty - of the option will be printed (applies to cart).
If the description of the option is empty, the name is printed anyway.
See 'Cart and/or Product options' substacks. - Show rating
- Shows or hides the rating in the product.
When you have checked 'Enable product rating' in the 'Database'-settings, product ratings are calculated based on the ratings of buyers. - Show rating count
- This will show or hide the number of ratings for the product and display that number next to the rating stars (see image above here). The text can be found in the localisation-settings.
This setting only works when you have enabled the database and checked 'Enable product rating' in the 'Database'-settings. - Show rating notes
- This will show or hide the the reviews for the product and display them below the social media icons.
This setting only works when you have enabled the database and checked 'Enable product rating' in the 'Database'-settings. - Subtitle labels
- Show categories or tags, or nothing, below product title.
If a product is promoted, the promoted tag is always show, regardless of this setting.
or or - Show short description
- Shows or hides the the short description of the product.
When checked will it show the short description as a title, below the rating and before the long description.
- Gallery position
- This setting determines if the photo/video gallery should float left or right, or should be hidden.
- Gallery size
- Determines the size of the photo/video gallery: Large, Medium, Small and Mini.
- Paging buttons
- Determines how many paging-buttons are shown, before ... are shown left and right to indicate more pages.
- Enable lightbox
- When checked, a Lightbox is available to your visitors when they click on the image or video.
- Enable autoplay
- When checked, and you have more than one image or video added to the product, this setting determines if the media should be shown in a slideshow, or that the visitor has to click on thumbnails to view the different images or videos.
- Autoplay interval
- The number of seconds a slide should be shown before the next one is loaded.
- Transition speed
- The duration in milliseconds of the transition between slides. Use 0 to disable animation.
- Max rel. products
- The maximum number of related products that should be listed.
Related products are shown below the versions. Set to 0 to disable the related products section. - Related products
- Chooose how related products are found: by Category or by Tag.. The webshop will look for matching categories or tags in other products.
- Show Facebook / Pinteres / Twitter button.
- Does what it says when checked. The buttons are shown below the product's long description.
- Twitter user
- Type your webshop's Twitter / X user, without the '@' character.
- Share tooltip
- Tooltip text for the above mentioned social media buttons.
The placeholder %s is replaced with the name of the social media platform. - Copy link tooltip
- Tooltip text for copy button. The copy button is always shown on the product page, at the end of the above mentioned social media buttons.
- Server address
- The IP-address or domain name of the SMTP server from your email account.
This and the following four settings are the same ones you use in your email app. - Port
- The port number for the SMTP server.
In the old days this was 25, which received unencrypted email. Nowadays it is mostly 456 or 587. Look it up at the site of your email address provider. - Username
- Normally, this is an email address. Enter the username you use to login on the SMTP server.
- Password
- Enter the password for the above username.
- Encryption
- You can choose between 'None', 'SSL' or 'TLS'. Check with your email hosting provider. 'None' means port 25 and unencrypted email.
- Sender address
- The email address used as the sender, for example 'noreply@mywebshop.com'
- Name
- A normal name used for the sender address, like 'MyWebshop', or your company name.
- Reply-to address
- Enter an email address where buyers send questions to, when they click on 'Reply' in the order confirmation message.
This comes in handy when you use a noreply-email address as the sender. - Name
- A normal name used for the reply-to address, like 'MyWebshop', or your company name.
- Send copy to
- Enter one ore more email addresses, separated by a comma, where to send the 'New order'-confirmation message to..
Leave blank if you do not need such emails. - Email signature
- Enter some text and HTML to be used as the email signature.
This is not a styled text field; you have to enter HTML code if you want to include images, for exampe a company logo.
You can create an email signature for free on lots of websites, but most of them do not show the HTML code, which is what you need.
- Reference-ID
- This ID is sent with the webhook, so your system can identify where the new order comes from.
- URL
- The URL where the data should be sent to. Data is sent as JSON, via POST.
- Token
- An authentication token, which is sent in the HTTP-headers as: 'Authorization: Token atokenyoursystemneeds'
You might think that a reference-ID and a token are the same thing, but you can have multiple websites, with different reference-IDs, but the same token to authenticate them. - Check SSL
- Uncheck for an HTTP-URL or an HTTPS-URL with an invalid certificate (local testing, for example).
stdClass Object ( [from] => TestWebshop [date_created] => 2024-01-24T12:52:14Z [orderid] => 7FGrSaS4xMjSHdH3S4kM [invoiceid] => 20240124134910QU [customerip] => ::1 [customer] => stdClass Object ( [name] => Marc Fox [email_address] => a.customer@example.com [country] => DE [company] => SDS82 [vatid] => [street] => Albert Cuypstr. [zip_code] => 72045 [city] => Mannheim [phone] => 31642629208 [state] => ) [items] => Array ( [0] => stdClass Object ( [key] => SKU1BR [name] => Bruin papier [stock_yn] => 1 [stock_management] => 1 [promo] => 1 [desc_short] => Mooi bruin papier. [groups] => SKU1 [categories] => cat1 [tags] => tag1 [thumbnail] => http://mbp2020.local/sites/tests/RW_Stacks/webshop-test/resources/pcd2479.gif [price] => 9.68 [number] => 2 [taxes] => h [taxperc] => 21 [amount_excl] => 16 [amount_incl] => 19.36 [deliverytype] => PSH [deliverytext] => [deliverylink] => [options] => stdClass Object ( [C.C.Proefmonsters?.5] => stdClass Object ( [name] => Proefmonsters? [number] => 100 [desc] => Dropjes zoet 20g [price] => 0 [weight] => 0 [amount_excl] => 0 [amount_incl] => 0 ) [C.C.Proefmonsters?.7] => stdClass Object ( [name] => Proefmonsters? [number] => 100 [desc] => Chocoladereepje 20g melk [price] => 0 [weight] => 0 [amount_excl] => 0 [amount_incl] => 0 ) [C.C.Proefmonsters?.8] => stdClass Object ( [name] => Proefmonsters? [number] => 100 [desc] => Chocoladereepje 20g hazelnoot [price] => 0 [weight] => 0 [amount_excl] => 0 [amount_incl] => 0 ) ) ) [1] => stdClass Object ( [key] => SKU1GE [name] => Yellow päper 🟡 [stock_yn] => 1 [stock_management] => 1 [promo] => 0 [desc_short] => Vibrant Yellow A4 Paper, pack of 500 sheets. [groups] => SKU1 [categories] => cat1 [tags] => tag1 [thumbnail] => http://mbp2020.local/sites/tests/RW_Stacks/webshop-test/resources/santolina.jpg [price] => 12.1 [number] => 1 [taxes] => h [taxperc] => 21 [amount_excl] => 10 [amount_incl] => 12.1 [deliverytype] => PSH [deliverytext] => [deliverylink] => [options] => stdClass Object ( [C.C.Proefmonsters?.3] => stdClass Object ( [name] => Proefmonsters? [number] => 100 [desc] => After Shave [price] => 0 [weight] => 100 [amount_excl] => 0 [amount_incl] => 0 ) [C.C.Proefmonsters?.7] => stdClass Object ( [name] => Proefmonsters? [number] => 100 [desc] => Chocoladereepje 20g melk [price] => 0 [weight] => 0 [amount_excl] => 0 [amount_incl] => 0 ) ) ) [2] => stdClass Object ( [key] => STACKWS [name] => Webshop.stack [stock_yn] => 0 [stock_management] => 0 [promo] => 0 [desc_short] => Create a webshop [groups] => 111859 [categories] => Software [tags] => Stack [thumbnail] => https://www.sds82.com/products/webshop-stack/files/webshop-stack.png [price] => 71.34 [number] => 1 [taxes] => h [taxperc] => 19 [amount_excl] => 59.95 [amount_incl] => 71.34 [deliverytype] => DID [deliverytext] => [deliverylink] => https://www.sds82.com/products/files/webshop-stack.png [options] => stdClass Object ( [Serial-Number] => stdClass Object ( [name] => Serial Number [number] => 100 [desc] => You will receive your serial number in a separate email. [price] => 0 [weight] => 0 [amount_excl] => 0 [amount_incl] => 0 ) ) ) ) [discounts] => Array ( [0] => stdClass Object ( [key] => New-discount-1 [name] => New discount 1 [price] => -10 [taxperc] => 21 [coupon] => [amount_excl] => -10 [amount_incl] => -12.1 ) [1] => stdClass Object ( [key] => Promotion-discount-%i [name] => Promotion discount : 1 x € 16,50 [price] => -16.5 [taxperc] => 21 [coupon] => [amount_excl] => -16.5 [amount_incl] => -19.96 ) ) [costs] => Array ( [0] => stdClass Object ( [key] => New-cost-1 [name] => New cost 1 [price] => 5 [taxperc] => 21 [amount_excl] => 5 [amount_incl] => 6.05 ) [1] => stdClass Object ( [key] => New-cost-2 [name] => New cost 2 [price] => 10 [taxperc] => 21 [amount_excl] => 10 [amount_incl] => 12.1 ) [2] => stdClass Object ( [key] => New-cost-5 [name] => New cost 5 [price] => 3 [taxperc] => 21 [amount_excl] => 3 [amount_incl] => 3.63 ) [3] => stdClass Object ( [key] => New-cost-6:-%i [name] => New cost 6: 2 x € 2,22 [price] => 4.43 [taxperc] => 21 [amount_excl] => 4.43 [amount_incl] => 5.36 ) ) [options] => Array ( [0] => stdClass Object ( [key] => S.4f706d65726b696e67656e.T.-1 [name] => Opmerkingen [number] => 100 [desc] => Happy windsday! [price] => 5.43 [taxperc] => 21 [weight] => 0 [amount_excl] => 5.43 [amount_incl] => 6.57 ) ) [shipping_rule] => stdClass Object ( [key] => PostNL-Intl.-Pakket [name] => PostNL Intl. Pakket [upto] => 10000 [sumupto] => 7600 [taxperc] => 21 [amount_excl] => 24 [amount_incl] => 29.04 ) [payment_rule] => stdClass Object ( [key] => paypal [name] => Páypal [taxperc] => 21 [amount_excl] => 5 [amount_incl] => 6.05 [method] => ) [payment] => stdClass Object ( [amount_excl] => 116.31 [amount_incl] => 139.54 [eutaxrule] => 0 [taxes] => Array ( [0] => stdClass Object ( [h] => stdClass Object ( [country] => NL [type] => V [perc] => 21 [amount_excl] => 56.36 [amount_tax] => 11.84 ) [m] => stdClass Object ( [country] => NL [type] => V [perc] => 9 [amount_excl] => 0 [amount_tax] => 0 ) [l] => stdClass Object ( [country] => NL [type] => V [perc] => 0 [amount_excl] => 0 [amount_tax] => 0 ) ) [1] => stdClass Object ( [h] => stdClass Object ( [country] => DE [type] => V [perc] => 19 [amount_excl] => 59.95 [amount_tax] => 11.39 ) [m] => stdClass Object ( [country] => DE [type] => V [perc] => 7 [amount_excl] => 0 [amount_tax] => 0 ) [l] => stdClass Object ( [country] => DE [type] => V [perc] => 0 [amount_excl] => 0 [amount_tax] => 0 ) ) ) [provider] => stdClass Object ( [key] => paypal [orderid] => 42R23003Y4702494S [status] => COMPLETED [reference_id] => 7FGrSaS4xMjSHdH3S4kM [custom_id] => 7FGrSaS4xMjSHdH3S4kM [invoice_id] => 20240124134910QU [payments] => stdClass Object ( [captures] => Array ( [0] => stdClass Object ( [id] => 97E55530ES3672158 [status] => COMPLETED [amount] => stdClass Object ( [currency_code] => EUR [value] => 139.54 ) [final_capture] => 1 [seller_protection] => stdClass Object ( [status] => ELIGIBLE [dispute_categories] => Array ( [0] => ITEM_NOT_RECEIVED [1] => UNAUTHORIZED_TRANSACTION ) ) [invoice_id] => 20240124134910QU [create_time] => 2024-01-24T12:52:31Z [update_time] => 2024-01-24T12:52:31Z ) ) ) [payer_id] => WBGF4SKTTNNDN ) ) )
- Apps language
- This determines in which language the management apps are shown. The language name must be exactly the same as the language name in the localisation substack. Note: This is NOT the SDS82/PSS system, but a local implementation for the webshop.
- Admin username + password
- An admin-user with WRITE permissions, which means this user may change data in the database via the Stock Management pages.
- Admin username + password
- An second admin-user, but with only READ permissions, which means this user may change nothing via the Stock Management pages.
WebShop Admin applications
The login is kept alive for all admin applications.
With each admin-application you can:
- View, Edit or Delete orders,
- Add new records (if there is a +-button in the bottom right of the footer),
- Export your selection by clicking the green table-icon at the bottom right of the footer,
- Filter data by using the input fields above each column,
- Clear all filters by clicking the eraser-icon next to the 'Search'-button.
- Limit the number of records shown per page, by entering a value in 'Results per page' at the bottom. Minimum is 20, maximum is 500.
- Sort on a column by clicking its header, default is 'Date'.
WSAORDERS
WSAPRODUCTS
WSADOWNLOADS
WSARATINGS
Customisation
Substack : Localization
Each one of these substacks contain entry fields for all texts used in the webshop. Since it's useless to explain all texts here, only the ones that deserve special attention will be explained.
Note: when you use SDS82/PSS, this substack will be hidden, because then all texts will come from SDS82/PSS, which has texts in English, Spanish, French, German and Dutch.
- Name
- The name for the language. This is the name that willl be shown to the visitor in the drop-down menu in the Toolbar.
This is also the name you use for the default language setting of the Webshop and the Webshop Management Applications.
- Products found
- The placeholder %d will be replaced with the number of products found, when using the search options (search for text, categories, tags) in the toolbar. This text will be shown below the Sort-buttons:
- N/F message
- Shows this text when no matching products are found. The placeholder %s will be replaced with the text, categories or tags you searched for.
- >1 Items in cart
- The placeholder %d will be replaced with the number of products you added to the cart. This text will be shown inside the Cart-part at the top of the Toolbar:
- Minimum order
- When set (see above in General Settings -> Cart), and the net minimum order amount is below the threshold when the potential buyer enters the cart and checkout-process, this message is displayed in red and the Next-button is disabled.
The placeholder %s will be replaced with the set minimum amount and the currency symbol from the default country, which must be set in the Countries, Currency & Taxes substack.
- Taxes
- When Show taxes split is set (see above in General Settings -> Cart), and the tax % for the products is not zero, and the net amount is not the same as the gross amount, this text is displayed in gray below the subtotals.
The placeholder %d will be replaced with the tax amount and the currency symbol from the default country, which must be set in the Countries, Currency & Taxes substack.
- VAT text & Sales Tax text
- This text is used to print the tax totals in the cart's 'Review' section, below the end total.
The placeholder %t will be replaced with the formatted tax percentage, and the placeholder %d will be replaced with the net amount and currency symbol from the default country, which must be set in the Countries, Currency & Taxes substack. - Ex. VAT & Ex. Sales Tax
- When Show taxes split is set (see above in General Settings -> Cart), and the tax % for the products is not zero, and the net amount is not the same as the gross amount, this text is used to print the tax calculation below the various amounts.
The placeholder %t will be replaced with the formatted tax percentage, and the placeholder %d will be replaced with the tax amount and currency symbol from the default country, which must be set in the Countries, Currency & Taxes substack.
- Email subject
- This text is used as the Subject of the order confirmation email.
The placeholder %ORDER_ID% will be replaced with the order-ID.
The text is also used inside that email, in the order information block at the top in the email, where %ORDER_ID% is replaced with ' : <order id>', but only if the order-ID and invoice number are not the same, which is the case when the buyer does not use Mollie or Paypal, but chooses either 'Bank transfer' or 'Pay at our store'.
- Rating title
- This text is used on the Product Rating web page, to which the buyer recieves a link in the confirmation email.
The placeholder %s will be replaced with the customer's name.
Note: This works only :- with the Database enabled
- and the 'Enable product rating' checkbox checked.
- Update msg.
- This text is used to inform the customer that his/her reviews and ratings are saved and that they can be updated within %d days.
The placeholder %d will be replaced with the value from 'Database -> Days changeable' below 'Enable product rating'.
Note: This works only :- with the Database enabled
- and the 'Enable product rating' checkbox checked.
- Low availability
- This text is used in the Product panes when the stock has reached, or is below, the 'Low availabilty threshold'.
The placeholder %d% will be replaced with the remaining stock. This number comes either from the database (when enabled) or from the setting in a product substack.
Note: This works only with the 'Show low availabilty badge' checkbox checked (see above under 'Webshop Stack Settings -> Database').
- Rating count
- This text is used as the title-attribute of the bar with stars used for displaying the rating of a product.
The placeholder %d% will be replaced with the number of times the product has beeen rated.
Note: This works only :- with the Database enabled
- and the 'Enable product rating' checkbox checked.
- In stock
- This text is used in the Product panes when the stock is above the 'Low availabilty threshold'.
The placeholder %d% will be replaced with the number in stock. This number comes either from the database (when enabled) or from the setting in a product substack.
Remove all text if you never want it to be displayed.
- Link expiration
- This text is used in the confirmation email, for digital downloads.
The placeholder %d% will be replaced with the number hours the download link is valid. This number comes from the setting 'Link expiration' in a product substack; if this is 0, this expiration message will not be printed.
The placeholder %s will be replaced with a date/time formatted string (YYYY-MM-DD HH-MM-SS), indicating the exact timestamp when the link expires, so buyers don't have to calculate this themselves.
- Limit expiration
- This text is used in the confirmation email, for digital downloads.
The placeholder %d% will be replaced with the download limit, specified in the downloadable product's settings.
- New order subject
- This text is used in the subject of the new order email sent to you (or elsewhere). A new order email is only sent if the 'Send copy to'-field in the SMTP-settings (see 'Webshop Stack Settings -> Email SMTP') contains one ore more email addresses.
The first placeholder %s will be replaced with the formatted order amount, the second placeholder %s will be replaced with the customer's name. - New order message
- This text is used as the start of the new order email sent to you (or elsewhere).
The placeholder %s will be replaced your name, which is set in 'Webshop Stack Settings -> Email SMTP -> Sender name'.
- Page x of y and Page x/y (mobile)
- These texts are used in the footer of the WSA-applications (see above under 'Stock Management Dashboard') to indicate how many pages of the page-limit number of records there are.
The first placeholder %p will be replaced with the current page number, the second placeholder %t will be replaced with the total number of pages and the third one %n will be replaced with the total number of found records..
- Logout
- This text is used as the tooltip of the logout button in the footer of the WSA-applications.
The placeholder %s will be replaced with the username the user logged in with.
Cart
Substack : Payment Providers
- Paypal
- Paypal offers various payment methods, also without an account: your account (balance), by credit card, or iDeal (in The Netherlands), a.o., to your buyers.
Read how to setup a Paypal test-account here: https://marc.vos.net/howto/paypal-test-account/ - Mollie
- Mollie offers a wide range of payment methods to your buyers.
- Bank Transfer
- This offers your customers the option to make the payment from their own bank account, at their own time.
This method will be hidden when downloadable products are added to the cart. - At our store
- You can offer this method to buyers when you also offer the 'Pick up at our store' shipping-method, or when you have products that cannot be shipped and thus have to be picked up at your store, or when you like to see your customers in person.
This method will be hidden when downloadable products are added to the cart.
Not yet implemented!
When you maintain payment providers in SDS82/PSS, enter the key here. All settings, except the 'Sanbox API'- and 'Test mode'-checkboxes, will be read from SDS82/PSS.- Method name
- The name is displayed at checkout, in the 'Payment'-section.
- Button text
- There are two texts: one for when the amount to pay is non-zero, and one for when the amount is zero.
- Commission
- If you want to charge money for the use of a payment method, enter the amount or percentage here.
- Commission mode
- Determines if the number entered in the above field, is an amount or a percentage.
- Receipt message
- This text is placed in the email body of the oder confirmation email. You can use HTML-code here.
The placeholder %s will be replaced with the name of the buyer, as entered in the 'Address'-section of the checkout process.
- Button style
- This a setting for how Paypal's buttons should look. You can choose between 'Pill' (rounded corners) and 'Rectangle'.
- API Client-ID + API Secret
- These are the two authentication credentials you will need. You need to create an endpoint for your webshop and use those credentials at https://developer.paypal.com/dashboard/applications/live
- Sandbox API
- Check this checkbox when you want to test payments with Paypal. The webshop will use the Sandbox-credentials below.
- Sandbox API Client-ID + API Secret
- These are the two authentication credentials you will need when you want to test Paypal payments. You need to create an endpoint for your webshop and use those credentials at https://developer.paypal.com/dashboard/applications/sandbox
- Secret key
- This is the authentication credential you will need. You need to create a profile for your webshop at https://my.mollie.com/dashboard/settings/profiles and use those credentials, which can be found at https://my.mollie.com/dashboard/developers/api-keys
- Test mode
- Check this checkbox when you want to test payments with Mollie. The webshop will use the Secret test key below.
- Secret test key
- This is the authentication credential you will need when you want to test payments with Mollie. The Secret test key is generated when you create a profile, like the live key, and canbe found at the same page as the live credentials.
Substack : Shipping Rules
Not yet implemented!
When you maintain Shipping Rules in SDS82/PSS, and want add them here, add a rule and enter the key here. All settings will be read from SDS82/PSS.- Description
- Enter a unique description. It will be used in the 'Shipping'-section of the checkout process.
- Mode
- The mode ('Fixed' or 'Percentage') determines how the price will be calculated.
- Type
- This setting determines what the threshold values of the below steps are:
- Total number of items
- Total order amount
- Fixed
- Step 1 (max 10)
- Enter a threshold value in column 1 and a price in column 2. Step 2 wil open up, and you can add another, higher, threshold.
Note: If the last valid step does not contain 999999 as 'Up to' value, the rule will be skipped when either Items, Order total or Weight is greater then the last 'Up to' value. - Free shipping + Amount
- Check this box if you want to give free shipping to your buyer when the total order amount is higher then the amount given here.
- Include countries
- Enter a comma-separated list of 2- or 5-character country codes for which this rule is available. Leave blank to allow all countries.
- Exclude countries
- Enter a comma-separated list of 2- or 5-character country codes for which this rule is not available.
AD | : | Andorra |
AE | : | United Arab Emirates |
AF | : | Afghanistan |
AG | : | Antigua,Barbuda |
AI | : | Anguilla |
AL | : | Albania |
AM | : | Armenia |
AN | : | Netherlands Antilles |
AO | : | Angola |
AQ | : | Antarctica |
AR | : | Argentina |
AS | : | American Samoa |
AT | : | Austria |
AU | : | Australia |
AW | : | Aruba |
AX | : | Aland Islands |
AZ | : | Azerbaijan |
BA | : | Bosnia and Herzegovina |
BB | : | Barbados |
BD | : | Bangladesh |
BE | : | Belgium |
BF | : | Burkina Faso |
BG | : | Bulgaria |
BH | : | Bahrain |
BI | : | Burundi |
BJ | : | Benin |
BL | : | Saint Barthelemy |
BM | : | Bermuda |
BN | : | Brunei |
BO | : | Bolivia |
BQ | : | Bonaire,Saba,Saint Eustatius |
BR | : | Brazil |
BS | : | Bahamas |
BT | : | Bhutan |
BV | : | Bouvet Island |
BW | : | Botswana |
BY | : | Belarus |
BZ | : | Belize |
CA | : | Canada |
CA-AB | : | Alberta, Canada |
CA-BC | : | British Columbia, Canada |
CA-MB | : | Manitoba, Canada |
CA-NB | : | New Brunswick, Canada |
CA-NL | : | Newfoundland and Labrador, Canada |
CA-NS | : | Nova Scotia, Canada |
CA-NT | : | Northwest Territories, Canada |
CA-NU | : | Nunavut, Canada |
CA-ON | : | Ontario, Canada |
CA-PE | : | Prince Edward Island, Canada |
CA-QC | : | Quebec, Canada |
CA-SK | : | Saskatchewan, Canada |
CA-YT | : | Yukon, Canada |
CC | : | Cocos Islands |
CD | : | Democratic Republic of the Congo |
CF | : | Central African Republic |
CG | : | Republic of the Congo |
CH | : | Switzerland |
CI | : | Ivory Coast |
CK | : | Cook Islands |
CL | : | Chile |
CM | : | Cameroon |
CN | : | China |
CO | : | Colombia |
CR | : | Costa Rica |
CS | : | Montenegro,Serbia |
CU | : | Cuba |
CV | : | Cape Verde |
CW | : | Curacao |
CX | : | Christmas Island |
CY | : | Cyprus |
CZ | : | Czech Republic |
DE | : | Germany |
DJ | : | Djibouti |
DK | : | Denmark |
DM | : | Dominica |
DO | : | Dominican Republic |
DZ | : | Algeria |
EC | : | Ecuador |
EE | : | Estonia |
EG | : | Egypt |
EH | : | Western Sahara |
ER | : | Eritrea |
ES | : | Spain |
ES-A | : | Alicante, Spain |
ES-AB | : | Albacete, Spain |
ES-AL | : | Almería, Spain |
ES-AV | : | Ávila, Spain |
ES-B | : | Barcelona, Spain |
ES-BA | : | Badajoz, Spain |
ES-BI | : | Bizkaia, Spain |
ES-BU | : | Burgos, Spain |
ES-C | : | A Coruña, Spain |
ES-CA | : | Cádiz, Spain |
ES-CC | : | Cáceres, Spain |
ES-CE | : | Ceuta, Spain |
ES-CO | : | Córdoba, Spain |
ES-CR | : | Ciudad Real, Spain |
ES-CS | : | Castellón, Spain |
ES-CU | : | Cuenca, Spain |
ES-GC | : | Las Palmas, Spain |
ES-GI | : | Girona, Spain |
ES-GR | : | Granada, Spain |
ES-GU | : | Guadalajara, Spain |
ES-H | : | Huelva, Spain |
ES-HU | : | Huesca, Spain |
ES-J | : | Jaén, Spain |
ES-L | : | Lleida, Spain |
ES-LE | : | León, Spain |
ES-LO | : | La Rioja, Spain |
ES-LU | : | Lugo, Spain |
ES-M | : | Madrid, Spain |
ES-MA | : | Málaga, Spain |
ES-ML | : | Melilla, Spain |
ES-MU | : | Murcia, Spain |
ES-NA | : | Navarra, Spain |
ES-O | : | Asturias, Spain |
ES-OR | : | Ourense, Spain |
ES-P | : | Palencia, Spain |
ES-PM | : | Balears, Spain |
ES-PO | : | Pontevedra, Spain |
ES-S | : | Cantabria, Spain |
ES-SA | : | Salamanca, Spain |
ES-SE | : | Sevilla, Spain |
ES-SG | : | Segovia, Spain |
ES-SO | : | Soria, Spain |
ES-SS | : | Gipuzkoa, Spain |
ES-T | : | Tarragona, Spain |
ES-TE | : | Teruel, Spain |
ES-TF | : | Santa Cruz de Tenerife, Spain |
ES-TO | : | Toledo, Spain |
ES-V | : | Valencia, Spain |
ES-VA | : | Valladolid, Spain |
ES-VI | : | Álava, Spain |
ES-Z | : | Zaragoza, Spain |
ES-ZA | : | Zamora, Spain |
ET | : | Ethiopia |
EU | : | Europe for VAT |
FI | : | Finland |
FJ | : | Fiji |
FK | : | Falkland Islands |
FM | : | Micronesia |
FO | : | Faroe Islands |
FR | : | France |
GA | : | Gabon |
GB | : | United Kingdom |
GB-ENG | : | England, GBR |
GB-HIL | : | Scottish Highlands & Islands, GBR |
GB-IOM | : | Isle of Man, GBR |
GB-IOS | : | Isles of Scilly, GBR |
GB-NIR | : | Northern Ireland, GBR |
GB-SCT | : | Scotland, GBR |
GB-WLS | : | Wales, GBR |
GD | : | Grenada |
GE | : | Georgia |
GF | : | French Guiana |
GG | : | Guernsey |
GH | : | Ghana |
GI | : | Gibraltar |
GL | : | Greenland |
GM | : | Gambia |
GN | : | Guinea |
GP | : | Guadeloupe |
GQ | : | Equatorial Guinea |
GR | : | Greece |
GS | : | South Georgia,South Sandwich Islands |
GT | : | Guatemala |
GU | : | Guam |
GW | : | Guinea-Bissau |
GY | : | Guyana |
HK | : | Hong Kong |
HM | : | Heard Island,McDonald Islands |
HN | : | Honduras |
HR | : | Croatia |
HT | : | Haiti |
HU | : | Hungary |
ID | : | Indonesia |
IE | : | Ireland |
IL | : | Israel |
IM | : | Isle of Man |
IN | : | India |
IO | : | British Indian Ocean Territory |
IQ | : | Iraq |
IR | : | Iran |
IS | : | Iceland |
IT | : | Italy |
IT-21 | : | Piemonte, Italy |
IT-23 | : | Valle d'Aosta, Italy |
IT-25 | : | Lombardia, Italy |
IT-32 | : | Trentino Alto Adige, Italy |
IT-34 | : | Veneto, Italy |
IT-36 | : | Friuli Venezia Giulia, Italy |
IT-42 | : | Liguria, Italy |
IT-45 | : | Emilia Romagna, Italy |
IT-52 | : | Toscana, Italy |
IT-55 | : | Umbria, Italy |
IT-57 | : | Marche, Italy |
IT-62 | : | Lazio, Italy |
IT-65 | : | Abruzzo, Italy |
IT-67 | : | Molise, Italy |
IT-72 | : | Campania, Italy |
IT-75 | : | Puglia, Italy |
IT-77 | : | Basilicata, Italy |
IT-78 | : | Calabria, Italy |
IT-82 | : | Sicilia, Italy |
IT-88 | : | Sardegna, Italy |
JE | : | Jersey |
JM | : | Jamaica |
JO | : | Jordan |
JP | : | Japan |
KE | : | Kenya |
KG | : | Kyrgyzstan |
KH | : | Cambodia |
KI | : | Kiribati |
KM | : | Comoros |
KN | : | Saint Kitts and Nevis |
KP | : | North Korea |
KR | : | South Korea |
KW | : | Kuwait |
KY | : | Cayman Islands |
KZ | : | Kazakhstan |
LA | : | Laos |
LB | : | Lebanon |
LC | : | Saint Lucia |
LI | : | Liechtenstein |
LK | : | Sri Lanka |
LR | : | Liberia |
LS | : | Lesotho |
LT | : | Lithuania |
LU | : | Luxembourg |
LV | : | Latvia |
LY | : | Libya |
MA | : | Morocco |
MC | : | Monaco |
MD | : | Moldova |
ME | : | Montenegro |
MF | : | Saint Martin |
MG | : | Madagascar |
MH | : | Marshall Islands |
MK | : | Macedonia |
ML | : | Mali |
MM | : | Myanmar |
MN | : | Mongolia |
MO | : | Macao |
MP | : | Northern Mariana Islands |
MQ | : | Martinique |
MR | : | Mauritania |
MS | : | Montserrat |
MT | : | Malta |
MU | : | Mauritius |
MV | : | Maldives |
MW | : | Malawi |
MX | : | Mexico |
MY | : | Malaysia |
MZ | : | Mozambique |
NA | : | Namibia |
NC | : | New Caledonia |
NE | : | Niger |
NF | : | Norfolk Island |
NG | : | Nigeria |
NI | : | Nicaragua |
NL | : | Netherlands |
NO | : | Norway |
NP | : | Nepal |
NR | : | Nauru |
NU | : | Niue |
NZ | : | New Zealand |
OM | : | Oman |
PA | : | Panama |
PE | : | Peru |
PF | : | French Polynesia |
PG | : | Papua New Guinea |
PH | : | Philippines |
PK | : | Pakistan |
PL | : | Poland |
PM | : | Saint Pierre and Miquelon |
PN | : | Pitcairn |
PR | : | Puerto Rico |
PS | : | Palestinian Territory |
PT | : | Portugal |
PW | : | Palau |
PY | : | Paraguay |
QA | : | Qatar |
RE | : | Reunion |
RO | : | Romania |
RS | : | Serbia |
RU | : | Russia |
RW | : | Rwanda |
SA | : | Saudi Arabia |
SB | : | Solomon Islands |
SC | : | Seychelles |
SD | : | Sudan |
SE | : | Sweden |
SG | : | Singapore |
SH | : | Saint Helena |
SI | : | Slovenia |
SJ | : | Svalbard and Jan Mayen |
SK | : | Slovakia |
SL | : | Sierra Leone |
SM | : | San Marino |
SN | : | Senegal |
SO | : | Somalia |
SR | : | Suriname |
SS | : | South Sudan |
ST | : | Principe,Sao Tome |
SV | : | El Salvador |
SX | : | Sint Maarten |
SY | : | Syria |
SZ | : | Swaziland |
TC | : | Turks and Caicos Islands |
TD | : | Chad |
TF | : | French Southern Territories |
TG | : | Togo |
TH | : | Thailand |
TJ | : | Tajikistan |
TK | : | Tokelau |
TL | : | East Timor |
TM | : | Turkmenistan |
TN | : | Tunisia |
TO | : | Tonga |
TR | : | Turkey |
TT | : | Trinidad and Tobago |
TV | : | Tuvalu |
TW | : | Taiwan |
TZ | : | Tanzania |
UA | : | Ukraine |
UG | : | Uganda |
UM | : | United States Minor Outlying Islands |
US | : | United States |
US-AK | : | Alaska, USA |
US-AL | : | Alabama, USA |
US-AR | : | Arkansas, USA |
US-AZ | : | Arizona, USA |
US-CA | : | California, USA |
US-CO | : | Colorado, USA |
US-CT | : | Connecticut, USA |
US-DC | : | District of Columbia, USA |
US-DE | : | Delaware, USA |
US-FL | : | Florida, USA |
US-GA | : | Georgia, USA |
US-HI | : | Hawaii, USA |
US-IA | : | Iowa, USA |
US-ID | : | Idaho, USA |
US-IL | : | Illinois, USA |
US-IN | : | Indiana, USA |
US-KS | : | Kansas, USA |
US-KY | : | Kentucky, USA |
US-LA | : | Louisiana, USA |
US-MA | : | Massachusetts, USA |
US-MD | : | Maryland, USA |
US-ME | : | Maine, USA |
US-MI | : | Michigan, USA |
US-MN | : | Minnesota, USA |
US-MO | : | Missouri, USA |
US-MS | : | Mississippi, USA |
US-MT | : | Montana, USA |
US-NC | : | North Carolina, USA |
US-ND | : | North Dakota, USA |
US-NE | : | Nebraska, USA |
US-NH | : | New Hampshire, USA |
US-NJ | : | New Jersey, USA |
US-NM | : | New Mexico, USA |
US-NV | : | Nevada, USA |
US-NY | : | New York, USA |
US-OH | : | Ohio, USA |
US-OK | : | Oklahoma, USA |
US-OR | : | Oregon, USA |
US-PA | : | Pennsylvania, USA |
US-PR | : | Puerto Rico, USA |
US-RI | : | Rhode Island, USA |
US-SC | : | South Carolina, USA |
US-SD | : | South Dakota, USA |
US-TN | : | Tennessee, USA |
US-TX | : | Texas, USA |
US-UT | : | Utah, USA |
US-VA | : | Virginia, USA |
US-VT | : | Vermont, USA |
US-WA | : | Washington, USA |
US-WI | : | Wisconsin, USA |
US-WV | : | West Virginia, USA |
US-WY | : | Wyoming, USA |
UY | : | Uruguay |
UZ | : | Uzbekistan |
VA | : | Vatican |
VC | : | Saint Vincent and the Grenadines |
VE | : | Venezuela |
VG | : | British Virgin Islands |
VI | : | U.S. Virgin Islands |
VN | : | Vietnam |
VU | : | Vanuatu |
WF | : | Wallis and Futuna |
WS | : | Samoa |
XK | : | Kosovo |
YE | : | Yemen |
YT | : | Mayotte |
ZA | : | South Africa |
ZM | : | Zambia |
ZW | : | Zimbabwe |
Substack : Cart and/or Product Options
Not yet implemented!
When you maintain an option in SDS82/PSS, and want add it here, add a rule and enter the key here. All settings will be read from SDS82/PSS.- Name
- A unique name for this option.
- Mode
- Determines where the option is presented to the buyer. 'Cart' is shown in its own tab during checkout. The others are shown when the buyer views the individual product page. You can choose from:
- Cart
- Category
- Tag
- Group
- Product SKU
- Values
- Enter a single value or a comma-separated list of values that match the above chosen 'Mode':
- Category : enter one or more categories.
- Tag : enter one or more tags.
- Group : enter one or more groups. Groups are free to define in the 'Product'-substack. With groups you can link an option to products without having to use the other types. Groups are not visible to the customers.
- Product SKU : enter one or more SKU's.
- Type
- Determines how the options below are presented to the customer. You can choose from:
- Checkboxes
- Drop-down menu
- Message
- Text entry
- Required
- Check this setting if the option is required. This setting is only valid for types 'Checkboxes' and 'Drop-down menu'; it will be hidden for the other two types.
- Choice text
- A unique name for this checkbox- or menu-choice.
- Price
- If this choice cost money, enter a price here. Prices are net, ergo ex. taxes.
- Weight
- If this choice adds to the overall weight of the package to ship, regarding shipping costs, enter a weight here. Weights are in grammes, so 2 kilo must be entered as 2000.
Note: For type 'Checkboxes', the buyer can select none or all items.
Note: When 'Required' is checked, the buyer has to select at least one checkbox, or choose at least one menu-item.
- Message
- Enter a message here. Messages are used to inform the buyer about something, and have no effect on order totals, weights, etc..
- Max. length
- The maximum number of characters the message may be. Only when the buyer has entered text, the option is seen as having been selected.
- Price
- If this option cost money, enter a price here. Prices are net, ergo ex. taxes.
Substack : Costs
Not yet implemented!
When you maintain a Cost rule in SDS82/PSS, and want add it here, add a rule and enter the key here. All settings will be read from SDS82/PSS.- Description
- Add a unique description or short name for the cost. The description is shown during checkout and on the confirmation email.
With costs for Products, Categories or Tags, you can use the placeholder %i, which will be replaced with the text 'Num * Cost %' or 'Num * Amount'.
- Mode
- Determines if the cost is a fixed amount or a percentage:
- It is ignored with type 'Shopping cart', that one is always fixed, because it cannot be based on anything useful.
- Percentage for 'Order Total', 'Order Weight' and 'Number of Items' is based on the total amount spent on all products.
- Percentage for 'Products', 'Categories' and 'Tags' is based on the total amount spent on the specified Products, Categories or Tags.
- Valid from - until
- The validity period for this cost.
- Type
- Set the type of cost:
'Shopping cart' : is an independent cost. 'Order total' : is based on the total net amount of the products in the cart. 'Order weight' : is based on the total weight of the products in the cart. 'Total number of items' : is based on the number of products in the cart. 'Specified product SKU' : used to target a single product. 'Specified categories' : used to target certain categories. 'Specified tags' : used to target certain tags.
- Amount or %
- As written above, with this choice, Mode is ignored and the number entered is used as a fixed amount, never as a percentage.
- Step 1 through 10
- It starts with Step 1. When you enter a value in column 1 ('Up to'), Step 2 opens up, and so forth, to a maximum of 10 steps.
The values entered in column 1 are 'up to and including' values. In this example, when the total net order amount is 100 or less:- a cost of 10 is added to the cart at checkout, when Mode is set to 'Fixed'.
- a cost of 10% of the net order amount is added to the cart at checkout, when Mode is set to 'Percentage'.
- Values to include
- Add a comma-separated list of values for the chosen Type, for which this cost is available.
In this example, this cost is only added to the cart when the buyer has added product SKU1BR to the cart. - Amount or %
- In this example:
- a cost of 2,22 is added to the cart at checkout, when Mode is set to 'Fixed'.
- a cost of 2,22% of the net product amount is added to the cart at checkout, when Mode is set to 'Percentage'.
/dl>
Substack : Discounts
Not yet implemented!
When you maintain a Discount rule in SDS82/PSS, and want add it here, add a rule and enter the key here. All settings will be read from SDS82/PSS.- Description
- Add a unique description or short name for the discount. The description is shown during checkout and on the confirmation email.
With discounts for Products, Categories or Tags, you can use the placeholder %i, which will be replaced with the text 'Num * Discount %' or 'Num * Amount'.
- Mode
- Determines if the discount is a fixed amount or a percentage:
- It is ignored with type 'Shopping cart', that one is always fixed, because it cannot be based on anything useful.
- Percentage for 'Order Total', 'Order Weight' and 'Number of Items' is based on the total amount spent on all products.
- Percentage for 'Products', 'Categories' and 'Tags' is based on the total amount spent on the specified Products, Categories or Tags.
- Requires a coupon code
- If checked, this discount is applied only if the coupon code entered below is supplied during checkout.
- Coupon code
- Enter a coupon code. It can be as simple as 'ABCD' or as complex as 'CM#L3&9Kz4Yj*c'. It's up to you.
- Usage limit
- Limit the number of times this coupon code can be used per email address. '0' means no limits.
Note: Limits will only be checked when you enabled the database. - Valid from - until
- The validity period for this discount.
- Type
- Set the type of discount:
'Shopping cart' : is an independent discount. 'Order total' : is based on the total net amount of the products in the cart. 'Order weight' : is based on the total weight of the products in the cart. 'Total number of items' : is based on the number of products in the cart. 'Specified product SKU' : used to target a single product. 'Specified categories' : used to target certain categories. 'Specified tags' : used to target certain tags.
- Amount or %
- As written above, with this choice, Mode is ignored and the number entered is used as a fixed amount, never as a percentage.
- Step 1 through 10
- It starts with Step 1. When you enter a value in column 1 ('Up to'), Step 2 opens up, and so forth, to a maximum of 10 steps.
The values entered in column 1 are 'up to and including' values. In this example, when the total net order amount is between 100 and 250:- a discount of 5 is added to the cart at checkout, when Mode is set to 'Fixed'.
- a discount of 5% of the net order amount is added to the cart at checkout, when Mode is set to 'Percentage'.
- Values to include
- Add a comma-separated list of values for the chosen Type, for which this discount is available.
In this example, this discount is only added to the cart when the buyer has added product SKU1BR to the cart. - Amount or %
- In this example:
- a discount of 2,22 is added to the cart at checkout, when Mode is set to 'Fixed'.
- a discount of 2,22% of the net product amount is added to the cart at checkout, when Mode is set to 'Percentage'.
/dl>
Substack : Countries, Currency & Taxes
Note: Always add the default country (see 'Webshop Stack Settings -> Cart / Checkout') first.
Note: If you sell digital downloadable products to EU-consumers, you must create 'Countries, Currency & Taxes' rules for ALL EU countries. The reason for this is that when the buyer provides an EU-country in the 'Address' section of the checkout-sequence, and does not, or cannot, enter a valid EU-VAT-number, VAT of the EU-country from the buyer must, and will, be calculated, unless your revenue from selling digital products to consumers is less than 10.000,- EUR per year. In that case, check the box 'Force local VAT' under 'Webshop Stack Settings -> Cart' (see above).
- Country code
- Choose a country. For a complete list, see 'Substack: Shipping Rules -> 2- or 5-character country codes'.
- Code
- Choose the currency your webshop uses.
- Symbol
- Enter the currency symbol for the chosen currency.
- Decimal separator
- Choose the decimal separator for the chosen currency. A comma implies a dot as the thousands separator, and vise-versa.
- Tax type
- Choose between VAT or Sales Tax. VAT is line based, Sales Tax is order based.
- High %
- The highest VAT %, or when (G)ST, the Sales Tax %.
- Middle %
- The next lower %.
- Low %
- The lowest %.
Products
Substack : Product
Not yet implemented!
When you maintain Products in SDS82/PSS, you normally do not add products here. Only when you want to add an existing PSS-product which needs different settings for this webshop, enter the product key here. The settings below will be used to display the product, not those from SDS82/PSS.When you enter a product code here, the entry field 'General -> Product SKU' will be hidden, and the title of the substack will show the PSS-key instead of the Product SKU:
- Product SKU
- Enter the unique product code / SKU you use for this product.
- Product GTIN
- A unique numerical identifier for commercial products that is usually associated with a barcode printed on retail merchandise. The number must already exist!
- Product MPN
- In case you are the manufacturer and the only seller of a product without an assigned MPN, include a unique identifier number of your choice.
- Product ISBN
- A unique numerical identifier for commercial books published since 1970 that can be found on the back of a printed book, or inside a digital book, or on CDs and DVDs, along with the barcode. The number must already exist!
- Product brand
- Enter the name of the brand of the product.
Note : The above fields will be shown on the product page, when they are not empty.
Note : The above fields will be hidden when an SDS82/PSS ID is used.
- Name
- Enter the short name of the product..
- Short description
- Enter a short description of the product. It will be shown in the catalog, below the name of the product.
- Show long description
- When checked, it will show two things:
- The menu 'Long description type'
- An large entry field inside the substack, that matches the chosen type.
- Long description type
- Here you choose what type of edit field it should be, for the long description of the product.
You can choose from:- HTML: Enter plain HTML code and text.
- Markdown: Use Markdown to enter the long description.
- Styled Text: A standard RapidWeaver styled text area.
Styled Text example
Note : For the product, JSON-Linked Data code will be generated on the individual product page. This makes it easier for search engines to find and show your product in their search results. You can test your individual product page by first copying the link (click the copy-icon on the product page) and the go here https://search.google.com/test/rich-results and paste the link.
- Publish product
- Check this box if you want the product published, when you publish this page. If you uncheck this box, the title of the substack will show this, so you have less chance to overlook it:
- Publish date
- On publishing the page, the product data will be 'published', but the webshop will look at this date to check if the product should appear in the catalog or not yet.
Note: when products are not showing in Preview or on your site, check the Timezone in the main stack settings. The product's initial publishing date is set using your Mac's date/time, which can be very different form the date/time of the timezone. When the Timezone is hours behind, set the publishing date also a day behind.
- Star rating
- This is the initial star-rating when using the database. If you have not enabled the databse, this is the actual star-rating for the product and the buyer will not be able to rate the product directly.
- Promote product
- When checked, a tag with the word 'Promoted' will appear in place of any other tag:
Also, if there are any promoted products in the catalog, a search option 'Promoted' will appear in the sidebar:
You can modify the word 'Promoted' in 'Localization -> Product -> Promoted'. - Delivery type
- This setting is important for the shipping of the product. You can choose from three options:
- Physical, shipping : this means the product can be shipped via a chosen shipping method, defined under 'Shipping Rules'
- Physical, no shipping : this means the product cannot be shipped and has to be picked up. If you sell such products, add a Shipping Rule, for example 'Pick up at our store'. This will also be expicitly mentioned during checkout and in the purchase confirmation email:
- Digital delivery : this means the product cannot be shipped, and no shipping rule will be chosen for this product on checkout. See the explanation of the settings for this type below.
Digital Delivery Settings
- File to deliver
- An URL to the file to be delivered. Set the URL to the file via the 'Edit Link'-button.
Note : The link will be encrypted by using your serial number before it is placed as data inside a download link to this webshop in the purchase confirmation email. When the user clicks the linnk in the email, it will go to this webshop, decrypt the data, read the file and serve it as a download to the buyer. This way, no buyer will ever see the URL to the actual file.
As with 'No shipping', a notification is shown during checkout:
- Link expiration
- Number of hours before the download link expires. Setting it to 0 means that the link never expires.
If hours are entered, the expiration date/time is calculated from the timestamp the purchase confirmation email is sent. This date is contained inside the encrypted data. Upon a download request, the data is decrypted, the expiration date/time is compared with the current date/time, and if it is greater than or equal to now, the download is initiated, otherwise and error-page is shown to the buyer. - Download limit
- Number of times the product can be downloaded. Works only with the database enabled. Setting it to 0 means unlimited downloads.
- Download button + link example
-
https://your.own-webshop.com/files/wsapi.php?-dl=uxex4e5730334e474e49513031494f584a714d6d4a47626b46724d6d39hoK7NwyLdM2...
- Order size
- Enter the order size. You can use decimals.
- Price
- Price is excl. tax
- Apply taxes
- Decide which tax-% should used for this product. You can choose from:
- None
- First rate : this is the highest %. Use this for high VAT or Sales Tax.
- Middle
- Low
- Weight
- Enter the weight in grams; you can use decimals.
- Stock available?
- When checked, the 'Initial quantity' below will be used. When unchecked, a 'Sold out' message will be shown, unless this is a digital delivered product, or 'Allow orders?' is checked.
- Allow orders?
- This checkbox only appears when 'Stock available?' is unchecked, and only affects physical products. Normally the 'Sold out' message would appear when there is no stock, but now you can still allow orders, which is very handy for (artisan) products that need manufacturing, or for products for which stock is never kept. When checked, a text 'No stock, allow orders' is shown in the products title bar:
- Min. quantity
- The minimum number a customer must order per order; this number cannot be less than 'Order Size' (see above). A value of 0 means the minimum is 1 x 'Order Size'.
- Max. quantity
- The maximum number a customer can order per order. A value of 0 means limited by stock availabilty, which only works with 'Stock Management' enabled.
- Stock management
- Switch database stock management on. Remember to enable and fill in the database data in the main settings. Uncheck for digital delivered products.
- Initial quantity
- This setting is used in two ways:
- With database enabled: the database will initially be filled with this number, when the product is not already in the database. When it already is, use the 'Stock Management Admin' web page to manage the stock.
- Without a database: for this product, this is the number available displayed in the catalog.
- Groups
- Enter a comma-separated list of self-defined product groups.
Products belonging to same group will be presented as product versions. For example, a white blouse and a blue blouse of the same model and brand, can both belong to a same group. Or a screw and a bag of the same screws should belong to same group.
Groups are also used to link specific Cart Options to a product group.
Note : The group names are for internal use only, and are not seen by customers. - Show only in Versions
- This checkbox appears when something has been typed into the 'Groups'-field.
Check this box to have this Product removed from the catalog, so it will only appear in the Versions-bar when viewing a single product. The selection will also be shown in the Product-stack's title bar:
- Categories
- Enter a comma-separated list of self-defined categories.
Categories are listed in the sidebar, as searchable fields.
- Tags
- Enter a comma-separated list of self-defined tags.
Tags are also listed in the sidebar, as searchable fields.
You can add up to 10 resources.
Resource 1 is also used in the catalog.
- Resource type and Thumbnail type
- You can choose from 3 types:
- Image file: drag an image into the image well.
- Image URL: click the Edit Link-button to choose an URL to an image.
- Video URL: click the Edit Link-button to choose an URL to a video. Videos are not shown in the Lightbox. Set a thumbnail image as the video's overlay to click on.
- Caption
- The caption is used and displayed in the Lightbox, below the image, when not empty and the Lightbox is enabled (see above at Webhsop Stack Settings -> Product page -> Enable lightbox).
v1.0.0, 04 Jan 2024
- Initial release.
v1.0.1, 08 Jan 2024- VAT liability text was also printed in the confirmation email with non-EU countries.
- Discount '%i' placeholder fixed in confirmation emails.
- VIES VAT-ID check converted from SOAP to REST API.
- VAT-ID country-code check improved.
- VIES VAT-ID response check improved.
v1.0.4, 24 Jan 2024- The Price in Option Sets can now be max +/- 1000.00 instead of 100.00.
- Renamed 'Czech Republic' to 'Czechia' in country drop down menus.
- Increased the maximum number of Shipping Rules, Cart and/or Product options, Costs, Discounts and Countries & Taxes substacks from the default 25 to 500 and Products to 5000.
- Increased the number of options in 'Cart and/or Product options' for 'Drop-down menu' or 'Checkboxes' from 5 to 10.
- Improved speed by using new functions for detecting Cart and/or Product options.
- Improved EU VAT handling regarding selling digital downloadable products.
- - Added a new checkbox to force local VAT for digital products when your revenue from selling digital products to consumers is less than 10000 EUR.
- - VAT is now split per country when you have to calulate VAT of the buyer's EU-country, when it is different from your EU-country.
- - Added the VAT/TAX countries, tax percentages and amounts to the webhook data, in the 'payment->taxes'-array.
- See the manual under 'Webshop Stack Settings -> Cart/Checkout', 'Countries and taxes' and 'Products'.
- - VAT is now split per country when you have to calulate VAT of the buyer's EU-country, when it is different from your EU-country.
- Improved reading the publishing date from the Product. A AM/PM date could result in a faulty date and not show any product in the catalog.
- Reduced the serial number check to once per session.
- Added a memory cleanup before serving a downloadable file.
- Fixed replacing %i placeholders in Discounts and Costs names.
v1.0.6, 9 Feb 2024
- When testing your webshop locally, you can now clear the cart's session contents by checking 'Enable maintenance mode', click the 'Preview'-eye, and then uncheck 'Enable maintenance mode'. New products are only added to the database once per user-session, to prevent unnecessary reading of the database at each page load; so when the session is cleared, a new user-session is initiated and thus will the database be updated.
- Fixed the Time Zone in the API file. It now reads the Time Zone from the Webshop's settings.
- Fixed a bug that would prevent products from showing up, when 'Webshop -> Catalog -> Page numbers' was set to 'Bottom'.
- Fixed a bug that would display a wrong month in the product's JSON-LD.
- Added headings 'Discounts' (is also the default) and 'Costs' (is also the default) in the Cart-localization settings.
- Added heading 'Customer' (is also the default) in the Admin-localization settings.
- Added the first admin page: /files/wsaorders.php
- Added translateable texts and date/time formats to the 'Localization' substack, in the 'Admin'-section.
- Removed some texts from the 'Admin'-section in the 'Localization' substack, because those were never going to be used.
v1.0.7, 16 Feb 2024
- Added an option 'Show only in Versions' in 'Products', under 'Grouping', attached to 'Groups'. When using groups to create 'Versions', you can now exclude products from the 'Catalog' and have them only show up in the 'Product Versions'-bar.
- Added two new admin cq. dashboard pages:
- /files/wsaproducts.php to manage product's stock.
- /files/wsadownloads.php to manage digital downloads.
- (see Stock Management Dashboard for more info).
- Fixed the column titles of the CSV-export in WSA-applications.
- Last sort column and direction are now memorized during the session in WSA-applications.
- Fixed the digital download problem where only a part of the file would be downloaded.
- Fixed other minor issues in WSA-applications.
v1.0.8, 23 Feb 2024
- Added a new button 'Remove all' to the products-list under the Cart in the Toolbar, to clear the whole cart at once. This also resets the session.
- The names / descriptions of Options, Costs and Discounts do not have to be unique anymore. You can now use the same description (aka 'key') in various contexts, like different categories or tags.
- Improved database synchronisation of new products and new discount coupons.
- Added a new admin cq. dashboard page: /files/wsaratings.php to moderate product reviews.
- Improved date filters in the WSA-applications.
- Fixed 'required' display bug in Cart options.
v1.0.9, 1 Mar 2024
- Fixed a bug when 'Apply taxes' in the 'Product' was set to 'None'.
- Fixed a bug when 'Sold out' in the indivudual 'Product' page should (not) be displayed.
- Fixed a bug where an empty coupon code record was inserted in the coupons-table.
- Fixed a bug when the buyer's names were entered without a space in between. Now, an error message is displayed when only one word is found. For example, 'J.Smith' is one word, but 'J. Smith' are two words. The webshop will try to put a space between the last dot and the following word, to avoid the error message. Reason: Paypal and Mollie require a 'first' and 'last' name.
- Fixed a logic error where one could order a product directly from the catalog without seeing, and adding, the availabe options. Now, when any option is detected for a product, the 'View product' button is shown, instead of the 'add-to-cart' buttons.
- In the product-stack's title bar, I gave 'Promoted', 'Show only in versions' and 'NOT published' different colors for better recogition of these important settings.
- The 'Back to catalog'-button in the 'Individual product'-page is now also the same blue/white as the others.
- Added a new checkbox to the 'Product'-stack: 'Allow orders?'. This checkbox only appears when 'Stock available?' is unchecked, and only affects physical products. Normally the 'Sold out' message would appear, but now you can still allow orders, which is very handy for (artisan) products that need manufacturing, or for products for which stock is never kept. When checked, a text 'No stock, allow orders' is shown in the products title bar.
- Added the last admin cq. dashboard page: /files/wsacoupons.php to manage coupons.
v1.1.0, 17 Mar 2024
- Fixed a bug with the determination of taxes when the country was not listed under 'Countries and Taxes'.
v1.1.1, 30 Mar 2024
- Fixed a bug in WSAPI with the determination of taxes when the country was not listed under 'Countries and Taxes'.
- Improved sending mail to the 'Send copy to' email address.
v1.2.0, 6 October 2024
- Fixed: when Max Order = 0, it did not check the database stock, this is now fixed.
- Fixed: when Stock is less than 'Min.order size' in the Product's settings, a 'Sold out' message is now shonw.
- Renamed the 'English Localization' stack to 'General Localization', because it doesn't necessarily have to be English.
- Added a German, French, Spanish and Dutch localization stacks. It is now possible for your customers to display the webshop in English, German, French, Spanish or Dutch - when you added such sub-stacks under 'Localization'. Obviously we cannot translate your product descriptions.
- Added a field for the name of language in the Localization-stacks. The name is shown in the stack and is used for the language-menu for the webshop.
- Added a default language field to the stack's General-settings. This default will be used when no available language can be determined from the user's webbrowser.
- Added a language menu to the webshop, at the bottom of the Toolbar, with the default, or chosen, language selected. The customer can choose from the published languages. The choice is only valid for the duration of the session.
- Removed localized texts for webshop statistics. I am not going to implement statistics, one can do that via the Excel-exports from the admin-apps.
- Renamed the group 'Stock management Dashboard' to 'Webshop Management Apps'.
- Removed the 'Get push notifications'-checkbox from the group 'Webshop Management Apps'.
- Removed the 'First page'-selection from the group 'Webshop Management Apps'.
- Added a language field to the group 'Webshop Management Apps'. The chosen language will be used in the Webshop Management Applications.
- Added 'Remove all' to the shopping basket on the individual product page. When this action is chosen, the session is cleared and the user is redirected back to the first page of the catalog.
- Made the checkbox 'Allow orders?' in the Product's setting permanently visible, because on reflection it's a more general setting than being bound to the 'Stock available?'-checkbox.
- Improved CSS for the bottom button-bar in the checkout-section. With some themes, the Update/Next buttons became hidden from view.
- Fixed: Address-fields at checkout will be shown when shippable products have been added to cart, regardless if the Address-fields were set to be hidden.
- Fixed: Adding a coupon code to the database did not work and probably resulted in an 'expired' message.