Offers
Review and respond to eBay buyer offers from inside ChannelWeave.
Last updated:
Use Inbox → Offers to process eBay best offers without opening eBay Seller Hub.
The workspace has Active, History and Insights views. eBay is the only connected offer source currently implemented; the channel-first layout does not imply support for Shopify offer apps, WooCommerce extensions, Website negotiation or Amazon Business quotes.
Active and History list headers show 1 result or N results for the matching offer records. This wording does not change what is counted.
Listing settings are not offer activity
Rows for locally known eBay listings include an expandable Listing: Offers… summary. It shows the current verified offer state, minimum offer (auto-decline) and auto-accept context; these are not historical terms for that negotiation. An empty offer list does not establish that offers are disabled.
Use Listings → All listings → Offers to find enabled, disabled, unverified or unsupported listings, or enabled listings with no configured automatic threshold. Open the listing's Listing offer settings panel to check eBay. Imported and internally created listings follow the same verification contract.
The Inbox cache can briefly retain the settings present when offer rows were loaded. Open the listing for the latest stored check; none of these labels changes the existing Accept, Decline or Counter eligibility rules.
Seller-focused scope
Offers is a selling workspace, not a copy of My eBay Buying. Offers you make as a buyer are excluded from Active, History, Insights and seller-action badges. This does not withdraw or change an offer on eBay.
ChannelWeave retains eBay's ItemBestOffers.Role independently of whether an
offer originated with a buyer or seller. Missing roles require an exact-item
seller-identity check against the authenticated account. Contradictory, buying
and unverified records are excluded, not persisted as Inbox content. Only
verified selling records contribute to lists, History and Insights. The offer
badge counts verified, unexpired buyer offers or buyer counters currently
awaiting your seller response.
Active, History and Insights
Active
The default working list shows open records returned by eBay. Channel is the first column, using the standard badge. The row keeps item identity, buyer, asking price, eBay amount, quantity, difference, expiry and status accessible at narrow panel widths as well as on wide screens. Awaiting you identifies actionable offers; recognised seller counters show Awaiting buyer. In table layouts, the Difference heading stays on one line.
Accept and Decline sit side by side, with Counter offer and History aligned beneath them. On narrow screens, this action group fills the card width with larger touch targets. Expand Counter offer to reveal the currency, price field and Send counter button in a separate panel; all three response actions retain confirmation before submission. History opens the exact item's returned offer records and trail.
History
History currently looks up an exact numeric eBay item ID, not an account-wide saved ledger. Enter an ID and press Look up item or Enter. Changing tabs without an item ID shows lookup guidance rather than silently returning Active offers. Free-text historical search is not implemented.
The default Closed offers filter includes accepted, declined, expired, withdrawn and administrator-ended records, plus seller-accepted and awaiting-payment states. All item records also includes open offers and counter records so the whole returned trail can be inspected. These are individual provider records, not reconstructed complete negotiations.
History is read-only. Current asking is the present stored listing price, not a historical snapshot. Historical price differences are therefore shown as unavailable. Payment-related provider states are labelled explicitly; ChannelWeave does not infer a verified paid order from these records.
Insights
Insights places summary cards above a status breakdown table, separate from the operational lists. Look up an exact item ID to see:
- returned records, deduplicated by offer ID;
- accepted records;
- declined records;
- expired records.
Cards link to the corresponding item scope/status in History. The status table also shows other returned states; the item-trail link opens all returned records. Unknown provider status labels are retained, not treated as an accepted or closed outcome.
A missing item or failed lookup displays —, not zero. Zero means a successful lookup returned no records for that count. Counts include counters; they are not negotiation counts, acceptance rates or paid-order counts. The provider lookup is bounded and is not a durable historical ledger. Insight cards use the whole returned item trail, independently of the History table's local pagination and status filter.
Not yet measurable: acceptance rate, agreed discount, counter uplift, response-time trends and paid conversion. Account-wide and date-range reporting are not implemented. These need durable negotiation records, historical price snapshots, reliable event links/timestamps and verified order links; the current provider lookup and in-memory cache do not supply them.
What you can do
- Review incoming offer records by status.
- Search by item id, buyer, or title; the search field keeps focus after the debounced list refresh so you can keep typing.
- See buyer, item, asking price, eBay amount, quantity, difference from asking (amount + percentage), and expiry. Differences are calculated only for Active quantity-one rows with known matching currencies; they are unavailable for historical records, unknown/mismatched currencies or multi-quantity offers whose comparison basis is not established. A negative difference is below asking, not a calculation of profit or loss.
- eBay amount is the amount on that specific Trading API offer record. It is not labelled as a verified buyer total or seller payout. ChannelWeave does not substitute amounts extracted from a different item notification or reconstruct Buyer Protection fees. Check eBay for the buyer-facing total and proceeds breakdown. Counter warnings compare the same provider-record basis.
- Listing links and linked item titles in Offers rows preserve return context, so listing breadcrumbs can return users to the originating Offers view.
- Listing detail also shows a visible Back to Offers button when opened from Offers context.
- Respond in-app:
- Accept
- Decline
- Counter
Filters and URLs
/inbox/offersopens Active.view=active|history|insightsselects the workspace view.qsupplies free text for Active or an exact numeric eBay item ID.Active fixes
status=active; Insights fixesstatus=allfor its item lookup. Neither view shows a single-option status or scope dropdown.History accepts
status=closed|accepted|declined|expired|all, defaulting toclosed, and retains its status dropdown. A non-active status URL withoutviewopens History.Pinned Offers views retain the selected workspace view and filters.
pageandpage_sizecontrol local pagination after role and search filtering. Provider pages are collected first (up to 55 pages of 200 records); larger reported result sets fail rather than presenting mixed or incomplete seller totals. Free-text search covers that collected set.Refresh sets
sync=1to bypass the Offers list cache for that request.Cache keys are scoped to customer, view, status, search and pagination.
Fresh cache window: approximately 45 seconds. Stale entries can be served for up to ten minutes while a background refresh updates them.
Successful Accept/Decline/Counter actions invalidate the customer's Offers list cache immediately.
History and Insights use provider-neutral general instructions and the Exact item ID… field placeholder. Channel badges and the page's support note still identify eBay as the currently supported source; the wording does not add other offer integrations. Item lookup and refresh behaviour are unchanged.
Performance behaviour
- Sidebar unactioned-offer badge and Offers list share a longer-lived active-offer count cache, with background refresh when stale.
- On cache-stale hits, Offers list renders from cached rows first and refreshes asynchronously, reducing repeated blocking eBay Trading calls during normal navigation.
Action rules
- Accept/Decline/Counter actions are shown only for actionable statuses
(
PendingorActive), a verified seller role, an unexpired provider expiry, and an explicitBuyerBestOfferorBuyerCounterOffertype. - Seller-originated pending counters (for example seller counter-offer rows) are read-only and shown as No action while awaiting buyer response.
- Accept/Decline/Counter actions require a Bootstrap confirmation modal before submit.
- Counter requires a positive counter price.
- Counter enforces local pre-submit guardrails:
- Hard block (quantity 1): counter price cannot exceed listing price.
- Warning (non-blocking): if counter is below the eBay offer amount, the confirmation modal calls this out and asks to continue.
- Server-side validation also blocks quantity-1 counters above listing price before calling eBay.
- Successful counter actions redirect to the same item in
Allstatus so you can review the response trail immediately in History's All item records view. - Before every submission, ChannelWeave re-fetches the exact offer and checks item identity, seller role, type, status and expiry. Failure sends no response. eBay remains the final authority on eligibility.
Offer trail
- When you search by an exact eBay item id, ChannelWeave renders an Offer trail panel below the offers table.
- The trail lists each returned offer record for that item (status, amount, quantity, offer id, buyer/seller message, and expiry), deduplicated by offer ID and ordered by expiry descending, then offer ID. This is not an event-timestamp audit log.
- Use this panel to follow negotiation history after countering.
Provider boundaries
eBay GetBestOffers returns active offers for an account-wide request and supports other states through an item-specific lookup. The eBay status contract distinguishes buyer confirmation, seller acceptance and buyer payment states. The workspace preserves these distinctions without manufacturing negotiation or order links.