# Appfleece — Shopify Plus Agency & App Developer
> Appfleece is a certified Shopify Plus partner: a development agency and app publisher. We design, build and migrate Shopify Plus stores, develop custom apps and API integrations, and run our own production Shopify apps (Globe, Payflow, Charm, Feedflock, Heureka, Address IQ). Founded in 2021, operating as Appfleece, s.r.o. since 2025.
## Services
- Shopify and Shopify Plus store design and development.
- Custom Shopify app and API integration development — checkout extensions, Shopify Functions, ERP and logistics integrations.
- Shopify Plus migrations from Shoptet, WooCommerce, Magento, BigCommerce, Salesforce and others — zero downtime, SEO preserved.
- Performance optimization and store audits.
- Long-term development partnerships for growing brands.
## Our Shopify apps
- [Globe — pickup points & shipping](https://globe.appfleece.com): pickup point selection for all major carriers (Packeta / Zásilkovna, DPD, PPL, GLS, Balíkovna, InPost, Mondial Relay, Hermes, ACS and more) in the cart, at checkout and after the order. App Store: https://apps.shopify.com/globe — Docs: https://docs.globe.appfleece.com
- [Payflow — payment & shipping rules](https://payflow.appfleece.com): cash-on-delivery fees, hiding or reordering payment and shipping methods, QR code payments on the thank-you page. App Store: https://apps.shopify.com/payflow
- [Charm — loyalty & memberships](https://charmloyalty.com): loyalty points, VIP tiers, referrals and paid memberships. App Store: https://apps.shopify.com/charm
- Heureka — collect verified reviews on Heureka & Zboží.cz. App Store: https://apps.shopify.com/heureka-verified
- Address IQ — accurate address autocomplete and validation at checkout. App Store: https://apps.shopify.com/address-iq-autocomplete
- Vocato — free app that adds name-day dates and correct Czech/Slovak/Polish vocative greetings to customer metafields for automated campaigns. App Store: https://apps.shopify.com/vocato
## Case studies
- [Posedla](https://appfleece.com/work/posedla): custom cycling saddles brand scaled from a single Czech market to a global Shopify Plus store — multi-currency, a custom ERP integration and a blended B2B platform.
- [Molecules of Life](https://appfleece.com/work/molecules-of-life): Shoptet to Shopify migration with German-market localization.
## Key pages
- [Home](https://appfleece.com/): who we are and what we build.
- [Shopify Plus services](https://appfleece.com/shopify-plus): builds, custom apps and migrations.
- [Agentic commerce](https://appfleece.com/agentic-commerce): Shopify stores ready for shopping through AI agents (UCP, llms.txt, structured data, feeds).
- [Work / case studies](https://appfleece.com/work): portfolio of Shopify and Shopify Plus projects.
- [Integrations](https://appfleece.com/integrations): custom integrations we build.
- [QR code payments](https://appfleece.com/integrations/qr-code-payments): bank-transfer QR codes for Shopify.
- [VAT ID and VIES check](https://appfleece.com/integrations/vies): company ID and VAT number fields in Shopify checkout.
- [Mailship fulfillment](https://appfleece.com/integrations/fulfillment): a Mailstep integration that fixes rejected shipments on its own.
- [Checkout customizations](https://appfleece.com/integrations/checkout): custom fields, upsells and validation in the Shopify Plus checkout.
- [Cash on delivery](https://appfleece.com/integrations/cash-on-delivery): COD with fees on Shopify.
- [Blog](https://appfleece.com/blog): articles on Shopify development and e-commerce.
- [Contact](https://appfleece.com/contact): start a project with us.
## This website in other languages
- English: https://appfleece.com (llms.txt: https://appfleece.com/llms.txt)
- Czech: https://appfleece.cz (llms.txt: https://appfleece.cz/llms.txt)
- German: https://appfleece.de (llms.txt: https://appfleece.de/llms.txt)
## Frequently asked questions
### What does Shopify Plus actually cost?
In Czechia Plus starts at €2,100 a month, with a variable fee for very large merchants. We work out what you save on fees and what Plus actually unlocks for you.
### What does Plus add over the Advanced plan?
Mainly: custom Shopify Functions, pre-purchase checkout customization, advanced B2B, multiple stores, ~10× API limits, unlimited staff, and priority 24/7 support. Markets, basic B2B and Flow are on lower plans now, so they're not reasons to upgrade.
### Do I need Plus to sell internationally or do B2B?
No. Shopify Markets and B2B are available on standard plans too, B2B with up to three catalogs. Plus pays off for extensive B2B with unlimited catalogs and deeper customization. For high-volume merchants the lower transaction fees often cover the cost of Plus on their own.
### Is migrating to Plus risky for SEO or uptime?
Not when it's done right. We run a phased migration with a full 301 redirect map, SEO preservation and data-integrity checks, so your store stays online. Short ranking swings after a move are normal, Google says. The redirects are what keep rankings in the long run.
### How long does a Plus build or migration take?
It depends on scope, but a typical Plus migration runs ~8–16 weeks and a focused custom build can be quicker. After a short discovery we give you a concrete timeline, not a vague range.
### Can you take over a Plus project another agency started?
Yes, we regularly take over stalled or half-built Plus projects. We audit what exists, stabilise it and carry on from there. That said, we prefer to work with merchants from the very start of the build.
### Do you keep working with us after launch?
We take on few projects precisely so we can stay with them. After launch the same collaboration continues: new features, integrations, new markets and whatever Shopify is changing.
### Which apps and integrations do you work with?
We offer our own Shopify apps at discounted partner pricing and build custom apps and integrations. We connect ERP, PIM and WMS systems as well as tools like Klaviyo, Recharge and Gorgias. When off-the-shelf won't do, we write custom Shopify Functions.
This file contains the full content of the Appfleece website (appfleece.com) and its blog in plain Markdown, intended for AI assistants and LLM-based search engines. A shorter curated overview is available at /llms.txt.
# Blog articles (full text)
---
## How to Connect European Carriers and Pickup Points to Shopify
- URL: https://appfleece.com/blog/how-to-connect-european-carriers-and-pickup-points-to-shopify
- Published: 2026-08-30
- Author: Adam Charvat
- Other language versions: https://appfleece.cz/blog/jak-napojit-celou-expedici-na-shopify | https://appfleece.de/blog/dhl-dpd-hermes-und-weitere-paketdienste-mit-shopify-verbinden
Across most of Europe, parcels do not go to the doorstep. They go to a locker or a pickup point. And that is exactly where Shopify stores stumble: the platform has no native concept of a pickup point, so the most common European delivery method looks impossible. It is not. You need one app and your own carrier contracts. And since we build this kind of fulfillment all the time, we wrote down how it all fits together.
Let's be clear about what “the whole fulfillment” means: the customer picks a pickup point, you print the label, hand the parcels to the carrier, the order marks itself as fulfilled and the customer receives tracking. Plus cash on delivery, popular in Central Europe, that reconciles itself once the parcel is collected. All from the Shopify admin, without hopping into carrier systems.
## Where the customer picks a pickup point
We built [Globe](https://globe.appfleece.com) for this, and pickup point selection deliberately exists in four places, because every store runs a different plan and serves different customers:
- **The cart widget:** an interactive map with all carriers at once, works on **every Shopify plan** and is enabled in the theme editor, no coding. This is the route for most stores.
- **A map directly in checkout:** native selection at checkout, requires Shopify Plus.
- **Nearest points as shipping rates:** on the Advanced plan and on annual Grow, the three nearest locations appear right among the shipping options (“0.4 km · DPD · Pickup point”).
- **Post-purchase selection:** on the thank-you page. Not a detail: express payments like Apple Pay or Shop Pay can skip the shipping step, and the order would otherwise arrive without a point. The safety net is completed by an automatic reminder email and a validation rule that keeps an order without a selected point from leaving checkout.
Altogether there are over 5 million pickup points from 65+ carriers across 180+ countries on offer: [DHL](https://www.dhl.com/) lockers and service points, [InPost](https://inpost.eu/) Paczkomaty, Mondial Relay, [PostNord](https://www.postnord.com/), [Packeta](https://www.packeta.com/) and dozens more. And if you run your own stores or lockers, they can go on the map too.
## Carriers: labels on your own contracts
Most pickup-point apps stop at the map. Globe also prints the labels: **[DPD](https://www.dpd.com/), [GLS](https://gls-group.com/), [UPS](https://www.ups.com/), [Packeta](https://www.packeta.com/), PPL, Magyar Posta, FoxPost and One by Allegro** are among the 15 carriers Globe prints labels for directly through their APIs, in bulk from the orders overview, or one by one. Carriers without a direct integration, DHL and InPost included, are handed their orders via a configurable CSV/XLS export into the carrier's own system. And printing works for home delivery too, not just pickup points.
The key phrase is “your own contracts”: labels print on your carrier account, so you keep **your own negotiated prices**, pickups and invoicing. The app does not resell transport, does not mark it up and takes no percentage of it.
And if you have no contracts of your own, or volumes too small to negotiate good rates for, labels can also be printed through [Boxpi](https://boxpi.com/) by [GymBeam](https://gymbeam.com/): a platform with pre-negotiated carrier rates across 16 European countries that often beat a direct contract.
## What fulfillment looks like in practice
1. **Select the orders** in the overview and hit “Create shipping labels”. The app first checks for anything that would break the run, say an unpaid order without cash on delivery.
2. **Print the labels and the handover list** for the whole batch, including locker drop-off codes where the carrier uses them.
3. **The rest happens by itself:** the order gets fulfilled, the customer receives tracking, and delivery statuses sync back into Shopify.
If you want, automate step one as well: with Shopify Flow, labels can be created automatically when an order is paid, and orders can have the nearest pickup point assigned for them.
**Cash on delivery** travels on the label including the amount and currency, and with selected carriers the order marks itself as paid once the parcel is collected. If you want to charge a COD fee at checkout, that is our other app, [Payflow](https://apps.shopify.com/payflow). Globe deliberately stays out of payment-method fees.
## What it costs
One flat fee: **$15 per month** ($30 on Shopify Plus), with two months free on annual billing. It includes an unlimited number of orders, labels and carriers, with no credits and no per-parcel surcharges. The first 14 days are a free trial.
It is worth doing the math: with fulfillment tools priced per shipment, costs grow with every order. A flat fee means you pay the same in peak season as in January.
## What to prepare
You need three things to launch:
1. **A contract and API credentials from the carrier:** issued by the carrier with the contract you most likely already have.
2. **Shipping mapping:** which shipping option in Shopify belongs to which carrier; shipping prices stay in Shopify.
3. **Sender details:** the address for the labels and a bank account if you ship cash on delivery.
Pickup points themselves work within minutes of installing; with COD and mapping, plan for an hour. Globe has documentation and in-app support in seven languages, and a [{appStat('globe', 'rating', 'en')} rating from {appStat('globe', 'reviews', 'en')} reviews](https://apps.shopify.com/globe) on the Shopify App Store.
If you are still planning pickup-point delivery, perhaps for a European market where lockers are the default, [get in touch](/contact). We do this all the time.
### Frequently asked questions
**Does Globe charge per label or per order?**
No. Globe costs $15 per month ($30 on Shopify Plus) and includes an unlimited number of orders, labels and carriers. Shipping itself you pay to the carrier under your own contract. The app does not resell or mark up transport.
**Do I need Shopify Plus for pickup points?**
No. The map widget in the cart works on every Shopify plan, with no code changes. Shopify Plus is only needed for picking a point directly in checkout; on the Advanced plan and on annual Grow you can additionally offer the nearest points as separate shipping rates.
**Which carriers can Globe print labels for?**
Fifteen carriers have a direct API integration, among them DPD, GLS, UPS, Packeta, PPL, Magyar Posta, FoxPost and One by Allegro. For carriers without a direct integration, such as DHL or InPost, Globe offers pickup points at checkout and hands the orders over via a configurable export to the carrier's own system.
**What about Apple Pay orders that skip the pickup point selection?**
Express payments (Apple Pay, Google Pay, Shop Pay) can skip the shipping step. Three safeguards handle it: picking a point on the thank-you page right after purchase, an automatic reminder email, and a validation rule that stops an order without a point from leaving checkout at all.
---
## How to Automatically Celebrate Customer Name Days on Shopify
- URL: https://appfleece.com/blog/how-to-automatically-celebrate-customer-name-days-on-shopify
- Published: 2026-08-28
- Author: Adam Charvat
- Other language versions: https://appfleece.cz/blog/jak-automaticky-poprat-zakaznikum-k-svatku-na-shopify | https://appfleece.de/blog/kunden-automatisch-zum-namenstag-gratulieren-auf-shopify
If you sell to Czechia, Slovakia or Poland, there is a marketing occasion your competitors barely use: the name day. Birthday campaigns have a fundamental problem in these markets: you need a birth date, and only a fraction of customers will hand it over. A name day is the opposite case: all you need is a first name, and you have that from the address of every single customer. A name-day greeting reaches almost your whole customer base, not just the sliver that filled in a birthday.
You will not do this by hand, of course. We built a free app for it called [Vocato](https://apps.shopify.com/vocato). It adds each customer's name-day date and a correctly declined greeting to metafields. The rest is handled by a customer segment and a single Shopify Flow. The whole setup takes ten minutes and works with the Czech, Slovak and Polish calendars.
## Step 1: Install Vocato
Install [Vocato from the App Store](https://apps.shopify.com/vocato). It is free. After installation the app automatically fills in these metafields for every customer:
- `vocato.nameday_cz`: the name-day date (for segments),
- `vocato.nameday_text_cz`: the name day in readable form, e.g. “June 29”,
- `vocato.vocative_cz`: the greeting in the vocative case, so “Petře” instead of “Petr”.
It works for new and existing customers alike, and for the Slovak and Polish markets you just swap `_cz` for `_sk` or `_pl` in the keys.
## Step 2: Create a “Name day today” segment
In your admin, open **Customers → Segments** and create a new segment with this query:
**Segment query: name day today**
```
anniversary('metafields.vocato.nameday_cz') = today
```
The `anniversary()` function compares only the day and month, so the segment works again every year. And it is dynamic: each customer enters it on the morning of their name day and leaves it the next day. Vocato has already enabled the name-day metafield for use in segments, so there is nothing else to configure.
One recommendation: a congratulation is a marketing email, so add consent to the query:
**The same, limited to customers subscribed to marketing**
```
email_subscription_status = 'SUBSCRIBED' AND anniversary('metafields.vocato.nameday_cz') = today
```
## Step 3: Set up Shopify Flow
In Shopify Flow, create a new workflow:
1. **Trigger:** “Customer joined segment”, then pick the “Name day today” segment.
2. **Action:** “Send email” with `{{ customer.email }}` as the recipient.
The workflow runs on the name day for every customer who enters the segment. In the email body, use the greeting from the metafield, falling back to the plain first name when no declined form exists:
**Correctly declined greeting for the Flow email**
```
Milý {{ customer.metafields.vocato.vocative_cz | default: customer.first_name }},
```
## What to put in the email
A short congratulation with no sales pressure works on its own. It is an email your competitors do not send, and it arrives on a day when everyone else is congratulating the customer too. If you want to add a token, prefer a gift or store credit over a blanket discount: a name-day discount teaches customers to wait for discounts. And if you run a loyalty program on [Charm](https://charmloyalty.com), it can award name-day points automatically without any segment or Flow. Vocato is all it takes as the data source.
## Alternative: Klaviyo or Omnisend
If you send email through Klaviyo or Omnisend, you do not need Flow. Their Shopify sync pulls in the `vocato.nameday` and `vocato.vocative` metafields as profile properties. Just create a flow triggered on the name-day date property, repeating yearly (only day and month are compared, the placeholder year is ignored).
## Bonus: declined greetings in every email
Once you have Vocato, the declined greeting is worth using in notification emails too: order confirmation, shipping updates and so on. Guests without a customer account shop there as well, which is why Vocato keeps a shop-level name dictionary. Here is the snippet with the complete fallback chain (dictionary by checkout name → customer metafield → plain first name):
**Greeting for notification emails that works for guests without an account too**
```
{%- assign fn = billing_address.first_name | downcase -%}
{%- assign key = fn | slice: 0 | prepend: "vocatives_cz_" -%}
Milý {{ shop.metafields.vocato[key][fn] | default: customer.metafields.vocato.vocative_cz | default: billing_address.first_name }},
```
Snippets tailored to your exact market, including email subject lines, are generated by the app in its Documentation section based on your shop's country.
If you would like a hand with the setup, [get in touch](/contact).
### Frequently asked questions
**Is Vocato free?**
Yes, Vocato is a free app. Install it from the Shopify App Store and the name-day and greeting metafields fill in automatically for both new and existing customers.
**Which markets does it cover?**
Vocato works with the Czech, Slovak and Polish name-day calendars. The metafields carry _cz, _sk and _pl suffixes, so you use the variant for your market in the segment and in the email. Slovak deliberately keeps first names in the nominative case, since modern Slovak does not use the vocative for names.
**What if a name has several dates in the calendar, or none at all?**
When a name has several name days, Vocato stores the most common date (and all of them in a supplementary JSON metafield). When a name is not in the calendar, the metafield is simply not written, so the customer never enters the segment and never receives an email. The automation never congratulates by mistake.
**Do I have to fill anything in manually?**
No. Vocato reads the first name from the customer's address and fills in the name-day date and the greeting by itself, unlike birthdays, where you need a birth date from the customer and most never provide one.
---
## How to Plan Discount Campaigns Around the 30-Day Price Rule
- URL: https://appfleece.com/blog/how-to-plan-discount-campaigns-around-the-30-day-price-rule
- Published: 2026-08-25
- Author: Adam Charvat
- Other language versions: https://appfleece.cz/blog/jak-planovat-slevove-kampane-pravidlo-30-dni | https://appfleece.de/blog/rabattkampagnen-planen-30-tage-regel
Since May 2022, an EU-wide rule requires every shop selling to consumers in the European Union to display the lowest price the product sold for in the last 30 days next to any announced discount. It comes from Article 6a of the EU Price Indication Directive, added by the Omnibus Directive. It applies to sales into the EU no matter where your store is based. One sentence in the law, and yet it can sink a campaign that marketing spent months preparing.
We deal with this rule with our clients all the time: when planning campaigns, when implementing it technically, and at the point where a consumer-protection authority was already asking questions. The same mistakes keep coming up, so we wrote down how to get it right. This is not legal analysis. It is practice.
## The law does not want the “price before the discount”
The most widespread misconception first. The figure the law requires is not the price before the discount. It is **the lowest price the product actually sold for in the 30 days before the first price reduction**, and it stays the same for the entire campaign.
Two consequences follow that surprise almost everyone:
**Deepening the discount resets nothing.** If you raise a discount from −50% to −60% halfway through a campaign, you are still comparing against the price before the campaign started. Legally it is one campaign, not two.
**The reference survives the end of the campaign.** For another 30 days after it ends, the sale price counts as the lowest. A campaign that follows too soon therefore looks different from what marketing expected. Here is an example.
## The yo-yo effect: a discount labelled “it was cheaper a moment ago”
A model example we run into over and over:
| Period | Price |
| --- | --- |
| until Jun 30 | €19.90 (first campaign) |
| Jul 1–20 | €49.90 (regular price) |
| from Jul 21 | €24.90 (new campaign) |
The new campaign starts three weeks after the first one ended. The lowest price of the last 30 days is therefore €19.90, less than the sale price. The shop advertises a discount, and the mandatory figure right next to it says: this was cheaper three weeks ago.
It is not a system error, just the plain arithmetic of two campaigns launched back to back. And it is not limited to individual products. When two catalogue-wide campaigns collide like this, the reference breaks for dozens of items at once.
There are only two ways out. Either go below the previous minimum, so the discount is real even against the first campaign. Or wait until the old campaign drops out of the 30-day window. Hence the one rule to take away from this article: **leave 30 days of regular pricing between two campaigns on the same goods.**
A note on terminology: this whole example is about ordinary discount campaigns. A genuine clearance, typically selling off stock close to its expiry date, follows its own legal rules and is not what this article covers.
## A discount that lasts a year is not a discount
Every now and then we come across a product that has been “on sale” continuously for over a year. It never sold at its regular price during that time, so there is nothing to prove the lowest price with.
A discount is a time-limited campaign. When it lasts a year, it is not a discount but a regular price with a crossed-out fiction above it, and during an inspection you have no way to back it up. If a product should be cheaper permanently, lower its regular price.
## Bundles: a more common offence than the 30-day rule itself
This is only half-related to the 30-day window, but in practice it is the most common offence of all, so it belongs here.
A typical “2+1 free” bundle sells for €50 and has €75 crossed out, the sum of the items bought separately. It looks like a discount. Except:
- The bundle never sold for €75. It was created as a product at €50.
- A crossed-out price is a visual discount announcement. Customers read it as “was €75, now €50”, which never happened. This is no longer about the 30-day rule but about a misleading commercial practice: the impression of a price advantage by reference to a price that never applied to the product.
- And it cannot be “fixed” by adding the lowest-price figure. That would just be another confusing number on the page.
The correct solution is not to use the strikethrough at all. Comparing with buying separately is a legitimate argument and it sells well. It just has to be written out, not crossed out:
As an example, you could write: *“Bought separately, these items would cost €75 in total, which is €25 more than this bundle.”* It is clear what the price is being compared with. Naming helps too: “Set of 3 (2+1 free)” carries the advantage on its own.
The same applies to a crossed-out manufacturer's suggested retail price. If you never sold at it, it is the same case.
## A code in the announcement bar is a discount too
Site-wide discount codes are the most common campaign format and almost nobody handles them: the announcement bar says “SALE15 on everything” and nothing is crossed out on the products. It feels like an exception to the rules: no crossed-out price, no obligation. It is not.
A publicly advertised code is a discount announcement exactly like a crossed-out price. For the products it applies to, the lowest price of the last 30 days should be displayed, even though the product price stays written “undiscounted”. And everything else in this article applies too: the reference is fixed before the campaign starts, raising the code from 15% to 20% does not reset it, and two code campaigns back to back produce the same yo-yo as two crossed-out ones.
So plan a code campaign exactly like a classic discount. An individual code for a specific customer, such as a loyalty reward or an apology for late delivery, is a different situation and not a public discount announcement.
## Six rules for planning campaigns
1. **Plan your campaign calendar ahead.** Leave 30 days of regular pricing between campaigns on the same goods. Not because the law explicitly demands it, but because otherwise the reference from the last campaign bleeds into the new one.
2. **Do not copy other shops' campaigns.** “This shop does it that way, and they are big, so they must have it right” is the shortest path to trouble. From the outside you cannot see their price history, their terms and conditions or the legal interpretation they rely on. And above all: the reference is calculated from your history, not theirs. The same discount can come out clean elsewhere and as a yo-yo for you.
3. **Do not experiment with prices across the board.** Every short price cut writes itself into the reference for 30 days. Test on a few products, not the whole catalogue.
4. **Budget for a return to the regular price.** Thirty days of regular pricing before a big campaign is legitimate preparation. That is how you “clean” your history before Black Friday.
5. **Only cross out genuine former prices.** Not bundle sums, not suggested retail prices, not prices from elsewhere. Write comparisons as sentences.
6. **Keep a price log.** Without timestamped snapshots you cannot prove what was displayed when. We log every price change for our clients. When an inspection came, it was the only way to prove what the customer actually saw.
## And what about Shopify?
Short answer: nothing. Shopify neither calculates nor records the 30-day lowest price. Most App Store apps handle it as a rolling figure: “the lowest price of the last 30 days as of today”. That is a different number from what the law wants: the law fixes the price before the campaign starts. During a campaign, a rolling calculation gradually catches up with the sale price and the figure loses its meaning. If you leave the calculation to an app, check which of the two numbers it actually computes.
For [EcoHaus](https://ecohaus.cz) we built it to measure. On every sale the store shows the lowest price from the 30 days before the sale started, handles discount codes and euro prices, and logs every price change. You will find it among [our integrations](/integrations#custom).
---
One last note. This is practice from our projects, not legal advice. The details of the 30-day rule differ between EU member states, and several of them are disputed even among lawyers, from loyalty prices to what exactly counts as a “discount announcement”. Before you build campaigns close to the edge, run the wording past a lawyer. And if you are dealing with this on Shopify, [get in touch](/contact).
### Frequently asked questions
**What exactly does a shop have to display next to a discount?**
The lowest price the product actually sold for in the 30 days before the first price reduction. The figure does not change during the campaign, not even when you deepen the discount. And for another 30 days after the campaign ends, the sale price counts as the lowest.
**Does the 30-day reference reset when I increase the discount mid-campaign?**
No. Deepening a discount, say from −50% to −60%, is still the same campaign and is compared against the price before it started. A new window only starts once the price returns to its regular level.
**Can I cross out the sum of individual items on a bundle?**
No. A crossed-out price announces a discount from a price the product used to sell for. The sum of individual items is not such a price, because the bundle never sold for it. Write the comparison as a sentence next to the price instead of crossing anything out.
**Does the rule also apply to a site-wide discount code in the announcement bar?**
Yes. A publicly advertised code (“SALE15 on everything”) is a discount announcement even though nothing is crossed out on the products. The lowest price of the last 30 days must be shown for the products the code applies to. An individual code for a single customer is not a public announcement.
**Does Shopify calculate the 30-day lowest price automatically?**
No. Shopify neither calculates nor records the reference price. Most App Store apps calculate a rolling minimum up to today, which is a different number from what the law requires: the law fixes the lowest price before the campaign starts.
---
## The New EU Withdrawal Button: What Your Shopify Store Must Do 🇪🇺
- URL: https://appfleece.com/blog/new-eu-withdrawal-button-for-shopify-store
- Published: 2026-06-19
- Updated: 2026-06-19
- Category: Legal & Compliance
- Author: Jan Němec
- Other language versions: https://appfleece.cz/blog/nove-eu-tlacitko-pro-odstoupeni-od-smlouvy | https://appfleece.de/blog/neuer-eu-widerrufsbutton-fuer-shopify
**From June 19, 2026**, a new EU rule applies: every online store that sells to consumers in the EU must offer an easily accessible **“withdrawal button”** on its website. This is not a new right. The 14-day cooling-off period has existed for years. What is new is that customers must have a simple online way to exercise it. In this article we explain exactly what the law requires, who it applies to, the penalties for non-compliance, and how to handle it in practice on Shopify.
## What changes on June 19, 2026?
EU Directive **[2023/2673](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32023L2673)** introduces a mandatory electronic “withdrawal function”, in practice a clearly visible button or link through which a customer can withdraw from a contract just as easily as they ordered. The rule builds on the existing **14-day right of withdrawal** (the cooling-off period) and standardizes how the customer exercises it.
## Who it applies to (and who it doesn't)
- **Every store selling to consumers in the EU:** regardless of where the business is based. It is enough that you target customers in an EU country.
- **B2B sales are out of scope:** the obligation does not cover contracts concluded between businesses.
- **Right-of-withdrawal exemptions:** where there is no right of withdrawal by law, you don't need the button either. This notably covers custom-made and personalized goods, perishable goods, unsealed hygiene goods, and digital content the customer started after giving explicit prior consent and acknowledging they lose the right of withdrawal.
In Shopify you can also mark specific products or collections as **“final sale”**. Customers then can't request a return or cancellation for them through the portal. This is the practical way to exclude **made-to-order goods** or, for example, a **cash-on-delivery fee handled as a separate product** that doesn't make sense to return on its own. The toggle is only the mechanism, though. The statutory exemption applies where the goods genuinely qualify (e.g. truly made-to-order or personalized), not because you marked them final sale.
## What exactly the button must do
To comply with the directive, the “withdrawal function” must meet four requirements:
- **Prominently displayed and easy to reach:** the button or link must be clearly labeled, easily accessible throughout, and not buried behind disproportionate steps. For a guest-checkout purchase, forcing an account login can be such a step.
- **Two-step confirmation:** the customer first clicks “withdraw from contract”, enters their name and an order reference, and then confirms with a “confirm withdrawal” button.
- **Automatic confirmation email:** after submission, the store must send the customer an acknowledgement of receipt on a durable medium (typically email), without undue delay, including the time of receipt and the content of the withdrawal.
- **Available throughout the period:** the function must be available on the site for the full 14 days during which the customer can withdraw.
## How to handle it on Shopify: 3 paths
Shopify has published its own guidance, and you essentially have three routes: its free **native self-serve** flow, a **login-free form** built from free Shopify tools, or a purpose-built **vetted app**. Here's how each works and the trade-offs.
### 1) Shopify native tools (free)
Shopify's built-in **Self-serve returns and cancellations** cover the core of what the directive asks for, automatically and for free. Set them up in three steps:
1. **Turn on Self-serve returns and cancellations** (Settings → Customer accounts) and set the conditions in Return and cancellation rules.
2. **Set rules per market.** For the **EU**, enable returns with a **14-day window from delivery**; for markets **outside the EU** you can leave returns off, so the option isn't offered there.
3. **Add a visible “Withdrawal from Contract” link in your footer**, pointing to the customer account orders page, so the option is easy to find.
The customer then requests it from their account; the request lands in your admin, **Shopify automatically emails them a confirmation**, and you process it there. That is far clearer than parsing a free-text form with an order number.
One caveat: the whole flow runs through a customer-account sign-in. That means no extra friction if your store requires an account, but a gray area for guest checkout.
**Upside:** fully automated and free, ideal if your store already requires an account.\
**Downside:** the entry sits behind a (light) login, a gray area for guest checkout.
### 2) A login-free form
Built mostly from free Shopify tools (**Shopify Forms**) and reachable without any login:
1. In **Shopify Forms**, create a form with **name, email and order number** fields (a reason field is optional, since withdrawal needs no reason). Set marketing consent to **don't subscribe**, because a withdrawal request isn't a marketing opt-in.
2. Put the form on a **standalone, public page** (e.g. /pages/withdrawal) reachable without login, and turn on **Email notifications** (“Send an email for each submission to this form”) so you're alerted to each request. The notification goes to the store email listed under store details (no Shopify Flow or extra app needed).
3. **Link to it prominently from your footer** (and your terms and conditions), so the option is easy to find.
4. The customer still needs the **durable-medium confirmation**. An on-screen “thank you” doesn't count (it isn't durable). Send it as a **transactional email**: if you already use an email platform like **Ecomail or Klaviyo**, use its *transactional* message. Transactional ≠ marketing, so it needs no consent and no unsubscribe footer, and costs nothing extra when you're already on the plan. Fire it from the **submission event**: Shopify Flow's “Metaobject entry created” → your ESP's *track event* action, sent as transactional.
No such platform? A small transactional-email app does the same. (Don't force a marketing opt-in or route it through the marketing channel just to send it, because that's a GDPR consent problem. For very low volume you can also reply by hand.) Then process the cancellation or refund in your admin, where Shopify emails the customer the outcome for free.
**Upside:** genuinely login-free, built mostly from free Shopify tools.\
**Downside:** the automatic durable-medium confirmation isn't free-native. It is either manual (low volume only) or runs via a transactional platform (Ecomail/Klaviyo); without one you'll likely end up paying for a tool anyway.
### 3) A vetted app
If you'd rather not build anything, there are apps made specifically for the withdrawal button. They add a **login-free button, a two-step form, and an automatic confirmation email** in line with the directive. One is **Revoq – EU Withdrawal Button**; some cookie-banner / GDPR apps have also added it as a feature (e.g. **Pandectes GDPR Compliance**, though that's primarily a cookie-banner tool).
**Upside:** ready in a few clicks: login-free, two-step and a compliant confirmation out of the box.\
**Downside:** a monthly fee. But if path 2 would need a paid app for the confirmation anyway, a purpose-built app is arguably the cleanest choice from the start.
## Don't forget your terms and conditions
Whichever path you choose, **describe the right of withdrawal and its exemptions in your terms and conditions**. If you sell made-to-order goods or other products that fall under the statutory exemptions, state it clearly. You'll avoid disputes and unnecessary requests.
## And what's at stake if you don't comply
- **Extended period:** if you fail to properly inform the customer about the right of withdrawal, the period extends to up to **12 months and 14 days**, so the customer can return goods much later.
- **Fines:** widespread, cross-border infringements can carry fines of up to **4% of annual turnover** (in some member states even higher caps apply).
- **Legal warnings:** from competitors and consumer-protection bodies.
## Summary
- From **June 19, 2026** you must offer a visible withdrawal button.
- It must be **prominently displayed and easy to reach**, **two-step** (name + order → confirm), and send an **automatic confirmation** on a durable medium (email).
- **Shopify native** is fast, free, and covers the core mechanics; set rules per market (EU = 14 days, non-EU can be no returns). A login is fine if your store requires an account, but for guest checkout it sits in more of a gray area.
- **A login-free form** (Shopify Forms) needs no login and is mostly free, but the automatic confirmation usually rides on a transactional email platform (or a paid app).
- **A vetted app** is the fastest, ready-made route. It is paid, but compliant out of the box.
- Don't forget your **terms and conditions** and the **exemptions** (made-to-order goods, etc.).
*This article is for information only and is not legal advice. Consult a lawyer about your specific solution and exemptions.*
### Frequently asked questions
**What is the EU withdrawal button?**
It is a mandatory electronic function introduced by EU Directive 2023/2673, effective June 19, 2026. It is a clearly labeled button or link on your store that lets a consumer easily exercise their existing 14-day right of withdrawal. It is not a new right, just a new, standardized way to exercise it online.
**Do Shopify's native self-serve returns satisfy the law on their own?**
It depends on how purchases work in your store. The native self-serve returns cover the mechanics and the automatic confirmation email. If your store requires an account to purchase, requiring login at withdrawal is fine. But if you allow guest checkout, the login is an extra step, and the directive wants withdrawal to be at least as easy as buying. In that case add a login-free entry point (a footer link to a public form), a vetted app, or a custom solution.
**Does this apply to me even if I'm not based in the EU?**
Yes. The obligation applies to any store selling to consumers in the EU, regardless of where the business is located. What matters is that you target customers in an EU member state. It does not apply to pure B2B sales between businesses.
**How is the 14-day withdrawal period counted?**
For goods, the period generally starts on the day the consumer (or a person they designate) takes physical possession of the goods. For services and digital content, it starts when the contract is concluded. If you fail to properly inform the customer about the right of withdrawal, the period extends to up to 12 months and 14 days.
**Do I need the button for made-to-order goods too?**
No. You only need the button where a right of withdrawal actually exists. The statutory exemptions have no right of withdrawal, so no button is required for them. They notably include custom-made and personalized goods, perishable goods, unsealed hygiene goods, and digital content the customer started after explicit prior consent and acknowledging the loss of the withdrawal right. Always describe these exemptions in your terms and conditions.
---
## How to Set Discounts for Card Payments Only on Shopify 💳
- URL: https://appfleece.com/blog/set-shopify-discounts-to-prepaid-orders-only
- Published: 2025-10-26
- Updated: 2025-10-26
- Category: Payment Methods
- Author: Jan Nemec
- Other language versions: https://appfleece.cz/blog/slevy-pouze-pro-platbu-kartou-na-shopify | https://appfleece.de/blog/rabatte-nur-fuer-kartenzahlung-auf-shopify
If you're running a Shopify store in markets where Cash on Delivery (COD) is popular, such as India, the Middle East, Europe, or Latin America, you already know the challenge: **COD orders have higher return rates, create cash flow issues, and increase operational costs**. The solution? Incentivize customers to choose prepaid payment methods instead.
Shopify doesn't natively offer the ability to limit discounts based on payment methods. This guide shows you how to **create prepaid-only discounts and hide COD when discount codes are applied** using [Payflow](https://apps.shopify.com/payflow), which adds the conditional logic Shopify is missing, with no complicated coding or post-purchase order editing.
## How to Set Up Prepaid Discounts with Payflow
The core principle is simple: **create a discount code, then use Payflow to hide COD when that discount is applied.**
**Quick Setup Option:** Download our [ready-made Payflow template](/files/hide-cod-when-discount-applied.json), import it into your store, adjust the discount percentage range if needed, and set the status to active. Done!
### Step-by-Step Setup:
First, create your discount code in Shopify (**Discounts** → **Create discount** → **“Discount code”** → set the percentage, e.g., 10%).
1. Install the [Payflow](https://apps.shopify.com/payflow) app and navigate to **“Create customization”**
2. Choose **“Hide payment methods”** (or “Hide shipping methods” if you set up COD as a shipping rate).
> Note: Most merchants use COD as a payment method only. However, if you've set up COD as part of your shipping rate (e.g., “COD Shipping +$5”), choose “Hide shipping methods” instead.
3. Set up discount conditions to target your discount code by percentage range: Add condition **“Discount percentage”** → **“Greater than or equals to”** → **9**, then add second condition (AND operator) **“Discount percentage”** → **“Less than or equals to”** → **11**.
> Note: Due to Shopify limitations, you cannot target discount codes by name. Instead, target by percentage range. For a 10% discount, use 9-11% range to ensure it's captured.
4. Select **“Cash on Delivery (COD)”** payment method to hide (you can select multiple payment methods if needed).
5. Save and test by applying your discount code at checkout to verify the selected payment methods or shipping methods disappear.
## Why Offer Prepaid Order Discounts?
Encouraging prepaid orders makes business sense:
- Reduce return rates: COD orders are 3-5x more likely to be returned or refused at delivery.
- Improve cash flow: Get paid immediately instead of waiting for delivery completion.
- Lower operational costs: Save on COD handling fees, failed delivery attempts, and reverse logistics.
- Decrease fraud risk: Prepaid orders eliminate fake orders and intentional non-acceptance.
## Why Use Payflow?
Unlike other apps that require order editing or post-purchase adjustments, Payflow offers:
- Real-time conditional logic - Instant hide/show based on any condition
- No order editing - Everything happens during checkout, not after
- Unlimited conditions - Combine cart value, products, tags, location, shipping, payment methods
- Works on all plans - Including Shopify Basic
- Visual rules builder - No coding required, easy to set up
- 24/7 live chat support - Friendly customer help whenever you need it 🤗
## Conclusion
Offering prepaid order discounts while managing COD strategically can help you increase prepaid orders by 20-40%, reduce return rates, improve cash flow, and lower operational costs.
Setup takes just a few minutes, and you can adjust your rules anytime based on what works best for your business.
### Frequently asked questions
**Does this work with automatic discounts or only discount codes?**
Yes, this works with both manual discount codes and automatic discounts.
**Will customers see the discount before selecting a payment method?**
Yes, customers apply the discount code in the cart or at checkout before selecting their payment method. Once applied, COD will automatically disappear.
**Can I hide multiple payment methods at once?**
Yes, when setting up the customization in Payflow, you can select multiple payment methods to hide when the discount conditions are met. This is useful if you want to restrict several payment options when discounts are applied.
**Can I target discount codes by name instead of percentage?**
No, due to Shopify API limitations, you cannot directly target discount codes by their name (e.g., “ONLINE10”). Instead, you must target them by percentage range. For a 10% discount, use 9-11% range to ensure it captures the discount.
**What if I use COD as a shipping method instead of a payment method?**
If you've set up COD as part of your shipping rate (e.g., “COD Shipping +$5”), choose “Hide shipping methods” instead of “Hide payment methods” when creating your Payflow customization. The rest of the setup remains the same.
**Can customers still see COD if they remove the discount code?**
Yes, if a customer removes the discount code at checkout, COD will become available again automatically. The rules are applied in real-time based on the current cart conditions.
**Do I need Shopify Plus to use this feature?**
For most payment methods including COD, Payflow works on all Shopify plans (Basic, Shopify, and Advanced). However, if you want to hide credit card payment methods and your store is based in USA or Canada, Shopify Plus is required. For stores in other countries, all plans are supported.
---
## Add a Payment QR Code to the Thank-You Page Easily with the Payflow App 💸
- URL: https://appfleece.com/blog/add-a-payment-qr-code-to-the-thank-you-page-with-payflow
- Published: 2025-07-08
- Updated: 2025-07-26
- Author: Adam Charvat
- Other language versions: https://appfleece.cz/blog/pridejte-platebni-qr-kod-na-stranku-s-podekovanim | https://appfleece.de/blog/zahlungs-qr-code-auf-der-dankesseite-mit-payflow-hinzufuegen
QR code payments remain popular in the Czech Republic and Slovakia. They let customers pay invoices without manually rewriting payment details. For merchants, this also reduces errors and increases the chance the order is paid immediately after it is created.
> **Note:** QR payments via bank transfer are a standard primarily in the Czech and Slovak markets. This guide is intended for stores serving customers in the Czech Republic and Slovakia.
In [our previous article we showed you how to add a QR code to the confirmation email](/blog/how-to-add-a-qr-code-for-bank-transfer-payment). Now we'll look at adding a QR code to Shopify directly on the **thank-you page after an order is completed**. This guide is intended for stores that have already upgraded to the new thank-you and order-status pages (mandatory by August 2026, and by August 2025 for Shopify Plus).
Prepare the following details:
- **For a CZK bank account:** Your account number in the classic format
- **For a EUR bank account:** Your account number in IBAN format
*Looking for a quick overview? See our [QR code payments on Shopify](/integrations/qr-code-payments) page.*
## Procedure for adding a QR code in the Payflow app
The Payflow app makes it easy to customize shipping and payment for your store. Based on several possible conditions, you can hide, rename, or reorder various payment and shipping methods.
If you don't have the app in your store yet, simply install it from the [Shopify App Store](https://apps.shopify.com/payflow).
Create a new customization and choose the **Payment instructions** option.
A template loads, so all you need to do is choose whether you use a **Czech or Slovak QR code** and add your account number.
Likewise, choose which variable symbol you use; we recommend keeping the default setting and using the order number you see in the admin.
You can also define additional payment methods for which you want to display the QR code, e.g. if you don't use the default **Bank Deposit** (check under **Settings** > **Payments** in Shopify).
After saving the new customization, the app shows you a notice to add the app block on the thank-you page. Clicking it takes you to the editor, where you add the app block, and everything is set.
We recommend testing with a test order after activation and scanning the QR code with your bank's app to verify everything displays correctly.
### Frequently asked questions
**Does the QR payment code work for all Czech and Slovak banks?**
Yes, QR payment codes are standardized and work with all major Czech and Slovak banks, including Česká spořitelna, Komerční banka, ČSOB, Moneta Money Bank, Air Bank, Fio banka, mBank, VÚB, Tatra banka, Slovenská sporiteľňa, and others. You just need a banking app with a QR code scanning feature.
**Do I need new thank-you pages in Shopify to add a QR code?**
Yes, the QR code can only be added to the new Shopify thank-you pages (Thank you and order status pages). If you don't yet have upgraded thank-you pages, you can activate them in the Shopify admin. The upgrade is mandatory by August 2026 for regular stores and by August 2025 for Shopify Plus.
**How much does the Payflow app cost for adding QR codes?**
You can start using the Payflow app for free, and setting up the QR code is included. The paid plan then lets you use more actions, such as adding a cash-on-delivery fee.
**How long does it take to set up the QR payment code in Payflow?**
Setting up the QR payment code in the Payflow app takes only a few minutes. Just create a new customization, choose the Payment instructions option, enter your account number, and add the app block to the thank-you page. We then recommend placing a test order to verify it works.
**Can I use the QR code for EUR accounts in Slovakia too?**
Yes, the Payflow app supports both Czech QR codes for CZK accounts in the classic format and Slovak QR codes for EUR accounts in IBAN format. During setup, simply choose whether you use a Czech or Slovak QR code and enter the corresponding account number.
**What if a customer doesn't have a banking app with QR code support?**
The QR code is a supplementary payment option that does not remove the classic payment methods. Customers who don't have a banking app with QR code support can still pay by card online, by bank transfer, or with other methods available in your store.
---
## Improved Mailstep and Shopify Integration: COD, Faulty Shipments & Pickup Points 📦
- URL: https://appfleece.com/blog/improved-mailstep-shopify-integration-cod-fulfillment-pickup-points
- Published: 2025-06-15
- Author: Adam Charvat
- Other language versions: https://appfleece.cz/blog/vylepsene-propojeni-mailstepu-a-shopify-dobirky-chybne-expedice-vydejni-mista | https://appfleece.de/blog/verbesserte-mailstep-shopify-integration-nachnahme-versand-abholpunkte
Connecting your Shopify store with the fulfillment center Mailstep is a great way to streamline your e-commerce logistics. Mailstep offers seamless integration with Shopify, letting you automate order processing, warehouse management, and shipping. As your business grows, however, challenges can arise that require specific solutions to keep everything running smoothly.
Our company has developed innovative tools that address key Mailstep shortcomings, including automatic COD rounding, EUR COD processing in Slovakia for stores operating in CZK, fixing faulty orders, and improving delivery with our Globe app for pickup points. Read on to see how we can take your Shopify–Mailstep experience to the next level.
## Why Mailstep and Shopify are a great combination
Mailstep is a leading fulfillment center in the Czech Republic that offers automated logistics solutions for e-commerce. Thanks to its Shopify integration, Mailstep lets store owners outsource warehousing, packing, and shipping, freeing up time for marketing and business development. Orders from your Shopify store sync automatically with Mailstep, ensuring up-to-date information about stock levels and order status.
As your business scales, especially when serving multiple regions or managing several stores, limitations can appear. Our solutions address these issues and help keep your fulfillment efficient and customer-friendly.
## Solving key fulfillment challenges
### 1. **Automatic COD rounding**
For stores offering cash on delivery (COD), setting accurate amounts is crucial, especially for cross-border shipments. Many carriers, for example in Slovakia, require COD amounts to be rounded to specific values (e.g. to the nearest 5 cents). Without automation, this process can be manual, time-consuming, and error-prone, which can lead to delays or customer dissatisfaction.
Our solution automates COD rounding for Shopify stores integrated with Mailstep. In line with carriers' rules, we ensure COD amounts are adjusted automatically, for example from €6.93 to €6.95 for shipments to Slovakia, or from 199.87 CZK to 200.00 CZK for orders in the Czech Republic with hellers. This saves time, reduces errors, and ensures compliance with local regulations.
### 2. **EUR COD processing in Slovakia for CZK stores**
If you run a Shopify store primarily in Czech koruna (CZK) but serve customers in Slovakia, where the standard currency is the euro (EUR), processing COD can be a challenge. Converting amounts and ensuring compliance with carrier requirements can be complex and time-consuming.
Our solution automates the CZK-to-EUR conversion for COD shipments to Slovakia. The system takes current exchange rates and carrier requirements into account, ensuring smooth order processing and customer satisfaction. This eliminates manual adjustments and simplifies cross-border sales.
Likewise, if you run a store primarily in euros (EUR) and send COD shipments to the Czech Republic, where the standard currency is CZK, our solution handles that conversion too. It automatically converts EUR to CZK at the current exchange rate and ensures compliance with Czech carrier requirements, making cross-border selling easier.
### 3. **Solving duplicate-item issues in Mailstep**
When Mailstep processes orders, a shipment occasionally ends up faulty because it contains the same products but at different prices. This happens, for example, during a 2+1 promotion where one product is repeated, or when you have two units of the same item but one is more expensive for some administrative reason. With a promotion like “buy two, get one free,” this can affect hundreds of orders. So you don't have to fix these shipments in Mailstep manually, we developed an automated solution.
The system recognizes when the same goods appear at different prices, merges them into one clear record, and updates everything in Mailstep. As a result, it's faster, with fewer errors, and the warehouse runs more smoothly.
### 4. **Globe: a pickup point app for Shopify**
In addition to solving the issues above, we also offer our **Globe Pickup Points** app, which adds delivery flexibility through pickup points. Globe is fully compatible with Mailstep and lets customers choose their preferred pickup point right at checkout in your Shopify store. This app increases convenience for customers and improves their shopping experience.
Globe also simplifies pickup point management for you as the merchant. It automatically syncs available pickup points with carriers, ensuring smooth coordination between the store and fulfillment.
## Why choose our solutions?
Our tools are designed to remove the common obstacles of using Mailstep with Shopify. Whether it's automating COD processes, simplifying cross-border sales, managing duplicate items, or expanding delivery options, our solutions save time, reduce costs, and improve customer satisfaction.
Want to learn more about how we can optimize your fulfillment? [Contact us](/contact) and discover how our tools can take your Shopify store to the next level!
### Frequently asked questions
**What does this Mailstep and Shopify integration solve?**
It addresses key gaps when using Mailstep with Shopify: automatic cash-on-delivery rounding, EUR COD processing in Slovakia for stores operating in CZK (and the reverse), fixing faulty shipments caused by duplicate items at different prices, and pickup-point delivery through our Globe app.
**Why is automatic COD rounding needed?**
Some carriers, for example in Slovakia, require cash-on-delivery amounts to be rounded to specific values. Automating this avoids time-consuming manual edits and reduces errors that can delay shipments.
**Can I sell cash on delivery across the Czech and Slovak border?**
Yes. The solution automatically converts CZK to EUR (and EUR to CZK) for COD shipments using current exchange rates and carrier requirements, so cross-border orders process smoothly.
**How are faulty shipments with duplicate items fixed?**
When the same product appears at different prices in an order, for example during a 2+1 promotion, the system recognizes it, merges the lines into one clear record, and updates everything in Mailstep automatically, so you do not have to fix shipments by hand.
---
## How to Prevent Chargebacks on Shopify: Protecting Against Credit Card Fraud 🛡️
- URL: https://appfleece.com/blog/how-to-prevent-chargebacks-on-shopify
- Published: 2025-03-01
- Updated: 2025-07-26
- Category: Payment Security
- Author: Jan Nemec
- Other language versions: https://appfleece.cz/blog/jak-predejit-charbackum-na-shopify | https://appfleece.de/blog/chargebacks-auf-shopify-verhindern
**Chargebacks** are one of the biggest challenges Shopify stores can face. Not only do you lose money from the order, but often also the product that was fraudulently purchased. In this article, we’ll take a look at how chargebacks work and how to effectively avoid them.
## How do chargebacks work? 🤔
A chargeback is a process where a cardholder asks their bank for a **refund on a transaction** they consider **unauthorized**, **disputed**, or **incorrect**. This often happens when fraudsters make online purchases with stolen credit or debit card details, **for example, obtained from illegal sources** like the darknet.
The actual cardholder then notices an unfamiliar charge on their statement and contacts the bank to dispute it. The bank typically refunds the money to the cardholder, while **the online store loses not only the payment but often also the product itself**. This mechanism serves as consumer protection but poses a serious financial risk for online merchants.
## How to protect yourself from chargebacks on Shopify? 🛡️
Here’s an example of how to set up Shopify Flow to prevent chargebacks.
In **Settings** > **Payments**, change the **payment capture method** to **“Manually”**. This way, payments are authorized at the time of order but only captured after your review. If you detect a suspicious order, you can cancel it without any fees.
If you don’t want to review every order manually, you can **automate the entire process with Shopify Flow** completely free. Automation ensures that high-risk orders are automatically canceled while safe ones are approved without manual intervention. This reduces fraud risk and saves you time.
Get started with Shopify Flow automation: **[Download the template here](/files/capture-payment-and-cancel-and-restock-high-risk-orders.flow)**.
## Another Effective Method Against Chargebacks 🪪
Go directly to your Shopify Payments settings and **add a unique four-digit code** to your bank statement. Add your *Business Name + Numeric Code* in the **Customer Billing Statement** section of Shopify Payments. For example: *SP * Appfleece 4376*. Update this code regularly.
### How will this method help me?
- If Shopify marks an order as **medium/high risk**, contact the customer and ask them to verify the four-digit code from their bank statement. **If they do not know it, cancel the order.**
- If the customer verifies the code and still files a chargeback, you have strong evidence for the bank that the transaction **was authorized, increasing your chances of winning.**
### Why does this method work?
Fraudsters usually only have stolen credit card details but lack access to the bank account associated with the card. By asking the customer to verify a unique four-digit code from their bank statement, the real cardholder can easily provide it, while a fraudster cannot. This simple step helps you reliably detect fraudulent orders and protect your online store.
### What happens if a customer files a chargeback?
If a customer decides to initiate a chargeback despite all the above precautions, **you will have strong evidence to resolve the dispute successfully.** The bank will require the following information:
1. A screenshot where the customer provided the four-digit code
2. A screenshot of your payout screen showing the provided four-digit code
3. A screenshot of communication with the customer
4. Shipping details (if applicable)
5. A timeline of events
**This evidence significantly increases your chances of successfully resolving a chargeback.** Preventing chargebacks is crucial for the long-term stability of your online store and protection against fraud. By consistently using these methods, you can minimize the risk of fraudulent transactions and safeguard your business from unnecessary financial losses.
### Frequently asked questions
**What exactly is a chargeback on Shopify?**
A chargeback is a process initiated by a cardholder who disputes a transaction with their bank, leading to a forced refund. This often occurs when fraudsters use stolen card details, and the legitimate cardholder then notices an unauthorized charge, causing the online store to lose both the payment and the product.
**How can manual payment capture in Shopify help prevent chargebacks?**
By setting payments to 'Manually' capture in Shopify Settings > Payments, you authorize payments at the time of order but only process them after reviewing the order. This allows you to identify and cancel suspicious orders before any money is transferred, effectively preventing potential chargebacks without incurring fees.
**Can I automate chargeback prevention on Shopify without manually reviewing every order?**
Yes, you can automate chargeback prevention using Shopify Flow. This free tool allows you to set up rules that automatically cancel high-risk orders while approving legitimate ones, saving you significant time and reducing fraud risk without manual intervention.
**How does the four-digit code verification method protect against chargebacks?**
By adding a unique four-digit code to your Shopify Payments customer billing statement, you can ask customers flagged as medium/high risk to verify this code from their bank statement. Real cardholders can easily provide it, while fraudsters, who typically only have stolen card details and no bank access, cannot. This provides strong evidence against fraudulent claims.
**What evidence do I need to win a chargeback dispute if one occurs?**
To successfully resolve a chargeback dispute, you'll need compelling evidence. This includes screenshots where the customer verified the unique four-digit code, a screenshot of your payout screen showing the code, communication logs with the customer, shipping details (if applicable), and a clear timeline of events related to the transaction.
---
## How to Add an Extra Charge for Cash on Delivery Orders in Shopify 📦
- URL: https://appfleece.com/blog/cash-on-delivery-fee-on-shopify-with-payflow
- Published: 2025-01-30
- Updated: 2025-01-30
- Category: Payment Methods
- Author: Jan Nemec
- Other language versions: https://appfleece.cz/blog/zpoplatnena-dobirka-na-shopify-s-aplikaci-payflow | https://appfleece.de/blog/nachnahmegebuehr-auf-shopify-mit-payflow
Setting up **Cash on Delivery (COD) payments with an added fee** doesn't need to be complicated. With the Payflow app, you can easily customize both payment and delivery methods to fit your business needs, whether it's renaming, hiding, or reordering them based on your own conditions.
[Payflow](https://apps.shopify.com/payflow) makes managing COD payments and charging extra fees effortless. With its smart condition tool, you can also seamlessly **integrate multiple rules based on price, product type, tags, and more, ensuring a smooth customer experience** without the need for post-purchase edits. In this guide, we'll walk you through how to set up extra fee for COD orders on Shopify.
- **Easy and fast.** Enjoy a simple and intuitive setup that saves you precious time.
- **No order editing.** This method does not involve any editing or adding a product with a fee after completing the order. It is a unique solution that significantly differs from alternative apps like Releasit.
- **Use of smart conditions.** Do you offer cash on delivery for free, but only want it in certain cases? Use a wide range of conditions to show/hide cash on delivery, e.g., based on individual products, collections, country of delivery, total price, or weight of the basket, etc.
- **Seamless shopping experience.** Provide your customers with a smooth ordering process, ensuring simplicity and efficiency at checkout.
## How to set up paid Cash on delivery in Payflow:
1. Install the [Payflow](https://apps.shopify.com/payflow) app and open the settings for **Cash on Delivery Payments**.
2. Enable *Cash on Delivery (COD)* in the **Payments** section of Shopify.
3. Go to the **Shipping and Delivery** section in your Shopify settings.
4. **Create a new shipping rate with an additional fee**, naming it something like “Cash on Delivery (+ 50 INR)” or similar. Make sure the name includes a **unique keyword (e.g., “Cash on Delivery” or “COD”) that isn't used for prepaid orders**, ensuring the customization works as intended.
5. Return to the Payflow app and **enter the keyword you used for the COD shipping method** in the *Shipping method keyword* field.
6. Specify the payment method for cash on delivery, which is typically a pre-defined option *Cash on Delivery (COD)*.
7. Save your settings, activate them, and test the setup.
If the cash on delivery option doesn't show or hide correctly, **double-check the keyword** and the **payment method name**. If necessary, go to the **Payments** section to verify the correct name and input it in Payflow's settings. In the *Pre-defined* section, use *Equals to* and enter the exact name.
### Frequently asked questions
**How do I add a fee for cash on delivery in Shopify?**
Create a shipping rate that includes the fee and give it a unique keyword (for example “COD”). Then, in the Payflow app, map your cash-on-delivery payment method to that keyword. Payflow displays the extra fee only when the customer chooses cash on delivery.
**Does this require editing orders after purchase?**
No. Payflow applies the fee during checkout using conditions, so there is no editing or adding a fee product after the order is placed, unlike alternative apps such as Releasit.
**Can I charge a COD fee only in certain cases?**
Yes. You can use a wide range of conditions, such as individual products, collections, country of delivery, total price, or cart weight, to decide when to show or charge the cash-on-delivery fee.
**Which Shopify plans does this work on?**
Payflow works on all Shopify plans for managing cash-on-delivery fees and most payment-method customizations.
---
## How to Completely Hide Sold-Out Products in Collections 🫣
- URL: https://appfleece.com/blog/how-to-completely-hide-sold-out-products-in-Shopify-collections
- Published: 2024-10-05
- Author: Jan Nemec
- Other language versions: https://appfleece.cz/blog/jak-kompletne-skryt-vyprodane-produkty-v-kolekcich | https://appfleece.de/blog/ausverkaufte-produkte-in-kollektionen-komplett-ausblenden
If your store is frequently running out of stock on certain products, it may be a good idea to **completely hide sold-out products from your collection pages**. By doing so, you ensure customers only see available products, making their shopping experience smoother and more efficient.
## Why hide sold-out products? 🧐
Nobody likes seeing something they want, only to realize it's out of stock. Hiding sold-out products entirely improves the browsing experience by displaying only what's available. This can lead to higher conversion rates, as customers can focus on what they can actually purchase without distractions.
### What are your options?
- **Using apps from the App Store 💰** There are apps in the Shopify App Store that let you automatically hide sold-out products. However, many of them require ongoing monthly fees and can complicate your collections by creating additional settings or collections in your store admin.
- **Theme code modification 👨💻** A better solution is modifying your theme's code directly. It's free, easy, and gives you full control over how sold-out products are displayed, or in this case, not displayed!
### How to hide sold-out products for free?
1. Copy the code snippet below 👇🏻
2. Open your collection template, often found as `collection.liquid`, `main-collection.liquid`, or `main-collection-product-grid.liquid`.
3. Locate where products are being listed with a line like `{"{% for product in collection.products %}"}`.
4. Replace the code with this updated version and save the file.
**This code will hide sold-out products in collections**
```html
{% assign available_products = collection.products | where: 'available' %}
{%- for product in available_products limit: section.settings.products_count -%}
{%- endfor -%}
```
### All done! 🎉
By hiding sold-out products, you create a more streamlined shopping experience for your customers. They will only see items that are ready to purchase, reducing frustration and improving overall store navigation.
Looking for more tips to optimize your Shopify store? Check out our other guide: [How to move sold-out products to the end of the list](/blog/how-to-move-sold-out-products-to-the-end-of-the-shopify-collection-list-for-free), where you can learn how to reorder your collections to display sold-out products at the bottom.
### Frequently asked questions
**Why hide sold-out products instead of just marking them as unavailable?**
Showing items customers cannot buy creates frustration and clutters your collection pages. Hiding sold-out products entirely keeps shoppers focused on what is actually available, which makes browsing smoother and can improve conversion.
**Do I need a paid app to hide sold-out products?**
No. A small edit to your theme code filters the collection to available products only. It is free, gives you full control, and avoids the monthly fees and extra collections that many apps create.
**Where do I add the code?**
In your collection template (often collection.liquid, main-collection.liquid, or main-collection-product-grid.liquid), replace the product loop with the version that iterates only over available products.
**What is the difference between hiding and reordering sold-out products?**
Hiding removes sold-out products from the collection entirely. If you would rather keep them visible but show them last, use the reordering approach instead, which moves sold-out items to the end of the list.
---
## How to Move Sold-Out Products to the End of the Shopify Collection List for Free 🔚
- URL: https://appfleece.com/blog/how-to-move-sold-out-products-to-the-end-of-the-shopify-collection-list-for-free
- Published: 2024-10-04
- Author: Jan Nemec
- Other language versions: https://appfleece.cz/blog/jak-zaradit-vyprodane-produkty-na-konec-kolekce-na-shopify-zdarma | https://appfleece.de/blog/ausverkaufte-produkte-ans-ende-der-shopify-kollektion-verschieben
If you have products that are currently out of stock, it can be beneficial to display them at the end of the product list in your collection. This way, you ensure that customers see the available items first, followed by the out-of-stock products. In this article, I will show you how to easily achieve this by modifying the code in the collection template on Shopify.
## Why move sold-out products to the end? 🤔
Customers often want to see available products and make quick decisions about what they can buy. Having sold-out products at the top of the list can be frustrating and time-consuming. Even if a product is sold out, it may still be important to display it, but it shouldn't be a priority. That's why it's a good idea to place sold-out items at the end of the list.
### What are your options?
- **Using apps from the App Store 💰** There are apps on the Shopify App Store that allow sorting products by availability. However, most of them are paid and create several new manual collections in your admin, which can become very cluttered and less reliable over time.
- **Template modification 👨💻** A more reliable option is modifying your template. In our guide, we'll show you how to do it. This approach is faster, more efficient, and will save you monthly fees for paid apps.
## How to modify the template for free?
1. Copy the code below 👇🏻
2. Open your collection template, often named something like **collection.liquid**, **main-collection.liquid**, or **main-collection-product-grid.liquid**.
3. Find where the collection products are being iterated over, this code usually starts like this: `{% for product in collection.products %}`.
4. Replace this code with the new one, save the file, and test it.
**Code for moving sold-out products to the end of the collection**
```html
{% assign available_products = collection.products | where: 'available' %}
{% assign out_of_stock_products = collection.products | where: 'available', false %}
{% assign products = available_products | concat: out_of_stock_products %}
{%- for product in products limit: section.settings.products_count -%}
{%- endfor -%}
```
This code splits the products into available and sold-out, then merges them back into a single list. Sold-out products will appear after the in-stock ones.
## All done! 🎉
This modification will help keep your collections organized and user-friendly. Customers will be able to browse available products more easily without being distracted by sold-out items.
If you want to ensure that sold-out products don't appear in collections at all, we also have a detailed guide for that. In the article [How to completely hide sold-out products in Shopify collections](/blog/how-to-completely-hide-sold-out-products-in-Shopify-collections), you'll learn how to make this adjustment just as easily and quickly by modifying the template.
### Frequently asked questions
**Why move sold-out products to the end instead of hiding them?**
Moving them keeps sold-out products visible, which is useful for SEO and for customers who still want to see them. At the same time, available items appear first so shoppers can decide quickly.
**Do I need a paid app to reorder products by availability?**
No. A small theme code edit splits the collection into available and out-of-stock products and merges them back so sold-out items show last. It avoids monthly fees and the extra manual collections many apps create.
**Where do I add the code?**
In your collection template (often collection.liquid, main-collection.liquid, or main-collection-product-grid.liquid), replace the product loop with the version that concatenates available products followed by out-of-stock ones.
**Will this slow down my store?**
No. It is a lightweight Liquid change rendered with your theme, so there is no app overhead or extra background syncing.
---
## How ACS Pickup Points Can Transform Your Shopify Store’s Shipping 🚚
- URL: https://appfleece.com/blog/acs-pickup-points-in-shopify
- Published: 2024-07-03
- Updated: 2026-06-08
- Category: Shipping Integration
- Author: Jan Nemec
- Other language versions: https://appfleece.cz/blog/acs-vydejni-mista-pro-shopify | https://appfleece.de/blog/acs-abholpunkte-fuer-ihren-shopify-store
Discover how **integrating ACS pickup points with your Shopify store** can enhance your shipping strategy, boost customer satisfaction, and expand your market reach across Greece, Cyprus, Albania, and Bulgaria. The integration is powered by our Shopify app [Globe](https://globe.appfleece.com/carriers/acs).
### Why choose ACS pickup points?
- **Cost efficiency:** ACS pickup points can reduce shipping costs compared to home delivery, so you can offer more competitive prices and save on logistics.
- **Unmatched regional expertise:** ACS is a leading provider in Greece, Cyprus, Albania, and Bulgaria, with 750+ service points and 15,000+ pickup points in Greece alone, so customers easily find the nearest location.
- **Speed and reliability:** ACS is renowned for prompt, reliable service, letting your customers collect orders swiftly and conveniently.
- **Customer flexibility:** the option to choose a pickup point is vital for customers who prefer collecting at a convenient time, removing the hassles of home delivery.
- **Environmental benefits:** pickup points consolidate deliveries and reduce the carbon footprint of multiple home deliveries, supporting a more eco-friendly operation.
## Where your customers choose an ACS pickup point
Globe gives you several places to let customers pick a point. Use one or combine them:
- **In the cart, before checkout:** the Globe **cart widget** lets customers choose an ACS point right on the cart page or cart drawer, with a built-in map, address search, and geolocation.
- **As Carrier-Calculated Shipping rates (no Maps key):** Globe can surface the nearest ACS points as individual **shipping rates** at checkout via Shopify's [Carrier-Calculated Shipping (CCS)](https://help.shopify.com/en/manual/fulfillment/setup/shipping-rates/third-party-carrier-calculated-shipping), based on the entered address, and **no Google Maps API key** is needed. (CCS is on the Advanced and Plus plans, and on Grow with annual billing.)
- **Inside the checkout (Shopify Plus):** a full interactive map selection embedded directly in the Shopify checkout. This runs on the Google Maps API, so you add your own key.
- **Thank-you & order-status pages:** selection (or a reminder) on the post-purchase pages, a reliable fallback for edge cases like express checkouts.
### Set up ACS pickup points with Globe 🌍
1. To display ACS pickup points, install the **Globe: Pickup Points** app from the [Shopify App Store](https://apps.shopify.com/globe).
2. **Add a new shipping method** for ACS pickup points. For example, name it '📦 ACS - Pickup Points'.
3. In the Globe app, **select ACS as the courier**, assign the prepared shipping method, and activate reminder notification emails in your preferred languages.
4. Add the Globe block (or the cart widget) to the surfaces you want: **cart**, **checkout** (Shopify Plus), **thank-you**, and **order-status** pages.
## Do you need a Google Maps API key? 🗺️
**Not necessarily. The key is optional.**
- **Cart widget and shipping-rate display:** no key needed. Without any key, customers can still select a pickup point from a clean dropdown/list view.
- **In-checkout interactive map (Shopify Plus):** this always runs on the Google Maps API, so Plus merchants who show the map selection inside checkout add their own key for the best experience.
If you do want the interactive map, adding a key is quick. See [our documentation](https://docs.globe.appfleece.com/settings/google-maps-api-key).
### Did you know that Decathlon uses Globe to display ACS pickup points?
That’s right! [Decathlon Cyprus](https://decathlon.com.cy) uses the Globe app with ACS pickup points to offer customers a flexible and convenient way to collect their orders. It is **available directly on their checkout page**, which helps streamline deliveries and improve the shopping experience.
### More useful tips with the Globe app 🙌
While setting up ACS in Globe, you'll notice it's just as easy to add **pickup points for dozens of other carriers**, keeping all your shipping in one place. Advanced features include automatic updating of the delivery address to the selected pickup point and the ability to **configure custom order attributes**.
### What Globe brings to your store:
- **60+ carriers** across 5M+ pickup points in 180+ countries, all in one app.
- Pickup-point selection in the cart, at checkout (Shopify Plus), on the thank-you page, and on the order-status page.
- Works with express checkouts (Shop Pay, PayPal Express, Google Pay, Apple Pay, and more).
- Automatic multilingual reminder emails if a customer forgets to select a pickup point.
- Automatic update of the delivery address and custom order attributes for smooth third-party integration.
- Carriers include Packeta (Zásilkovna), DHL, GLS, PPL, DPD, InPost, Balíkovna, Hermes, Colissimo, Mondial Relay, ACS, and many more.
- Friendly support available daily 🤗
See the full breakdown on the [ACS page on Globe](https://globe.appfleece.com/carriers/acs).
### Frequently asked questions
**Do I need a Google Maps API key to show ACS pickup points?**
No, it is optional. The cart widget and the shipping-rate display work without your own Google Maps key, and without any key customers can still choose from a dropdown list. You only need your own key for the interactive map selection inside the Shopify checkout (Shopify Plus), which always runs on the Google Maps API.
**Which countries does ACS cover?**
ACS is a leading logistics provider in Greece, Cyprus, Albania, and Bulgaria, with more than 750 service points and over 15,000 pickup points in Greece alone. Through Globe, customers are shown the nearest available ACS points for their address.
**Can customers choose an ACS pickup point before checkout?**
Yes. With the Globe cart widget, customers pick an ACS point directly on the cart page or cart drawer before checkout, with a built-in map, address search, and geolocation. The thank-you and order-status blocks remain available as a fallback for edge cases like express checkouts that skip the cart selection.
**Can I show ACS pickup points at checkout without a Google Maps key?**
Yes. Globe can surface the nearest ACS points as individual shipping rates at checkout, based on the address the customer enters. This needs no Google Maps API key at all. The full interactive in-checkout map selection is a separate option available on Shopify Plus.
**Does Globe work on all Shopify plans?**
The cart widget, thank-you page, and order-status page work on every Shopify plan. The Carrier-Calculated Shipping (CCS) rate display requires the Advanced or Plus plan (or the Grow plan with annual billing, or with a paid Shopify add-on on monthly billing), and the interactive selection embedded directly in the checkout is available on Shopify Plus.
---
## Packeta on Shopify: pickup points, Z-BOXes, labels and cash on delivery
- URL: https://appfleece.com/blog/packeta-pickup-points-in-shopify
- Published: 2024-06-17
- Updated: 2026-10-22
- Author: Jan Nemec
- Other language versions: https://appfleece.cz/blog/zasilkovna-vydejni-mista-pro-shopify | https://appfleece.de/blog/packeta-abholpunkte-fuer-ihren-shopify-store
Connect Packeta (Zásilkovna in Czechia) to Shopify with the [Globe](https://globe.appfleece.com) app. Customers pick a pickup point or Z-BOX on a map right in the cart. You print labels through the Packeta API, and parcel and cash on delivery status flow back into Shopify.
It works on every Shopify plan and with your own Packeta contract. You pay nothing extra per label or per order.
## What the integration does
- **Pickup point and Z-BOX selection** on a map in the cart, in the Shopify Plus checkout and after the order.
- **Labels through the Packeta API**, one at a time or in bulk from the orders list. No CSV export.
- **Shipment tracking.** The order is fulfilled, the customer gets a tracking link and the delivery status shows up in Shopify.
- **Cash on delivery.** Once the parcel is collected, the order is marked as paid and the amount is rounded to whole crowns.
- **Returns through a Z-BOX** with no label to print.
- **E-mail reminder** when a customer picks no pickup point.
Everything Globe does with Packeta is on the [Packeta page on the Globe site](https://globe.appfleece.com/carriers/packeta).
## What else you get
- **Labels at no extra cost.** Globe charges nothing per label or per order. You pay for the app and for shipping under your own contract.
- **No setup fee.** Setup is free and comes with no commitment.
- **Pick & Ship for your warehouse.** A packing station with a barcode scanner. You scan the items and Globe checks what belongs in the parcel. It also shows the pickup point and the label. It is in beta for now.
- **Works with your fulfillment.** The pickup point goes straight to [Base (BaseLinker), MetaKocka and Picqer](https://globe.appfleece.com/features/oms-wms-sync). [Mailstep](https://globe.appfleece.com/integrations/mailstep) and other warehouses get it through order attributes.
- **Support in your language.** Chat with us right in the app, in English, Czech, German and four more languages. We answer on weekdays.
## Where customers pick a pickup point
Every store is on a different Shopify plan, so there are four places to pick a point. You can combine them.
- **In the cart, on every plan.** You turn the [map widget](https://globe.appfleece.com/pickup-points/cart-widget) on in the theme editor, no coding. Customers search by address or by their location and see pickup points and Z-BOXes. The map runs on OpenStreetMap, so you need no Google Maps key here. For most stores this is the main route.
- **In checkout, on Shopify Plus.** A [map right in the checkout](https://globe.appfleece.com/pickup-points/checkout). It uses Google Maps, so you add [your own API key](https://docs.globe.appfleece.com/settings/google-maps-api-key) to Globe.
- **As shipping rates, on the Advanced or Grow plan.** [The nearest pickup points](https://globe.appfleece.com/pickup-points/shipping-rates) show up among the shipping methods, such as “0.4 km • Packeta • Z-BOX Pardubice”. On the Shopify (Grow) plan this is included with yearly billing and a paid add-on with monthly billing. [Guide in the docs](https://docs.globe.appfleece.com/guides/checkout-shipping).
- **After the order.** [On the thank-you page and the order status page](https://globe.appfleece.com/pickup-points/post-purchase). It is the safety net for Apple Pay, Google Pay and Shop Pay, which skip the cart. A customer who picks no point gets an [e-mail reminder](https://globe.appfleece.com/features/email-reminders) about 5 minutes later.
## Setup step by step
1. **Install Globe** from the [Shopify App Store](https://apps.shopify.com/globe). The first 14 days are free.
2. **Add a shipping rate in Shopify**, such as “Packeta, pickup point”. You set the price and free shipping in Shopify like for any other rate.
3. **Add Packeta as a carrier in Globe** and assign this rate to it.
4. **Turn on point selection.** You turn the cart widget on in the theme editor. On Shopify Plus you add the block to the checkout. We recommend the thank-you page block for every store.
5. **Connect labels.** In Globe, open Shipping labels, add Packeta and paste the API key and API password from the Packeta client section.
Customers see pickup points a few minutes after install. Allow about an hour for cash on delivery and labels. The full walkthrough is in the [Packeta docs](https://docs.globe.appfleece.com/integrations/packeta-api).
## Labels, tracking and returns
Select orders in the Shopify orders list and [create the labels in bulk](https://globe.appfleece.com/features/label-printing). The parcels show up in the Packeta client section right away. Labels go through your own account, so you pay your contract rates.
Globe then fulfills the order and the customer gets an e-mail with a tracking link. The delivery status flows back into Shopify: in transit, ready for pickup, delivered or not collected. You can filter orders in Shopify by it.
You create a return right on the order. Packeta sends the customer a code, and they hand the parcel in at a pickup point or drop it in a Z-BOX. Nothing to print. It works for orders to Czechia, Slovakia, Hungary and Romania.
## Cash on delivery to a pickup point
The COD amount goes straight onto the label. When the customer collects the parcel and pays, Globe marks the order as paid in Shopify. Nothing to match by hand.
Cash is paid in whole crowns, so Globe [rounds the COD amount up](https://docs.globe.appfleece.com/settings/cash-on-delivery-rounding), for example CZK 599.99 to CZK 600. For euros it rounds to 5 cents.
Want to charge a COD fee? Shopify cannot add a fee to a payment method, so you add a second shipping rate with the fee in its price:
| Rate | Orders under CZK 1,500 | Orders from CZK 1,500 |
|---|---|---|
| Packeta | CZK 79 | CZK 0 |
| Packeta (COD) | CZK 109 | CZK 30 |
Our [Payflow](https://apps.shopify.com/payflow) app then offers cash on delivery only with the COD rate. The steps are in the article on the [COD fee](/blog/cash-on-delivery-fee-on-shopify-with-payflow) and in the [Globe docs](https://docs.globe.appfleece.com/guides/cash-on-delivery). This works with the cart widget. It does not work with shipping rates, where each point has a single price.
## What it costs
Globe costs **$15 a month**, or **$30** on Shopify Plus. Billed yearly it is $150, or $300 on Plus. Unlimited orders, labels and carriers are included, and the first 14 days are free. Details are on the [pricing page](https://globe.appfleece.com/pricing).
You pay Packeta for shipping under your own contract. Globe does not resell it or mark it up.
## Other carriers on the same map
You connect PPL, DPD, GLS or Balíkovna the same way. Customers then see them all on one map in the cart, and you print labels for every carrier from one place. The whole shipping setup is in the article on [connecting European carriers to Shopify](/blog/how-to-connect-european-carriers-and-pickup-points-to-shopify). The guide for PPL is in [PPL pickup points in Shopify](/blog/ppl-pickup-points-in-shopify).
### Frequently asked questions
**Do I need Shopify Plus for Packeta pickup points?**
No. The map widget in the cart works on every Shopify plan and you turn it on in the theme editor. Shopify Plus is only needed for the map right in the checkout.
**Do I need a Google Maps API key?**
Only for the checkout map on Shopify Plus. The cart widget runs on OpenStreetMap and the nearest points as shipping rates use no map, so you need no key there.
**How do I connect Shopify to Packeta through the API?**
You find the API key and API password in the Packeta client section. In Globe you paste them under Shipping labels. If you have more than one sender at Packeta, you also enter the sender Globe should use.
**Does Globe charge per label or per order?**
No. Globe costs $15 a month, or $30 on Shopify Plus, with unlimited orders and labels. You pay Packeta for shipping under your own contract.
**What if a customer pays with Apple Pay and picks no pickup point?**
Express payments skip the cart. The customer picks a point on the thank-you page instead, and Globe sends them a reminder e-mail about 5 minutes after the order. With Shopify Flow you can also assign the nearest point to the order automatically.
---
## How to Add a QR Code for Bank Transfer Payment 💸
- URL: https://appfleece.com/blog/how-to-add-a-qr-code-for-bank-transfer-payment
- Published: 2024-06-14
- Updated: 2026-02-10
- Author: Jan Nemec
- Other language versions: https://appfleece.cz/blog/jak-pridat-qr-kod-pro-platbu-bankovnim-prevodem | https://appfleece.de/blog/qr-code-fuer-die-zahlung-per-ueberweisung-hinzufuegen
Let your Shopify customers pay invoices conveniently and easily **using a QR code**. These days, more and more customers prefer this transfer method because it eliminates the need to manually rewrite payment details. For merchants, this also reduces errors and **increases the chance the order is paid immediately** after it is created.
> **Note:** QR payments via bank transfer are a standard primarily in the Czech and Slovak markets. This guide is intended for stores serving customers in the Czech Republic and Slovakia.
*Looking for a quick overview? See our [QR code payments on Shopify](/integrations/qr-code-payments) page.*
## An easy way to add a QR code on Shopify 👇🏻
In this article we'll show you how to easily integrate a QR code into the confirmation email. Once scanned, it automatically loads the order number as the variable symbol and pre-fills the account number and total order value for payment.
We'll show the specific procedure for two cases: bank accounts in the Czech Republic and in Slovakia. At the end, we'll also look at the option of adding a QR code directly to the thank-you page after an order is completed.
Prepare the following details:
- **For a CZK bank account:** Your account number in the classic format (XXXXXXXXXX/XXXX)
- **For a EUR bank account:** Your account number in IBAN format (SKXXXXXXXXXXXXXXXX
## Procedure for adding a QR code for a bank account in the Czech Republic
> **Note:** This code has been updated and now also supports Czech bank accounts with a prefix (e.g. 1234-7890123456/0100). That's why it looks a little different from the video tutorial below.
**Example code for an account held in the Czech Republic in koruna **
```html
{% for transaction in transactions %}
{% if transaction.gateway == "Bank Deposit" %}
{% assign celkem = transaction.amount | divided_by: 100.00 %}
{% assign RAW_ACCOUNT = "XXXXXXXXXX" %}
{% assign BANK_CODE = "XXXX" %}
{% assign VS = order.name | remove_first: '#' %}
{%- assign account_parts = RAW_ACCOUNT | split: '-' -%}
{%- if account_parts.size == 2 -%}{% assign ACCOUNT_PREFIX = account_parts[0] %}{% assign ACCOUNT_NUMBER = account_parts[1] %}{%- else -%}{% assign ACCOUNT_PREFIX = "" %}{% assign ACCOUNT_NUMBER = account_parts[0] %}{%- endif -%}
Platební údaje
Zvolili jste platbu bankovním převodem.Vaše objednávka bude odeslána po připsání peněz na náš účet.
Částka: {{ transaction.amount | money }}
Číslo účtu: {% if ACCOUNT_PREFIX != blank %}{{ ACCOUNT_PREFIX }}-{% endif %}{{ ACCOUNT_NUMBER }}/{{ BANK_CODE }}
Variabilní symbol: {{ VS }}
QR Platba
{% endif %}
{% endfor %}
```
- Copy the code for the Czech Republic shown above ☝🏻
- Open the notification settings and find the **order confirmation email template**
- In the top right corner, choose '**Edit code**'. Alternatively, 'Localize' if you want to add it to a language version other than your default language
- Find the part of the code marked as **<h3>Order summary</h3>** (the text may differ depending on your template translation) and paste the copied code a few lines above this part
- Replace the bank account information in the code with your real details. Replace '**XXXXXXXXXX**' with your account number (you can also enter it with a prefix, e.g. 1234-7890123456) and '**XXXX**' with the bank code
- Save the changes you made and place a test order
## Procedure for adding a QR code for a bank account in Slovakia
**Example code for an account held in Slovakia in euros **
```html
{% for transaction in transactions %}
{% if transaction.gateway == "Bank Deposit" %}
{% assign celkem = transaction.amount | divided_by: 100.00 %}
{% assign ACCOUNT_IBAN = "SKXXXXXXXXXXXXXXXXXXXXXX" %}
Platobné údaje
Zvolili ste platbu bankovým prevodom. Vaša objednávka bude odoslaná po pripísaní peňazí na náš účet.
{% endif %}
{% endfor %}
```
- Copy the code for Slovakia shown above ☝🏻
- Open the notification settings and find the **order confirmation email template**
- In the top right corner, choose '**Edit code**'. Alternatively, 'Localize' if you want to add it to a language version other than your default language
- Find the part of the code marked as **<h3>Order summary</h3>** (the text may differ depending on your template translation) and paste the copied code a few lines above this part
- Replace the bank account information in the code with your real details. Replace '**SKXXXXXXXXXXXXXXXXXXXXXX**' with your actual IBAN
- Save the changes you made and place a test order
## Adding a QR code to the thank-you page
If you want to go even further and add a QR code not only to the email but also directly on the thank-you page after an order is completed, we have an even simpler solution for you. In [our new article you'll find how to add a QR code to the thank-you page using the Payflow app](/blog/add-a-payment-qr-code-to-the-thank-you-page-with-payflow) in just a few minutes without editing any code.
### Frequently asked questions
**Which banks and countries does the QR payment work for?**
QR bank-transfer payments are a standard in the Czech Republic and Slovakia. This guide covers Czech CZK accounts in the classic format and Slovak EUR accounts in IBAN format.
**Do I need an app to add the QR code to the email?**
No. This method uses a Liquid snippet placed in the order confirmation email template, so no app is required. If you prefer a no-code option for the thank-you page, the Payflow app can add the QR code there instead.
**How does the customer pay using the QR code?**
The customer scans the QR code in their banking app, which automatically pre-fills the account number, amount, and order number as the variable symbol, so there is no manual typing of payment details.
**Can I also show the QR code on the thank-you page?**
Yes. A separate guide shows how to add the QR code directly on the thank-you page using the Payflow app, in a few minutes and without editing any code.
---
## Global Delivery Made Easy: Utilize DHL Pickup Points for Your Shopify Store 🚛
- URL: https://appfleece.com/blog/dhl-pickup-points-in-shopify
- Published: 2024-06-10
- Updated: 2026-06-08
- Category: Shipping Integration
- Author: Jan Nemec
- Other language versions: https://appfleece.cz/blog/dhl-vydejni-mista-pro-shopify | https://appfleece.de/blog/dhl-paketshops-fuer-ihren-shopify-store
Integrating logistics services is a crucial factor for the success of any e-commerce operator. In this article we focus on the **integration of DHL pickup points with Shopify stores** and on how this synergy can improve your shipping strategy, enhance customer satisfaction, and optimize operational efficiency. The integration is powered by our Shopify app [Globe](https://globe.appfleece.com/carriers/dhl).
## Why choose DHL pickup points?
- **Global reach:** DHL is one of the largest logistics providers in the world, with an extensive network of pickup points across 195+ countries and territories. Your customers can collect parcels almost anywhere, which is a huge advantage for international stores.
- **Speed and reliability:** DHL is renowned for its speed and reliability, so your customers pick up their orders quickly and conveniently, which boosts satisfaction and loyalty.
- **Flexibility for customers:** the option to choose a pickup point matters to many shoppers who prefer collecting at a convenient time, eliminating failed home deliveries and improving the overall experience.
## Where your customers choose a DHL pickup point
Globe gives you several places to let customers pick a point. Use one or combine them:
- **In the cart, before checkout:** the Globe **cart widget** lets customers choose a DHL point right on the cart page or cart drawer, with a built-in map, address search, and geolocation.
- **As Carrier-Calculated Shipping rates (no Maps key):** Globe can surface the nearest DHL points as individual **shipping rates** at checkout via Shopify's [Carrier-Calculated Shipping (CCS)](https://help.shopify.com/en/manual/fulfillment/setup/shipping-rates/third-party-carrier-calculated-shipping), based on the entered address, and **no Google Maps API key** is needed. (CCS is on the Advanced and Plus plans, and on Grow with annual billing.)
- **Inside the checkout (Shopify Plus):** a full interactive map selection embedded directly in the Shopify checkout. This runs on the Google Maps API, so you add your own key.
- **Thank-you & order-status pages:** selection (or a reminder) on the post-purchase pages, a reliable fallback for edge cases like express checkouts.
## Setting up DHL pickup points with Globe 🌍
1. To display DHL pickup points, install the **Globe: Pickup Point Selection** app from the [Shopify App Store](https://apps.shopify.com/globe).
2. **Add a new shipping method** for DHL pickup points. In our example we named it '📦 DHL - Pickup Points'.
3. In the Globe app, **select DHL as the courier** and assign the prepared shipping method. You can also activate reminder notification emails in your preferred languages.
4. Add the Globe block (or the cart widget) to the surfaces you want: **cart**, **checkout** (Shopify Plus), **thank-you**, and **order-status** pages.
## Do you need a Google Maps API key? 🗺️
**Not necessarily. The key is optional.**
- **Cart widget and shipping-rate display:** no key needed. Without any key, customers can still select a pickup point from a clean dropdown/list view.
- **In-checkout interactive map (Shopify Plus):** this always runs on the Google Maps API, so Plus merchants who show the map selection inside checkout add their own key for the best experience.
If you do want the interactive map, adding a key is quick. See [our documentation](https://docs.globe.appfleece.com/settings/google-maps-api-key).
## More useful tips with the Globe app 🙌
While setting up DHL in Globe, you'll notice it's just as easy to add **pickup points for dozens of other carriers**, making Globe a unique add-on for your store, with all your shipping conveniently in one place.
Advanced features include automatic updating of the delivery address to the selected pickup point and the ability to **configure custom order attributes**, which makes integration with third-party apps easy.
### What Globe brings to your store:
- **60+ carriers** across 5M+ pickup points in 180+ countries, all in one app.
- Pickup-point selection in the cart, at checkout (Shopify Plus), on the thank-you page, and on the order-status page.
- Works with express checkouts (Shop Pay, PayPal Express, Google Pay, Apple Pay, and more).
- Automatic multilingual reminder emails if a customer forgets to select a pickup point.
- Automatic update of the delivery address and custom order attributes for smooth third-party integration.
- Carriers include Packeta (Zásilkovna), DHL, GLS, PPL, DPD, InPost, Balíkovna, Hermes, Colissimo, Mondial Relay, ACS, and many more.
- Friendly support available daily 🤗
See the full breakdown on the [DHL page on Globe](https://globe.appfleece.com/carriers/dhl).
### Frequently asked questions
**Do I need a Google Maps API key to show DHL pickup points?**
No, it is optional. The cart widget and the shipping-rate display work without your own Google Maps key, and without any key customers can still choose from a dropdown list. You only need your own key for the interactive map selection inside the Shopify checkout (Shopify Plus), which always runs on the Google Maps API.
**In how many countries can customers pick up DHL parcels?**
DHL operates one of the largest logistics networks in the world, with pickup points across 195+ countries and territories. Through Globe, your customers are shown the nearest available DHL points for their address.
**Can customers choose a DHL pickup point before checkout?**
Yes. With the Globe cart widget, customers pick a DHL point directly on the cart page or cart drawer before checkout, with a built-in map, address search, and geolocation. The thank-you and order-status blocks remain available as a fallback for edge cases like express checkouts that skip the cart selection.
**Can I show DHL pickup points at checkout without a Google Maps key?**
Yes. Globe can surface the nearest DHL points as individual shipping rates at checkout, based on the address the customer enters. This needs no Google Maps API key at all. The full interactive in-checkout map selection is a separate option available on Shopify Plus.
**Does Globe work on all Shopify plans?**
The cart widget, thank-you page, and order-status page work on every Shopify plan. The Carrier-Calculated Shipping (CCS) rate display requires the Advanced or Plus plan (or the Grow plan with annual billing, or with a paid Shopify add-on on monthly billing), and the interactive selection embedded directly in the checkout is available on Shopify Plus.
---
## Integrating PPL Pickup Points with Your Shopify Store 🚚
- URL: https://appfleece.com/blog/ppl-pickup-points-in-shopify
- Published: 2024-06-05
- Updated: 2026-06-08
- Author: Jan Nemec
- Other language versions: https://appfleece.cz/blog/ppl-vydejni-mista-pro-shopify | https://appfleece.de/blog/ppl-paketshops-fuer-ihren-shopify-store
Let your customers easily choose delivery to **PPL pickup points right during checkout** in your Shopify store. Thanks to an interactive map, customers can intuitively pick a point in the cart, at checkout, on the thank-you page, and while tracking their order. The integration is powered by our Shopify app [Globe](https://globe.appfleece.com/carriers/ppl).
## In this article, you will learn:
- **Displaying PPL pickup points:** show the pickup-point selector to your customers using the Globe app.
- **Reminder emails with one click:** if a customer forgets to select a point, a reminder email is sent automatically. Multilingual support is ideal for stores selling to several countries.
- **An interactive map via the Google Maps API:** let customers choose from a list or directly from an interactive map.
- **More useful tips:** advanced settings for smooth fulfillment, plus one-click order export and label printing.
## Where your customers choose a PPL pickup point
Globe gives you several places to let customers pick a point. Use one or combine them:
- **In the cart, before checkout:** the Globe **cart widget** lets customers choose a PPL point right on the cart page or cart drawer, with a built-in map, address search, and geolocation.
- **As Carrier-Calculated Shipping rates (no Maps key):** Globe can surface the nearest PPL points as individual **shipping rates** at checkout via Shopify's [Carrier-Calculated Shipping (CCS)](https://help.shopify.com/en/manual/fulfillment/setup/shipping-rates/third-party-carrier-calculated-shipping), based on the entered address, and **no Google Maps API key** is needed. (CCS is on the Advanced and Plus plans, and on Grow with annual billing.)
- **Inside the checkout (Shopify Plus):** a full interactive map selection embedded directly in the Shopify checkout. This runs on the Google Maps API, so you add your own key.
- **Thank-you & order-status pages:** selection (or a reminder) on the post-purchase pages, a reliable fallback for edge cases like express checkouts.
## Setting up PPL pickup points with Globe 🌍
1. To display PPL pickup points, install the **Globe: Pickup Point Selection** app from the [Shopify App Store](https://apps.shopify.com/globe).
2. **Add a new shipping method** for PPL pickup points. In our example, we named it '🚚 PPL (Pickup Points)'.
3. In the Globe app, **select PPL as the courier** and assign the prepared shipping method. You can also activate notification emails right away.
4. Add the Globe block (or the cart widget) to the surfaces you want: **cart**, **checkout** (Shopify Plus), **thank-you**, and **order-status** pages.
## Do you need a Google Maps API key? 🗺️
**Not necessarily. The key is optional.**
- **Cart widget and shipping-rate display:** no key needed. Without any key, customers can still select a pickup point from a clean dropdown/list view.
- **In-checkout interactive map (Shopify Plus):** this always runs on the Google Maps API, so Plus merchants who show the map selection inside checkout add their own key for the best experience.
If you do want the interactive map, adding a key is quick. See [our documentation](https://docs.globe.appfleece.com/settings/google-maps-api-key).
## More useful tips with the Globe app 🙌
PPL is a **direct-label-printing carrier** in Globe, so you can export orders and print PPL labels (individually or in bulk) directly from your Shopify admin. And while setting up PPL, you'll notice it's just as easy to add **pickup points for dozens of other carriers**, keeping all your shipping in one place.
Advanced features include automatic updating of the delivery address to the selected pickup point and the ability to **configure custom order attributes**, which makes integration with third-party apps easy.
### What Globe brings to your store:
- **60+ carriers** across 5M+ pickup points in 180+ countries, all in one app.
- One-click order export and label printing for supported carriers (including PPL), individually or in bulk.
- Pickup-point selection in the cart, at checkout (Shopify Plus), on the thank-you page, and on the order-status page.
- Works with express checkouts (Shop Pay, PayPal Express, Google Pay, Apple Pay, and more).
- Automatic multilingual reminder emails if a customer forgets to select a pickup point.
- Carriers include Packeta (Zásilkovna), DHL, GLS, PPL, DPD, InPost, Balíkovna, Hermes, Colissimo, Mondial Relay, ACS, and many more.
- Friendly support available daily 🤗
See the full breakdown on the [PPL page on Globe](https://globe.appfleece.com/carriers/ppl).
### Frequently asked questions
**Do I need a Google Maps API key to show PPL pickup points?**
No, it is optional. The cart widget and the shipping-rate display work without your own Google Maps key, and without any key customers can still choose from a dropdown list. You only need your own key for the interactive map selection inside the Shopify checkout (Shopify Plus), which always runs on the Google Maps API.
**Can customers choose a PPL pickup point before checkout?**
Yes. With the Globe cart widget, customers pick a PPL point directly on the cart page or cart drawer before checkout, with a built-in map, address search, and geolocation. The thank-you and order-status blocks remain available as a fallback for edge cases like express checkouts that skip the cart selection.
**Can I show PPL pickup points at checkout without a Google Maps key?**
Yes. Globe can surface the nearest PPL points as individual shipping rates at checkout, based on the address the customer enters. This needs no Google Maps API key at all. The full interactive in-checkout map selection is a separate option available on Shopify Plus.
**Does Globe export orders to PPL and print labels?**
Yes. PPL is a direct-label-printing carrier in Globe, so you can export orders and print PPL shipping labels, individually or in bulk, directly from your Shopify admin in one click.
**Does Globe work on all Shopify plans?**
The cart widget, thank-you page, and order-status page work on every Shopify plan. The Carrier-Calculated Shipping (CCS) rate display requires the Advanced or Plus plan (or the Grow plan with annual billing, or with a paid Shopify add-on on monthly billing), and the interactive selection embedded directly in the checkout is available on Shopify Plus.
---
## How to Attach a PDF File to Customer Notification Emails 📄
- URL: https://appfleece.com/blog/how-to-attach-pdf-file-to-customer-notification-emails
- Published: 2024-02-17
- Author: Jan Nemec
- Other language versions: https://appfleece.cz/blog/jak-pridat-pdf-soubor-obchodnich-podminek-do-objednavkoveho-emailu | https://appfleece.de/blog/pdf-datei-an-kundenbenachrichtigungs-e-mails-anhaengen
Learn how to easily **add a PDF attachment with terms and conditions** to your Shopify customer notification email. This will ensure you are fully compliant with the regulation from the European Union.
## Why is it necessary?
One of the current obligations of e-shop operators within the European Union is to supply customers with terms and conditions in text form. **It is crucial that these terms and conditions are provided in an immutable format** that is not subject to change by the e-shop over time. Therefore, it is no longer sufficient to simply provide a link that redirects the customer to an external site.
Sending documents in PDF format, ideally together with an instant order confirmation, has proven to be an efficient and practical solution to this obligation. This practice not only facilitates compliance with legal requirements, but also **contributes to transparency and trust between the business and the customer.**
## Add a PDF file with Terms and Conditions to your customer notification email 👇🏻
1. **Make sure you have filled in the terms and conditions** in Settings > Policies
2. Go to Notification settings > Customer notifications > **Order confirmation**
3. In the top right corner, select '**Edit code**'. Alternatively, 'Localize' if you want to add it to a language version other than your default language
4. Copy this code and paste it at the **very end of the email template**
```html
{{ shop.terms_of_service | attach_as_pdf: "Všeobecné obchodní podmínky" }}
```
5. Save the changes made and **perform a test order**
### 💡 Pro tip:
To add additional PDF files with terms and conditions to the email, simply repeat the same process with the codes below.
**Refund policy 📄**
```html
{{ shop.refund_policy | attach_as_pdf: "Refund policy" }}
```
**Shipping policy 📄**
```html
{{ shop.shipping_policy | attach_as_pdf: "Shipping policy" }}
```
**Contact information 📄**
```html
{{ shop.contact_information | attach_as_pdf: "Contact information" }}
```
### Frequently asked questions
**Why attach terms as a PDF instead of just a link?**
Within the European Union, merchants must provide terms and conditions in a durable, unchangeable form. A PDF attachment sent with the order confirmation satisfies this, whereas a link to a page you can edit later may not.
**How do I attach the PDF to the order confirmation email?**
Go to Settings > Notifications > Order confirmation, choose Edit code, and paste the attach_as_pdf liquid snippet at the very end of the email template. Then place a test order to confirm the attachment arrives.
**Can I attach more than one document?**
Yes. Repeat the snippet for each document, for example refund policy, shipping policy, and contact information. Each one is attached to the email as its own PDF.
**Does this work for stores with multiple languages?**
Yes. Use the Localize option in the notification editor to add the code to language versions other than your default language.
---
## Automation to Hide Cash on Delivery for Blacklisted Customers ❌
- URL: https://appfleece.com/blog/automation-to-hide-cash-on-delivery-for-blacklisted-customers
- Published: 2024-02-09
- Author: Jan Nemec
- Other language versions: https://appfleece.cz/blog/automaticke-skryti-dobirky-pro-nevyzvedavajici-zakazniky | https://appfleece.de/blog/nachnahme-automatisch-ausblenden-fuer-nicht-abholende-kunden
Hide the Cash on Delivery (COD) option for customers who have **repeatedly not picked up their orders** through easy automation. Those who frequently make COD purchases and still do not collect their shipments can be a significant burden for your Shopify e-shop.
### In this article, you will learn:
- **Effective customer identification.** Familiarize yourself with the process of successfully identifying unwanted customers using the Shopify Flow tool.
- **Automatic hiding of cash on delivery payment.** Learn how to use the identification performed through Shopify Flow to automatically hide the Cash on delivery payment option for these customers during purchase.
- **Additional useful tips.** Concealing payment methods based on various other conditions
## Automatic Identification of Customers who do not Collect Cash on Delivery Orders
This automation monitors whether an **order has been completed through cash on delivery payment.** After 3 weeks, it checks if the order has been fully paid. If the order is successfully paid, it means the customer has successfully picked it up, and the situation is closed.
However, if the order is not paid even after three weeks, it indicates that the customer did not collect the shipment, and it has likely been returned to your warehouse. In such cases, the last step of this automation **assigns the label 'Unclaimed COD 1x' to the customer.** Using this label, you can then create a rule to automatically hide the cash on delivery payment option.
### Setting up automation in the Shopify Flow app
1. Save time and [download the automation we created here](/files/unclaimed-cod-once.flow)
2. Upload it to the Shopify Flow app. If you don't have it installed yet, use [this link to download](https://apps.shopify.com/flow)
3. Customize the **waiting period and label name** according to your specific requirements
4. **Activate the automation** and watch it run effortlessly
### Want to give your customers two or more chances?
If you want to be more considerate and forgive your customers for the first missed pickup, simply duplicate the above automation and **add a new condition at the beginning.** This second automation would then apply only to customers who already have the 'Unclaimed COD 1x' label assigned.
Finally, in the last step, **change the name of the new label,** for example, to 'Unclaimed COD 2x'. For your convenience, you can also [download this second automation directly from us](/files/unclaimed-cod-twice.flow).
## How to Hide Cash on Delivery for Selected Customers
Now that we have automatically identified specific customers using labels, we can move on to the last step. We will set a simple condition **to hide the cash on delivery payment option** in the [Payflow app](https://apps.shopify.com/payflow), which you can easily download directly from the Shopify App Store. The overall setup, including installation, should take no more than one or two minutes.
### Setup procedure in Payflow
1. Install the [Payflow app](https://apps.shopify.com/payflow) from the Shopify App Store
2. Go to **Payment Customization > Hide** and open the tool to create a condition
3. Freely name the new setting, for example, 'Hide COD by Customer Tags'
4. **Select 'Customer tag'** and leave the field next to the name set to 'is one of'
5. In the bottom field, **enter the name of the tag** to which this operation should apply. In our case, we will use **'Unclaimed COD 1x'.**
6. Choose the corresponding payment method you want to hide. You can choose from **predefined options, e.g., 'Cash on Delivery (COD)'.** If your COD has a different name, you can use 'Contains text' and specify the keyword
7. **Save the settings, and you're done!**
## More Useful Tips with the Payflow App 🙌
While setting up in the Payflow app, you may notice that a similar method can be used to configure many other useful features. Among the most common is, for example, **setting up cash on delivery with a fee.** Learn how to easily set up a charged cash on delivery in our [next article.](/blog/cash-on-delivery-fee-on-shopify-with-payflow)
### Specific common cases that Payflow will solve for you:
- **Hiding cash on delivery by delivery country** (often for international shipments)
- Allow selection of a payment method only if the total **weight of the cart is under a certain amount and does not contain selected items**
- Show 'Bank Transfer' only for **B2B customers**
- Hiding payment methods **above a certain order value**
- **Renaming payment or shipping methods**
- Manual or automatic **sorting of payment and shipping methods**
- And much more!
### Frequently asked questions
**How does the automation identify customers who do not collect COD orders?**
A Shopify Flow workflow checks whether a cash-on-delivery order is still unpaid three weeks after it was placed. If it remains unpaid, the customer likely did not collect the shipment, so Flow assigns a tag such as “Unclaimed COD 1x”.
**How is cash on delivery then hidden for those customers?**
In the Payflow app you create a rule that hides the cash-on-delivery payment method for customers carrying that tag. Setup takes only a minute or two.
**Can I give customers a second chance before blocking COD?**
Yes. Duplicate the workflow, add a condition at the start so it only applies to customers who already have the first tag, and assign a new tag such as “Unclaimed COD 2x”. Then hide COD only for the second tag.
**Which apps do I need for this?**
Shopify Flow (free) handles the identification and tagging, and Payflow hides the payment method based on the customer tag.
---
## Why DMARC is Essential for Your Shopify Emails and How to Set It Up 🔐
- URL: https://appfleece.com/blog/why-dmarc-is-essential-for-your-shopify-emails-and-how-to-set-it-up
- Published: 2024-01-08
- Author: Adam Charvat
- Other language versions: https://appfleece.cz/blog/proc-je-dmarc-nezbytny-pro-vase-emaily-v-shopify-a-jak-jej-nastavit | https://appfleece.de/blog/warum-dmarc-fuer-ihre-shopify-e-mails-wichtig-ist-und-wie-man-es-einrichtet
For all Shopify merchants, it is now critically important to set up DMARC for your email domain. Without this setup, from February 2024, Shopify will stop sending emails from your own domain and will switch to using the shopifyemail.com domain. This can impact the credibility and deliverability of your emails.
DMARC is an email authentication policy that helps confirm that sent emails are indeed from legitimate sources. This is especially important in the fight against email spoofing, where attackers can forge the source address of an email to deceive recipients. DMARC not only increases the credibility of your emails but also provides a mechanism for reporting and analyzing attempts to misuse your email address.
Shopify recently announced that from February 2024, it will require all domains used in their system to have a DMARC record set. Therefore, if DMARC is not set by the end of January, Shopify will automatically start sending your emails via the shopifyemail.com domain. This can affect your brand and customer trust, as emails will no longer look like they are directly from your domain.
## Setting up a DMARC record is a relatively simple process:
1. Log in to your domain management.
2. Find the section for managing DNS records.
3. Add a new TXT record with these details:
- Name: _dmarc.yourdomain.com (some providers only require _dmarc)
- Value: v=DMARC1; p=none; fo=0;
The above settings will provide you with the most basic DMARC setup. If you want to set up DMARC in more detail, you can use the online tool at [https://dmarcian.com/dmarc-record-wizard/](https://dmarcian.com/dmarc-record-wizard/).
To check the correct settings of the DMARC record, you can use the online tool at [https://dmarcian.com/dmarc-inspector/](https://dmarcian.com/dmarc-inspector/).
Setting up DMARC is now more important than ever, especially for Shopify users. It will help maintain the good name of your brand and ensure that your emails reach their recipients. Don't forget to make this change by the end of January to avoid switching to the shopifyemail.com domain.
## Further Information
1. [https://community.shopify.com/c/announcements/google-and-yahoo-new-email-deliverability-requirements/td-p/2367825](https://community.shopify.com/c/announcements/google-and-yahoo-new-email-deliverability-requirements/td-p/2367825)
2. [https://support.google.com/a/answer/2466563](https://support.google.com/a/answer/2466563)
### Frequently asked questions
**What is DMARC and why does Shopify require it?**
DMARC is an email authentication policy that helps confirm emails really come from your domain. Since February 2024, Shopify requires a DMARC record on every domain used to send email; without it, Shopify sends your emails from the shopifyemail.com domain instead of your own, which can hurt credibility and deliverability.
**What is the simplest DMARC record to start with?**
Start in monitoring mode, which satisfies the requirement without affecting your existing email delivery: add a TXT record named _dmarc.yourdomain.com (some providers only need _dmarc) with the value v=DMARC1; p=none; fo=0;
**Will setting up DMARC break my email deliverability?**
No. Starting with the p=none policy only monitors traffic and does not block any legitimate mail. It improves your credibility and prevents the automatic switch to the shopifyemail.com domain. You can tighten the policy later once you have reviewed the reports.
**How do I check that my DMARC record is set up correctly?**
After adding the TXT record, use a DMARC inspector tool such as the one at dmarcian.com to confirm the record resolves and is valid. DNS changes can take a little time to propagate.
---
## Free Heureka “Verified by Customers” Integration with Shopify Flow 🚀
- URL: https://appfleece.com/blog/free-heureka-verified-by-customers-with-shopify-flow
- Published: 2023-07-19
- Author: Adam Charvat
- Other language versions: https://appfleece.cz/blog/heureka-overeno-zakazniky | https://appfleece.de/blog/heureka-verifiziert-durch-kunden-kostenlos-mit-shopify-flow
To integrate your store with **“Verified by Customers” (Heureka.cz and Heureka.sk**, the leading price-comparison and review platform in the Czech Republic and Slovakia), you can use apps available on the Shopify App Store. But if you use Flow, you can set up the process yourself.
Flow is an official Shopify app that is easy to use and lets you intuitively create and automate various processes.
In this article we'll show a workflow that automatically sends data to Heureka after a completed purchase. A few days later, Heureka automatically emails the customer the “Verified by Customers” survey.
- **Czech Republic and Slovakia.** Our workflow distinguishes Czech and Slovak purchases based on the delivery address.
- **Order data.** Customer data and purchased products (their variant IDs) are automatically sent to Heureka. If you have an XML feed set up, the customer can also rate the products on your store.
- **Customer consent.** By default, we assume the customer agrees to receive the survey, but we add an option in the cart where the customer can opt out.
- **API keys.** Prepare the API keys from Heureka that you'll use to authorize your API requests. If you sell to both the Czech Republic and Slovakia, you'll prepare two different keys. You can find the secret key for the CZ Heureka [here](https://sluzby.heureka.cz/n/sluzby/certifikat-spokojenosti/).
## Setting up the workflow in the Flow app
1. [Download the workflow we created here](/files/overeno.flow), which you'll import into your store in the next step
2. Install and open the Flow app in your store, then click the Import button
3. Select the downloaded file and open the workflow
4. In Flow, edit the actions named `Send HTTP request`. Replace `YOUR API KEY` with your actual keys.
5. You can adjust or remove the conditions for the Czech Republic and Slovakia according to your needs.
6. Activate the workflow
## Adding a checkbox to the cart to opt out
You should give customers the option to opt out of the survey. You can achieve this by adding a checkbox code to your theme.
1. Open the Online Store section and choose Edit code in your theme
2. Find where the cart code is in your theme, usually the file main-cart-items.liquid or cart.liquid
3. Copy and paste the code below into your theme. The code must be inside the form tag.
4. Test that you placed the code in the right spot. Make test orders; in the admin order detail you should see whether the customer checked the opt-out box.
5. In the Flow app you can open the Run history and check whether the API request was sent.
On some themes you may run into an error. For more information about adding cart attributes to the cart, see the discussion [here](https://community.shopify.com/c/shopify-design/cart-use-cart-attributes-to-collect-more-information/m-p/613718), or contact us.
**Insert the code before the end of the form section**
```html
```
### Frequently asked questions
**What is the “Verified by Customers” (Ověřeno zákazníky) program?**
It is Heureka’s review program for the Czech and Slovak markets. After a purchase, Heureka emails the customer a satisfaction survey, and the resulting reviews build trust for your store on Heureka.cz and Heureka.sk.
**Do I need a paid app to set it up?**
No. You can set it up yourself for free using Shopify Flow, the official Shopify automation app, with the ready-made workflow provided in this article. No extra paid app is required.
**How does it tell Czech and Slovak orders apart?**
The workflow distinguishes Czech and Slovak purchases based on the delivery address and sends the data with the matching Heureka API key, so you can serve both Heureka.cz and Heureka.sk from one store.
**Can customers opt out of the satisfaction survey?**
Yes. You add a small checkbox to the cart so customers can decline the survey, and the workflow respects that choice when sending data to Heureka.