A mapping works in one direction: a product that already exists in Shopify points at something in your MemberArea. The Sync tab does the opposite. It takes a product you already built in your MemberArea and creates it in Shopify, mapped and ready to sell, without retyping the name and the prices.
Open the Sync tab
Open the Shopify page at /admin/settings/integrations/shopify, then the tab
Sync. You need the permissions Update Platform Settings and Manage
Integrations. The tab opens with the line "Create MemberArea products in your
shop and keep them in sync."
The list shows your products by name, each with its one-time prices. It loads up to 200 products whose Visibility in the product editor is Public or Unlisted, sorted by name, and it has no search box. A product set to Hidden never appears. The products created for your Shopify mappings, whose internal name starts with "Shopify: ", are left out as well.
Each row carries a badge:
| Badge | Meaning |
|---|---|
| Not in the shop yet | The product can be pushed and has not been pushed so far. |
| In the shop | The product was pushed. The colour follows the sync state of its variants and shows the worst one: green while all of them match, yellow when the shop copy of at least one differs, red when a push failed or every link is broken. |

If you have no product that fits, the tab reads "No products to push yet." Refresh reloads the list, for example after you added a price in another tab.
When the connection to your shop is broken, the tab shows "Reconnect the shop to use this." instead of the list. Press Reconnect shop and connect again, as described in Connecting your Shopify shop.
Push a product
- Tick the products you want in the shop.
- Press Push selected. The button shows how many products you ticked.
- Wait until each row reports back. A successful row shows Pushed.
Twenty products go in one run. Ticking more than twenty does not warn you: the run takes the first twenty you ticked. Push the rest in a second run.
A row that did not go through shows its reason in place of the badge: red when Shopify refused the product, yellow in every other case. If Shopify is busy or does not answer, the run stops early, and the products it did not reach read "Shopify is busy right now. Push the remaining products in a moment." Tick them again after a short wait. If the whole request fails, the page shows "The push did not go through. Please try again."
What lands in Shopify
The Shopify product gets the name, the description and the first image of your product. Every active one-time price becomes its own variant, named after the price. A price without a name becomes a variant called "Default". The SKU is passed on when the product has one.
Every variant is created without shipping and without stock tracking in Shopify. That is why physical products are not pushed at all (see below).
The status follows the status switch in the product editor. A product set to Live arrives in Shopify as active, one set to Draft arrives as draft.
Whether an active product is visible to shoppers depends on the sales channels it is published to in Shopify, and the push does not touch those. Open the product in your Shopify admin and check its sales channels before you send anyone to it.
Every variant gets its own mapping at the same moment, so the product sells and unlocks without a second step. You find these rows on the Mappings tab, one per variant. A purchase in the shop then grants the access you set on the product in your MemberArea, as described in Checking what a buyer gets.
What cannot be pushed
A row that cannot be pushed cannot be ticked. Its reason stands under its name in place of the prices:
| Row says | What to do |
|---|---|
| "This product has no active price yet." | Add a one-time price to the product first. |
| "Subscription prices are not created in Shopify yet." | Recurring billing in Shopify runs through Shopify's own subscription apps, which MemberArea does not manage. Sell recurring plans through your MemberArea checkout. |
| "Only one-time prices can be created in Shopify." | Other price types, for example pay-what-you-want or instalments, have no equivalent in Shopify. Add a one-time price if the product should sell there. |
| "Physical products and products with tracked stock are not created in Shopify yet, because shipping and stock would not be passed on." | Shopify would sell the product without shipping and without a stock limit. Sell it through your MemberArea checkout. |
One more check happens only when you push, so the row can be ticked but comes back with this reason: "This product has a price in USD, but the shop sells in EUR. Shopify would show the amount in the wrong currency, so the product is not created there." The currencies in the message are the ones of your product and your shop. Give the product one-time prices in the shop's currency only, or switch off the prices in other currencies, and push again.
A physical product that was pushed before this check existed stays in Shopify as it is. It is simply no longer updated from your MemberArea.
Keeping the two in step
A product that is already in the shop can be ticked and pushed again. A second push updates the same Shopify product and never creates a duplicate, as long as its mappings exist and are still linked.
Editing the product in your MemberArea changes nothing in Shopify on its own. Nothing is sent until you tick the row and press Push selected again. A price you switched off here disappears from the Shopify product with that push, and its mapping on the Mappings tab reads No longer linked.
When someone edits the product in Shopify, MemberArea compares the shop copy with the title and the prices of your last push. If the title or the price of a variant differs, the mapping on the Mappings tab reads Changed in Shopify and the badge on the Sync tab turns yellow. That is a statement, not an error: your two systems now say different things, and nothing is overwritten on its own. Push again if the version in your MemberArea should win, or leave it if the shop version is the one you want. As soon as title and prices match again, the mapping goes back to In sync.

An edit you made here and have not pushed yet does not count as a difference. Only a change in the shop does. For a variant that was last pushed before MemberArea started keeping the pushed price, the price is still compared with the current price here until you push the product once more. Your own push never counts: the webhook log notes it as "This update is the echo of our own push."
If the product is deleted in Shopify, its mappings read No longer linked and the badge on the Sync tab turns red. Access that buyers already received stays. Push the product again to create it in Shopify anew, with new mappings. The old mappings stay as No longer linked, so delete them on the Mappings tab.
Deleting the product in your MemberArea
Deleting a pushed product in your MemberArea does not delete it in Shopify. Shortly afterwards the Shopify product is set to draft, so it disappears from your shop while its order history in Shopify stays intact. Its mappings read No longer linked and no longer unlock anything.