Commerce
Enable a product catalog, let your agent recommend items, and capture confirmed orders in web chat, WhatsApp, Instagram, Messenger, and Guided Flows.
Commerce gives one Fetchply agent a shared product catalog and order desk. It is optional and off by default. If you leave it off, visitors and teammates see no Commerce changes.
Not for agents connected to Shopify
Commerce is for selling products you keep in Fetchply. An agent connected to a Shopify store already sells from that store's catalog, cart, and checkout, so Commerce is not available for it and the Enable Commerce switch stays off with a short note explaining why. Your shoppers keep getting live Shopify products, prices, and availability, and they check out on your storefront as usual.
If an agent had Commerce on before you connected Shopify, Shopify takes over as soon as it is connected: product questions are answered from your Shopify catalog and the Fetchply catalog is no longer offered to shoppers. The Commerce section disappears from that agent's sidebar. Your products, past orders, and records are not deleted — reconnect them by disconnecting Shopify from that agent.
Turn Commerce on
- Open the agent's Integrations page.
- Open the Commerce integration and turn on Enable Commerce.
- Expand Commerce in the agent sidebar.
- Open Products and add at least one active product.
The Commerce switch used to live in the agent's Settings; it now has its own page under Integrations.
Turning Commerce off hides Products, Orders, Analytics, and Settings. It also stops new recommendations and orders. Existing confirmed orders remain in your records. Unconfirmed drafts are cancelled.
Store settings
Open Commerce → Settings to set the defaults your store uses:
- Store currency: the three-letter currency code your whole store uses. Set it once here; every product and order uses it, and you cannot set a different currency per product.
- Tax rate: a percentage applied to each order's item subtotal.
- Flat shipping rate: a fixed shipping charge added to every order.
- Free shipping over: an order value above which shipping is waived. Leave it blank to always charge shipping.
- Payment methods: the ways customers can pay — Cash on delivery, Online payment, or both. Each method can carry its own fee or discount (see below). At least one method must stay enabled.
- Default status for manual orders: the status new orders you create get, either Confirmed or Processing.
- Notify customers automatically: when on, Fetchply messages the customer whenever you create or update their order.
Shipping and tax are added on top of the item subtotal to produce the order total, and any payment-method fee or discount is applied last. This happens for every order the same way — orders placed in chat, orders placed through a guided flow, and orders you create yourself — and the shipping, payment method, and total appear in the order review before anything is placed. Changes apply to new orders and to updates you make afterward; they do not rewrite the totals of past orders.
Payment methods
Cash on delivery is on for new stores; online payment is off until you enable it. For each enabled method you can add an optional amount in the Fee or discount box:
- a positive amount (for example
2.00) is added to the order total as a fee — common for cash on delivery; - a negative amount (for example
-2.00) is taken off the order total as a discount — common for encouraging online payment; - leave it blank for no charge either way.
When only one method is enabled, every order uses it automatically and the customer is not asked. When both are enabled, chat orders ask the customer to choose before the order can be confirmed, and the review names the chosen method with its fee or discount. Orders placed through a guided flow are not asked; they use cash on delivery when it is enabled, otherwise online payment. A discount can never push an order total below zero.
Fetchply records the chosen method on the order; collecting the actual payment (the cash, or the online transfer) happens between you and your customer outside Fetchply.
Build and find products
Each product needs a name and price. You can also add a description, SKU, image, and tracked stock. The currency is your store currency from Commerce → Settings and is shown on the product form for reference only — you set it once for the whole store, not per product. Select Add product to open a panel on the right, fill in the details, and save.
To add a picture, select Upload image on the product form and choose a file from your device. Fetchply stores the image and shows a preview right away. Use Replace image to swap it or Remove to clear it. Accepted formats are PNG, JPG, GIF, and WebP, up to 5 MB. The picture appears on the product card in web chat. On WhatsApp, Instagram, and Messenger, Fetchply sends the uploaded picture with the recommendation so the shopper can see the product inside the conversation.
- Leave stock empty when you do not want Fetchply to count it.
- Set stock to
0to make the product unavailable to visitors. - Hide a product to stop new recommendations without changing past orders. You can make it active again at any time.
- Permanently delete a product with the trash button on its row when you will never sell it again. A confirmation step appears first, because a deleted product cannot be restored. Past orders and receipts keep the product's name and prices, so your records stay complete. If you might bring the product back, hide it instead.
- Every product uses your store currency from Commerce → Settings; change it there and it applies across your catalog and new orders.
Sales and promotions
A product's price on the product form is its regular price. Sales, promotions, and discount codes are managed on the Discounts page, where one rule can mark down many products at once; see Collections and discounts. When a discount applies, customers see both prices ("now 39.00, was 49.00") in chat recommendations, order reviews, and receipts, and the review shows a single You save line with the total taken off.
Use the search, visibility, stock, and sorting controls on Products to find catalog items quickly. The agent searches active products using their current names, descriptions, SKUs, prices, options, and availability. Close singular and plural wording is treated alike, so a shopper asking for "shoes" can find a product named "Running shoe."
When Commerce is on, product questions are checked against the current catalog before the agent answers. This includes follow-up questions such as "tell me more about the hair oil," "is it available?", or "which one is cheaper?" The agent can still use your trained knowledge for general business information and policies, but it does not use training content as the source for a product's current price or stock.
Customer and delivery details
Before an order can be confirmed, Fetchply requires:
- customer name;
- one contact detail: either a valid email address or a usable phone number;
- full delivery address.
The shopper is never asked for both an email and a phone number. Whichever one they give is used for order updates, and once it is saved the agent moves on to the next missing detail. They can still add the second one later if they want to.
In web chat, the shopper receives a form inside the conversation. Name and delivery address are required, and they fill in an email address, a phone number, or both. If both contact boxes are left empty, the form asks for one before it can be submitted. Fetchply saves the submitted details together before showing the review, so an interrupted save cannot leave only part of the form on the order. If saving fails, the shopper is asked to submit the form again and nothing is placed. They then review the order and choose Place order or Cancel.
In WhatsApp, Instagram, and Messenger, Fetchply asks for one missing detail at a time and accepts either contact type in the same answer, so a shopper can simply send their phone number. Instagram can offer the email saved on the shopper's profile when Meta makes it available.
Shoppers can answer in their own language and in their own words, including romanized writing such as Roman Urdu. A bare answer such as "Ammar" and a full sentence such as "mera naam Ammar hai" are both saved, and a message that happens to carry more than one detail saves all of them at once. Fetchply only saves what the shopper actually wrote, so a question or a change of mind at that step is answered instead of being stored as a delivery detail.
How chat orders are confirmed
A shopper can describe what they need in their own words. The agent sells the way a good shopkeeper does: if the request is vague it first asks one short question about the need, then searches the current catalog and suggests a few real products with a short reason tied to what the shopper asked for. It answers doubts about price, quality, delivery, or returns honestly before asking for anything, and when the shopper's interest is clear it politely offers to place the order once, without pressuring or repeating the ask. After the shopper agrees, Fetchply creates a pending draft and collects the required customer details one at a time, in the shopper's own language.
When both payment methods are enabled in your store settings, Fetchply also asks how the shopper wants to pay — naming each option with its fee or discount — once the delivery details are complete. A plain answer such as "cash on delivery", "COD", or "online" is saved; with only one method enabled the question is skipped and that method is used automatically.
After the details are complete, Fetchply shows the product, quantity, any savings, shipping, the payment method with its fee or discount, the total, delivery destination, and the contact it will use for updates so the shopper can review. In web chat, the shopper uses the Place order button or clearly confirms in the conversation. In WhatsApp and Instagram, the review arrives with two tappable buttons, confirm order and cancel order, and the shopper can also confirm naturally in their own words instead of tapping. In Messenger, the shopper confirms or cancels in their own words. The shopper can cancel while the order is pending. Adding the final delivery detail does not place the order: nothing is placed until the shopper separately approves the completed review.
Once the order is placed, the shopper gets a confirmation in web chat, WhatsApp, Instagram, or Messenger written in the language they have been using in that conversation, including romanized writing such as Roman Urdu, and it always carries their order number. Tapping a button rather than typing does not change this, because the language is taken from the whole conversation.
At confirmation, Fetchply checks that Commerce is still on, the product is still active, the customer details are complete, and enough stock remains. It also checks the current product price, shipping, tax, and total. If the price or total changed, Fetchply shows a refreshed review and asks the shopper to confirm again. If a product became unavailable, no order is placed and the shopper can ask for an alternative.
If a product was hidden or deleted while the shopper's order was still pending, that pending order can never be completed. Fetchply names the product that is gone, discards the pending order, and invites the shopper to choose something else, so one removed product does not block the rest of the conversation. In web chat the shopper is taken straight to a new order for the product they asked for.
One pending order per conversation
Each conversation holds a single pending order. If a shopper repeats their request, says "yes, order it", or the agent revisits the order later in the chat, Fetchply keeps the same pending order and its order number instead of starting a second one. Details the shopper already gave stay saved, so nothing has to be re-entered.
Asking for a different product, or a different quantity of the same product, replaces the pending order with the new one. Any delivery details already given are carried over. Only one order is ever placed, and only after the shopper approves the review.
Shoppers can change a detail at any time before they confirm — for example "use [email protected] instead" or "send it to my office address". Fetchply updates the pending order, shows the refreshed review with the new value, and still waits for a separate approval before placing it. Once an order is confirmed, it can no longer be edited in chat; the shopper is told its current status and your team can update it from Orders.
Quantities can be phrased naturally: "2", "two", "2 bottles", or "one more". If the amount asked for is more than the stock you have left, Fetchply says how many remain and asks for a lower quantity rather than placing an order you cannot fill.
After the order is placed
Once an order is placed, the conversation has nothing left to approve. The agent keeps the placed order and its order number in mind for the rest of the chat, so a friendly "thank you" or a follow-up question is answered as what it is. The agent does not show the review again, does not ask for a second confirmation, and the confirm order and cancel order options are not offered again on WhatsApp or Instagram.
A shopper who wants to buy again just says so — for example "one more bottle" or naming another product. That starts a separate order with its own order number, and the details they already gave are carried over.
Order numbers
Every order gets a short, readable number that counts up in your store: FP-001, FP-002, FP-003, and so on. Numbers keep growing past FP-999 as FP-1000.
The count belongs to your store alone, so another business using Fetchply having their own FP-001 never affects yours. Orders you create yourself, orders placed in chat, and orders placed through a guided flow all draw from the same count, so no two of your orders share a number.
A number is claimed the moment an order is started, including a pending order a shopper never approves. Those appear in Commerce → Orders as cancelled, so the numbers stay in order but not every number is a completed sale.
Orders placed before this numbering existed keep the longer number they were given, such as FP-1A2B3C4D. They stay searchable and shoppers can still track them.
Create an order yourself
You can place an order for a customer without waiting for a chat. On Orders, select Create order, then:
- Search your catalog and add products, adjusting quantities as needed. Any active discount is applied automatically when the order is created.
- Enter the customer's name and, when you have them, email, phone, shipping address, and notes.
- Choose the starting status: Confirmed, Processing, Shipped, or Completed. Use Shipped or Completed to record a sale you already fulfilled.
- Choose the payment method, or leave Store default to use your store's single enabled method.
- Review the subtotal and select Create order.
Shipping, tax, and any payment fee or discount from your store settings are added automatically, and stock is reduced for the products you add. Every product uses your store currency. If the customer has an email or a connected WhatsApp or Instagram conversation, and automatic notifications are on, Fetchply sends them an order message right away.
Update an order
Open any order to manage it. Order statuses move forward through Confirmed, Processing, Shipped, and Completed, and you can jump ahead to any later stage — for example, straight from Confirmed to Shipped. An order can be Cancelled any time before it ships; once it is Shipped or Completed it can no longer be cancelled. Cancelling a confirmed or processing order returns its items to stock. Statuses never move backward.
While an order is Confirmed or Processing you can select Add items to add more products. Fetchply reduces stock for the new products and recalculates the shipping, tax, and total. You cannot add items once an order is Shipped, Completed, or Cancelled.
Whenever you change an order's status or add items, Fetchply messages the customer over the best available channel, their original WhatsApp or Instagram conversation, or their email, as long as automatic notifications are on and the customer has a reachable contact.
Recommend products from the inbox
When you are replying to a customer in the inbox and a store is connected, a Products button appears above the message box. Select it to search your connected stores, choose one or more products, and add them to your reply. Fetchply drops a short product summary into the message so you can edit it before sending. The message reaches the customer on whatever channel the conversation uses.
The button appears only when a store is connected. It searches your built-in Fetchply catalog and a connected Shopify store together. If a Shopify store needs to be reconnected, its live results are unavailable until you reconnect, while your Fetchply catalog still returns results.
See a customer's orders in the inbox
When you open a conversation in the inbox, the details panel shows an Order history section for that customer. It lists every order placed with the same email or phone number saved on the conversation, not only the orders mentioned in the current chat.
The customer's total paid appears at the top of the conversation, next to their name, so you can see their value at a glance without opening the details panel. It stays hidden until the customer has at least one paid order.
If the customer's name and email are not detected automatically, add them in the Customer section of the details panel. Fetchply then matches their past orders and shows their name in the conversation list instead of "Visitor".
Order history counts confirmed, processing, shipped, and completed orders toward the total paid. Drafts and cancelled orders are shown in the list but do not count toward the total. If no orders match yet, the Order history section explains that orders placed with the same email or phone will appear there.
Look up an order in chat
A shopper can ask about an order they already placed — for example "where is my order" or "track FP-007". The agent asks for the order number if it does not have one, then shows that order's current status and items. This works in web chat, WhatsApp, Instagram, and Messenger; web chat displays an order card while messaging channels use a readable text summary.
To protect a shopper's details, the agent asks the shopper to confirm the email or phone number saved on the order before showing anything. A matching email or a matching phone number is enough, and the agent does not reveal the order when neither matches. The shopper can paste the number with or without the #, the FP-, or the leading zeros — "7", "007", and "FP-007" all find the same order.
If an order has no email or phone saved on it at all, the agent cannot confirm who is asking, so it will not show that order in chat and points the shopper to your team instead. Open it from Commerce → Orders to answer the shopper yourself, and add their email or phone to the order so they can track it in chat next time.
Channels
The same catalog, stock, drafts, customer details, confirmation rules, and order numbers are used in:
- web chat and the embedded widget;
- connected WhatsApp conversations;
- connected Instagram direct messages;
- connected Messenger conversations.
Web chat displays product cards. WhatsApp, Instagram, and Messenger send the recommendation as text and send each uploaded product picture separately. Fetchply's catalog is not automatically copied into a Meta catalog.
Troubleshooting
I cannot turn Commerce on
The agent is connected to a Shopify store, and the two cannot both sell in the same chat. Keep using Shopify, or disconnect Shopify from this agent first if you would rather sell from a Fetchply catalog.
The agent says it cannot find products in my Shopify store
Check whether Commerce was ever turned on for that agent. Shopify now takes priority automatically, so shoppers get live Shopify results again — reload the chat and ask once more. If products are still missing, open the agent's Shopify integration and confirm the connection is active, product search is on, and the store is not password protected.
A product is not recommended
Confirm Commerce is on and the product is active. A product with tracked stock at 0 is unavailable. Try the product name, description, or SKU; simple singular and plural differences are matched automatically. If available products appear in chat but their activity is missing from Analytics, the shopper can still continue with those results; check Analytics again later.
A product image will not upload
Check the file type and size. Fetchply accepts PNG, JPG, GIF, and WebP files up to 5 MB and shows a message when a file is too large or the wrong format. If the upload still fails, wait a moment and try again; the product keeps its previous image until a new upload succeeds. Turn Commerce on before uploading, since the option is only available while Commerce is enabled.
A product recommendation arrived without its picture
Open the product in Commerce → Products and confirm it still shows an uploaded picture. External image links are not attached to messaging replies; upload the picture through the product form instead. If the product has a picture and text recommendations arrive but media does not, check that the WhatsApp, Instagram, or Messenger connection can send media, then ask for the product again. The product link and order flow still work while the picture is unavailable.
The shopper entered an invalid email or phone number
Fetchply explains what a usable value looks like and keeps the order as a draft, so the shopper can correct it without starting over. A phone number needs 7 to 15 digits and may include a leading +, spaces, dashes, dots, or brackets. Very short numbers such as 123 are not accepted as a contact detail.
The agent keeps asking for an email
It asks for a contact detail only while the order has neither a usable email nor a usable phone number. If the shopper already sent a phone number and is still being asked, the number was not usable — check that it has at least 7 digits — and ask them to send it again or give an email instead.
The web form was closed or the page reloaded
The draft remains attached to the conversation. The shopper can continue by typing the missing detail or asking to order the product again. A new draft replaces the older unconfirmed draft.
The checkout form said the details could not be saved
Ask the shopper to submit the same form again. Fetchply keeps the order pending and does not place it or claim that the details were saved. The form is saved as one set, so a failed attempt does not leave a partly updated delivery address or contact on the order.
The agent did not answer a message about an order
On WhatsApp, Instagram, and Messenger, a turn where the agent searches the catalog or works on the order can occasionally produce no message. Fetchply retries that reply once by itself, and if it is still empty it sends the outcome of the order step instead, so the customer is never left waiting in silence. Ask the customer to send their message again if they see a short apology; the pending order keeps its order number and every detail already saved, so nothing has to be re-entered.
The review arrived without the confirm and cancel options
The two options are offered whenever an order is complete and waiting for the shopper's approval, including when they are shown the review a second time. If they are ever missing, the shopper can type "confirm order" or "cancel order" in the same conversation and get exactly the same result. A very long review is sent as plain text without them, so the shopper types the words instead. The pending order keeps its order number and every saved detail, so nothing has to be re-entered.
The confirmation came back in English instead of the shopper's language
Fetchply reads the language from the earlier messages in that conversation, so a chat that was mostly in English gets an English confirmation even if the last message was not. If the wording cannot be prepared in time, Fetchply sends a plain English confirmation rather than delaying the news. The order is placed either way and the order number is always correct, so nothing needs to be redone.
A WhatsApp shopper tapped a review button and nothing happened
Tapping confirm order or cancel order decides the order exactly like sending the same words. If a tap ever appears to go unanswered, ask the shopper to type "confirm order" or "cancel order" in the same conversation instead.
A shopper confirms more than once
The same order is never placed twice. A second confirmation simply shows that order again with its current status, so the shopper sees their order number instead of being told there is no order. If they never had an order, Fetchply says so instead of creating one.
The agent keeps asking the shopper to confirm
A shopper does not have to type the exact words "confirm order". A clear yes in their own words or language ("yes, confirm order!", "confirm my order please", "haan confirm karo") places the pending order the moment it arrives, instead of getting another copy of the review. If a confirmation ever seems to be ignored, ask the shopper to tap the confirm order button or type "confirm order", which always works; the pending order keeps its number and saved details throughout, so nothing is lost or duplicated.
The shopper repeated their order request
Nothing is duplicated. Fetchply recognises the order already pending in that conversation, keeps its order number and saved details, and shows the same review again. Repeating a step never gets stuck either: saving a detail that is already saved, or re-adding the same product, simply leaves the order as it is. A second order is only created when the shopper asks for a different product or quantity.
The shopper is asked again for a detail they already sent
Their answer was not accepted as that detail, so nothing was saved and the order stayed a draft. When that happens, the agent explains what was wrong in the shopper's own language, for example an address that is too short to deliver to or a phone number with too few digits, so they know what to fix instead of being asked the same question again. This can also happen when their message asked a question or changed the product at the same time, because Fetchply answers that first and keeps waiting for the detail. If the same detail keeps being refused, the agent offers to connect a human teammate, and the pending order keeps everything already saved.
A detail the shopper changed does not appear on the review
Ask the shopper to state the change once more in the same conversation, for example "change the email to [email protected]". The review is always rebuilt from the saved pending order, so any value shown there is stored. If the value they want to change belongs to an order that is already confirmed, Fetchply says so instead of quietly changing a different order — update that order from Commerce → Orders.
The agent asked to confirm an order that was already placed
Later messages in the conversation are answered against the order that exists, so the review and the confirm order and cancel order options are not repeated after an order is placed. If a shopper is ever shown a second review of an order they already completed, check Commerce → Orders: the placed order is the one with the order number the agent gave them, and any extra pending order beside it was never placed and can be cancelled. Nothing is charged or fulfilled for an order that was not confirmed.
The shopper asks to change an order that was already placed
Confirmed, processing, shipped, and completed orders cannot be edited in chat. Fetchply names the order and its current status, and your team can make the change from Orders.
The agent does not show an order number
Treat the order as unconfirmed. A completed chat order always includes an order number such as FP-007 and appears under Commerce → Orders. Ask the shopper to retry the pending order from the same conversation. They do not need to repeat delivery details that were already saved.
Order numbers jump, or my newest order is not FP-001
Numbers are claimed when an order is started, so a pending order a shopper abandoned or replaced has already taken one. Those orders are listed as cancelled under Commerce → Orders, so the sequence is complete even when some numbers are not sales. If you had orders before this numbering existed, counting continues from how many you already had rather than restarting at FP-001.
A shopper cannot track an order in chat
The agent only shows an order after the shopper confirms the email or phone saved on it. If the order has neither, there is nothing to check the shopper against and the agent will not show it. Open the order under Commerce → Orders, answer the shopper yourself, and add their email or phone to the order so chat tracking works next time.
Shipping shows as free on an order I expected to charge
Either the order reached your Free shipping over threshold, or a discount that applies to shipping covers a product on the order, a fixed-amount shipping discount waives the whole shipping fee. Check the Discounts page for an active discount that applies to shipping.
The customer was not asked how they want to pay
The payment question only appears when both payment methods are enabled in Commerce → Settings. With one method enabled, every order uses it automatically. Orders placed through a guided flow are never asked: they use cash on delivery when it is enabled, otherwise online payment.
The order cannot be confirmed because a payment method is missing
Both methods are enabled, so the shopper has to choose before the order can be placed. Fetchply asks the question again with the review; a short answer such as "cash on delivery" or "online" in the same conversation saves the choice, and the shopper can then confirm. The pending order keeps its number and saved details throughout.
A payment method cannot be selected
The method was disabled in Commerce → Settings after the conversation started, or was never enabled. Enable it under Payment methods, or pick the other method. If a pending order had chosen a method you later disabled, Fetchply moves the order to your remaining enabled method — or asks the shopper to choose again — and refreshes the review before anything is placed.
I cannot turn off a payment method
At least one payment method must stay enabled, otherwise no order could be placed. Enable the other method first, then turn this one off.
The order total is not subtotal plus shipping and tax
Check the review's payment line: the chosen method's fee (shown as +) or discount (shown as -) is applied last. A payment discount larger than the rest of the order stops at a total of zero — the customer is never owed money.
The price changed before confirmation
Fetchply does not place the order at the old price. It refreshes the pending order with the current product price, shipping, tax, and total, then shows the shopper a new review. The shopper must approve that updated review before stock is reduced. On WhatsApp and Instagram the confirm order and cancel order options come back with that message, so the shopper can decide again without retyping anything.
The agent asks to search again
This can happen during a product follow-up because current price and availability are checked again instead of being copied from an older answer. If the product is no longer available, ask for a similar product or describe a different preference.
The shopper is told a product is no longer available
The pending order contains a product that is now hidden, deleted, or missing from your catalog, even if a similar product is still listed. Fetchply names that product, discards the pending order, and lets the shopper order something else right away. If the product was hidden, open Products, find it with the visibility filter set to Hidden, and make it active to sell it again. If it was permanently deleted, it cannot be restored; add it again as a new product. Either way, past orders keep their history.
Two shoppers request the last item
Stock is checked again at confirmation. Only the shopper whose confirmation succeeds first receives the confirmed order.
Commerce was turned off during a conversation
Pending drafts are cancelled. Turn Commerce on again and ask the shopper to start from a fresh product recommendation.
The customer was not notified about an order
Automatic messages are sent only when Notify customers automatically is on and the customer has a reachable contact: a connected WhatsApp or Instagram conversation, or an email address. Add the customer's email to the order, or turn notifications on in Commerce → Settings, then make a change to send an update. The order is still created or updated even when no message can be sent.
I cannot add items to an order
Items can be added only while an order is Confirmed or Processing. Shipped, Completed, and Cancelled orders are closed to new items.
The Products button is missing in the inbox
The button appears only when a store is connected to this agent. Turn on your built-in store from Integrations → Commerce or connect Shopify, then reopen the conversation.
A manual order will not save
Every order needs at least one product. If you entered a customer email, make sure it is a valid address. Products with tracked stock must have enough units for the quantities you choose.