> For the complete documentation index, see [llms.txt](https://developer.esw.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.esw.com/shopify/shopify-native/integration-workflow/pricing-import.md).

# Pricing Import

### 1. ESW Pricing Advisor API

Call GET `api/4.0/StandardAdvice/{tenantCode}` to fetch FX rates, uplifts, duties, taxes, and rounding rules for each market.

## GET All available pricing advice for a brand.

> This endpoint can be used to retrieve all available pricing advice for a brand.

```json
{"openapi":"3.0.4","info":{"title":"Pricing Advisor API","version":"4.0"},"tags":[{"name":"StandardAdvice","description":"Pricing Advisor Controller V4"}],"servers":[{"url":"https://pricing-advisor-api.sandbox.eshopworld.com"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","description":"Please insert JWT with Bearer into field","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"PricingAdviceResponse":{"type":"object","properties":{"id":{"type":"string","description":"Gets the identifier.","nullable":true,"readOnly":true},"version":{"type":"string","description":"Gets the version.","nullable":true,"readOnly":true},"countryIso":{"type":"string","description":"Gets the country iso.","nullable":true,"readOnly":true},"lastUpdated":{"type":"string","description":"The UTC date and time that this piece of pricing advice was last updated.","nullable":true,"readOnly":true},"tenantIdentifier":{"type":"string","description":"Gets the tenant identifier.","nullable":true,"readOnly":true},"fxRates":{"type":"array","items":{"$ref":"#/components/schemas/FxRateResponse"},"description":"Gets the fx rates.","nullable":true,"readOnly":true},"categories":{"type":"array","items":{"$ref":"#/components/schemas/CategoryResponse"},"description":"Gets the categories.","nullable":true,"readOnly":true},"merchandisePricingModel":{"$ref":"#/components/schemas/PricingModelResponse"}},"additionalProperties":false,"description":"Pricing Advice Response"},"FxRateResponse":{"type":"object","properties":{"from":{"type":"string","description":"Gets from.","nullable":true,"readOnly":true},"to":{"type":"string","description":"Gets to.","nullable":true,"readOnly":true},"rate":{"type":"number","description":"Gets the rate.","format":"double","readOnly":true}},"additionalProperties":false,"description":"Class FxRateResponse."},"CategoryResponse":{"type":"object","properties":{"id":{"type":"string","description":"Gets or sets the identifier.","nullable":true,"readOnly":true},"estimatedTax":{"type":"number","description":"Gets or sets the estimated tax.","format":"double","readOnly":true},"estimatedFee":{"type":"number","description":"Gets the estimated fee rate.","format":"double","readOnly":true},"estimatedDuty":{"type":"number","description":"Gets or sets the estimated duty.","format":"double","readOnly":true},"retailerAdjustment":{"type":"number","description":"Gets or sets the retailer adjustment.","format":"double","readOnly":true},"roundingConfigurations":{"type":"array","items":{"$ref":"#/components/schemas/RoundingConfigurationResponse"},"description":"Gets or sets the rounding models.","nullable":true,"readOnly":true},"currencyDisplays":{"type":"array","items":{"$ref":"#/components/schemas/CurrencyDisplayResponse"},"description":"Gets or sets the currency displays.","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Category"},"RoundingConfigurationResponse":{"type":"object","properties":{"currencyIso":{"type":"string","description":"Gets or sets the currency iso.","nullable":true,"readOnly":true},"currencyExponent":{"type":"integer","description":"Gets or sets the currency exponent.","format":"int32","readOnly":true},"direction":{"type":"string","description":"Gets or sets the rounding direction.","nullable":true,"readOnly":true},"model":{"type":"string","description":"Gets or sets the model.","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Rounding Model"},"CurrencyDisplayResponse":{"type":"object","properties":{"currencyIso":{"type":"string","description":"Gets or sets the currency iso.","nullable":true,"readOnly":true},"currencySymbol":{"type":"string","description":"Gets or sets the currency symbol.","nullable":true,"readOnly":true},"currencyExponent":{"type":"integer","description":"Gets or sets the currency exponent.","format":"int32","readOnly":true},"decimalSeparator":{"type":"string","description":"Gets or sets the decimal separator.","nullable":true,"readOnly":true},"thousandSeparator":{"type":"string","description":"Gets or sets the thousand separator.","nullable":true,"readOnly":true},"showTrailingZeros":{"type":"boolean","description":"Gets or sets a value indicating whether [show trailing zeros].","readOnly":true},"configurationString":{"type":"string","description":"Gets or sets the configuration string.","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Currency Display"},"PricingModelResponse":{"type":"object","properties":{"id":{"type":"string","description":"The input models ID.","nullable":true,"readOnly":true},"applicableRates":{"type":"array","items":{"type":"string"},"description":"The list of rates that are applicable to estimated prices based on the currency input model.","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Represents a pricing model response."},"ProblemDetails":{"type":"object","properties":{"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}},"paths":{"/api/4.0/StandardAdvice/{tenantCode}":{"get":{"tags":["StandardAdvice"],"summary":"GET All available pricing advice for a brand.","description":"This endpoint can be used to retrieve all available pricing advice for a brand.","operationId":"GetAll","parameters":[{"name":"tenantCode","in":"path","description":"The tenant identifier.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PricingAdviceResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PricingAdviceResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PricingAdviceResponse"}}}}},"400":{"description":"Bad Request","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}},"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}},"text/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}}}}}}
```

### 2. Shopify Admin API (GraphQL)

Upsert the calculated prices as fixed prices in Shopify.

Use Shopify price lists and the GraphQL mutation:

#### <i class="fa-hexagon-nodes" style="color:$primary;">:hexagon-nodes:</i> [priceListFixedPricesAdd](https://shopify.dev/docs/api/admin-graphql/latest/mutations/priceListFixedPricesAdd)

Implementation notes:

* Batch updates to stay within rate limits.
* Make writes idempotent.
* Log failures with enough data to replay.

### Shopify reference links

{% tabs %}
{% tab title="Fixed prices by country/market" %}
[Product prices by country (Shopify Help)](https://help.shopify.com/en/manual/international/pricing/product-prices-by-country#set-fixed-product-prices-using-the-shopify-api)
{% endtab %}

{% tab title="Fixed prices for specific variants" %}
[Set fixed prices for specific variants (Shopify Dev)](https://shopify.dev/docs/apps/build/markets/build-catalog#step-3-set-fixed-prices-for-specific-product-variants)
{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developer.esw.com/shopify/shopify-native/integration-workflow/pricing-import.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
