Anchor Price and Price List

Merchant manual

What the law requires, how Anchor price and price list works and what to do on every screen.

The screens named in the manual open in the app inside the Shopify admin. The price list addresses here are an example, the real ones are on the Price list screen.

Contents

  1. What the law requires
  2. How the app works
  3. First steps
  4. Screens of the app
  5. Storefront
  6. Daily work
  7. Alerts
  8. Frequently asked questions
  9. Support

What the law requires

Two decisions of the Croatian Government were published in Narodne novine 101/2026 and apply from 1 October 2026. Both cover online stores.

Anchor price (Decision no. 1212)

Next to the retail price of every product the merchant clearly shows the anchor price. That is the regular price the product had on 10 September 2026, without special sale forms. The duty also covers advertising, including web pages.

An exception applies to food, drinks, cosmetics, cleaning products, toiletries and household products. For those goods the anchor price is the price that applied on 2 May 2025, as an earlier decision set.

Machine readable price list (Decision no. 1213)

The State Inspectorate supervises compliance. The app helps you meet both duties, and responsibility for correct prices stays with the merchant.

How the app works

The app works in the background and does not change prices in the store. It reads the catalog, keeps a price history per variant and derives the anchor price from it.

  1. On installation the app reads the whole catalog and records the price of every variant.
  2. Every price change arrives as a message from Shopify and is written to the history.
  3. Every morning at 6:00 Zagreb time the app reads the catalog again and publishes the price list for that day.
  4. It writes the anchor price and anchor date to variant metafields, from where the theme shows them in the storefront.
  5. It publishes the price list at two addresses: on the app domain and on the store domain.

When something fails, the app shows an alert on the Home screen and in Diagnostics.

First steps

After installation open the Guide. It has seven steps and each can be reopened later.

  1. Webshop details: enter the address and code. The app numbers files automatically.
  2. Choose the assortment. The reference date is set automatically; additional rules are available for mixed catalogs.
  3. First catalog read: the app reads all products. The screen refreshes itself until the read finishes.
  4. Anchor review: counts per source, links to variants for review and without an anchor, and the Confirm unchanged button.
  5. Storefront: enable the display in the theme and add the Anchor price block to the product page.
  6. Price list: enable publishing, check both addresses and run the fetch test.
  7. Summary: an overview of everything entered with links to the screens.

What to prepare

Screens of the app

The app has seven screens. All of them are in the menu on the left.

ScreenPurpose
HomeAnchoring counts, open problems and the price list state.
Anchor pricesThe list of variants with anchor price, editing and bulk actions.
ImportImport of anchor prices from a CSV file.
Price listPrice list publishing, addresses, sales point data and the fetch test.
SettingsAnchor dates, price list rules and language.
DiagnosticsTechnical state, repairs and links into the theme editor.
GuideSetup in seven steps.

Home

Home shows the anchoring counts: variants in the catalog, with an anchor price, for review, without evidence and those waiting to be written to the store. Below are the open problems, the state of the daily catalog read and the state of the price list.

The guide card stays until the guide is finished. The Help section with links to the guide and to this manual is always visible.

Anchor prices

The list of all variants with anchor price, date, source and confidence. The source says where the price came from.

SourceMeaning
ManualYou entered it by hand on the variant details. It is locked and has the highest confidence.
ImportIt came from an imported file. It is locked.
HistoryThe app found the price that applied on the anchor day in the price history.
ConfirmedYou confirmed that the price has not changed since the anchor day. It is locked.
IntroductionThe variant was created after the anchor day, so the anchor is the first price it had.
UnchangedShopify recorded no change to the variant between the anchor day and the installation, so the app takes the price found at the installation as the price of the anchor day. Any change counts, a stock change too, which is why many variants in a busy store end up without evidence and need an import or a confirmation.
No anchorNo evidence. The row goes into the price list without an anchor price.

The filters are All variants, Without an anchor, For review and By source. The search looks at the product title, variant title, SKU or barcode.

You edit one variant in its row: enter the anchor price and date and click Save. A locked row is overwritten only with the Overwrite locked checkbox. The Details link opens the price history and evidence of that variant.

Bulk actions work on the selected rows or on all variants without an anchor: Confirm unchanged, Set the introduction price, Clear the anchor and Export for review. The export gives a CSV that you fill in and return through Import.

Confirm unchanged is your statement that today's regular price also applied on the anchor day. Use it only when that is true, because that price is shown to customers and to the inspector.

A locked anchor (manual, imported or confirmed) is not touched by the daily calculation. The Recalculate all button overwrites locked anchors too, so it asks for confirmation and is written to the log.

Import

The import writes anchor prices from a CSV file. The app recognises three formats by their header: the simple template, the Shopify product export and the Matrixify export. The templates are downloaded on the same screen.

In the simple template the variant is matched by variant ID, SKU or barcode. Columns are separated by a semicolon and the price may use a comma. Example header and one row:

variant_id;sku;barkod;sidrena_cijena;sidreni_datum
;SKU-001;3850123456789;19,90;10.09.2026.

After the upload the app prepares a preview: how many rows are matched, unmatched, ambiguous, invalid, in conflict with a locked anchor or skipped. Nothing is written until you click Apply.

An unmatched row means the variant was not found in the catalog: check the key. An ambiguous row (the same SKU on several variants) writes the price to all of them. The largest file is 20 MB and 60000 rows.

Price list

The Price list screen shows whether publishing is enabled, when the price list was last published and how many rows it has.

The price list has two addresses. The main address is on the app domain: https://sidro.amondi-media.com/cjenik/store-slug. Report and use that one in every publication. The auxiliary address is on the store domain: https://store-domain.com/apps/cjenik. Shopify limits unsigned bots on the store domain, so the auxiliary address does not replace the main one.

Both addresses serve latest.csv and latest.xml and every file of the last 30 days. The Generate now button publishes a new file immediately.

The fetch test (Run the test button) fetches latest.csv from both addresses as an outside bot, without cookies and without login. That checks the same thing an inspector would check.

The Price list block in the theme editor puts links to the CSV and XML on any page of the store, for example in the footer.

Give the inspector the main address. It holds the price list for today and the archive of the last 30 days, with the publish time of every file.

On the same screen you enter the sales point data and the CSV shape: the full list of 12 columns, the decimal mark and a BOM for older Excel.

Settings

Every setting in one sentence:

Diagnostics

Diagnostics shows the technical state and offers repairs. Open it when something does not work or when an alert sends you there.

Actions: Repair the definitions creates the missing metafield definitions. Full metafield sync writes all anchors to the store again. Recalculate the anchors goes through the evidence again for variants that are not locked. Next to them are Check access, Read the catalog now, Check the metafields and Test the price list addresses.

Guide

The guide is described under First steps. After it is finished it stays in the menu and every step can be opened again.

Storefront

The anchor price reaches the theme through the app extension. Nothing is written into the theme code.

  1. In the Shopify admin open Online Store, then Themes and Customize.
  2. Open App embeds and enable Anchor price on cards and in the cart. The Turn the display on in the theme link on Diagnostics leads straight there.
  3. On the product template add the Anchor price block next to the price. The Add the label to the product page link opens the editor at the right place.
  4. Save the theme and open any product in the storefront.

On the product page the label is shown through the block, and on cards in collections, in search results and in the cart through the app embed. Each of those three displays is switched on or off in the app embed settings.

The label is shown whenever the variant has an anchor price, on every product, not only on sale. That is what the decision asks for.

If the label is not visible, change Theme in the app embed settings from Automatic to Dawn, Horizon or Custom selectors. With custom selectors you enter the selector of the card, of the price on the card, of the cart row and of the field in the row. A theme without blocks can print the same label with the Liquid snippet from Diagnostics.

The label template and name are changed in the block and app embed settings. The placeholders are {label}, {amount} and {date}.

Daily work

New product

A new product gets the Introduction anchor: the first price it had. Check it under Anchor prices if it was entered with a temporary price.

Price change

The app records a price change from the Shopify message. The anchor price does not change, because it is tied to the anchor day. The price list with the new price comes out next morning, and you can publish it right away with Generate now.

Sale

Run a sale as before: put the reduced price in the price and the regular price in the compare at price. The app reads that as a discounted product and writes DA (yes) into the price list. The discount name comes from Settings, and a single product can carry the tag sidro-oblik:Name, for example sidro-oblik:Black Friday.

Product outside the price list

Tag a product that does not belong in the price list with cjenik-izuzeti. Its anchor price is still calculated.

Food, drinks and cosmetics

For goods under the exception enter the second date 2 May 2025 in Settings together with the rules that cover them. The app then looks for the price on that day for those products. If the history does not reach that far, import or confirm the anchor.

Variant without an anchor

A variant without an anchor price goes into the price list with an empty sidrena_cijena column and appears under the Without an anchor filter. Fill it in by hand, by import or by confirmation.

Changing the language

You change the language in Settings. It applies to the app screens. The public price list page follows the browser language of the visitor. The language of the Shopify admin has no effect on the app.

Alerts

Alerts stay on Home and on Diagnostics until the cause is removed. This is the list of all alerts with what to do.

The app has to be opened again

Open the app from the Shopify admin, the login renews itself. If the alert comes back, reinstall the app.

The daily catalog read failed

On Diagnostics click Read the catalog now. If that fails too, check Store access and contact support.

The catalog has not been refreshed

On Diagnostics click Read the catalog now. Until then the price list is published from the last known prices.

A backlog of store messages

Messages are processed with a delay. Wait an hour. If the alert stays, check Messages from the store on Diagnostics.

The bulk query returned a broken file

Shopify returned an incomplete result. Run the catalog read again. If it repeats, contact support.

The installation did not finish

Open the Guide and go through the steps again. Check that the store currency is the euro.

The store currency is not the euro

Anchors and the price list work only for stores in euros. Change the store currency to the euro and run the catalog read.

Anchor prices are waiting for a review

Open Anchor prices with the For review filter and confirm, enter or import the anchors.

Writing the metafields failed

On Diagnostics click Repair the definitions and then Full metafield sync.

The metafields differ from the app data

On Diagnostics click Full metafield sync. Check whether another app uses the same metafields.

Metafield definitions are missing

On Diagnostics click Repair the definitions.

The catalog is too large to process quickly

The catalog is above the limit for fast processing, so processing takes longer. The app keeps working. Contact support if the alert does not close on its own.

The bulk catalog read failed

Run the catalog read again. If it repeats, contact support.

The bulk catalog read timed out

Run the catalog read again. If it repeats, contact support.

No price list has been published today

On Price list click Generate now. Check that publishing is enabled and that the store currency is the euro.

Publishing the price list failed

Open Price list, read the message in the last runs and click Generate now.

The price list on the store domain does not answer

Check that the app is still installed and that the theme does not redirect the path /apps/cjenik. The main address works regardless.

The direct price list address is unreachable

The app server did not answer. Run the test again in a few minutes and contact support if the alert stays.

The subscription is not active

Choose a plan on the app page in the Shopify admin. Without a plan the app works until the 14 day grace period ends.

Frequently asked questions

Does the app change prices in my store?

No. The app only reads prices and writes the anchor price to variant metafields. Prices and compare at prices stay as you set them.

What if I installed the app after 10 September 2026?

The app has no history from before installation. When Shopify recorded no change to a variant between the anchor day and the installation, the app takes the price found at the installation as the price of the anchor day. Any change counts, a stock change too, so in a busy store many variants end up without evidence. Import those from an export or confirm them with Confirm unchanged.

Which price list address do I give the inspector?

The main address on the app domain. It answers without login and without CAPTCHA and keeps a 30 day archive.

Is the price list published even when I changed nothing?

Yes. The decision requires daily publishing by 8:00, so the app publishes a new file every morning even when prices are the same.

Why is the anchor price not visible in the storefront?

Most often because the app embed is not enabled, the block is missing on the product template or the variant has no anchor. Check Storefront on Diagnostics and the Storefront section of this manual.

How do I leave a product out of the price list?

Add the tag cjenik-izuzeti to it. The prefix and the tag can be changed in Settings.

What happens to the data when I uninstall the app?

The price list stays available for 30 days, as the decision requires, and then all store data is deleted. A deletion request from Shopify deletes it immediately.

Can I have more than one discount name?

Yes. The default name is in Settings, and a single product gets its own name through the tag sidro-oblik:Name.

What does confidence next to the anchor price mean?

A score of how strong the evidence is. Manual entry, import and history have the highest confidence. An anchor with confidence below 0.8 appears in the For review list, but is still shown.

Does the app work with a currency other than the euro?

No. The decisions cover prices in euros, so the app makes neither anchors nor a price list for a store with another currency.

Support

Would you like us to set up the app?

amondi Media d.o.o. offers optional app setup and anchor price placement in your theme for a one-time fee of 99,00 USD. This service is separate from the subscription and is never charged automatically. You can set up the app yourself without this fee. Contact support to arrange the service.

Send questions and bug reports to the publisher of the app, amondi Media d.o.o. We answer on working days.

In the message include:


Back to the home page