Reassign an existing booking/order to a different vendor/listing without refunding – best practice?

Hi HivePress team,

We have run into this a few times and want to confirm the correct approach.

Context / flow on our platform:

  • Customer selects a listing, registers, books, and checks out.

  • We use Direct payments + commission model – customer pays only the platform commission (deposit) to confirm the booking.

  • After checkout, the order and the booking point to the selected vendor/listing.

Operational need:
Sometimes the original vendor is unresponsive or not available. We want to keep the same WooCommerce order and HivePress booking, but reassign them to another vendor (and usually another listing by that vendor). This avoids refunding the deposit and asking the client to create a new order.

What we are trying to do:

  • Keep the same order_id and booking_id.

  • Change the associations so the booking/order point to a new listing and its vendor.

  • Preserve the date/time, status, and payment state.

  • Ensure availability calendars, notifications, commission accounting, and future reviews work with the new vendor/listing.

Questions:

  1. Is there a built-in / supported way (UI or API) to reassign a booking to a different listing/vendor while keeping the same order?

  2. If not built-in, what’s the recommended programmatic approach?

    • Which meta/relations must be updated on the booking (e.g., hp_listing, vendor relation) and on the order (line items/meta) so that:

      • availability blocks and calendars reflect the new listing,

      • vendor notifications and booking history point to the new vendor,

      • commission logic continues to work correctly,

      • the review target becomes the new vendor/listing?

  3. Are there any hooks we should fire manually after reassignment (e.g., to re-sync availability or trigger the “booking updated” emails)? For example, specific actions like hivepress/v1/models/booking/update, .../save, or others you recommend.

  4. Any gotchas with Direct payments + commission deposits when the booking’s listing/vendor changes (e.g., fee items, order meta, payout stats)?

What we already know:

  • From WP Admin we can safely edit start/end time of a booking, but we do not see a native control to swap its listing/vendor.

  • We want to avoid creating a second order and refunding the first deposit where possible.

If there is a preferred snippet or a documented sequence of updates (booking meta + order meta + actions to run), we would really appreciate guidance.

Thanks a lot!

Hi,

Unfortunately there’s no UI for this at the moment, but this may be possible programmatically.

For the order, you can change these fields:

  • seller (for WP_Post object, post_author), contains the user ID
  • vendor (for WP_Post object, hp_vendor meta field), contains the vendor profile ID

For the booking, you have to change the listing ID (listing field if HivePress model object, or post_parent if WP_Post object). This way the vendor is also switched and the re-assigned booking will block corresponding dates in the newly assigned listing calendar.

Hope this helps

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.