Skip to content

Releases: oysterai/oyster-woocommerce

v0.17.0

Choose a tag to compare

@github-actions github-actions released this 08 Sep 08:47
Immutable release. Only release title and notes can be modified.
319b13c

A page of its own for the scan. Share a link to it without putting the scan on your storefront.

The scan page

Oyster > Widget now has a Create scan page button. It publishes a page with the scan on it and hands you the link.

Useful when you want people to reach the scan without every shopper meeting it first: a soft launch, a campaign, or seeing the scan on your live site before you show it to everyone.

It starts unlisted

The page is not added to your menus, and search engines, your site's own search and auto-generated menus all skip it. Only someone with the link reaches it.

When you are ready to promote it, Make it discoverable on the same screen treats it like any other page. Adding it to a menu yourself works at any time, whichever state it is in.

It is an ordinary page

The page holds the "Oyster Skin Scan" block, so you can edit it, write your own copy around the scan, and style it like the rest of your site.

Nothing about your storefront changes until you create it. The floating launcher, the block and the [oyster_scan] shortcode all work exactly as before.

Fixed

A product whose image filename contains a space, square brackets or a character outside ASCII no longer fails to sync. WordPress reports those links unescaped, which makes them invalid URLs, and the product was being rejected over the name of its picture.

Installing

Update from Plugins in wp-admin, or download oyster-woocommerce.zip below.

v0.16.0

Choose a tag to compare

@github-actions github-actions released this 08 Sep 06:40
Immutable release. Only release title and notes can be modified.
bdc34f9

Scan pricing has moved to your Oyster dashboard. One place to set it instead of two.

Where pricing lives now

What shoppers pay for a scan, and how your scan pack is priced, are set on your Oyster dashboard. Oyster > Scan payments links you straight there, alongside the link to your billing and usage that was already on that screen.

The pricing form, the pack form and the cost / shopper price / margin table are gone from WordPress.

Nothing about your prices changes

Whatever you had set is what your shoppers are charged. Your checkout keeps collecting exactly as it did, and the amount a shopper is quoted in the scan widget is the amount they pay. This changes where you edit pricing, not what anyone is charged.

You do not need to do anything after updating.

Why it moved

Your prices are held on your Oyster account, not in WordPress. Editing them from here meant two screens describing one thing, and it meant this plugin had to be updated and released before you could use anything new we added to pricing. A store running an older version could show options that had already changed.

Setting your prices in one place removes both problems.

What Scan payments still does

Choosing which of your checkout's payment methods a shopper may pay for a scan with. That stays in WordPress, because it is a fact about your checkout rather than about your Oyster account. Tick nothing to offer every method you have enabled.

Installing

Update from Plugins in wp-admin, or download oyster-woocommerce.zip below.

v0.15.1

Choose a tag to compare

@github-actions github-actions released this 04 Sep 18:38
Immutable release. Only release title and notes can be modified.
6d0b1a0

The Scan payments screen now tells you which price you are looking at, and keeps up with your Oyster dashboard.

Which price is which

The screen opens with what Oyster charges you, what your shopper pays, and what
you keep — and never said those figures are for one scan. If you sell packs
too, they are not the whole picture, and the pricing option sitting beneath them
governs both.

So the summary is now headed Single scan, the amount field reads Amount for
one scan
, and the pricing option says plainly that it applies to single scans
and to packs.

Prices no longer lag behind your dashboard

If you changed a price on your Oyster dashboard, this screen could go on showing
the old one for several minutes. It was reading a saved copy and only fetched a
new one when you saved something in WordPress — so the two surfaces disagreed,
with nothing on screen saying why.

It now reads your live prices every time you open it. Your storefront was always
charging the right amount; it was only this screen that was behind.

Less to read

The helper text on that screen is about half what it was. What went was
reassurance rather than instruction — that setting a price does not change
whether a shopper is charged, that a fixed markup only adds, that a percentage
already scales with a pack. None of it told you what to do with the control it
sat under. Warnings and error messages are untouched.

v0.15.0

Choose a tag to compare

@github-actions github-actions released this 04 Sep 15:31
Immutable release. Only release title and notes can be modified.
b101a35

Sell a pack of scans, and the floating launcher becomes something you switch on.

Two changes worth knowing about before you update, one of which you will see on
your storefront straight away.

The floating launcher is now off until you turn it on

The floating scan button used to appear on every storefront page as soon as your
store connected. That was the default, not a choice — and if you never opened
Oyster → Widget, nobody ever made that choice for your store.

So it is now off, and that includes stores it is currently showing on. If you
want it, tick Show floating launcher on that screen and save.

If you have opened that screen and saved it before, whatever you picked is
untouched — on stays on. Only stores running on the old default are affected.

The scan itself is unchanged either way: the Oyster Skin Scan block and the
[oyster_scan] shortcode work exactly as they did, and are the better fit if you
would rather the scan lived on one page than floated over all of them.

Sell several scans on one payment

A shopper can now buy a pack: they pay once, take a scan straight away, and
run the rest whenever they like. Nothing to log into — they redeem with the
payment reference we email them, using the same email address.

Set it up under Oyster → Scan payments:

  • Scans per pack — how many a shopper gets.
  • Usable for — how long the pack lasts before it stops working.
  • Pack price — what the pack costs, if your pricing option needs a figure of
    its own. A percentage already scales with the pack; a flat amount belongs to
    the offer and is charged once, which is what makes a pack cheaper than buying
    the same scans one at a time.

Packs have to be enabled on your Oyster account first. If you do not see the
section, that is why.

What a pack costs you

The whole pack is settled when it is bought. A shopper coming back three weeks
later to use their last scan costs you nothing more — you already paid for it on
the day they bought it.

The flip side is worth saying plainly: a scan they never come back for is still
one you paid for. That is why packs have a validity window, and why it is worth
setting one you are comfortable with.

Fixed

  • A discounted pack could be charged at the wrong price. If your pack worked
    out cheaper than a single scan, checkout raised the order to the single-scan
    price — so a shopper was charged more than the widget quoted them. Orders are
    now never raised above the cheapest thing your store sells.
  • If your store no longer sells single scans, the single-scan pricing form is
    hidden instead of asking you to price something you cannot sell.

v0.14.1

Choose a tag to compare

@github-actions github-actions released this 21 Aug 07:16
Immutable release. Only release title and notes can be modified.
0093174

A clearer answer when your store's connection needs renewing.

The Scan payments screen used to give the same reply whenever it could not read
your price: "Could not read your scan pricing from Oyster just now. Reload to
try again."

That is the right advice for one of the two causes. If Oyster was briefly
unreachable, reloading works. If your store's connection is not permitted to read
scan pricing, reloading cannot fix it — the page fails again however many times
you try, with nothing telling you why.

That second case now says what it is, and offers the Reconnect your store
button that renews the connection. Nothing else about your setup changes when you
do. Every other failure keeps the message it had.

v0.14.0

Choose a tag to compare

@github-actions github-actions released this 20 Aug 11:07
Immutable release. Only release title and notes can be modified.
add217d

Choose which payment methods can pay for a scan.

If you collect scan payments through your own checkout, a shopper paying for a
scan is offered every payment method your checkout has enabled — including ones
that were never meant for it.

Under Oyster → Scan payments you can now pick which methods a scan may be
paid with. Tick nothing and every enabled method stays on offer, which is what
your store does today and what it keeps doing after this update. Nothing changes
until you choose.

Why you might want to

A method that settles an order without taking money — cash on delivery, cheque,
direct bank transfer — hands the scan over as soon as the order is marked paid.
That is exactly what makes it useful while you are testing the integration, and
exactly what makes it expensive on a live storefront: the shopper gets their
scan, you are billed for it, and nothing was collected.

So it is a choice rather than a ban. Keep those methods available while you set
things up, then narrow scan payments to the ones you actually want to be paid
through.

What it touches

  • Only the page a shopper pays for a scan on. Your own checkout is unchanged.
  • It is a restriction, not a hidden menu — a method you leave out cannot be
    chosen by hand either.
  • Only methods your checkout has enabled can be picked. If the ones you picked
    are all later disabled in WooCommerce, the screen says so: that state would
    leave a shopper with no way to pay for a scan at all.

The widget no longer opens itself on your cart or checkout

If you have the floating launcher set to open on load, it no longer does that on
the cart or the checkout. A shopper who has reached those pages has decided what
they are buying, and a scan opening over one of them has to be dismissed before
they can finish — the same interruption scan payment pages had, arriving on your
own sale instead.

The launcher stays put, so starting a scan from either page is still something a
shopper can choose. Everywhere else your auto-open setting behaves exactly as
before, and scan payment pages are unchanged: the widget stays hidden there
outright.

Also in this release

  • "Scan pricing" is now Oyster → Scan payments, since it covers both what a
    scan costs and how it can be paid for.
  • Deleting the plugin clears the last of the settings it had stored.

v0.13.1

Choose a tag to compare

@github-actions github-actions released this 20 Aug 08:25
Immutable release. Only release title and notes can be modified.
0fc3c5d

A fix for stores that take scan payments through their own checkout.

The scan widget no longer covers the payment page

Paying for a scan opens your checkout in a new window. Because that window is
your storefront, the scan launcher appeared over it — inviting the shopper to
start a scan on top of the one they were already paying for, and needing to be
dismissed before they could continue.

It is now kept off that page. Ordinary order payment pages are untouched: the
launcher still appears wherever it did before.

Hiding your own storefront's popups on that page

Anything else your storefront greets visitors with — a newsletter modal, a chat
bubble, a cookie banner — shows up in that window too. Those belong to your other
plugins rather than to this one, so this release gives you a way to hide them
rather than switching them off on your behalf.

The payment page now carries an oyster-scan-payment body class. Add CSS under
Appearance → Customise → Additional CSS targeting whatever you want out of
the way:

body.oyster-scan-payment .newsletter-modal,
body.oyster-scan-payment #chat-bubble {
  display: none;
}

Only that page is affected — the same elements behave normally everywhere else on
your store.

Updating

The update appears in your WordPress dashboard as usual. Nothing needs
reconfiguring.

v0.13.0

Choose a tag to compare

@github-actions github-actions released this 19 Aug 14:32
Immutable release. Only release title and notes can be modified.
a23942e

Set what you charge for a scan

If your store is set up to take scan payments through your own checkout, you can
now decide what shoppers pay for one. Add a percentage, add a fixed amount, or
set your own price outright — Oyster's rate becomes your cost rather than your
price, and the difference is yours.

Find it under Oyster → Scan pricing, which shows what a scan costs you, what
your shopper pays, and what you keep, alongside a link to your billing and usage.

This changes the amount a shopper is charged, never whether they are charged —
that stays governed by your Oyster billing setup. Stores whose scan payments are
collected by Oyster are unaffected and will see nothing new here.

See which products reached Oyster, and why the rest did not

Your products list now shows the sync state of every product, and can be filtered
to just the synced, the failed, or the not yet synced.

When a product does not sync, the reason now appears against that product instead
of only as a count on the sync screen. That includes products that never get sent
at all — most often because they have no price, which until now looked exactly
like a product nobody had got to yet.

Reasons are written in plain language: two products sharing a SKU says so, rather
than showing a database error. The sync screen lists the affected products by
name, each linking straight to its editor.

Fixes

  • Scan orders are raised at no less than the price you set, so the amount charged
    cannot be altered from the browser.

Compatibility

Requires WordPress 6.4 or later, WooCommerce 8.0 or later, and PHP 8.1 or later.
Tested against WordPress 7.0 and WooCommerce 11.

Updating

The update appears in your WordPress dashboard as usual. Nothing needs
reconfiguring — existing settings, connections and synced products carry over.

v0.12.1

Choose a tag to compare

@github-actions github-actions released this 07 Aug 13:27
Immutable release. Only release title and notes can be modified.
63b79ea

Scan payments through your own checkout

If Oyster has set your account up to take scan payments yourself, shoppers now pay for their scan through your checkout instead of Oyster's — using the payment methods you already accept, and appearing in your orders like any other sale. Their scan starts as soon as the order is paid.

Nothing to set up in the plugin: it switches on from your Oyster account, and stores that aren't set up this way are unaffected. Contact support if you'd like it enabled.

Scan payments appear as ordinary orders against a hidden "Skin scan" product, so refunds, taxes and reporting all work the way you'd expect. The product stays out of your storefront and search, and is safe to delete — it comes back when it's next needed.

A safer, longer-lived connection

Connecting your store now takes a second step: after your password, Oyster emails you a one-time code to enter. If someone learns your password, they still cannot connect a store to your account without also reading your email.

Your store now has its own connection credential instead of borrowing the login of whoever set it up. Two things stop breaking as a result:

  • the connection no longer expires after about a month and quietly stops syncing
  • it no longer dies when the person who connected it leaves, or has their access changed

Disconnecting now actually disconnects. It used to clear this site's copy and leave the connection live on Oyster's side; it is now retired properly. Deleting the plugin does the same on its way out, so a store you take down does not leave a working connection behind.

Fixes

  • Scan payment requests are kept on your store's own address, so browsers no longer refuse them when your site is reached by a different spelling of its host than the one WordPress redirects to.

Includes the 0.11.0 changes, which were not released on their own. Version 0.12.0 was withdrawn before it could be installed — upgrade straight to this one.

Updating: this release appears in your WordPress updates screen automatically. You can also download the zip below and install it manually.

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 29 Jul 17:30
Immutable release. Only release title and notes can be modified.
177ae93

What's Changed

Full Changelog: v0.9.2...v0.10.0